Program binary search bahasa c++ adalah sebuah algoritma pencarian dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu dalam sebuah larik (array) linear. Proses pencarian binary search c++ hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu.
Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Pencarian Biner (Binary Search) dilakukan untuk :
a) Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
b) Beban komputasi pun lebih kecil karena pencarian dilakukan dari depan, belakang dan tengah.
c) Prinsip dasarnya ialah melakukan proses pembagian ruang searching secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (itu berati ada kemungkinan data tidak ditemukan).
d) Dan Syarat utamanya untuk pencarian biner dalam program bahasa C++ sederhana ini adalah data di dalam tabel harus sudah terurut.
Algoritma Binary Search C++
1. Pertama-tama diambil posisi awal 0 dan posisi akhir = N – 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah.
2. Kemudian kita cari posisi data tengah dengan rumus posisi tengah yaitu = (posisi awal + posisi akhir ) div 2.
3. Lalu data yang di cari akan dibandingkan dengan data tengah
a. Jika sama, data ditemukan, Proses selesai.
b. Jika lebih kecil, maka proses akan dilakukan kembali tetapi, posisi akhir dianggap sama dengan posisi tengah -1.
c. Jika lebih besar pun proses akan dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1.
4. Mengulang dari langkah kedua sampai data ditemukan, atau tidak ditemukan.
5. Searching biner ini akan berakhir jika data ditemukan posisi awal lebih besar dari pada posisi akhir. Jika posisi awal sudah lebih besar dari posisis akhir berarti data tidak ditemukan.
Pencarian Dengan Metode Binary Search
#include<iostream>
using namespace std;
int main () {
int n, angka[12], kiri, kanan, tengah, temp, key;
bool ketemu = false;
cout<<“HARDIFAL”<<endl;
cout<<“=========================================”<<endl;
cout<<“=========PROGRAM BINARY SEARCH C++===========”<<endl;
cout<<“=========================================”<<endl<<endl;
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;
}
Output – Contoh Program Sederhana Binary Search C++