SEARCHING

Searching adalah sebuah metode yang digunakan untuk meakukan pencarian data pada sebuah array dengan suatu kata kunci. searching memiliki 2 metode yaitu :

  • Sequential search
  • Binary search
saat ini saya akan membahas masing-masing metode tersebut.

1. Sequential Search
    Sequebtial search adalah sebuah metode pencarian yang melakukan pencarian satu-persatu data. Tetapi dalam metode ini memiiki kekurangan yaitu jika data yang di cari berada pada indeks 1 maka indeks selanjutnya tidak akan di cek maka jika ada data yang kita cari ada dua data maka hanya 1 data saja yang muncul.

contoh program :

#include <conio.h>
#include <iostream.h>
main(){
cout<<"========SEQUENTIAL SEARCH=========" ;
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<<"\n\nData : ";
for(i=0;i<20;i++){
 cout<<A[i]<<" ";
}
cout<<endl;
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<<"\nditemukan pada posisi ke "<<posisi;
getch();
}




2. Binary Search
    Binary Search adalah dalammetode ini binary terlebih dahulu harus di urutkan karna binary sistema kerja mencari nya dengan mengurutkan terlebih dahulu. sistem kerja binary akan membagi data dan di urutkan sistem dari binary jika ada data double saat mencari data ke dua nya akan muncul beda dengan sequential.

contoh program :
#include <iostream.h>
#include <conio.h>

main ()
{
     int jd, cari,no, kiri,kanan,tengah,data[50];

    cout<<" Input Jumlah Data  : ";
    cin>>jd;

    cout<<endl;

     for (no=0;no<jd;no++)
     {
          cout<<" Input Data Ke-"<<(no+1)<<"    : ";
         cin>>data[no];
     }

    cout<<endl;
     cout<<" Input Nilai Dicari : ";
     cin>>cari;

     kiri=0;
     kanan=jd-1;
     tengah=(kanan-kiri)/2;

     while ((data[tengah]!=cari) && (kiri>=0)&& (kanan<jd) && (kanan>=kiri))
     {
          if (cari>data[tengah])
         {
              kiri=tengah+1;
         }
         else if (cari<data[tengah])
         {
              kanan=tengah-1;
         }
         tengah=kiri+(kanan-kiri)/2;
     }

    cout<<endl;
    if (data[tengah]==cari)
     {
          cout<<" Keterangan         : Data Ditemukan";
     }
     else
     {
          cout<<" Keterangan         : Data Tidak Ditemukan";
     }
getch();
}

Tidak ada komentar:

Posting Komentar