BINARY
A.
Fungsi Binary:
Pencarian Biner (Pencarian Biner) dilakukan untuk:
1.
Memperkecil jumlah operasi pembandingan yang harus dilakukan
antara data yang dicaridengan data yang ada di dalam tabel, khusus untuk jumlah
data yang sangat besarukurannya.
2.
Prinsip dasar adalah melakukan proses pembagian ruang
yangditemukanberulang kalisampai data ditemukan atau sampai ruang pencarian
tidak dapat dibagi lagi (artinyaadapembaruandata tidak ditemukan).
3.
Syarat utama untuk pencarian biner adalah data dalam tabel harus
sudah terurut,misalkan terurut menaik.Prinsip dari pencarian biner dapat dibaca
sebagai berikut
4.
Data diambil dari posisi 1 hingga posisi akhir N
5.
Kemudian cari posisi data tengah dengan rumus (posisi awal +
posisi akhir) / 2
6.
Kemudian data yang dicari dibandingkan dengan data yang ada di
tengah, apakah sama atau lebihkecil, atau lebih besar?
7.
Jika lebih besar, maka proses pencarian dicari dengan posisi awal
adalah posisi tengah + 1
Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir
adalah posisi tengah 1.Jika data sama, berarti ketemu.
Algoritma
dari Pencarian biner:
Algoritma pencarian biner
dapat dituliskan sebagai berikut:1 L
←
02 R
←
N - 13 ketemu
←
false4 Selama (L <= R) dan
(tidak ketemu) kerjakan baris 5 hingga dengan 85 m
←
(L + R) / 2836 Jika (Data [m] =
x) maka ketemu
←
true7 Jika (x <Data [m])
maka R
←
m
-
18 Jika (x> Data [m])
maka L
←
m + 19 Jika (ketemu) maka m adalah indeks dari data yang dicari,
jika tidak data tidakditemukan
Contoh Program Binary
#include
<iostream>
#include
<conio.h>
using namespace
std;
int
BinarySearch(int Data[], int x, int n) {
int L = 0, R = n-1, m, ketemu = 0;
while((L <= R) && (!ketemu)){
m = (L + R) / 2;
if(Data[m] == x)
ketemu = !ketemu;
else if (x < Data[m])
R = m - 1;
else
L = m + 1;
}
if(ketemu)
return m+1;
else
return -1;
}
int main(){
int Data[]={1,2,3,4,5,6,7,8,9,10};
int n = sizeof(Data);///
cout<<"nilai n adalah :
"<<n<<endl;
///input
int cari; cout<<"Masukkan
data yang dicari : ";cin>>cari;
/// proses pencarian dengan
algoloritma binary
int ketemu = BinarySearch(Data,
cari, n);
if(ketemu>0)
cout<<"Data ditemukan di
posisi : "<<ketemu;
else
cout<<"Data tidak
ditemukan";
getch();
}
Hasil Running Program
Gambar Dalam Flowchart