SISTEM BERKAS – Materi 4
Record-record direkam secara berurutan pada
waktu berkas ini dibuat dan harus diakses secara
berurutan pada waktu berkas ini digunakan sebagai
input.
Berkas sekuensial sangat cocok untuk akses yang
sekuensial, misalnya dalam aplikasi dimana
sebagian besar atau semua rekaman akan diproses.
Pencarian secara sekuensial adalah memproses
Berkas sekuensial juga dapat diproses
secara tunggal dan langsung, jika diketahui
subskripnya. Tetapi bagaimana kalau
Yang harus dilakukan agar kinerja
pembacaan rekaman lebih baik, maka
rekaman-rekaman dalam berkas mahasiswa
tersebut diurutkan untuk mendapatkan
pengurutan yang linier berdasarkan nilai
kunci rekaman. Baik secara alphabetis
maupun numeris. Hasil pengurutannya
adalah sbb :
PENCARIAN BINER (BINARY
SEARCH)
Pencarian Biner dalah membandingkan kunci yang
dicari dengan rekaman pada posisi tengah dari berkas.
Bila sama (Kasus 1) rekaman yang diinginkan sudah
ditemukan. Jika tidak sama (kasus 2), berarti separuh
rekaman-rekaman dalam berkas akan dieliminasi dari
perbandingan yang selanjutnya. Bila yang terjadi pada
kasus 2, maka proses perbandingan terhadap rekaman
pada posisi di tengah dilanjutkan menggunakan
rekaman-rekaman yang tersisa.
Jumlah probe (yang diperlukan untuk membaca
Jika kunci cari < kunci tengah maka
bagian berkas Mulai dari kunci tengah sampai akhir
berkas dieliminasi
Sebaliknya jika kunci cari > kunci tengah
maka
Bagian berkas mulai dari depan sampai dengan
kunci tengah dieliminasi
Dengan mengulang proses perbandingan
terhadap rekaman tengah, maka lokasi
rekaman yang diinginkan akan ditemukan
atau diketahui bahwa rekaman yang
Kolom “Nomor mahasiswa” menunjukkan nilai yang urut dari kecil ke besar,
atau
Pencarian Biner
untuk sebuah berkas dengan rekaman yang telah diurutkan jumlah probe yang diperlukan untuk membaca sebuah rekaman dapat diusahakan untuk diperkecil dengan menggunakan teknik pencarian biner.
Jika kuncicari < Kuncitengah, maka bagian berkas mulai dari Kuncitengah sampai
akhir berkas dieliminasi. Sebaliknya jika kuncicari > Kuncitengah maka bagian
berkas mulai dari depan sampai dengan Kuncitengah dieleminasi.
Pada contoh pertama berikut ini akan dicari rekaman dengan kunci 49.
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.
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
[21
25 28 33
38
39 48 49 69]
2125 28 33 38 [39
48
49 69]
2125 28 33 38 39 48 [
49
69]
Iterasi 1 : TENGAH1 = [(1 + 9) / 2 ] = 5 Kcari : K tengah1 49 > 38
AWAL = TENGAH1 + 1 = 6
Iterasi 2 : TENGAH2 = [(6 + 9) / 2 ] = 7 Kcari : K tengah2 49 > 48
AWAL = TENGAH21 + 1 = 8
Iterasi 3 : TENGAH3 = [ (8 + 9 ) / 2 ] = 8 Kcari : K tengah2 49 = 49
Pada contoh kedua berikut ini 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
Iterasi 1 : TENGAH1 = [(1 + 9) / 2 ] = 5 Kcari : K tengah1 27> 38
AKHIR = TENGAH1 - 1 = 4
Iterasi 2 : TENGAH2 = [(1 + 4) / 2 ] = 2 Kcari : K tengah2 27 > 25
AWAL = TENGAH2 + 1 = 3
Iterasi 3 : TENGAH3 = [ (3 + 4 ) / 2 ] = 3 Kcari : K tengah2 27< 28
AKHIR = TENGAH3 -1 = 2
PENCARIAN INTERPOLASI
Pencarian interpolasi (asumsinya kunci
rekaman numeris) menentukan posisi yang
akan dibandingkan berikutnya berdasar
posisi yang di estimasi dari sisa rekaman
yang belum diperiksa.
Pencarian interpolasi tidak mencari posisi
Untuk rekaman dengan susunan sebagai berikut, berapa probe untuk
menemukan rekaman dengan kunci 49 bila digunakan pencarian interpolasi.
1 2 3 4 5 6 7 8 9
[21 2528333839 484969] 212528333839[48 49 69]
Perhitungan :
Iterasi 1 : BERIKUT1 := = 5,6666 , dibulatkan 6
Kcari : Kberikut = 49 > 39
AWAL = BERIKUT1 + 1 = 6 + 1 = 7
Iterasi 2 : BERIKUT2 =
Kcari : Kberikut2 = 49 = 49 ketemu, probe 2
(9-1) 21 -(69 21) -(49 1 8 0952 , 7 7 - 9 ( 48 -(69 48) -(49