SEARCHING
Definisi
Searching
Searching
atau pencarian merupakan tindakan untuk mendapatkan suatu data dalam kumpulan
data. Dalam kehidupan sehari-hari kita sering mengimplementasikannya misalnya
kita hendak mencari arti kata pada kamus, mencari kontak rekan pada buku
telepon, dan masih banyak lagi. Selain itu pencarian juga sering kita temukan
pada aplikasi komputer misalkan pencarian file pada folder yang tidak kita
ketahui dengan pasti lokasinya. Pada struktur data kita mengenal dua metode
searching antara lain:
1.
Sequensial
Search
Sequensial
search atau pencarian beruntun merupakan
model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan
data. Pencarian beruntun dilakukan dengan melakukan penelusuran data satu
persatu kemudian dicocokkan dengan data yang dicari, jika tidak sama maka
penelusuran dilanjutkan, jika sama maka penelusuran dihentikan, berarti data
telah ditemukan.
2.
Binary
Search
Binary
search atau Pencarian bagi dua hanya dapat dilakukan pada data yang sudah
terurut, dengan kata lain, apabila data belum dalam keadaan terurut maka
pencarian tidak dapat dilakukan.
Berikut contoh dari Sequensial Search dan Binary Search dalam C++ :
//CONTOH Sequensial
Search
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
void main()
{
//deklarasi variabel
int A[10], index[10], i, j, k, n;
//proses input data
cout<<"Inputkan Jumlah Data [Max 10] : ";
cin>>n;
cout<<endl;
for(i=0;i<n;i++)
{
cout<<"Inputkan Data ke - "<<(i+1)<<" = ";
cin>>A[i];
}
//proses input data yang hendak dicari
cout<<"Input Data Yang Ingin Anda Temukan : ";
cin>>k;
cout<<endl;
//proses pencarian data
j=0;
for (i=0;i<n;i++)
{
if(A[i]==k)
{
index[j]=i;
j++;
}
}
//hasil pencarian
if (j>0)
{
cout<<"Data " <<k<< " Ditemukan Sebanyak " <<j<< " Buah "<<endl;
cout<<"Data Terdapat Pada Index ke : ";
for(i=0;i<j;i++)
{
cout<<index[i]<<" ";
}
cout<<endl;
}
else
{
cout<<"Data Tidak Ditemukan!! "<<endl;;
}
getch();
}
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
void main()
{
//deklarasi variabel
int A[10], index[10], i, j, k, n;
//proses input data
cout<<"Inputkan Jumlah Data [Max 10] : ";
cin>>n;
cout<<endl;
for(i=0;i<n;i++)
{
cout<<"Inputkan Data ke - "<<(i+1)<<" = ";
cin>>A[i];
}
//proses input data yang hendak dicari
cout<<"Input Data Yang Ingin Anda Temukan : ";
cin>>k;
cout<<endl;
//proses pencarian data
j=0;
for (i=0;i<n;i++)
{
if(A[i]==k)
{
index[j]=i;
j++;
}
}
//hasil pencarian
if (j>0)
{
cout<<"Data " <<k<< " Ditemukan Sebanyak " <<j<< " Buah "<<endl;
cout<<"Data Terdapat Pada Index ke : ";
for(i=0;i<j;i++)
{
cout<<index[i]<<" ";
}
cout<<endl;
}
else
{
cout<<"Data Tidak Ditemukan!! "<<endl;;
}
getch();
}
//CONTOH Binary Search
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{
//deklarasi variabel
int A[10], n, i, j, k, tkr, right, left, middle, tm;
//proses penginputan data
cout<<"Inputkan Jumlah Data = ";
cin>>n;
cout<<endl;
for(i=0;i<n;i++)
{
cout<<"Inputkan Data ke - "<<(i+1)<<" = ";
cin>>A[i];
}
cout<<endl;
cout<<"Input Data Yang Ingin Anda Temukan : ";
cin>>k;
cout<<endl;
//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
tm=0;
right=n;
left=0;
while(right>=left)
{
middle=(right+left)/2;
if(A[middle]==k)
{
tm++;
}
if(A[middle]<k)
{
left=middle+1;
}
else
{
right=middle-1;
}
}
if (tm>0)
{
cout<<"Data " << k << " Ditemukan!! "<<endl;
}
//jika tidak ditemukan
else
{
cout<<"Data Tidak Ditemukan!! "<<endl;
}
getch();
}
Tidak ada komentar:
Posting Komentar