Fungsi Hashing Abdul Haris,S.Kom
Kunci sebagai alamat rekaman unik Untuk mendapatkan rekaman yang diasosiasikan dengan suatu kunci primer, sangat diharapkan agar proses langsung menuju ke alamat tempat rekaman dengan kunci tertentu disimpan. Hal tersebut hanya mungkin hanya mungkin terjadi bila kunci rekaman juga merupakan alamat lokasi rekaman.
Untuk suatu aplikasi dengan rekaman berisi informasi mahasiswa, untuk 13 digit nomor mahasiswa maka diperlukan milyaran lokasi. Dengan demikian waktu pencarian sangat baik yaitu satu probe untuk setiap rekaman yang dicari. Akan tetapi teknik tersebut memiliki kerugian karena memiliki ruang yang sangat besar untuk menampung semua rekaman
Korespondensi antara Kunci dan Alamat Ruang 9999-9999-99999 9999-9999-99999
Konsekuensinya adalah diperlukan suatu fungsi untuk memetakan cakupan nilai kunci yang lebih luas ke dalam cakupan yang lebih sempit nilai alamat. Fungsi ini dikenal dengan fungsi hash.
Hasing dengan Modulus N Dengan N sebagai ukuran tabel atau berkas. Hasil fungsi modulus adalah sisa pembagian kunci oleh N F (Kunci) = Kunci mod N
Contoh Dengan kapasitas rekaman 12 maka : 30 mod N=6 30 dibagi 12 menghasil 2 sisa 6 40 mod N=4 40 dibagi 12 menghasil 3 sisa 4
Lipatan(Boundary) Fungsi ini akan melipat digit pada batasan yang ditentukan berdasrkan kondisi digit awal dan digit yang dihasilkan. Contoh : 385 976 421 ?? 5 8 3 9 7 6 1 2 4 3 8 5 9 7 6 4 2 1
Pergeseran(Shifting) Hashing dengan pergeseran memiliki proses yang serupa dengan lipatan,bedanya setelah ditentukan batasan, digit asli dipotong kemudian digeser untuk dihitung hasil jumlahnya 5 8 3 9 7 6 1 2 4 5 8 3 9 7 6 1 2 4 ??? Catatan : kedua Fungsi ini Carry diabaikan untuk mendapakan hasil yang dicari
Pengkuadratan Hashing dengan pengkuadratan adalah fungsi hasing dengan cara mengkuadratkan kunci. Contoh : F(782) = 117 72 + 82 + 22 = 117
Konversi Radix Dalam konversi radix, kunci dikonversikan dengan cara : Contoh : 5678 dalam base 13 maka akan menghasilkan 12098 (5x133)+(6x132)+(7x131)+(8x130) =10985+1014+91+8 =12098 5 6 7 8 Posisi 3 2 1
Terima Kasih