Select Language



Followers

IT Programmer. Powered by Blogger.

20 August 2010

Contoh Binary Search dalam C++

"Om Swastiastu"

Binary search, atau metode pencarian secara biner hanya bisa dilakukan jika data sudah terurut. Keunggulan dari proses binary search ini adalah sistem pencariannya yang relatif cepat dan efisien walaupun ada banyak data sekalipun. Karena data dicari dari depan, tengah dan belakang. Tetapi sintaks dan algoritmanya sedikit lebih rumit, karena kita harus mengurutkan data terlebih dahulu. Pengurutan data disini bisa kalian lakukan dengan metode ascending ataupun descending.

Untuk dasar dari binary search ini, saya akan memberikan array dengan data yang telah diurut sebelumnya. Agar lebih mudah memahami dasar dari binary search ini. Adapun algoritma dari binary search ini adalah sebagai berikut.

  • Membaca data yang ada di array
  • Jika data belum terurut, maka lakukan pengurutan data
  • Menentukan data yang akan dicari di dalam array
  • Menentukan nilai elemen tengah array
  • Jika nilai elemen tengah array sama dengan data yang dicari, maka pencarian akan dihentikan
  • Jika elemen tengah tidak sama dengan data yang dicari, maka:
    • Jika nilai tengah lebih besar dari nilai yang dicari, maka pencarian hanya dilakukan pada setengah array pertama
    • Jika nilai tengah lebih kecil dari nilai yang dicari, maka pencarian hanya dilakukan pada setengah array sisa.
Contoh program binary search dalam C++ dapat kalian lihat dibawah ini:

#include <iostream.h>
#include <conio.h>

int binary_search(int array[],int size, int elemen);

void main()
{
  const int size = 10;
  int array[size]={0,6,9,12,20,23,29,32,47,79};
  cout<<"Isi dari array: "<<endl;
  for(int i=0;i<size;i++)
   cout<<" "<<array[i];

  int elemen;              
  int tanda;
  cout<<"\n\n";
  cout<<"Masukkan data yang dicari: ";
  cin>>elemen;

  cout<<"\n\n";
  tanda= binary_search(array,size,elemen);
  if (tanda!=-1)
  cout<<"Data "<<elemen<<" ditemukan pada posisi : array["<<
  tanda<<"],"<<" atau deret ke-"<<(tanda+1);

  else
  cout<<"\n data tersebut tidak ditemukan ";
  getch();
}

int binary_search(int array[],int size,int elemen)
{
  int start=0;
  int end=size - 1;
  int middle;
  int posisi=-1;
  middle=(start + end ) / 2;
  do
  {
   if(elemen<array[middle])
   end=middle-1;
   else if (elemen>array[middle])
      start=middle+1;
   middle=(start+end)/2;

  }
  while(start<=end && array[middle]!=elemen);

  if(array[middle]==elemen)
   posisi=middle;
  return posisi;
}


Semoga referensi program diatas berguna. ^_^

"Om Santhi, Santhi, Santhi, Om"



Comments:

Ada 3 comments pada “Contoh Binary Search dalam C++”
Anonymous said...
pada hari 

Terima kasih

INFO ASIK said...
pada hari 

mantap gan buat tugas struktur data nih...

Unknown said...
pada hari 

Nice share sob, Sangat membantu...
ijin follow blog nya #1102, ditunggu follback nya gan..^_^

Social Media


Facebook Page

Programming Tutorial


Info


Tips
Downloads
Friends
 
This Blog is proudly powered by Blogger.com | Template by Bali Web Development | Privacy Policy | Rise Up!!