Kamis, 04 Juni 2015

PENGERTIAN SEARCHING


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 : 

10 Langkah Belajar  logika dan algoritma, menggunakan bahasa c dan c++


Tidak ada komentar:

Posting Komentar