Vous êtes sur la page 1sur 3

Algoritma Pencarian Biner (Binary Search)

Pencarian Biner (Binary Search) Pada Array Yang Sudah Terurut


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.
Algoritmanya :

Contoh Nilai-Nilai data yang sudah terurut :

Kasus 1 : cari = 12
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan
Kasus 2 : cari = 15
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 8 ) div 2=6
A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah 1 = 6 1 = 5
Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 5 ) div 2=5
A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan
Kasus 3 : cari = 10
Loop pertama : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah 1 = 4 1 = 3
Loop kedua : Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 3 ) div 2=2
A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3
Loop ketiga : Tengah=(BatasAtas + BatasBawah) div 2=( 3 + 3 ) div 2=3
A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan
Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali.
Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.

Algoritma Pencarian Data Dengan Metode Interpolasi

Interpolation search (Pencarian Interpolasi) adalah metode pencarian dengan cara mencari
letak/posisi data yang akan dicari. Data harus diurutkan secara ascending lebih dahulu sebelum
melakukan pencarian data.

Rumus mencari posisi :

Jika data[posisi] > data yg dicari, Akhir = posisi 1


Jika data[posisi] < data yg dicari, Awal = posisi + 1
Jika Awal
Pencarian interpolasi tidak mencari posisi TENGAH seperti halnya algoritma pencarian biner,
melainkan mencari posisi berikutnya dimana data yang dicari berada.

Contoh :

Diketahui data :
1 2 3 4 5 6 7 8 9 (Posisi)
[ 21, 25, 28, 33, 38, 39, 48, 49, 69]

Carilah data 27 dan 49?

Cari Data 27
Awal = 1, Akhir =9
Cari data selama awal < Akhir
Data[2]=27? Tidak
Data[2]<27 3="" akhir="9<br" awal="Posisi" ya="">

Data[3]=27? Tidak
Data[3]<27 -1="2," akhir="posisi" awal="3<br" tidak.="">Hasil : Data tidak ditemukan karena
awal>akhir

Cari data 49
Awal =1, Akhir =9
Cari data selama awal < Akhir

Data[6]=49? Tidak
Data[6]<49 akhir="9<br" awal="posisi" ya.="">

Data[8]=49? Ya. Data ditemukan.

Berdasarkan algoritma interpolasi di atas, maka kita dapat membuat program pascal pencarian
data sebagai berikut :

Program pencarian data dengan algoritma Interpolasi pada pembahasan ini merupakan
pengembangan dari Contoh program algoritma interpolasi tanpa fungsi dan prosedur. Jadi
program berikut adalah pencarian data dengan algoritma interpolasi menggunakan fungsi dan
prosedur.

Vous aimerez peut-être aussi