1
10/12/2013
Yang menjadi tujuan utama metoda resolusi Sebagai contoh adalah R1, R2, dan R3 sinonim
kolusi adalah menempatkan rekaman sinonim dengan home-address r maka rantai sinonim akan
pada suatu lokasi yang membutuhkan probe berbentuk seperti dilihatkan pada gambar 9.1.
tambahan yang minimum dari home-address Medan penghubung lokasi r menunjuk pada
rekaman tersebut. Perlu diingat bahwa probe lokasi s di mana tersimpan sinonim pertama,
adalah akses ke lokasi yang berbeda. yaitu R2. Simbol ^ atau penunjuk nol pada
medan penghubung t menunjukkan akhir dari
Salah satu penyelesaian yang dapat dilakukan rantai sinonim
adalah memberikan penunjuk pada lokasi
rekaman sinonim. Bila terjadi sinonim jamak
pada satu home-address tertentu, akan dibentuk
rantai rekaman sinonim.
2
10/12/2013
A. Coalesed-Hashing
Coalesed-Hashing adalah metode resolusi yang
menggunakan penunjuk untuk menghubungkan elemen-
elemen dari sebuah rantai sinonim. Sebagai ilustrasi,
perhatikan gambar 9.1 yang memperlihatkan rekamaa-
rekaman R1, R2, dan R3 yang semuanya memiliki home-
address r. R1 disisipkan pertama dan memperoleh lokasi
sebagai home-addressnya yaitu r. Pada saat menyisipkan
R2, terjadilah kolisi karena hasil fungsi dari R2 juga r. Hal
tersebut mengisyaratkan agar R2 diletakkan pada lokasi
lain karena r sudah ditempati R1.
Pada saat tersebut tersedia ruang di s, maka R2 akan Coalesced-hashing (kolisi) terjadi bila terdapat usaha
disisipkan pada lokasi tersebut dan penunjuk pada untuk menyisipkan sebuah rekaman dengan home-
medan penghubung r diatur agar menunjuk ke s. Kolisi address yang sudah di okupasi oleh rekaman dari rantai
terjadi kembali pada saat R3 akan disisipkan. Rekaman yang memiliki home-address yang berbeda. Misal
R3 kemudian disisipkan pada ruang yang masih terdapat rekaman R4 yang hasil hashnya adalah s.
tersedia, yaitu t, dan penunjuk di medan penghubung s Kolisi akan terjadi pada saat diinginkan untuk
diarahkan ke t, sementara medan penghubung t menyisipkan R4 pada alamat s ke dalam tabel seperti
memiliki symbol ^ yang berarti akhir dari rantai gambar 9.1, yang terjadi adalah dua rantai sinonim
sinonim akan dibaca sampai rekaman ditemukan atau dengan rekaman-rekaman yang memiliki home-address
sampai terbaca akhir mata rantai sinonim. berbeda mengalami kolisi.
3
10/12/2013
4
10/12/2013
Sesuai namanya bila lokasi yang akan ditempati Untuk pembacaan kembali, dilakukan proses yang
telah terisi, maka lokasi selanjutnya dilihat sama. Dan bagaimana dengan pencarian yang tidak
apakah masih belum terisi. Secara progresif lokasi berhasil? Pencarian harus terus dilakukan sampai
selanjutnya di overflow. Pertanyaanya adalah, apa dijumpai slot kosong atau alamat pencarian yang
yang akan terjadi bila overflow dilakukan sampai pertama. Jelas bahwa algoritma untuk pencarian yang
pada alamat tertinggi, atau akhir berkas? tidak berhasil memiliki kinerja yang tidak bagus, tetapi
algoritma tersebut sangat sederhana.
Pertimbangan berkas memiliki struktur yang
melingkar, dengan lokasi pertama berada tepat
sesudah lokasi terakhir. Pencarian dilanjutkan
sampai ditemukan slot yang kosong atau sampai
ditemukan home-address rekaman untuk kedua-
kalinya yang menandakan bahwa berkas telah
penuh.
5
10/12/2013
6
10/12/2013
Untuk alasan tersebut, maka pembagian-linier dapat Pertanyaan yang muncul adalah fungsi hashing yang
dikelompokkan sebagai metoda resolusi kolisi dengan mana yang sebaiknya digunakan? Misalnya fungsi
hashing-ganda, mengingat pertama dilakukan hash untuk hashing akan dieksekusi dengan menggunakan mesin,
menentukan home-address (menggunakan fungsi H1), maka H2 memerlukan dua buah operasi pembagian:
dan kedua untuk mendapatkan inkremen (menggunakan pertama dalam pembagian, dan kedua dalam mencari
fungsi H2). modusnya. Seperti diketahui, operasi pembagian
Terdapat dua alternatif bentuk H2, yaitu: merupakan operasi yang relatif lambat. Sementara itu
H2 = Pembagian (kunci/P) modulus P atau H2’ hanya memerlukan satu operasi pembagian, yaitu
H2’ = (kunci modulus (P-2) + 1 dengan P merupakan dalam mencari modulusnya. Jadi, untuk praktisnya H2’-
bilangan primer dari ukuran berkas. lah yang lebih baik untuk digunakan. Akan tetapi, perlu
Kedua fungsi hashing akan menghasilkan variable diingat bahwa persamaan seperti H2’ sulit diselesaikan
inkremen dalam cakupan ruang alamat. oleh manusia. Dua hal yang saling bertentangan tersebut
merupakan gambaran mengenai perbedaan kemampuan
yang dimiliki baik oleh manusia maupun komputer.
7
10/12/2013
II. Jika home-address kosong, sisipkan rekaman ke 2. Jika alamat tersebut tidak ada yang menempati,
dalam lokasi tersebut, jika tidak maka: maka sisipkan rekaman serta akhiri penyisipan
a. Tentukan inkremen dengan menghitung hasil bagi dengan sukses.
kunci dengan ukuran berkas. Jika hasilnya nol, 3. Jika rekaman yang menempati memiliki kunci
maka inkremennya = 1 (satu). yang sama dengan yang akan disisipkan, akhiri
b. Beri harga awal pencacah untuk perhitungan lokasi proses dengan pesan ‚rekaman dobel‛.
yang akan dicari dengan 1 (satu). 4. Tambahkan 1 pada pencacah pencarian lokasi.
c. Selama jumlah lokasi yang dicari lebih kecil dari d. Akhiri proses dengan pesan ‚Berkas penuh‛
ukuran berkas, maka: Algoritma tersebut mensyaratkan ukuran berkas berupa
a. Hitung alamat yang akan dicari berikutnya bilangan prima untuk menghindari terjadinya siklus
dengan menambahkan inkremen terhadap pencarian terhadap rekaman berulang-ulang dan
alamat terakhir dan kemudian cari modulusnya kemudian memberikan indikasi bahwa rekaman sudah
terhadap ukuran berkas. penuh padahal masih terdapat ruang yang belum
ditempati.