1. Pengertian Searching
Pencarian (Searching) merupakan proses yang fundamental dalam
pemrograman, guna menemukan data (nilai) tertentu di dalam sekumpulan
data yang bertipe sama. Fungsi pencarian itu sendiri adalah untuk
memvalidasi (mencocokkan) data.
2. Metode pencarian dibagi menjadi 2, yaitu:
1. Metode Pencarian Beruntun
Konsep yang digunakan dalam metode ini adalah membandingkan data-data
yang ada dalam kumpulan tersebut, mulai dari elemen pertama sampai
elemen ditemukan, atau sampai elemen terakhir.
2. Metode Pencarian Bagi Dua (Binary Search)
Metode ini diterapkan pada sekumpulan data yang sudah terurut (menaik
atau menurun). Metode ini lebih cepat dibandingkan metode pencarian
beruntun. Data yang sudah terurut menjadi syarat mutlak untuk
menggunakan metode ini.
Konsep dasar metode ini adalah membagi 2 jumlah elemennya, dan
menentukan apakah data yang berada pada elemen paling tengah bernilai
sama, lebih dari atau kurang dari nilai data yang akan dicari. Jika
bernilai sama, maka langsung data yang dicari ditemukan. Jika data di
elemen terurut naik, maka jika data yang berada di tengah kurang dari
data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah
ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali.
Dan sebaliknya untuk nilai data yang berada di tengah lebih dari data
yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke
kiri, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan
demikian sebaliknya untuk data yang terurut menurun. Dalam hal ini
tentukan indeks paling awal dan indeks paling akhir, untuk membagi 2
elemen tersebut.
Indeks awal = i, dimana nilai i, pada awalnya bernilai 0;
Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah elemen.
contoh script 1:
//#include
#include
#include
//#pragma hdrstop
//#pragma argsused
int main(int argc , char* argv[])
{
int x,i,k;
int l[10]={20,15,22,30,60,28,17,18,21,22};
printf(“Data yang dicari = “); scanf(“%d”,&x);
k=0;
for(i=0;i<9;i++)
{
if(l[i]==x)
{
printf("Data ditemukan di elemen %d\n",i);
k++;
}
}
if(k==0)
{
printf("Data tidak ditemukan\n");
}
printf("Jumlah data yang ditemukan = %d",k);
getch();
return 0;
}
contoh script 2:
//#include
//#include hrdstop
#include
#include
//#pragma argsused
int main(int argc, char* argv[])
{
int X,i,j,k,p;
int L[10]={12,14,15,17,23,25,45,67,68,70};
/*Menentukan apakah terurut menaik atau menurun*/
/*Variabel p digunakan untuk kode, apakah menaik atau menurun*/
/*Jika p=0, maka data terurut menaik*/
/*Jika p=1, maka data terurut menurun*/
if (L[0]<L[9])
{
printf("Data terurut menarik \n");
p=0;
}
else
{
printf("Data terurut menurun \n");
p=1;
}
/*input data X yang akan dicari*/
printf("Data yang dicari="); scanf("%d",&X);
/*Penentuan indeks awal dan akhir semula*/
i=0;
j=9;
/*proses perulangan untuk menentukan nilai tengah k */
do
{
k=(i+j)/2;
if (p==0) //jika data terurut menaik
{
if (L[k]==X)
{
printf ("Data ditemukan di elemen %d",k);
getch();
return 0; //langsung keluar program
}
else if(L[k]X)
{
i=k;
}
else
{
j=k;
}
}
}
while(k!=0); //sampai nilai k=0, iterasi berakhir
printf(“data tida ditemukan!!”);
getch();
return 0;
}
sumber : https://lusiajah.wordpress.com/2009/05/30/searching-dan-sorting-di-c/
Tidak ada komentar:
Posting Komentar