Hashing dengan Kunci Modulus N
Download
Report
Transcript Hashing dengan Kunci Modulus N
Organisasi berkas langsung
(Hashing)
HASHING
• Fungsi hash diimplementasikan untuk menyimpan kode yang cukup besar ke
dalam indeks yang lebih kecil sehingga mempercepat pencarian.
contoh :
Posisi (indeks)
Kode buku
0
1023000
101
4321101
772
1002772
773
7671773
• Tujuan penggunaan fungsi hash adalah agar 2 buah kunci yang
berbeda tidak mempunyai nilai hash yang sama (untuk
menghindari colllision/hash clash)
METODA HASHING
Dalam implementasi fungsi hash sering digunakan
untuk mengkonversikan himpunan kunci rekaman
menjadi himpunan alamat memori (subskrip dalam
array)
Aspek yang perlu dipertimbangkan dalam pemilihan
fungsi hash adalah :
a. Fungsi hash harus mudah dan cepat dihitung
b. Fungsi hash sebisa mungkin mendistribusikan
posisi yang dimaksud
Hashing dengan Kunci Modulus N
Home address dicari dengan cara mencari sisa hasil
bagi nilai key dengan suatu nilai tertentu.
Fungsi: f(key) = key mod n
Dengan n adalah:
Banyaknya ruang alamat yang tersedia
Atau bilangan prima terdekat yang berada di atas
nilai banyak data, setelah itu banyaknya ruang
alamat disesuaikan dengan n
Hashing dengan Kunci Modulus N
f (kunci) = kunci mod N
N = ukuran tabel atau berkas
N = 12
30
40
50
60
mod
mod
mod
mod
N
N
N
N
=
=
=
=
6
4
2
0
menghasilkan
menghasilkan
menghasilkan
menghasilkan
2
3
4
5
sisa
sisa
sisa
sisa
6
4
2
0
Hashing dengan Kunci Modulus P
Kunci mod P merupakan variasi fungsi
kunci mod N
f (kunci) = kunci mod P
P = sebagai bilangan prima terkecil
yang lebih besar atau sama dengan N
Untuk N = 12 maka P = 13
30 mod P = 4 menghasilkan 2 sisa 4
40 mod P = 1 menghasilkan 3 sisa 1
Untuk N = 15 maka P = 17
50 mod P = 16 menghasilkan 2 sisa 16
70 mod P = 2 menghasilkan 4 sisa 2
Hashing dengan
pengkuadratan
Fungsi hashing dengan cara pengkuadratan kunci
Carilah pengkuadratan dari 782
Jawab
F (782) =
Hashing dengan konversi Radix
Kunci 5 6 7 8 dalam Base 13
Hashing Lipatan
Penjumlahan dari susunan lipatan
385
976
421
672
Mengabaikan carry
385
976
421
782
Dengan carry