0% menganggap dokumen ini bermanfaat (0 suara)
279 tayangan22 halaman

Struktur Data & Algoritma - Hashing

Dokumen tersebut membahas tentang hashing dan tabel hash. Secara ringkas, hashing digunakan untuk menyimpan dan mencari item dalam waktu konstan O(1) dengan menggunakan fungsi hash untuk memetakan item ke slot tabel hash. Fungsi hash populer adalah sisa bagi dan kuadrat tengah. Tabrakan dapat terjadi ketika dua item hash ke slot yang sama, dan dapat diselesaikan dengan teknik pengalamatan terbuka seperti probing linear.

Diunggah oleh

Ghiel Yanuar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
279 tayangan22 halaman

Struktur Data & Algoritma - Hashing

Dokumen tersebut membahas tentang hashing dan tabel hash. Secara ringkas, hashing digunakan untuk menyimpan dan mencari item dalam waktu konstan O(1) dengan menggunakan fungsi hash untuk memetakan item ke slot tabel hash. Fungsi hash populer adalah sisa bagi dan kuadrat tengah. Tabrakan dapat terjadi ketika dua item hash ke slot yang sama, dan dapat diselesaikan dengan teknik pengalamatan terbuka seperti probing linear.

Diunggah oleh

Ghiel Yanuar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 22

PERTEMUAN 12

Pertemuan 12
HASHING
Hashing

 Hashing
 Hash Tables
 Fungsi (Hash Functions)
 Collision Resolution
 Menerapakan Hash Table
Hashing

Pengertian Hash
 Kita dapat membangun struktur data yang dapat dicari dalam waktu O (1). Konsep
ini disebut sebagai hashing
Hash Table
 Hash table adalah kumpulan item yang disimpan sedemikian rupa agar
mudah ditemukan nanti.
 Setiap posisi Hash table, slot, dapat menampung item dan dinamai dengan
nilai integer mulai dari 0.
 Misalnya, kita akan memiliki slot bernama 0, slot bernama 1, slot bernama 2,
dan seterusnya.
 Awalnya, tabel hash tidak berisi item sehingga setiap slot kosong.
Hash Table
 Untuk mengimplementasikan tabel hash dengan menggunakan daftar
dengan setiap elemen diinisialisasi ke nilai khusus None.
 Berikut adalah tabel hash kosong dengan ukuran m = 11 value None.
Hash Table
 Pemetaan antara item dan slot tempat item tersebut berada dalam tabel hash
disebut hash function.
 Hash function akan mengambil item apa pun dalam koleksi dan mengembalikan
integer dalam kisaran nama slot, antara 0 dan m-1.
 Bagaimana kita harus menggunakan fungsi hash ?
Hash Function – Remainder
 Salah satu fungsi hash (hash function) yang bisa kita gunakan adalah metode
sisanya.
 Saat disajikan dengan item, fungsi hash adalah item dibagi dengan ukuran tabel,
ini kemudian nomor slotnya.
Hash Function – Remainder
 Asumsikan bahwa kita memiliki himpunan bilangan integer 54, 26, 93, 17, 77, dan 31. 
 Tetapkan tabel hash kosong dari m=11
 Selanjutnya, fungsi hash: h(item)= item % 11
 54 =54 / 11 = 10 Sisa 10
 26 = 26/11 = 4
 93 = 93/11 = 5
 17 = 17/11 = 6
 77 = 77/11= 0
 31 = 31/11 = 9
Hash Function – Remainder
Hash Function – Remainder
  Bagaimana dapat menempati 6 dari 11 slot.
 Ini disebut sebagai file faktor beban, and is biasanya dilambangkan
dengan
 λ =.
 contoh ini, λ =6/11.
Hash Function – Remainder Methode
• Tabel hash.
Hash Function – Remainder Methode

 Saat user ingin mencari item, kita cukup menggunakan fungsi hash untuk
menghitung nama slot untuk item tersebut dan kemudian memeriksa tabel
hash untuk melihat apakah ada.
 Operasi pencarian ini adalah O (1), karena jumlah waktu yang konstan
diperlukan untuk menghitung nilai hash dan kemudian mengindeks tabel
hash di lokasi itu.
Hash Function – Remainder Methode

 bagaimana jika Anda memiliki dua item yang akan menghasilkan lokasi
yang sama?
 Misalnya 44% 11 dan 77% 11 adalah sama.
 Ini dikenal sebagai tabrakan / collision (juga dikenal sebagai benturan).
 fungsi hash secara umum!
Fungsi hash

 Fungsi hash yang memetakan setiap item ke dalam slot unik disebut
sebagai fungsi hash yang sempurna.
 Tujuan membuat fungsi hash adalah yang meminimalkan jumlah tabrakan,
mudah dihitung, dan mendistribusikan item dalam tabel hash secara
merata.
 Ada beberapa teknik untuk pembahaan ini!
Fungsi hash
 Jika dicontohkan pada nomor telepon 436-555-4601
 Kami akan mengambil digit dan membaginya menjadi kelompok 2
(43,65,55,46,01).
 Setelah penjumlahan, 43 + 65 + 55 + 46 + 01, kita mendapatkan 210.
 Jika kita mengasumsikan tabel hash kita memiliki 11 slot, maka kita perlu
melakukan langkah ekstra untuk membagi dengan 11 dan menyimpan
sisanya.
 210% 11 adalah 1, jadi nomor telepon 436-555-4601 di-hash ke slot 1

4 3 6 5 5 5 4 6 0 1

 210 Mod 11 = 11X19 = 209 sisa 1


Fungsi hash
 Untuk metode kuadrat tengah (Mid Square Method), pertama kita
mengkuadratkan item, lalu mengekstrak beberapa bagian dari digit yang
dihasilkan.
 Misalnya, jika itemnya 44, pertama-tama kita akan menghitung 442 =
1.936.
 Dengan mengekstrak dua digit tengah, 93, dan melakukan langkah sisanya,
kita mendapatkan 93% 11 = 5
Fungsi hash
 Untuk metode kuadrat tengah (Mid Square Method), pertama kita
mengkuadratkan item, lalu mengekstrak beberapa bagian dari digit yang
dihasilkan.
 Misalnya, jika itemnya 44, pertama-tama kita akan menghitung 442 =
1.936.
 Dengan mengekstrak dua digit tengah, 93, dan melakukan langkah sisanya,
kita mendapatkan 93% 11 = 5
Fungsi hash
 Comparison Table
Collision Resolution
 Salah satu metode untuk menyelesaikan tabrakan melihat ke tabel hash dan
mencoba menemukan slot terbuka lain untuk menampung item yang menyebabkan
tabrakan.
 Kita bisa mulai dari posisi nilai hash asli dan kemudian bergerak secara berurutan
melalui slot sampai kita menemukan slot pertama yang kosong.
 Proses resolusi tabrakan ini disebut sebagai pengalamatan terbuka yang mencoba
menemukan slot atau alamat terbuka berikutnya dalam tabel hash.
Collision Resolution
 Dengan mengunjungi setiap slot secara sistematis satu per satu, kami melakukan
teknik pengalamatan terbuka yang disebut linear probing.

Anda mungkin juga menyukai