-
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 :- Jika Awal >Akhir maka rekaman tidak ditemukan.
- Pembulatan angka untuk hasil nilai tengah adalah pembulatan ke bawah.
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...