Anda di halaman 1dari 9

MAKALAH BINARY SEARCH

PENDAHULUAN

A. Latar Belakang
Seiring dengan berkembangnya Teknologi Informasi, yang membutuhkan kecepatan dan
ketepatan dalam berbagai aspek kehidupan. Kita dituntut untuk bergerak cepat dalam segala hal,
termasuk juga dalam bidang komunikasi informasi. Salah satunya dalam bidang statistic yang
meliputi pencarian data. Sehingga banyak programer yang membuat program yang
mempermudah kerja dalam bidang statistika dan informasi, yakni dalam hal pencarian data. Dari
program pencarian data terdapat algoritma-algoritma yang digunakan untuk mencari sebuah data,
salah satunya adalah binary search.
Binary search adalah algoritma pencarian untuk data yang terurut. Pencarian dilakukan
dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian
membandingkan data yang dicari dengan data yang ada ditengah. Bila data yang ditengah sama
dengan data yang dicari, berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari
data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada disebelah
kiri dari data tengah dan data disebelah kanan data tengah dapat diabai. Upper bound dari bagian
data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah
lebih kecil dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan
besar berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari data
tengah adalah indeks dari data tengah itu sendiri ditambah 1. Demikian seterusnya.

B. Rumusan Masalah
-Bagaimana cara mencari data dengan cepat dan ukurat?
C. Batasan Masalah
Pada materi makalah ini akan dibahas mengenai salah satu metode pencarian, yaitu Binary
Search. Pada sesi ini hanya akan membahas mengenai:
 Pengertian/konsep binary search
 Algoritma binary search
 Contoh study kasus
 Contoh program binary search

D. Tujuan
- Mempermudah pekerjaan manusia dalam bidang Informasi.
- Mempermudah pekerjaan manusia dalam bidang Statistik.
- Mempermudah pekerjaan manusia dalam bidang komputerisasi lainya terutama dalam bidang
pencarian data.

E. Manfaat
- Pekerjaan manusia dalam bidang teknologi jadi lebih mudah, cepat, dan efisien waktu.
BAB II
PEMBAHASAN

1. Konsep
Pengertian
Sebuah algoritma pencarian biner (atau pemilahan biner) adalah sebuah teknik untuk
menemukan nilai tertentu dalam sebuah larik (array) linear, dengan menghilangkan setengah data
pada setiap langkah, dipakai secara luas tetapi tidak secara ekslusif dalam ilmu komputer.

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. Pada intinya, algoritma ini menggunakan prinsip divide
and conquer, dimana sebuah masalah atau tujuan diselesaikan dengan cara mempartisi masalah
menjadi bagian yang lebih kecil. Algoritma ini membagi sebuah tabel menjadi dua dan
memproses satu bagian dari tabel itu saja.Algoritma ini bekerja dengan cara memilih record
dengan indeks tengah dari tabel dan membandingkannya dengan record yang hendak dicari. Jika
record tersebut lebih rendah atau lebih tinggi, maka tabel tersebut dibagi dua dan bagian tabel
yang bersesuaian akan diproses kembali secara rekursif.

Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu
dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah
permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list)
nilai.

Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh karena
nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di
tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara yang
sama.

Metoda Pencarian Biner ( Binary Search) hanya bisa diterapkan jika data array
sudah terurut. Pengurutan Array bisa menggunakan jenis sorting descending atau asscending.
Keunggulan
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih
kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang
dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah table, lebih kecil
daripada waktu yang dibutuhkan algoritma sequential search.
Kelemahan

Data harus disorting dahulu dan algoritma lebih rumit, tidak baik untuk data berantai. algoritma
ini hanya bisa digunakan pada tabel yang elemennya sudah terurut baik menaik maupun
menurun.

Fungsi
Pencarian Biner (Binary Search) dilakukan untuk :

 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.
 Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-
ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti
ada kemungkinan data tidak ditemukan).
 Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut,
misalkan terurut menaik.

 Prinsip dari pencarian biner dapat dijelaskan sebagai berikut :


 Data diambil dari posisi 1 sampai posisi akhir N
 Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2
 Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih
kecil, atau lebih besar?
 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.
Untuk lebih jelasnya, perhatikan contoh berikut. Misalkan kita ingin mencari 17 pada
sekumpulan data berikut:

1. Mula–mula dicari data tengah, dengan rumus (1+ 9) / 2 = 5.


2. Berarti data tengah adalah data ke-5, yaitu 15.
3. Data yang dicari, yaitu 17, dibandingkan dengan data tengah ini.
4. Karena 17 > 15, berarti proses dilanjutkan tetapi kali ini posisi awal dianggap sama dengan
posisi tengah + 1 atau 6.

1. Data tengah yang baru didapat dengan rumus (6 + 9) / 2 = 7. Berarti data tengah yang baru
adalah data ke-7, yaitu 23.
2. Data yang dicari, yaitu 17 dibandingkan dengan data tengah ini.
3. Karena 17 < 23, berarti proses dilanjutkan tetapi kali ini posisi akhir dianggap sama dengan
posisi tengah – 1 atau 6.

1. Data tengah yang baru didapat dengan rumus (6 + 6) / 2 = 6. Berarti data tengah yang baru
adalah data ke-6, yaitu 17.
2. Data yang dicari dibandingkan dengan data tengah ini dan ternyata sama. Jadi data ditemukan
pada indeks ke-6.
3. Bagaimana jika data yang dicari tidak ada, misalnya 16?
4. Pencarian biner ini akan berakhir jika data ditemukan atau posisi awal lebih besar dari posisi
akhir.
5. Jika posisi awal sudah lebih besar daripada posisi akhir berarti data tidak ditemukan.

Untuk lebih jelasnya perhatikan proses pencarian 16 pada data di atas. Prosesnya hampir sama
dengan pencarian 17. Tetapi setelah posisi awal = posisi akhir = 6, proses masih dilanjutkan lagi
dengan posisi awal = 6 dan posisi akhir = 5
Disini dapat dilihat bahwa posisi awal lebih besar daripada posisi akhir, yang artinya data tidak
ditemukan.

2. Algoritma dari Binary search


Algoritma pencarian biner dapat dituliskan sebagai berikut :
1L←0
2R←N-1
3 ketemu ← false
4 Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8
5 m ← (L + R) / 2
83
6 Jika (Data[m] = x) maka ketemu ← true
7 Jika (x < Data[m]) maka R ← m – 1
8 Jika (x > Data[m]) maka L ← m + 1
9 Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak
ditemukan

3. Contoh Studi Kasus


Sebuah contoh aksi pencarian biner adalah sebuah permainan tebak-tebakan dimana seorang
pemain harus menebak sebuah bilangan bulat positif yang dipilih oleh pemain lain di antara 1
dan N, dengan memanfaatkan jawaban pertanyaan berupa ya dan tidak. Misalnya N adalah 16
dan angka yang dipilih adalah 11, permainan dapat berjalan sebagai berikut:
 Apakah angka lebih besar dari 8? (ya)
 Apakah angka lebih besar dari 12? (tidak)
 Apakah angka lebih besar dari 10? (ya)
 Apakah angka lebih besar dari 11? (tidak)
Sehingga, angka tersebut pasti 11. Pada setiap langkah, kita memilih sebuah angka yang tepat
berada di tengah-tengah jangkauan nilai-nilai yang mungkin. Sebagai contoh, saat kita
mengetahui angka tersebut lebih besar dari 8, tetapi lebih kecil atau sama dengan 12, kita
mengetahui untuk memilih angka di tengah-tengah jangkauan [9, 12] (pada kasus ini 10 adalah
yang optimal).
4. Program
#include <iostream>
#include <conio.h>

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

int main()
{
int size=10;
int data[10]={2, 3, 5, 6, 12, 44, 56, 65, 73 ,81} ;
cout<<"Data Array"<<endl;
int i;
for(i=0;i<size;i++)
cout<<data[i]<<" ";
cout<<endl<<endl<<"masukkan data yang ingin anda cari: ";
int cari;
cin>>cari;
// pencarian
int hasil;
hasil = binary_s(data, size, cari);
if (hasil==0)
cout<<"Nilai tidak ditemukan";
else
cout<<"Nilai ditemukan";
getch();
}

int binary_s(int array[], int size, int elemen)


{
int awal = 0;
int akhir = size-1;
int nilaiTengah = (awal+akhir)/2;
while (nilaiTengah<=size && awal<=akhir)
{
nilaiTengah = (awal+akhir)/2;
if (array[nilaiTengah]==elemen)
return 1;
else if (elemen<array[nilaiTengah])
akhir = nilaiTengah-1;
else
awal = nilaiTengah+1;
}
return 0;
}

BAB III
PENUTUP

Kesimpulan
Kesimpulan yang dapat ditarik dari makalah binary search ini yaitu Algoritma pencarian
biner digunakan untuk mencari data pada sekumpulan data atau rekaman yang sudah dalam
keadaan terurut.
Selain itu kita dapat mempermudah pekerjaan manusia dalam bidang Informasi,
mempermudah dalam bidang Statistik, mempermudah pekerjaan manusia dalam bidang
komputerisasi lainya terutama dalam bidang pencarian data.
Dengan binary search ini kita dapat mempermudah pekerjaan manusia di dalam hal
mencari sebuah data. Sehingga dapat menciptakan suatu progam yang bermanfaat dan memiliki
nilai ekonomi.
Saran
- Teliti dalam menghitung binary code
- Teliti dalam menghitung nilai tengah dari binary code
- Dan yang terpenting adalah teliti dalam memasukan bahasa pemograman pada saat
mengcompile(ngoding).

DAFTAR PUSTAKA
http://diankuusuma.blogspot.com/2012/01/v-behaviorurldefaultvmlo.html
http://ekawirawanptn.blogspot.com/2010/05/algoritma-binary-search.html
http://kabehatake.blogspot.com/2010/05/algoritma-binary-search.html
http://aloen-pop.blogspot.com/2009/06/binary-searching.html
http://lecturer.eepis-its.edu/...%20Algoritma/.../Data%20Structure-bab8.pdf
http://mita.staff.gunadarma.ac.id/Downloads/files/.../Divide%26Conquer.doc
http://en.wikipedia.org/wiki/Binary_search

Anda mungkin juga menyukai