Kamis, 07 Maret 2019

B. Metode Pengaksesan Berkas-Basisdata Sekuensial

Sesuai dengan namanya, berkas sekuensial sangat cocok untuk akses yang sekuensial. Misal dalam sebuah aplikasi diperlukan proses terhadap sebagian besar atau semua rekaman yang ada (mencetak daftar semua mahasiswa dalam sebuah Jurusan), maka akses sekuensial cukup memadai. Melakukan akses secara sekuensial berarti proses akan berpindah dari satu rekaman ke rekaman yang berikutnya secara langsung

Berkas sekuensial juga dapat diproses secara individual dan langsung jika diketahui subskrip-nya. Akan tetapi, bagaimana kalau subskrip yang dimiliki bukan identitas utama rekaman, misal "Nama Mahasiswa dalam contoh Gambar 2.3? Pembacaan harus dilakukan secara sekuensial atau linear, rekaman demi rekaman, sampai "Nama Mahasiswa" yang sesuai ditemukan. Untuk membaca rekaman dengan "Nama Mahasiswa" = "Dewi Sartika", diperlukan probe sejumlah 5 kali (beruntung direkam pada rekaman ke 5). Permasalahan akan muncul bila rekaman berada pada urutan belakang, karena waktu pembacaan akan lama. Demikian pula kalau kebetulan nama yang dicari memang tidak berada dalam rekaman, aplikasi harus membaca semua rekaman dan berakhir dengan pesan bahwa rekaman tidak diketemukan.

Pencarian secara sekuensial memproses rekaman-rekaman dalam berkas sesuai urutan keberadaan rekaman-rekaman tersebut sampai ditemukan rekaman yang diinginkan atau semua rekaman terbaca.

Apakah yang harus dilakukan agar kinerja pembacaan rekaman lebih baik? Salah satu alternatif adalah melakukan satu pekerjaan ekstra terhadap berkas sebelum proses pembacaan dimulai. Sebagai contoh rekaman-rekaman dalam berkas mahasiswa diurutkan untuk mendapatkan pengurutan yang linear berdasar pada nilai kunci rekaman (bisa secara alfabetis ataupun numeris). Hasil pengurutan (menurut nama mahasiswa) adalah sebagai berikut:

Kolom "Nama Mahasiswa" menunjukkan nilai yang urut dari kecil ke besar, atau


Kuncil kunci2 <kunci3 <... kunci i < Kunci n

Pada Gambar 3.2, Akmad Nurhadi lebih kecil dari Budiani, yang lebih kecil dari Dewi Sartika, yang lebih kecil dari Ida Arini dan seterusnya. Dengan metoda pengurutan, maka pencarian dan pembacaan rekaman bisa berlangsung normal seperti bila rekaman-rekaman dalam berkas tidak diurutkan. Namun dalam hal mencari rekaman yang tidak ada dalam berkas. metoda ini lebih baik karena tidak harus membaca semua rekaman untuk mengetahuinya. Bila hasil pembacaan secara sekuensial menghasilkan nama mahasiswa yang nilainya lebih besar dari yang diinginkan maka proses langsung dihentikan dan pesan kegagalan menemukan rekaman yang diinginkan disampaikan.

Dengan demikian, hanya n/2 rekaman yang perlu diperiksa rekaman-demi-rekaman untuk menemukan rekaman yang diinginkan, karena kalau pembacaan diteruskan melewati posisi di mana rekaman seharusnya berlokasi (mengingat berkas sudah diurutkan), proses pencarian dihentikan. Untuk membaca "Dewi Sartika" hanya diperlukan 3 probe (Gambar 3.2), lebih kecil dibanding sebelum berkas diurutkan (Gambar 2.3). Namun teknik tersebut masih kurang memuaskan untuk berkas dengan jumlah rekaman yang sangat besar. Masih diperlukan teknik untuk mengorganisasi rekaman yang lebih baik. Algoritma


Tidak ada komentar:

Posting Komentar