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.
Metode pencarian dibagi menjadi 2, yaitu:
- Metode Pencarian Beruntun (sequensial search)
- metode pencarian bagi dua (binary search)
Metode Pencarian Beruntun (sequensial search)
Pengertian
Pencarian berurutan (squensial search) adalah
mengunakan konsep membandingkan data-data yang ada dalam kumpulan
tersebut, mulai dari elemen pertama sampai elemen ditemukan, atau sampai elemen
terakhir.
Contoh program squensial search
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
void main()
{
//deklarasi variabel
int A[10],index[10], i,j,k,n;
//proses penginputan data
cout<<"Masukkan
jumlah data [Max 10] : ";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Masukkan
Data ke - "<<(i+1)<<" = ";
cin>>A[i];
}
//memasukkan data yang akan dicari ke dalam K
cout<<"Masukkan data yang anda
akan cari : ";
cin>>k;
//proses pencarian data
j=0;
for (i=0;i<n;i++)
{
if(A[i]==k)
{
index[j]=i;
j++;
}
}
//jika data ditemukan dalam array
if (j>0)
{
cout<<"Data" <<k<< "yang
dicari ada" <<j<< "buah"<<endl;
cout<<"Data
tersebut terdapat dalam index ke : ";
for(i=0;i<j;i++)
{
cout<<index[i]<<"
";
}
cout<<endl;
}
//jika tidak ditemukan
else
{
cout<<"Data
tidak ditemukan dalam array"<<endl;;
}
getch();
}
Merode Pencarian Bagi Dua (binary search)
Pengertian
Binary
search adalah
teknik pencarian data dalam array dengan cara membagi array menjadi dua bagian
setiap kali terjadi proses pengurutan.
Prinsip pencarian binery:
·
- Data diambil dari posisi 1 sampai posisi akhir N
- Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) dibagi 2
- Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
- Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
- Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
- Jika data sama, berarti ketemu
Contoh program 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<<"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
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 << " yang dicari ada dalam
array"<<endl;
}
//jika tidak ditemukan
else
{
cout<<"Data
tidak ditemukan dalam array"<<endl;
}
getch();
}
Sumber :
Materi perkuliahan praktikum struktur data
http://hendra-ryuka.blogspot.com/2010/05/searching.html
Tidak ada komentar:
Posting Komentar