Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pencarian Biner. Berkas Biner Berkas Biner Menyimpan data sembarang dan tidak dipisah-pisahkan dalam baris Menyimpan data sembarang dan tidak dipisah-pisahkan.

Presentasi serupa


Presentasi berjudul: "Pencarian Biner. Berkas Biner Berkas Biner Menyimpan data sembarang dan tidak dipisah-pisahkan dalam baris Menyimpan data sembarang dan tidak dipisah-pisahkan."— Transcript presentasi:

1 Pencarian Biner

2 Berkas Biner Berkas Biner Menyimpan data sembarang dan tidak dipisah-pisahkan dalam baris Menyimpan data sembarang dan tidak dipisah-pisahkan dalam baris Bisa berisi data dan kode program dalam bahasa mesin Bisa berisi data dan kode program dalam bahasa mesin Jika dibuka menggunakan text editor semacam Notepad, akan muncul huruf-huruf yang tak terbaca Jika dibuka menggunakan text editor semacam Notepad, akan muncul huruf-huruf yang tak terbaca Macamnya : Macamnya : Object File : berisi byte-byte yang diatur dalam blok- blok yang dapat dipahami system linker Object File : berisi byte-byte yang diatur dalam blok- blok yang dapat dipahami system linker Executable File : berisi kode mesin yang langsung dapat dimuat ke dalam memory dan dijalankan oleh loader Executable File : berisi kode mesin yang langsung dapat dimuat ke dalam memory dan dijalankan oleh loader Data File : berisi data semacam gambar, suara, video, dll Data File : berisi data semacam gambar, suara, video, dll

3 Pencarian Biner Membandingkan kunci yang dicari dengan rekaman pada posisi tengah dari berkas. 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 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 Bila yang terjadi adalah kasus 2 maka proses pembandingan terhadap rekaman pada posisi tengah dilanjutkan menggunakan rekaman-rekaman yang tersisa

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

5 Mulai AWAL = 1 AKHIR = N AWAL : AKHIR Rekaman Tidak ditemukan TENGAH := [(AWAL+AKHIR)/2] Kunci(cari): Kunci (tengah) AWAL = TENGAH +1 ≤ > < AKHIR = TENGAH -1 Rekaman ditemukan = > Flowchart utk pencarian biner Selesai

6 Tengah = [ (awal + akhir)/2 ]

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

8 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.

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

10 Perhitungan: TENGAH1 = [ (1 + 9)/2] = 5 → Kcari : Ktengah1 → 49 > 38 TENGAH1 = [ (1 + 9)/2] = 5 → Kcari : Ktengah1 → 49 > 38 → AWAL = TENGAH1 + 1 = 6 TENGAH2 = [ (6 + 9)/2 ] = 7 → Kcari : Ktengah2 → 49 > 48 TENGAH2 = [ (6 + 9)/2 ] = 7 → Kcari : Ktengah2 → 49 > 48 → AWAL = TENGAH2 + 1 = 8 TENGAH3 = [ (8 + 9)/2] = 8 → Kcari : Ktengah 3 → 49 = 49 TENGAH3 = [ (8 + 9)/2] = 8 → Kcari : Ktengah 3 → 49 = 49 Ketemu, di Probe = 3

11 Perhitungan [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]

12 2. Berikut akan dicari rekaman dengan kunci [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

13 Perhitungan : TENGAH1 = [ (1 + 9)/2] = 5 → Kcari : Ktengah1 → 27 < 38 TENGAH1 = [ (1 + 9)/2] = 5 → Kcari : Ktengah1 → 27 < 38 → AKHIR = TENGAH1 - 1 = 4 TENGAH2 = [ (1 + 4)/2 ] = 2 → Kcari : Ktengah2 → 27 > 25 TENGAH2 = [ (1 + 4)/2 ] = 2 → Kcari : Ktengah2 → 27 > 25 → AWAL = TENGAH2 + 1 = 3 TENGAH3 = [ (3 + 4)/2] = 3 → Kcari : Ktengah 3 → 27< 28 TENGAH3 = [ (3 + 4)/2] = 3 → Kcari : Ktengah 3 → 27< 28 → AKHIR = TENGAH3 – 1 = 2 AWAL > AKHIR → Rekaman tidak ditemukan

14 1. Diketahui rekaman-rekaman dengan kunci 34, 44, 51, 56, 690, 890, 1060, 2876, 3570, dan 3999, berapa Probe diperlukan untuk menemukan reakaman dengan kunci 51, 1060 dan 895 menggunakan pencarian biner?


Download ppt "Pencarian Biner. Berkas Biner Berkas Biner Menyimpan data sembarang dan tidak dipisah-pisahkan dalam baris Menyimpan data sembarang dan tidak dipisah-pisahkan."

Presentasi serupa


Iklan oleh Google