Anda di halaman 1dari 5

Manajemen Kolisi

Salah satu alasan diaplikasikannya fungsi hash adalah bahwa fungsi hash akan
mendistribusikan kunci seperangkat data dengan lebih merata. Fungsi hash yang
menghasilkan banyak kolisi atau sinonim dikatakan memiliki kluster prima. Makin sedikit
jumlah kolisi, makin baik fungsi hashing tersebut karena makin sedikit waktu yang
diperlukan untuk melihat tempat-tempat yang berbeda dalam rangka menemukan yang
diinginkan dan juga akan mempertahankan probe atau kases terhadap penyimpanan agar
mendekati satu.
Beberapa cara yang dapat ditempuh untuk mereduksi kolisi adalah mengganti fungsi
hashing, atau dengan mereduksi factor-packing.
Faktor-packing suatu berkas adalah perbandingan (atau rasio) antara jumlah rekaman
yang disimpan dengan berkas, atau dapat dinyatakan sebagai berikut :

FP (Factor Packing) = Jumlah rekaman yg disimpan / Jumlah total lokasi


penyimpanan

Kerugian dari usaha mengurangi nilai factor packing dengan tujuan untuk mengurangi
jumlah kolisi membawa pada konsekuensi diperlukannya ruang yang lebih luas untuk
menyimpan jumlah rekaman yang sama.

2.2.1. Resolusi Kolisi


Mengubah fungsi hashing atau mengubah factor-packing mengurangi jumlah
kolisi. Tetapi, tidak akan mengeliminasi kolisi tersebut. Diperlukan suatu prosedur untuk
menempatkan sinonimnya ke posisi lain bila kolisi memang benar terjadi.
Tujuan utama metode resolusi kolusi adalah menempatkan rekaman sinonim pada
suatu lokasi yang membutuhkan probe tambahan yang minimum dari home-address rekaman
tersebut. Salah satu penyelesaian yang dapat dilakukan adalah memberikan penunjuk pada
lokasi rekaman sinonim. Bila terjadi sinonim jamak pada satu home-address tertentu, akan
dibentuk rantai rekaman sinonim.
Sebagai contoh R1, R2, R3 sinonim dengan home address r maka rantai sinonim akan
berbentuk seperti diperlihatkan oleh gambar dibawah ini. Medan penghubung lokasi r
menunjuk pada lokasi s dimana tersimpan sinonim pertama, yaitu R2 disimpan. Simbol ^ atau
petunjuk nol pada medan penghubung t menunjukkan akhir dari rantai sinonim.

a) Coalesced Hashing
Metode resolusi yang menggunakan penunjuk untuk menghubungkan elemen-
elemen dari sebuah rantai sinonim.
Coalesced Hashing terjadi bila terdapat usaha untuk menyisipkan sebuah
rekaman dengan home-address yang sudah diokupasi oleh rekaman dari rantai yang memiliki
home address yang berbeda.

Bila terjadi tumbukan dalam pemasukan kunci rekaman maka dapat 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 1 lakukan proses hashing semua kunci dengan kunci modulus 11 (11 adalah
kapasitas berkas), maka dihasilkan :

Algoritma untuk COALESCED HASHING :


1. Lakukan hashing pada semua kunci rekaman yang akan disipkan untuk mendapatkan home-
address atau calon-address yang mungkin untuk ditempati oleh rekaman-rekaman tersebut
2. jika home-address kosong, sisipkan rekaman pada lokasi tersebut, jika rekaman ternyata
kembar, akhiri program dengan pesan rekaman kembar, jika tidak
Cari lokasi terakhir rantai-sinonim dengan mengikuti penunjuk pada medan-penghubung
sampai menemukan symbol yang menandakan akhir dari rantai
Cari lokasi paling bawah dalam berkas (yang memiliki alamat paling besar). Jika tidak
ditemukan akhiri program dengan pesan berkas penuh
Sisipkan rekaman ke dalam lokasi yang kosong yang teridentifikasi dan atur medan-
penghubung rekaman terakhir dalam rantai-sinonim agar menunjuk ke lokasi rekaman yang
baru saja disisipkan.

b) LICH dan EISCH


Beberapa varian dari coalesced hashing dapat diklasifikasikan kedalam tiga cara:
Mengorganisasikan berkas (dengan atau tanpa overflow)
Menghubungkan item yang terkoalisi ke dalam rantai
Memilih lokasi yang belum ada penghuninya.
Kolisi mungkin dapat direduksi dengan memodifikasi organisasi berkas,
dengan cara memisahkan antara area untuk data primer dangan area untuk data overflow
yang disebut teknik LICH (Late Insertion Coalesced Hashing), karena rekaman yang baru
disisipkan pada akhir rantai sinonim.

