Pencarian Biner




- Membandingkan kunci yang dicari dengan rekaman pada posisi tengah dari berkas.
- Bila sama (kasus 1) berarti rekaman yang diinginkan sudah ditemukan, atau kalau tidak sama (kasus2) berarti separuh dari rekaman-rekaman dalam berkas akan dieliminasi dari perbandingan yang selanjutnya. 
- Bila yang terjadi adalah kasus 2 maka proses pembandingan terhadap rekaman pada posisi tengah dilanjutkan menggunakan rekaman-rekaman yang tersisa.


Proc pencarian_biner
/* n buah rekaman diurutkan menaik menurut kunci rekaman */

AWAL :=1
Akhir := n
  While AWAL ≤ AKHIR do
  tengah := [ (awal+akhir)/2]
  if kunci (cari) = kunci (tengah)
  then pencarian berakhir.
  else if kunci(cari) > kunci (tengah)
  then AWAL := TENGAH + 1
  else AKHIR := TENGAH – 1
 end
rekaman tidak ditemukan
end pencarian_biner

 
Flowchart pencarian biner

Tengah = [ (awal + akhir)/2 ]


- Jika kunci cari < kunci tengah, maka bagian berkas mulai dari kunci tengah sampai akhir berkas dieliminasi. 
- Jika kunci cari > kunci tengah , maka bagian berkas mulai dari depan sampai dengan kunci tengah dieliminasi.
-  Jika Awal >Akhir maka rekaman tidak ditemukan.
- Pembulatan angka untuk hasil nilai tengah adalah pembulatan ke bawah.
 Contoh Soal :

1.Berikut akan dicari rekaman dengan kunci 49, berapa probe yang dilakukan untuk mendapatkannya?

Keterangan :
      Bilangan yang dicetak tebal menunjukkan rekaman yang sedang dibandingkan dan tanda kurung membatasi bagian berkas yang tersisa yang masih harus diperbandingkan. Tanda [ untuk AWAL dan tanda ] untuk AKHIR.
 

Perhitungan

   1     2    3    4    5     6     7    8    9

[21, 25, 28, 33, 38, 39, 48, 49, 69]


Perhitungan:
- TENGAH1 = [ (1 + 9)/2] = 5
Kcari : Ktengah1 49 > 38
AWAL = TENGAH1 + 1 = 6 

- TENGAH2 = [ (6 + 9)/2 ] = 7 Kcari : Ktengah2 49 > 48
AWAL = TENGAH2 + 1 = 8
 

- TENGAH3 = [ (8 + 9)/2] = 8 Kcari : Ktengah 3 49 = 49
Ketemu, di Probe = 3


Perhitungan

   1      2     3     4    5     6     7     8      9

[21, 25, 28, 33, 38, 39, 48, 49, 69]

[21, 25, 28, 33, 38, [39, 48, 49, 69]

[21, 25, 28, 33, 38, 39, 48, [49, 69]




2. Berikut akan dicari rekaman dengan kunci 27.

    1     2     3    4     5      6     7      8    9

[21, 25, 28, 33, 38, 39, 48, 49, 69]

[21, 25, 28, 33], 38, 39, 48, 49, 69

21, 25, [28, 33], 38, 39, 48, 49, 69

21, 25], [28, 33, 38, 39, 48, 49, 69 

Perhitungan :
 
- TENGAH1 = [ (1 + 9)/2] = 5
Kcari : Ktengah1 27 < 38
AKHIR = TENGAH1 - 1 = 4
 

- TENGAH2 = [ (1 + 4)/2 ] = 2 Kcari : Ktengah2 27 > 25
AWAL = TENGAH2 + 1 = 3
 

- TENGAH3 = [ (3 + 4)/2] = 3 Kcari : Ktengah 3 27< 28
AKHIR = TENGAH3 – 1 = 2

AWAL > AKHIR Rekaman tidak ditemukan.



Sumber : Kuliah Sistem Berkas - TI UNPAR - TAHUN 2012

Tidak ada komentar:

Posting Komentar

Terima Kasih sudah berkunjung kawan.
Mohon Meninggalkan Jejak dengan Berkomentar.
Salam Blogger !!

TUHAN Memberkati Kita Semua...

Popular Post

Teman Blogger

Blogroll

free counters

RSS Feed Berlangganan artikelKu



Masukan Email Mu Disini: