hashing
DESCRIPTION
Hashing power pointTRANSCRIPT
![Page 1: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/1.jpg)
STRUKTUR DATA
(HASHING)
![Page 2: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/2.jpg)
Metode Hashing• Untuk mengatasi kerugian korespondensi satu-
satu, digunakan hashing• Untuk mengurangi banyaknya ruang alamat
yang digunakan untuk pemetaan dari key yang memiliki cakupan yang luas ke nilai alamat yang memiliki cakupan yang dipersempit
• Untuk itu dibutuhkan fungsi HASH• Output fungsi HASH adalah home address dari
record yang keynya diproses• Fungsi : f(key) = address
![Page 3: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/3.jpg)
Macam-macam Fungsi HASH
• Fungsi modulo• 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
![Page 4: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/4.jpg)
Macam-macam Fungsi HASH
• Fungsi Pemotongan• Home address dicari dengan memotong nilai key
ke jumlah digit tertentu yang lebih pendek.• Contoh: NIM yang tadinya 8 digit, dipotong hanya
menjadi 2 digit!• Fungsi Pelipatan
• Dilakukan pelipatan terhadap record key dengan bagian yang sama panjang, lalu setiap bagian dijumlahkan
• NIM 8 digit dibagi dua digit, hingga menjadi 4 buah.
• Misal: 22002521, dibagi 22 00 25 21 kemudian dijumlahkan: 68
![Page 5: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/5.jpg)
Macam-macam Fungsi HASH
• Fungsi Pengkuadratan• Home address dicari dengan mengkuadratkan
setiap digit pembentuk key, lalu semua hasilnya dijumlahkan
• Contoh: 22002211, semua digit dikuadratkan dan dijumlah
• Fungsi Penambahan Kode ASCII• Jika key bukan kode numerik, home address
dicari dengan menjumlahkan kode ASCII setiap huruf pembentuk key
• ADE = 65 + 68 + 69 = 192
![Page 6: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/6.jpg)
Collision (Tabrakan)• Dengan menggunakan hashing,
maka hubungan korespondensi satu-satu antara record key dengan alamat record akan hilang
• Selalu ada kemungkinan dimana terdapat dua buah record dengan key yang berbeda namun memiliki home address yang sama = tabrakan
![Page 7: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/7.jpg)
Kriteria Fungsi HASH yang baik
• Dapat mendistribusikan setiap record secara merata, sehingga dapat meminimalkan terjadinya tabrakan
• Dapat dieksekusi secara efisien sehingga waktu tidak habis untuk menghitung home address nya saja
![Page 8: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/8.jpg)
Collision Resolution• Karena collision dapat dipastikan akan dapat
terjadi, maka output dari suatu fungsi hash tidak selalu unik, namun hanya berupa kemungkinan suatu alamat yang dapat ditempati
• Jika suatu home address sudah ditempati oleh record lain, maka harus dicarikan alamat lain
• Proses pencarian alamat lain tersebut disebut collision resolution
![Page 9: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/9.jpg)
Metode Collision Resolution
• Open Addressing• Chaining• Coalesced Hashing• Chained Progressive Overflow• Bucket
![Page 10: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/10.jpg)
Metode Open Addressing• Alamat alternatif dicari pada alamat-alamat
selanjutnya yang masih kosong• Cara:
• Linear Probing• Pencarian dilakukan dengan jarak pencarian tetap
• Quardratic Probing• Pencarian dilakukan dengan jarak pencarian berubah
dengan perubahan tetap• Double Hashing
• Pencarian dilakukan menggunakan fungsi hash kedua. Pertama hash untuk mencari home address, kedua untuk pencarian jika terjadi collision. Fungsi hash kedua tidak boleh menghasilkan nilai 0
![Page 11: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/11.jpg)
HASHING
• Fungsi hash diimplementasikan untuk menyimpan kode yang cukup besar ke dalam indeks yang lebih kecil sehingga mempercepat pencarian.contoh :
Posisi (indeks) Kode buku0 1023000101 4321101772 1002772773 7671773
• Tujuan penggunaan fungsi hash adalah agar 2 buah kunci yang berbeda tidak mempunyai nilai hash yang sama (untuk menghindari colllision/hash clash)
![Page 12: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/12.jpg)
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 dihitungb. Fungsi hash sebisa mungkin mendistribusikan posisi yang dimaksud
![Page 13: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/13.jpg)
Home address dicari dengan cara mencari sisa hasil bagi nilai key dengan suatu nilai tertentu.Fungsi: f(key) = key mod nDengan n adalah:
Banyaknya ruang alamat yang tersediaAtau bilangan prima terdekat yang berada di atas nilai banyak data, setelah itu banyaknya ruang alamat disesuaikan dengan n
Hashing dengan Kunci Modulus N
![Page 14: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/14.jpg)
Hashing dengan Kunci Modulus N
f (kunci) = kunci mod N
N = ukuran tabel atau berkas
![Page 15: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/15.jpg)
N = 12
30 mod N = 6 menghasilkan 2 sisa 640 mod N = 4 menghasilkan 3 sisa 450 mod N = 2 menghasilkan 4 sisa 260 mod N = 0 menghasilkan 5 sisa 0
![Page 16: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/16.jpg)
Kunci mod P merupakan variasi fungsi kunci mod N
Hashing dengan Kunci Modulus P
P = sebagai bilangan prima terkecil yang lebih besar atau sama dengan N
f (kunci) = kunci mod P
![Page 17: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/17.jpg)
Untuk N = 12 maka P = 1330 mod P = 4 menghasilkan 2 sisa 440 mod P = 1 menghasilkan 3 sisa 1
Untuk N = 15 maka P = 1750 mod P = 16 menghasilkan 2 sisa
1670 mod P = 2 menghasilkan 4 sisa 2
![Page 18: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/18.jpg)
Hashing dengan pengkuadratan
Fungsi hashing dengan cara pengkuadratan kunci
Carilah pengkuadratan dari 782Jawab F (782) =
![Page 19: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/19.jpg)
Hashing dengan konversi Radix
Kunci 5 6 7 8 dalam Base 13
![Page 20: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/20.jpg)
Hashing Lipatan
![Page 21: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/21.jpg)
Penjumlahan dari susunan lipatan
385976 Mengabaikan carry421672
![Page 22: Hashing](https://reader035.vdocuments.site/reader035/viewer/2022062323/5695cffe1a28ab9b02907394/html5/thumbnails/22.jpg)
385976 Dengan carry421782