ORGANISASI BERKAS RELATIF
- Pengertian Berkas Relatif
· Suatu berkas yang mengidentifikasikan record dengan key yang diperlukan.
· Record tidak perlu tersortir secara fisik menurut nilai key.
· Organisasi berkas relatif paling sering digunakan dalam proses interaktif.
· Tidak perlu mengakses record secara berurutan (consecutive).
· Sebaiknya disimpan dalam Direct Access Storage Device (DASD) seperti magnetic disk/drum.
- Proses
Pada waktu sebuah record
ditulis kedalam berkas relative. fungsi pemetaan R digunakan untuk
menerjemahkan NILAI KEY DARI RECORD menjadi ADDRESS, dimana record
tersebut disimpan. Begitu pula pada waktu akan me-retrieve record dengan
nilai key tertentu, fungsi pemetaan R digunakan terhadap nilai key
tersebut, untuk menerjemahkan nilai key itu menjadi sebuah address dalam
penyimpanan sekunder, dimana record tersebut ditemukan. Organisasi berkas
relatif ini tidak menguntungkan bila penyimpanan sekundernya berupa media SASD,
seperti magnetic tape. Berkas relative harus disimpan didalam media SASD,
seperti disk atau Drum. dimungkinkan untuk mengakses record-record dalam berkas
relatif secara consecutive, tetati perlu diketahui bahwa nilai key tidak
terurut secara logic.
Kemampuan Berkas Relatif
ü Kemampuan mengakses record secara langsung.
ü Record dapat di retrieve, insert, modifikasi dan delete tanpa mempengaruhi record lain dalam berkas yang sama.
Tiga teknik dasar fungsi Pemetaan R
- Pemetaan langsung (Direct Mapping)
- Pencarian Tabel (Directory Look-up)
- Kalkulasi (Calculating)
Teknik Pencarian Tabel
· Dasar pemikirannya adalah direktori dari nilai key dan address.
· Lebih cepat menggunakan binary search dibanding dengan sequential search.
Keuntungan :
1. Dapat meng-akses record dengan cepat bila diketahui nilai key.
2. Nilai key berupa field, dapat diterjemahkan menjadi alamat.
3. Nilai key adalah address space indepedent.
Teknik Kalkulasi Alamat
Ø R (Nilai key) à address
Nilai key = dengan melakukan kalkulasi terhadap nilai key.
Ø Benturan (collision) dapat terjadi apabila terdapat alamat relatif yang sama untuk nilai key yang berbeda.
Pada teknik pencarian tabel kita harus menyediakan ruang memori untuk menyimpan tabel indexnya, tapi dalam teknik kalkulasi tidak diperlukan lagi hal itu. yang dilakukan adalah membuat hitungan sedemikian rupa sehingga dengan memasukkan kunci atribut recordnya, alamatnya sudah dapat diketahui, masalahnya bagaimana membuat hitungan dari kunci atribut itu sehingga hasilnya dapat lebih efisien dan tidak berbenturan dengan nilainya.
Ø Cara mengatasi benturan, antara lain :
v Scatter diagram techniques
v Randomizing techniques
v Key to address transformation methods
v Direct addressing techniques
v Hash tables methods
v Hashing
Ø Scatter DiagramTechnique
Sebuah metode baru untuk memasukkan dan mengambil informasi yang digambarkan dalam tabel hash. Metode ini bakal menjadi efisien jika lebih banyak bagian yang sering dilihat . Jumlah yang diharapkan dari kemungkinan untuk mencari entri, diperkirakan secara teoritis dan diverifikasi oleh percobaan Monte Carlo, adalah kurang dari untuk metode sebanding lain jika tabel hampir penuh.
Ø Randomizing Teqhnique
Sebuah metode yang digunakan untuk pengambilan data dan informasi secara random (acak).
Ø Key-To-Address Tranformation Methods
Teknik yang digunakan dalam teori mengkoreksi kesalahan kode. hal ini diterapkan untuk dapat menyelesaikan masalah dalam menangani file besar. dalam pendekatan baru, file menangani masalah yang digambarkan dengan desain khusus untuk menampilkan kelayakan.
Ø Direct Addressing Technique
Semua instruksi lain yang diperlihatkan menggunakan pengalamatan langsung yang berarti, bahwa data yang telah direfensikan sebenarnay dan disimpan dalam struktur lain, baik sebuah register atau lokasi memori.
Ø Hash Table Technique
Merupakan struktur yang menggunakan fungsi hash untuk efisien peta pengdentifikasi tertentu atau kunci/key (misalkan nama-nama orang) untuk dihubungkan nilai (misalkan nomor telepon mereka). funsi dari hash digunakan untuk mengubah kunci ke indeks (hash) dari array elemen (dalam slot/ember) dimana nilai yang sesuai akan dicari. dalam banyak situasi, hash table technique atau yang sering disebut teknik tabel hash ternyata lebih efisien daripada pohon pencarian atau struktur lookup. Biasanya banyak digunakan diberbagai jenis komputer perangkat lunak terutama untuk array asosiatif, pengideksan database, cache dan set.
Keuntungan menggunakan tenik tabel hash:
ü Keuntungan utamanya dalah kecepatannya. keuntungan ini lebih jelas ketika jumlah entri yang besar (ribuan atau lebih). tabel hash dapat sangat efisien ketika jumlah maksimum entri dapat diprediksi dari sebelumnya, sehingga ember array dapat dialokasikan sekali dengan ukuran optimal dan tidak pernah diubah ukurannya.
ü Jika himpunan pasangan kunci-nilai adalah tetap dan dikenal lebih dulu sehingga insersi serta penghapusan tidak diijinkan. yang dapat mengurangi biaya rata-rata lookup pilihan hati-hati dari fungsi hash, ember ukuran meja dan struktur data internal. Secara khusus, ada kemungkinan dapat menyusun fungsi hash yang tabrakan (bebas ) atau bahkan sempurna.
Kelemahan menggunakan teknik tabel hash:
ü Untuk aplikasi pengolahan string tertentu, seperti spell-checking. tebel hash mungkin kurang efisien. jika setiap tombol diwakili oleh sejumlah kecil bit yang cukup, maka bukan sebuah tabel hash yang dapat menggunakan tombol langsung sebagai indeks ke array nilai.
ü Meskipun rata-rata biaya per operasi adalah konstan dan cukup kecil dengan biaya operasi tunggal dapat cukup tinggi. secara khusus, jiak tabel hash menggunakan ukuran dinamis, penyisipan atau penghapusan operasi yang memerlukan waktu sebanding dengan jumlah entri. hal ini dapat dilkatakan kelemahan yang serius secara realtime atau interaktif.
ü Tabel hash biasanya, dalam pameran umumnya miskin pemukiman referensi artinya data yang akan deakses didistribusikan tampaknya secara acak di memori. hal ini dikarenakan tabel hash menyebabkan pola akses berupa lompat-lompatm ini dapat memicu cache mikroprosesor yang menyebabkan penundaan yang lama.
ü Tabel hash menjadi sangat tidak efisien bila ada banyak tabrakan.
Ø Hashing
Hashing merupakan teknik mengindeks pada
menajemen database dimana nilai kunci (yang mengindentifikasikan record) dimanipulasi
secara numerik untuk menghitung langsung lokasi record yang berkaitan atau
titik tolak untuk mencari record yang terkait.
Teknik mengindeks pada menajemen database dimana nilai kunci (yang
mengindentifikasikan record) dimanipulasi secara numerik untuk menghitung
langsung lokasi record yang berkaitan atau titik tolak untuk mencari record
yang terkait.
Keuntungan Hashing :
ü Nilai key dapat digunakan langsung.
ü Nilai key adalah address space berubah.
Kelemahan Hashing :
Membutuhkan waktu proses untuk implementasi dan mengatasi benturan.
Teknik Pemetaan Langsung
Dua cara Peetaan Langsung :
1. Pengalamatan Mutlak (Absolut Addressing) ;
R (Nilai key) à Address
Nilai key = alamat mutlak
Nilai key = alamat sebenarnya dimana record tersimpan. Pada saat penyimpanan dan pemakaian record, harus diketahui dan diberikan pemakai.
Untuk teknik
pengalamatan mutlak ini kita tidak perlu mempermasalahkan kunci atribut karena
kita diminta lansung menuliskan dimana alamat record yang akan kita masukkan .
jika kita menggunakan hard disk atau macnetic drum, ada dua cara dalam
menentukan alamat memorinya, yaitu:
• Cylinder Addressing
• Sector Addressing
Jika kita menggunakan Cylinder Addressing , maka kita
harus menetapkan nomor-nomor dari silinder (Sylinder), permukaan (Surface), dan
Record. Sedangkan bila kita menggunakan Secto Addresing, maka kita harus
menetapkan nomor-nomor dari sektor (Sector), lintasan (Track), dan permukaan
(Surface). teknik ini mudah dalam pemetaan (pemberian alamat memorinya).
Keuntungan :
1) Fungsi Pemetaan R sangat sederhana.
2) Retrieve lebih cepat.
Kelemahan :
1) Harus diketahui penyimapanan record secara fisik.
2) Nilai key tidak boleh hasil perhitungan.
3) Alamat mutlak adalah device independent.
4) Alamat mutlak adalah address space dependent.
2. Pengalamatan Relatif (Relative Addressing) ;
R (Nilai key) à Address
Nilai key = alamat relatif.
Nilai key = urutan record tersebut dalam berkas.
Keuntungan :
1) Fungsi Pemetaan R sangat sederhana.
2) Penetuan nilai key tidak perlu waktu proses yang lama.
3) Nilai key adalah Address Space Independent, dimana reorganisasi berkas tak akan mempengaruhi nilai key, yang berubah adalah alamat direktori.
Kelemahan :
1) Alamat relatif adalah address space dependent.
2) Terjadinya pemborosan ruangan.
3) Directory Lookup (Pencarian Tabel)
- Dalam pencarian tabel adalah sebuah table atau direktori dari nilai key dan address. Teknik ini dilakukan dengan cara, mengambil seluruh kunci atribut dan alamat memori yang ada dan dimasukkan ke dalam tabel tersendiri. jadi tabel misalnya disebut dengan tabel index hanya berisi kunci atribut misalkan NIM yang telah disorting/urut dan alamat memorinya. Sewaktu dilakukan pencarian data, tabel yang pertama dibaca adalah tabel yang diberi nama tabel index. setelah ditemukan atribur kuncinya, maka data alamat yang ada disana digunakan untuk meraih alamat record dari data(berkas,file atau tabel) yang sebenarnya. pencarian yang dilakukan di tabel index akan lebih cepat dilakukan dengan teknik pencarian melaui binary search daripada dilakukan dengan cara sequential.
Contoh :
4 digit untuk jenis barang (9999).
Padahal hanya ada 2000 jenis barang.
Pemborosan 80% ruang penyimpanan.
Tujuan Utama Hashing :
Agar dua buah kunci yang berbeda tidak mempunyai nilai relative address yang sama.
Perbandingan fungsi hash :
· Division Remainder ;
Menggunakan metode pembagian.
Untuk distribusi nilai key yang tidak diketahui.
· Mid Square ;
Menggunakan metode perpangkatan.
Untuk file denganfaktor cukup rendah.
· Folding ;
Menggunakan metode penjumlahan.
Mudah dalam perhitungan, baik bila panjang nilai key = panjang address.
Pendekatan masalah Collision :
Open Addressing ;
Menemukan address yang bukan home address untuk K2.
Separate Overflow ;
Menemukan address untuuk K2 di luar primary area yakni di overflow area.
Teknik Mengatasi Collision :
- Linier Probing (Pendekatan Open Addressing) ;
Proses pencarian secara sequential dari home address sampai lokasi yang kosong.
Harus ada penentuan apakah address kosong.
- Addressing (Pendekatan Separate Overflow) ;
Menggunakan double hashing.
Memakai fungsi hash kedua terhadap hasil dari fungsi hash pertama.
Hasilnya bisa di primary area atau separate overflow area.
Perbandingan kedua teknik :
Linier Probing |
Double hashing |
* menghasilkan synonim berkelompok * cocok untuk faktor muat rendah |
* menghasilkan synonim berpencar * cocok untuk faktor muat tinggi |
Fungsi hash yang umum digunakan :
- Division Remainder
- Mid Square
- Folding
Division Remainder
· R(nilai key) à address
Nomor relatif dari suatu nilai key merupakan sisa dari hasil pembagian nilai key tersebut denga suatu bilangan.
· Perhitungan alamat relatif :
Faktor muat = jumlah record dalam berkas
max. Jumlah record dalam berkas
Mencari hasil bagi = nilai key
max + (faktor prima < 20)
Alamat relatif = sisa pembagian + 1
Contoh :
Berkas berisi 4000 record
Load factor 0,8
Nilai key 987654321
v 0,8 = 4000
max record
max = 4000
0,8
= 5000
v = 987654321
5000 + 3
= 197412 sisa 2085
v Alamat relatif = 2085 + 1
= 2086
Mid Square
· R (Nilai key) à Address
Nilai key dikuadratkan kemudian beberapa digit diambil dari tengah. Alamt relatif, diambil mulai dari digit .........
∑ digit dari nilai key kuadrat
2
· Contoh untuk berkas 4000 record, dibutuhkan 4 digit.
Nilai Key Nilai Key Kuadrat Relatif Address
1 2 3 4 5 6 7 8 9 1524157875019052 8 7 5 0
^^^^^^^^
16 / 2 = 8
9 8 7 6 5 4 3 2 1 975461055789911041 5 7 8 9
^^^^^^^^^
18 / 2 = 9
Folding
· Nilai key dibagi menjadi beberapa bagian.
· Setiap bagian (kecuali bagian terakhir) mempunyai digit sama dengan digit alamat relative.
· Bagian-bagian ini dilipat dan dijumlah.
· Hasil penjumlahan adalah alamat relatif (digit tertinggi dibuang bila diperlukan).
Contoh :
4 digit untuk alamat relatif.
1 2 3 4 5 6 7 8 9 (nilai key)
^ ^
1
2 3 4 5
9 8 7 6 +
1 3 2 2 1 3 2 2 1
Synonim Chaining (Penggandengan)
· Menggabung synonim bersama-sama.
· Tidak mengurangi jumlah collision tetapi mengurangi waktu akses untuk meretrieve.
Bucket Addressing
Hash ke dalam blok yang memberikan tempat bagi sejumlah record.
Contoh :
Reltatif address space 0 – m
Bucket berukuran B record
File terdiri dari N record
v Faktor muat = N
B (m + 1)
Contoh linier probing
rekaman |
A |
B |
C |
K |
P |
Q |
R |
Y |
Z |
nilai key |
5 |
6 |
7 |
5 |
0 |
1 |
2 |
9 |
0 |
rekaman |
P |
Q |
R |
Z |
- |
A |
B |
C |
K |
Y |
nilai key |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Contoh Chaining
Rekaman
34 56 123 78 93 70 100 21 11 77 28
Fungsi Hash
K mod 10
Alamat relatif
nicee
ReplyDelete