Anda di halaman 1dari 31

Organisasi

Berkas Langsung
dan Metode
Hashing
Maju Mundur
Organisasi Berkas Langsung
Dengan organisasi berkas langsung, untuk menemukan
suatu rekaman tidak melalui proses pencarian, namun bisa
langsung menuju alamat yang ditempati rekaman
Pada awalnya, untuk tujuan tersebut maka digunakan cara
dengan menyimpan rekaman pada alamat yang sama
dengan nilai kunci rekaman tersebut
Contohnya : rekaman dengan kunci 100 akan disimpan di
alamat 100
Sehingga untuk menemukan sebuah rekaman cukup
melihat nilai kunci dan menuju ke alamat yang ditunjuk
oleh kunci rekaman tersebut
Contoh : untuk membaca rekaman dengan kunci 55
langsung saja menuju alamat 55
Maju Mundur
Dalam hal ini akan dibahas berbagai teknik yang dapat digunakan
sebagai alternatif dalam merancang sistem
Khususnya dalam menentukan lokasi rekaman yang akan disimpan
serta pembacaan rekaman tersebut.
Hal tersebut hanya mungkin terjadi bila bila kunci rekaman juga
merupakan alamat lokasi rekaman.
Dengan demikian waktu pencarian akan sangat baik, yaitu 1 probe
untuk setiap rekaman yang dicari.
Harus dimengerti harus tersedia 1 lokasi untuk setiap kemungkinan
kunci rekaman.
Meskipun Universitas bisa memiliki puluhan ribu mhs,pastilah ada beberapa
bbrp nmr mhs yang kosong, karena beberapa alasan
misal : sudah lulus, mengundurkan diri, DO, cuti, dllSEHINGGA TIDAK SEMUA
RUANG DIMANFAATKAN.
Ini merupakan contoh dari implementasi daripada Korespodensi Satu-satu
kunci
Ruang alamat
0
0
9999.9999.99999
9999.9999.99999
Kerugian Korespondensi Satu-
Satu
Dengan menerjemahkan langsung dari kunci
rekaman ke alamat rekaman, maka akan berlaku
suatu hubungan korespondensi satu-satu antara
kunci dengan alamat rekaman
Hal ini menyebabkan harus disediakannya ruang
yang sangat besar untuk menampung setiap
kemungkinan nilai kunci yang ada
Contohnya : untuk menyimpan data PNS yang
kuncinya adalah NIP (terdiri dari 9 digit)
dibutuhkan sebanyak satu milyar alamat, karena
kemungkinan yang dapat muncul dari kode 9
digit adalah mulai dari angka 000000000 hingga
999999999)
Maju Mundur
Kerugian Korespondensi Satu-
Satu
Selain itu dari cara korespondensi satu-satu juga
akan mengakibatkan banyaknya pemborosan
ruang penyimpan, atau terjadi banyak alamat
yang tidak dipergunakan alias kosong
Contohnya : Kode NIP diawali dengan tiga digit
kode departemen, yang tidak mungkin ada kode
departemen 000. Sehingga alamat 000000000
sampai 000999999 (sebanyak sejuta alamat)
tidak akan terpakai karena tidak ada rekaman
dengan NIP di antara range tersebut
Maju Mundur
Metode Hashing
Untuk mengatasi kerugian yang timbul
dari cara korespondensi satu-satu yang
telah disebutkan itu, digunakan metode
lain yang dinamakan Metode Hashing
Metode Hashing intinya digunakan untuk
mengurangi banyaknya ruang alamat
yang digunakan serta melakukan
pemetaaan (melakukan konversi) dari
kunci rekaman yang memiliki cakupan
nilai yang luas ke nilai alamat yang
memiliki cakupan yang telah dipersempit
Maju Mundur
Fungsi Hash
Untuk melakukan pemetaan (konversi) dari kunci
rekaman ke alamat rekaman digunakan suatu
fungsi yang dinamakan Fungsi Hash
Output dari fungsi hash dinamakan sebagai home
address dari rekaman yang kuncinya diproses
Bentuk fungsi hash :
address key f ) (
Maju Mundur
Macam-Macam Fungsi Hash
Fungsi Modulo
Home address dicari dengan cara mencari sisa
hasil bagi nilai kunci dengan suatu nilai tertentu
n key key f mod ) (
Dengan nilai n dapat berupa 2 kemungkinan,
yaitu :
Banyaknya ruang alamat yang tersedia
Bilangan prima terdekat yang berada di atas
nilai banyaknya data, setelah itu banyaknya
ruang alamat disesuaikan dengan n
Maju Mundur
Macam-Macam Fungsi Hash
Metode Pemotongan
Home address dicari dengan memotong
nilai kunci ke jumlah digit tertentu yang
lebih pendek

Contoh : Nilai NIP yang tadinya 9 digit
dipotong menjadi hanya 3 digit dengan
mengambil 3 nomor terakhir. Misalnya :
NIP 132312090 akan memiliki home
address 090 atau 90
Maju Mundur
Macam-Macam Fungsi Hash
Metode Pelipatan
Diandaikan kunci rekaman ditulis di atas
kertas dan dilipat ke dalam bagian-bagian
yang sama panjang, lalu setiap bagian
dijumlahkan
Contoh, Nilai NIP yang 9 digit dibagi ke
dalam 3 bagian masing-masing 3 digit,
terus dilipat pada bagian-bagian tersebut.
NIP 132312090 akan menjadi 3 bagian
yaitu 132, 213, dan 090 yang dijumlahkan
dan menghasilkan 435 (dengan carrier)
atau 335 (tanpa carrier)
Maju Mundur
Macam-Macam Fungsi Hash
Metode Pengkuadratan
Home address dicari dengan
mengkuadratkan setiap digit
pembentuk kunci, lalu semua
hasilnya dijumlahkan

Contohnya : NIP 132312090
memiliki home address =
1
2
+3
2
+2
2
+3
2
+1
2
+2
2
+0
2
+9
2
+0
2
=
1+9+4+9+1+4+0+81+0 = 104

Maju Mundur
Macam-Macam Fungsi Hash
Penambahan Kode ASCII
Metode ini dapat digunakan jika
kunci bukan berupa kode numerik.
Home address dicari dengan
menjumlahkan kode ASCII setiap
huruf pembentuk kunci.

Contoh : Rekaman dengan kunci ADE
memiliki home address 65+68+69 =
192
Maju Mundur
Kriteria Fungsi Hash yang
Baik
Dapat mendistribusikan setiap
rekaman secara merata, sehingga
dapat meminimalkan terjadinya
collision
Dapat dieksekusi dengan efisien,
sehingga waktu tidak habis hanya
untuk menghitung home address
saja
Maju Mundur
Collision (Tabrakan)
Dengan menggunakan metode hashing,
maka secara otomatis hubungan
korespondensi satu-satu antara kunci
rekaman dengan alamat rekaman menjadi
hilang
Selalu ada kemungkinan terjadinya
peristiwa dimana terdapat dua buah
rekaman dengan kunci yang berbeda
namun memiliki home address yang sama
Kejadian ini dinamakan sebagai Collision
atau Tabrakan atau Tumbukan
Maju Mundur
Manajemen Kolisi
Makin sedikit jumlah kolisi, maka makin baik
fungsi hashing tersebut karena makin sedikit
jumlah waktu yang diperlukan untuk melihat
tempat yang berbeda dalam menemukan
rekaman yang diinginkan.
Beberapa cara untuk mengantisipasi kolisi adalah
mengganti fungsi hashing, atau
mengkombinasikan faktor-packing. Faktor
packing suatu berkas adalah perbandingan (atau
rasio) antara jumlah rekaman yang disimpan
dalam berkas dengan kapasitas berkas, atau
dapat dinyatakan sbb :



n penyimpana lokasi al Jumlah tot
disimpan yang rekaman Jumlah
packing Factor
Resolusi Kolisi
Yang menjadi tujuan utama metoda
resolusi adalah menempatkan rekaman
sinonim pada suatu lokasi yang
membutuhkan probes tambahan yang
minimum dari home-address rekaman
tersebut.
Synonim adalah dua atau lebih nilai key
yang berbeda pada hash ke home-address
yang sama
Salah satu penyelesaian yang dapat
dilakukan adalah memberikan petunjuk
pada lokasi rekaman sinonim.
Collision Resolution
Karena collision dapat dipastikan akan selalu
terjadi, maka dikatakan bahwa output dari fungsi
hash (home address) bukanlah merupakan
alamat unik yang pasti ditempati oleh rekaman
yang diproses, namun hanya berupa
kemungkinan alamat yang bisa ditempati
Jika home address dari suatu rekaman ternyata
sudah ditempati rekaman lain, maka harus
dicarikan alamat lain untuk ditempati rekaman
tersebut
Proses pencarian alamat lain ini dinamakan
sebagai Collision Resolution
Maju Mundur
Metode Coalesced Hashing
Bila terjadi tumbukan dalam pemasukan kunci rekaman maka dicari
alamat yang paling besar/paling akhir
Contoh : misalkan akan dilakukan penyisipan rekaman-rekaman
dengan kunci 38,51,40,61,83,24, dan 60
Langkah I : Hash semua kunci dengan kunci modulus 11 (11 adalah kapasitas
berkas), maka akan dihasilkan :



Kunci Key mod 11
38 5
51 7
40 7
61 6
83 6
24 2
60 5
II. Masukkan ke alamat :

alamat Rekaman Medan Penghubung
0
1
2 24
3
4
5 38 8
6 61 9
7 51 10
8 60
9 83
10 40
Untuk membaca masing-masing rekaman 1 kali diperlukan rata-rata probe
1.4 diperoleh dari total jumlah probe dibagi jumlah rekaman.
Kunci Kunci mod 11 probe
38 5 1
51 7 1
40 7 2
61 6 1
83 6 2
24 2 1
60 5 2
Probe total 10
Jadi probe rata-rata 10/9

Rumus Probe rata-rata = probe total
jumlah rekaman
Metode Collision Resolution
Metode Open Addressing
Metode Chaining
Metode Coalesced Hashing
Metode Chained Progressive
Overflow(Linier Probing)
Metode Bucket
Maju Mundur
Metode Open Addressing
(Metode Untuk mengatasi Kolisi
/tubrukan)
Alamat alternatif dicari pada alamat-alamat
selanjutnya yang masih kosong
Cara mencari alamat alternatif ada 2 macam,
yaitu :
Linear Probing
pencarian dilakukan dengan jarak pencarian yang fix
(tetap), biasanya satu satu
Quadratic Probing
pencarian dilakukan dengan jarak pencarian berubah
dengan perubahan yang tetap
Maju Mundur
Contoh Soal Linear Probing
Sesuai namanya, bila lokasi yang akan
ditempati telah terisi, maka dilihat lokasi
selanjutnya apakah msh belum terisi.
Fungsi hash yang dipakai adalah :
f(key) = key mod 10
Ruang alamat yang tersedia : 10 alamat
Metode Collision Resolution yang dipakai
adalah Open Addressing dengan Linear
Probing jarak 3
Urutan kunci yang masuk adalah : 20, 31,
33, 40, 10, 12, 30, dan 15
Maju Mundur
Jawaban Linear Probing
0 20
1 31
2 12
3 33
4
5 30
6 40
7
8 15
9 10
20 0 0 0
31 1 1 1
33 3 3 3
40 0 0, 3, 6 6
10 0 0, 3, 6, 9 9
12 2 2 2
30 0 0, 3, 6, 9, 2, 5 5
15 5 5, 8 8
Key f Proses Addr
Maju Mundur
Probe total = 19
Probe rata-rata = 19/8
Penggunaan Buckets
Jmlh pengaksesan dapat direduksi dengan
meletakkan lebih dari satu rekaman pada
satu alamat penyimpan. Kemungkinan
tersebut dpt direalisir bila digunakan
sistem buckets disebut juga blok atau
halaman.
Disediakan 2 alamat kunci yaitu kunci 1
dan kunci 2
Sama seperti linier probing,bila
terjadi kolisi(tubrukan) jika lokasi
yang ditempati telah terisi,maka
dilihat lokasi selanjutnya apakah
belum terisi.
Contoh : rekaman-rekaman dengan kunci 38,51,40,61,83,24,60,20 dan 94


Alamat Kunci 1 Kunci 2
0
1
2 24
3
4
5 38 60
6 61 83
7 51 40
8 94
9 20
10
Kunci Home-
Addres
Probe
38 5 1
51 7 1
40 7 1
61 6 1
83 6 1
24 2 1
60 5 1
20 9 1
94 6 3
Probe total 11
Membaca rekaman dalam buckets
Kunci Home Address Proses Probe
38 5 5 1
51 7 7 1
40 7 7 1
61 6 6 1
83 6 6 1
24 2 2 1
60 5 5 1
20 9 9 1
94 6 6,7,8 3
Probe total 11
Jadi probe rata-rata = 11/9
Metode Chaining
Dengan metode ini, harus disediakan
ruang ekstra untuk menyimpan rekaman-
rekaman yang mengalami tabrakan
(terpisah dari tabel hash)
Pada setiap ruang alamat yang ada, tidak
hanya menyimpan data rekaman namun
juga menyimpan suatu nilai yang
menunjukkan alamat rekaman selanjutnya
yang harusnya menempati ruang tersebut
Setiap sinonim (nilai-nilai yang memiliki
home address sama) akan membentuk
rantai (chain)
Maju Mundur
Metode Coalesced Hashing
Hampir sama dengan Chaining,
namun tidak menyediakan ruangan
ekstra
Bila terjadi tumbukan/kolisi dalam
pemasukan alamat/rekaman, maka
cari lokasi paling akhir/memiliki
alamat paling besar

Maju Mundur
Metode Progressive
Overflow
Metode Open Addressing dengan Linear Probing
disebut juga sebagai Metode Progressive
Overflow
Metode ini jika didesain dengan salah bisa
menimbulkan infinite loop, dimana alamat
alternatif tidak dapat ditemukan karena
pencarian hanya memutar-mutar di tempat yang
sama
Kelemahan ini dapat diatasi dengan cara :
Jarak pencarian diambil suatu nilai yang bukan
merupakan faktor dari jumlah ruang alamat (n)
Banyaknya ruang alamat diambil suatu bilangan
prima, misalkan ada 10 data, maka disediakan
ruang alamat sebanyak 11
Maju Mundur

Anda mungkin juga menyukai