Pengertian Searching
Searching adalah metode pencarian informasi . searching
digunakan untuk pencarian informasi khusus dari table pada saat lokasi yang
pasti dari informasi tersebut sebelumnya tidak di ketahui. Pencarian selalu
dinyatakan dengan referensi pada adanya sekelompok data tersebut .
Ada dua Teknik searching yaitu sequential search dan binary
search.
Sequential search
Pencarian
Sequential search pada dasarnya hanya melakukan pengulangan dari 1 samapai
dengan jumlah data. Pada setiap perulangan dibandingkan data ke-I dengan data
yang dicari.. apabiala sama berarti data telah ditemuakan, dan sebaliknya
apabila samapai akhir pengulanagn tidak ada data yang sama berarti data
tersebut tidak ada.
Prinsip sequential search, data yang dibandingkan satu
persatu secara berurutan dengan data yang dicari.
Binary search
Dalam
binary search data yang ada harus sudah terurut. Apabila data belum terurut
maka pencarian biner tidak dapat dilakukan.
Proses pencarian biner
- Dari posisi awal = 1dan posisi akhir = n
- Kemudian cari posisi data tengah dengan rumus . posisi tengah= (posisi awal + posisi akhir)div 2
- Kemudian data yang dicari di bandingkan dengan data tengah.
- Jika sama maka data ditemukan dan proses selesai.
- Jika lebih kecil maka proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah.
- Jika lebih besar maka proses dilakuakn kembali tetapi posisi alwal dianggap sama dengan posisi tengah.
- Ulangi langkah tersebut hingga data ditemukan atau tidak.
- Pencarian data akan berakhir jika data ditemuakn pada posisi awal lebih beasr dari posisi akhir.
Contoh program Sequential mencari posisi angka.
#include <conio.h>
#include <iostream.h>
main(){
int c,i,posisi;
int A[20]={3,2,4,10,20,1,5,8,7,9,6,5,11,12,14,13,16,15,17,19};
cout<<"Data : ";
for(i=0;i<20;i++){
cout<<A[i]<<" ";
}
cout<<"\nData yang ingin dicari : ";
cin>>c;
i=0;
posisi=0;
while(i<19 && A[i]!=c){
i++;
}
if (A[i]!=c){
cout<<"Maaf data yang dicari tidak ada";
}else if(posisi=i+1)
cout<<"ditemukan pada posisi ke "<<posisi;
getch();
}
Contoh Program Binary
#include<iostream>
int main ()
{
int n, angka[12], kiri, kanan, tengah, temp, key;
bool ketemu = false;
cout<<"Masukan jumlah data : ";
cin>>n;
for(int i=0; i<n; i++)
{
cout<<"Angka ke - ["<<i<<"] : ";
cin>>angka[i];
}
for (int i=0; i<n; i++)
{
for(int j=0; j< n-i-1; j++)
{
if(angka [j] > angka [j+1])
{
temp=angka[j];
angka[j]=angka[j+1];
angka[j+1]=temp;
}
}
}
cout<<"Data yang telah diurutkan adalah : ";
for(int i=0; i<n; i++)
{
cout<<angka[i]<<" ";
}
cout<<"\n Masukan angka yang dicari : ";
cin>>key;
kiri=0;
kanan=n-1;
while(kiri<=kanan)
{
tengah=(kiri + kanan)/2;
if(key == angka[tengah])
{
ketemu=true;
break;
}
else if (key < angka [tengah])
{
kanan = tengah -1;
}
else
{
kiri = tengah +1;
}
}
if (ketemu == true)
cout<<"Angka ditemukan!";
else
cout<<"Angka tidak ditemukan";
return 0;
}
Semoga artikel ini bisa bermanfaat ....
Sumber Refrensi :
Sumber Refrensi :
10 Langkah Belajar logika dan algoritma, menggunakan bahasa c dan c++
Tidak ada komentar:
Posting Komentar