Searching
Searching
atau pencarian merupakan suatu metode untuk mencari data sesuai yang diinginkan
oleh user. Dalam searching terdapat beberapa metode, salah satunya adalah
sequential dan binary search.
1. Sequential search
Dari
namanya saja kita sudah bisa menebak bagaimana metode tersebut bekerja.
Sequential sort atau linear search bekerja dengan membandingkan yang dicari
dari sekumpulan data secara sequence atau berkelanjutan dari awal hingga ahkir.
Sequential sort lebih efektif digunakan untuk membandingkan data dengan jumlah
data yang sedikit. Di bawah ini akan diilustrasikan bagaimana metode sequential
sort bekerja :
#include <iostream>
#include <conio.h>
using namespace std;
int main ()
{
int data[10];
int max;
int
i,cari,ditemukan,lokasi;
ditemukan=0;
cout<<"Masukkan
maksimal data : ";
cin>>max;
cout<<endl;
for(i=1;i<=max;i++)
{
cout<<"data
ke-"<<i<<":";
cin>>data[i];
}
cout<<"masukkan
data yang dicari :";
cin>>cari;
for(i=1;i<=max;i++)
{
if
(data[i]=cari&&data[i]==cari)
{
lokasi=i;
cout<<"data
ditemukan pada indeks ke-"<<lokasi<<endl;
}
}
getch();
return 0;
}
Screenshoot
2. Binary Search
Berbeda dengan sequential search,
binary search lebih efektif digunakan untuk perncarian data yang jumlahnya
banyak, dengan syarat semua data sudah terurut. Proses pencarian data dengan
metode binary search dapat dilakukan dengan cara sebagai berikut :
·
Pertama, tentukanlah indeks data yang pertama dan yang terahkir untuk
mencari indeks yang berada di tengah. Sebagai contoh, jumlah data sebanyak 20,
maka indeks data yang berada ditengah adalah indeks data tengah = (indeks data
awal + indeks data ahkir) / 2, indeks data tengah = (1+20)/2 = 10,5, bulatkan
kebawah sehingga kita mendapatkan indeks data ditengah adalah 10.
·
Jika lebih kecil, proses dilakukan kembali tetapi posisi ahkir dianggap
sama dengan posisi tengah -1.
·
Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap
sama dengan posisi tengah +1.
·
Pencarian data selesai
#include<iostream>
#include<stdio.h>
#include<conio.h>
using
namespace std;
int
main()
{
//deklarasi variabel
int A[10],n,
i,j,k,tkr,kanan,kiri,tengah,temp;
//proses penginputan data
cout<<"Masukkan jumlah data =
";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Masukkkan data ke -
"<<(i+1)<<" = ";
cin>>A[i];
}
cout<<"Masukkan data yang akan
anda cari :";
cin>>k;
//proses pengurutan data
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if (A[i]>A[j])
{
tkr=A[i];
A[i]=A[j];
A[j]=tkr;
}
}
}
//proses pencarian data
temp=0;
kanan=n;
kiri=0;
while(kanan>=kiri)
{
tengah=(kanan+kiri)/2;
if(A[tengah]==k)
{
temp++;
}
if(A[tengah]<k)
{
kiri=tengah+1;
}
else
{
kanan=tengah-1;
}
}
if (temp>0)
{
cout<<"Data " << k
<< " yang dicari ada dalam array"<<endl;
}
//jika tidak ditemukan
else
{
cout<<"Data tidak ditemukan
dalam array"<<endl;
}
getch();
return 0;
}
No comments:
Post a Comment