Teknik lain untuk meningkatkan kinerja probe pembacaan kembali adalah dengan melakukan
variasi penempatan posisi, yang disebut EISCH (Early Insertion Standard Coalesced
Hashing) dengan cara menyisipkan rekaman baru pada posisi rantai sinonim tepat sesudah
rekaman yang disimpan pada home-address.

c) Progressive Overflow
Kerugian utama penggunaan coalesced hashing adalah diperlukannya
penyimpanan tambahan untuk medan penghubung.
Bila penyimpanan tambahan tersebut tidak tersedia, maka penghubung yang
sifatnya fisik tidak dapat disediakan, sehingga perlu dipertimbangkan teknik resolusi kolisi
yang menggunakan suatu bentuk konvensi untuk menemukan kemana selanjutnya rekaman
harus dicari.
Salah satu bentuk konvensin yang sederhana adalah penggunan overflow yang
progrsif atau disebut juga probing secara linear.
Kelemahan utama progressive overflow adalah rata-rata probe yang sangat
tinggi. Meskipun demikian progressive overflow lebih efektif dibandingkan dangan berkas
sekuensial, mengingat pencarian dimulai dari home-address. Demikian juga untuk pencarian
rekaman, tidak seluruh rekaman harus dibaca karena proses akan berhenti bila ditemukan slot
yang kosong.
Untuk menghapus rekaman harus diperhatikan agar proses pencarian rekaman
tidak terhenti karena menemukan slot kosong berkas rekaman yang sudah dihapus. Untuk itu,
penghapusan rekaman diikuti dengan meletakkan tombstone pada posisi rekaman yang
dihapus, maka diartikan sebagai: tetaplah mencari rekaman dengan memeriksa rekaman-
rekaman pada posisi berikutnya.
Bila dikemudian ternyata terdapat rekaman baru yang harus disisipakan dan
memiliki home-adrress sama dengan rekaman yang ditempati tombstone, maka rekaman baru
disisipkan pada posisi tersebut seakan-akan tombstone tersebut tidak ada.

d) Penggunaan Bucket
Penggunaan Bucket Adalah unit penyimpanan yang berada diantara
rekaman dengan berkas, juga sebuah unit dengan informasi yang dapat diases dan
dipindahkan antar peralatan penyimpan
Jumlah pengaksesan dapat direduksi dengan meletakkan atu rekaman
pada satu alamat penyimpanan.

e) Pembagian Linear
Resolusi kolisi dengan teknik pembagian linear merupakan varian dari
progressive-overflow. Tujuan inkremen yang variable adalah mereduksi pengklusteran
sekunder yang terjadi pada progressive-overflow, yang artinya pembacaan probe akan
berkurang. Terdapat inkremen yang merupakan fungsi dari kunci yang akan disisipkan.
Fungsi tersebut dapat juga disebut sebagai fungsi hashing lain karena fungsi tersebut
digunakan untuk mengkonversi kunci menjadi sebuah inkremen. Pembagian linear dapat
dikelompokkan sebagai metode resolusi kolisi dengan hashing-ganda.
1. Di lakukan hash untuk menentukan home address, dalam hal ini menggunakan fungsi H1
2. Di lakukan hash untuk mendapatkan inkremen, dalam hal ini menggunakan fungsi H1
Terdapat 2 alternatif bentuk H2:
1. H2 : Pembagian (kunci/P) modulus P
2. H2 : (kunci modulus (P-2)) + 1
di mana P adalah bilangan Prima dari ukuran berkas.
Algoritma :
I. Hash kunci yang akan disisipkan ke dalam berkas untuk
memperoleh home-address sebagai tempat menyimpan rekaman
II. Jika home-address kosong, sisipkan rekaman ke dalam lokasi
tersebut, jika tidak maka :
A. tentukan inkremen dengan menghitung hasil bagi kunci
dengan modulus ukuran berkas. Jika hjasilnya nol, maka inkremennya = 1
B. beri harga awal pencacah untuk perhitungan lokasi yang
akan dicari dengan 1
C. selama jumlah lokasi yang dicari lebih kecil dari ukuran
berkas, maka :
1. Tentukan alamat yang akan dicari berikutnya dengan menambahkan inkremen terhadap
alamat terakhir dan kemudian cari modulusnya terhadap ukuran berkas
2. Jika alamat tersebut tidak ada yang menempati, maka sisipkan rekaman serta akhiri
penyisipan dengan sukses.
3. Jika lokasi sudah ditempati oleh rekaman yang memiliki kunci yang sama dengan yang akan
disisipkan, akhiri proses dengan pesan rekaman dobel
4. Tambahkan 1 pada pencacah pencarian lokasi.
D. Akhiri proses dengan pesan berkas penuh

Anda mungkin juga menyukai