Element pokok perancangan system akses adalah cara record-record diorganisasikan atau distrukturkan.
Beberapa criteria umum untuk pemilihan organisasi file adalah [WIE-87]
• Redudansi yang kecil
• Pengaksesan yang cepat
• Kemudahan dalam memperbaharui
• Pemeliharaan yang sederhana
• Kehandalan yang tinggi
Terdapat
enam organisasi dasar, kebanyakan organisasi file system termasuk salah
satu atau kombinasi kategori-kategori ini. Enam organisasi pengaksesan
file secara dasar adalah sebagai berikut :
1. File pile (pile file)
2. File sekuen (sequential file)
3. File sekuen berindeks (indexed-sequenstial file)
4. File berindek majemuk (multiple-indexed file)
5. File ber-hash (hashed file)
6. File cincin (multiring file)
Keenam organisasi dasar ini dirinci dibukua Gio Wiederhold [WIE-87].
A. PILE FILE
Pembahasan
struktur file diketahui bahwa struktur dasar paling dasar sebuah file
adalah pile dan file sekuensial. File pile atau file tumpukan merupakan
struktur paling sederhana. Struktur ini jarang digunakan secara praktis
tapi merupakan basis evaluasi struktur-struktur lain.
Properti struktur pile
Data tidak dianalisis, dikategorikan, atau harus memenuhi definisi atau ukuran field tertentu
Panjang rekord dapat bervariasi dan elemen-elemen data tidak perlu serupa.
Karakteristik struktur pile
Biasanya data ditumpuk secara kronologis
Tak ada keterkaitan antara ukuran file, record, dan blok
Elemen data dapat beragam, dapat berbeda untuk tiap record ( berisi attribut lain ).
Data harus disimpan secara lengkap beserta nama attributnya, tidak Cuma nilai atributnya.
‘Komponen file pile hanya berisi data’
Struktur dan pengaksesan
Rekord
berelasi dengan suatu objek atau kejadian di dunia nyata. Rekord berisi
elemen-elemen ( field-field) data dan tiap elemen data perlu mempunyai
identifikasi. Identifikasi pada pile adalah berupa nama atribut secara
ekplisit. Misalnya: Tinggi = 163, Dimana, nilai elemen data adalah 163
dan nama deskripsi adalah tinggi. Tiap elemen data di pile berbentuk
tuple dua komponen disebut pasanagn nama atribut – nilai atribut (
atribute name – value atribute ).
Format record
Sejumlah pasangan untuk mendefinisikan objek dan mengasosiasikan data dengan objek. Contoh :
|nama=Nurman,jurusan=IF,alamat=Sadang Serang 64, umur=24, tinggi=163.
ketika informasi akan diambil, pemilihan record dengan menspesifikasikan di argumen pencarian.
Penggunaan file pile
File
pile merupakan struktur dasar dan tak berstruktur. Struktur ini
memberikan fleksibilitas penuh. Struktur ini menggunakan ruang
penyimpanan dengan baik saat data berukuran dan berstruktur beragam.
Struktur ini sangat jelek untuk pencarian record tertentu. Berbagai
penggunaan dari file pile, diantaranya :
File-file sistem
File log ( mencatat kegiatan )
File-file penelitian / medis
Config.sys
B. SEQUENTIAL FILE
Sequential
File adalah file dengan organisasi urut. Data yang disimpan diurutkan
berdasarkan urutan pemasukan data (urut berdasarkan nomor record). Data
yang ditambahkan selalu menempati urutan berikutnya. Sequential file
adalah record yang disimpan dalam media penyimpanan sekunder komputer,
yang dapat diakses secara berurutan mulai dari record pertama sampai
dengan record terakhir. Record per record searah. Record terakhir adalah
rekaman fiktif yang menandai akhir dari arsip. Sequential adalah
sekumpulan record yang disimpan dalam media penyimpanan sekunder
computer, yang dapat diakses secara berurutan mulai dari record pertama
sampai record terakhir. Sequential file merupakan suatu cara ataupun
suatu metode penyimpanan dan pembacaan data yang dilakukan secara
berurutan. Dalam hal ini, data yang ada akan disimpan sesuai dengan
urutan masuknya. Data pertama dengan nomor berapapun, akan disimpan
ditempat pertama, demikian pula dengan data berikutnya yang juga akan
disimpan ditempat berikutnya. Dalam melakukan pembacaan data, juga akan
dilakukan secara berurutan, artinya, pembacaan akan dimulai dari data
paling awal dan dilanjutkan dengan data berikutnya sehingga data yang
dimaksud bisa diketemukan.
Keuntungan dari Sequential file
Keuntungan utama dari organisasi Sequential file adalah:
1. Mengarsipkan desain adalah sederhana.
2. Lokasi dari rekaman memerlukan hanyalah kunci rekaman.
3. Ketika laju ke aktifan adalah tinggi,kesederhanaan dari mengakses cara membuat proses efisien.
4. Media file murah seperti pita magnet dapat dipergunakan untuk menyimpan data.
Kelemahan dari Sequential file
Kelemahan utama dari organisasi Sequential file adalah:
1. Memperbaharui memerlukan bahwa semua transaksi rekaman diurutkan pada urutan kunci rekaman.
2. Satu berkas menguasai baru,secara fisik pisahkan dan eksklusif, selalu diciptakan sebagai hasil pembaharuan percontohan.
3. Tambahan dan penghapusan dari rekaman tidak sederhana.
PENGOLAHAN SEQUENTIAL FILE
File
merupakan fasilitas penyimpanan data pada external storage yang
bersifat permanen, jika dibandingkan dengan penyimpanan ke RAM yang
sifatnya sementara. Dengan pemakaian file kita dapat menghemat pemakaian
RAM komputer yang memiliki jumlah yang terbatas serta dapat melakukan
dokumentasi untuk jangka waktu yang panjang.
Pada QBasic pengolahan file dapat dibagi atas tiga jenis, yaitu :
1. SEQUENTIAL FILE
2. RANDOM FILE
3. BINARY FILE
Pada
Sequential file (file urut) proses pengolahannya dilakukan secara
linier dari awal sampai akhir, tanpa bisa kembali kebagian sebelumnya,
kecuali proses dimulai lagi dari awal. Jadi dalam pengolahan datanya
bersifat first in first out, artinya pembacaan data dari file ini harus
dimulai dari data yang paling awal. Pada umumnya pengolahan data yang
menggunakan file sebagai media INPUT maupun OUTPUT memiliki tiga tahap,
yaitu :
1. Tahap membuka file (OPEN)
2. Tahap memproses (INPUT/OUTPUT)
3. Dan yang terakhir adalah tahap menutup file (CLOSE)
Membuka File SEQUENTIAL
Untuk membuka file sequential yang akan diproses dapat digunakan penulisan sebagai berikut :
Syntax :
Open filename [FOR mode] AS [#]filenum
dimana mode terdiri dari :
INPUT, membuka file untuk proses INPUT
OUTPUT, membuka file baru untuk proses OUTPUT
APPEND, membuka file untuk untuk proses OUTPUT dimana data baru ditambahkan pada bagian akhir.
Contoh :
Open “Siswa.Dat” For Append AS #1
Akan
membuka Siswa.Dat sebagai OUPUT dimana data baru ditambahkan pada
bagian akhir. Jika file Siswa.Dat belum ada, maka akan dibuat yang baru.
Proses INPUT/OUTPUT
Perintah
proses INPUT/OUTPUT pada sequential file sangat tergantung kepada
bentuk perlakuan terhadap data. Untuk penulisan yang berorientasi pada
baris, anda dapat menggunakan perintah PRINT, dan pembacaanya dapat
menggunakan LINEINPUT. Penulisan yang berorientasi kepada data, anda
dapat menggunakan perintah WRITE dan INPUT untuk proses pembacaannya.
Syntax :
PRINT #filenumber,[USING stringexpressin;]expression list
WRITE #filenumber[,expressionlist]
INPUT #filenumber, variablelist
LINEINPUT #filenumber, variable-string
Contoh :
Write #1, “920403024?,”Hendra”,80,90
menulis ke file nomor 1, dan data dapat dibaca kembali dengan perintah :
Input #1,Nim$,Nama$,Teori,Praktek
Catatan :
Anda dapat menggunakan fungsi bantu EOF(filenumber) untuk memeriksa apakah berada diposisi akhir file.
Proses CLOSE
Untuk menutup file dapat digunakan perintah CLOSE.
Syntax
CLOSE #filenumber
Contoh:
CLOSE #1
menutup file nomor 1.
C. INDEX SEQUENTIAL FILE
Index
Sequential File merupakan perpaduan terbaik dari teknik sequential dan
random file. Teknik penyimpanan yang dilakukan, menggunakan suatu index
yang isinya berupa bagian dari data yang sudah tersortir. Index ini
diakhiri denga adanya suatu pointer (penunjuk) yang bisa menunjukkan
secara jelas posisi data yang selengkapnya. Index yang ada juga
merupakan record-key (kunci record), sehingga kalau record key ini
dipanggil, maka seluruh data juga akan ikut terpanggil. Untuk
membayangkan penyimpanan dan pembacaan data secara sequential, kita bisa
melihat rekaman lagu yang tersimpan pada kaset. Untuk mendengarkan lagu
kelima, kita harus melalui lagu kesatu, dua, tiga dan empat terlebih
dahulu.Pembacaan seperti inilah yang disebut sebagai sequential atau
berurutan. Apabila lagu-lagu yang ada kemudian disimpan didalam
compack-disk, maka untuk mendengar kan lagu yang kelima bisa langsung
dilakukan (dibaca secara random). Disamping itu, dengan compack-disk
juga bias dilakukan pembacaan secara berurutan atau sequential. Compack
disk menyimpan lagu secara random. Untuk membayangkan penyimpanan data
dengan menggunakan teknik index sequential ini, kita bisa melihat daftar
isi pada sebuah buku. Pada bagian atas disebut sebagai index data yang
berisi bagian dari data yang ada. Index data kemudian diakhiri dengan
pointer yang menunjukkan posisi keseluruhan isi data.
Keuntungan dari Index Sequential file
Sangat
cocok untuk digunakan menyimpan batch data ataupun individual data.
Dibanding sequential file, pemanggilan data menjadi lebih cepat.
Kelemahan dari Sequential file
Access
(pemanggilan) data tidak bisa disamakan dengan random (direct access
file). Memerlukan adanya ruangan extra didalam memory untuk menyimpan
index data. Memerlukan adanya hardware dan software yang lebih kompleks.
D. MULTIPLE INDEX FILE
Terdiri dari main file dan file-file index (file berindex majemuk).
Tidak ada rantai overflow.
Tidak dikenal konsep atribut kunci (tidak ada keterurutan berdasarkan atribut kunci).
Pengubahan data langsung dilakukan terhadap main file.
Format record dapat berupa name-value pair atau dapat berupa structured record.
Index bersifat multiple index, dinamis, record anchored.
Entri index terdiri dari atribut dan TID.
Entri index terurut berdasarkan nilai atributnya.
Next record diakses berdasarkan keterurutan entri pada index-nya.
Tiap index dapat bersifat multilevel.
TID pada index berisi alamat block dan posisi record.
Exhaustive vs partial index.
Pada
Multiple Index File (file berindex majemuk), pembaharuan dilakukan
terhadap file utama bukan file overflow, karena record dicari lewat
indeks, maka indeks harus dinamis. Begitu terjadi pembaharuan ( insert,
update, delete) mka indeks-indeks diperbaharui mengikuti perubahan di
file utama. Contoh : Indeks Dinamis adalah Indeks B-tree.
B-Tree
BTree = Balanced Tree
Perubahan pada main file berimplikasi terhadap index-nya.
Struktur index menggunakan BTree.
Blok – blok BTree harus dijaga agar memuat setengah dari fan out ratio-nya (effective fan out antara y/2 – y).
Order Capacity = d
Kapasitas minimum = d, dan maximum = 2d
Khusus untuk root, kapasitas minimum = 1
Algoritma Penyisipan Btree
Cari posisi yang sesuai bagi record baru, mulai dari root BTree.
Jika tersedia space, sisipkan record baru sesuai urutan, jika tidak terjadi, overflow.
Jika terjadi overflow :
1. Split menjadi 2 node
2. Pilih node tengah untuk naik ke level berikutnya
3. Set pointer dari parent node ke child node
Algoritma Penghapusan Btree
Menghapus node pada leaf dan tidak melanggar kapasitas minimum, maka record langsung dihapus tanpa mengubah struktur BTree.
Menghapus node pada root dan tidak melanggar kapasitas minimum, maka ganti dengan 1 record dari leaf node kanan terkecil.
Menghapus
node (leaf dan root), dan melanggar kapasitas minimum, maka perbaiki
dengan redistribusi record. Apabila redistribusi record mengakibatkan
pelanggaran kapasitas minimum pada node lain, maka lakukan coalescing
node.
Contoh BTree dengan order capacity d = 2
E. HASHED FILE
Metode
penempatan dan pencarian yang memanfaatkan metode Hash disebut hashing
atau ‘Hash addressing’ dan fungsi yang digunakan disebut fungsi hashing /
fungsi Hash. Fungsi hashing atau fungsi Hash inilah yang dapat menjadi
salah satu alternatif dalam menyimpan atau mengorganisasi File dengan
metode akses langsung. Fungsi Hash berupaya menciptakan “fingerprint”
dari berbagai data masukan. Fungsi Hash akan mengganti atau
mentransposekan data tersebut untuk menciptakan fingerprint, yang biasa
disebut Hashvalue (nilai Hash). Hash value biasanya akan digambarkan
sebagai suatu string pendek yang terdiri atas huruf dan angka yang
terlihat random (data biner yang ditulis dalam notasiheksadesimal).
Berkaitan dengan upayanya untuk menciptakan “fingerprint”, fungsi Hash
digunakan juga pada algoritma enkripsi untuk menjaga integritas sebuah
data.
Dalam konsepnya modern ini –selain digunakan pada penyimpanan
data-, fungsi Hash adalah sebuah fungsi matematika, yang menerima
masukan string yangpanjangnya sebarang, mengambil sebuah panjang
variable dari string masukantersebut –yang disebut pre-image, lalu
mekonversinkannya ke sebuah stringkeluaran dengan ukuran tetap (fixed),
dan umumnya lebih pendek dari ukuran string semula, yang disebut message
digest.
Pada penggunaan fungsi Hash, saat keadaan tertentu dapat
terjadi tabrakan (coallision) pada home address yang dihasilkan. Yaitu
saat munculnya nilai Hash yang sama dari beberapa data yang berbeda.
Untuk mengantisipasi keadaan ini ada beberapa metode yang dapat
digunakan, seperti perubahan fungsi Hash atau mengurangi perbandingan
antara jumlah data yang tersimpan denganslot address yang tersedia.
Hal-hal tersebut dapat meminimalisir tabrakan, tetapi tidak
menghilangkannya. Kita tetap memerlukan collision resolution –sebuah
prosedur untuk menempatkan data yang memiliki address yang sama.
Tidak ada komentar:
Posting Komentar