MEDIA KULIAH SISTEM BERKAS BASISDATA
Kamis, 07 Maret 2019
A. Algoritma Basisdata
Gambar 1.1 Algoritma Mempelajari Sistem Berkas
B. Metrik Basisdata
- Kesederhanaan (simplicity). Jika ada beberapa alternatif, maka pilih altematif yang paling sederhana.
- Keandalan (reliability). Memilih struktur berkas untuk sebuah sistem harus pula memikirkan apakah sistem tersebut akan tetap berfungsi dalam segala kondisi.
- Dapat diprogram (programmability). Dapatkah dibangun program untuk mengolah algoritma dalam waktu yang disediakan? Kalau tidak , pilih alternatif lain.
- Dapat dipelihara (maintainability). Sekali teknik yang dipilih tersebut diprogram, dapatkah
- program-tersebut dimodifikasi atau diperbarui dengan mudah? Jika terlalu rumit sehingga
- sulit untuk dimodifikasi, maka sebaiknya pilih prosedur yang lain.
- Kebutuhan penyimpanan (storage requirement). Dalam menentukan media penyimpan data sebaiknya dipertimbangkan tentang keterbatasan media tersebut.
- Kompleksitas komputasi atau kompleksitas waktu (complexity). Waktu proses suatu algoritma merupakan syaarat yang sangat utama. Kompleksitas komputasional suatu algoritma memberikan estimasi tentang waktu yang diperlukan saat algoritma diaplikasikan terhadap sejumlah besar data.
C. Media Penyimpanan Berkas-Basisdata
- Penyimpan primer (Primary memory storage)
- Penyimpan pendukung (auxiliary memory/storage) atau penyimpan sekunder (secondary storage).
- Tidak semua informasi dapat ditampung dalam penyimpan primer berkecepatan tinggi walaupun pada saat ini penyimpan primer memiliki kapasitas yang semakin bertambah dan dengan hargayang semakin murah.
- Keterbatasan secara pisik dan ekonomis. Secara fisik besarnya kapasitas penyimpan primer ditentukan oleh skema pengalamatan oleh sistem komputer dan secara ekonomis walapun harganya semakin murah namun masih belum menyamai penyimpan sekunder. Penyimpan primer mempunyai karakteristik akses yang sangat cepat, tetapi harga per bit jauh lebih mahal dibanding penyirnpan sekunder dan mempunyai kapasitas yang lebih kecil. Penyimpan sekunder merupakan kebalikannya yaitu memunyai kecepatan akses yang lebih lambat, kapasitasnya lebih besar tetapi lebih murah.
A. Pengertian Struktur Organisasi Berkas-Basisdata Sekuensial
Sebagaimana diuraikan pada Bab II, berkas dapat diorganisasi secara sekuensial, langsung, maupun sekuensial berindeks, dan masing-masing memiliki (peluang) metoda pengaksesan yang berbeda. Bab ini akan membahas tentang berkas sekuensial, sebuah tipe struktur organisasi berkas basisdata yang paling sederhana, dan yang sudah sangat akrab di kalangan para mahasiswa.
Dalam berkas sekuensial, rekaman ke 1+1 akan diletakkan tepat sesudah rekaman ke-i, sebagai contoh adalah:
ke-n
RRRRRRRR
Subskrip
Gambar 3.1 Susunan berkas sekuensial
Pada Gambar 3.1 tersebut rekaman R, diikuti oleh rekaman R, kemudian R, dan seterusnya sampai dengan rekaman terakhir yaitu R., Pada keadaan sehari-hari, berkas ini terjadi sesuai dengan kronologi kedatangan rekaman. Misalkan saja sebuah kantor kecamatan melakukan pendataan terhadap semua keluarga yang memiliki anak usia balita, maka susunan berkas keluarga tersebut akan memiliki urutan yang sama dengan urutan keluarga yang mencatatkan diri. Dalam hal ini tidak ada manipulasi urutan berdasarkan medan data tertentu.
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
C. Algoritma Pencarian Biner (Binary Search)
Berikut adalah contoh kode program Pascal untuk algoritma pencarian biner:
C++
#include <iostream>


