STRUKTUR DATA HASHING Metode Hashing Untuk mengatasi kerugian

  • Slides: 22
Download presentation
STRUKTUR DATA (HASHING)

STRUKTUR DATA (HASHING)

Metode Hashing • Untuk mengatasi kerugian korespondensi satu, digunakan hashing • Untuk mengurangi banyaknya

Metode Hashing • Untuk mengatasi kerugian korespondensi 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

Macam-macam Fungsi HASH • Fungsi modulo • Home address dicari dengan cara mencari sisa

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

Macam-macam Fungsi HASH • Fungsi Pemotongan • Home address dicari dengan memotong nilai key

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

Macam-macam Fungsi HASH • Fungsi Pengkuadratan • Home address dicari dengan mengkuadratkan setiap digit

Macam-macam Fungsi HASH • Fungsi Pengkuadratan • Home address dicari dengan mengkuadratkan setiap digit pembentuk key, lalu semua hasilnya dijumlahkan • Contoh: 22002211, semua digit dikuadratkan 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

Collision (Tabrakan) • Dengan menggunakan hashing, maka hubungan korespondensi satu-satu antara record key dengan

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

Kriteria Fungsi HASH yang baik • Dapat mendistribusikan setiap record secara merata, sehingga dapat

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

Collision Resolution • Karena collision dapat dipastikan akan dapat terjadi, maka output dari suatu

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

Metode Collision Resolution • • • Open Addressing Chaining Coalesced Hashing Chained Progressive Overflow

Metode Collision Resolution • • • Open Addressing Chaining Coalesced Hashing Chained Progressive Overflow Bucket

Metode Open Addressing • Alamat alternatif dicari pada alamat-alamat selanjutnya yang masih kosong •

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

HASHING • Fungsi hash diimplementasikan untuk menyimpan kode yang cukup besar ke dalam indeks

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

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

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

Hashing dengan Kunci Modulus N f (kunci) = kunci mod N N = ukuran tabel atau berkas

N = 12 30 40 50 60 mod mod N N = = 6

N = 12 30 40 50 60 mod mod N N = = 6 4 2 0 menghasilkan 2 3 4 5 sisa 6 4 2 0

Hashing dengan Kunci Modulus P Kunci mod P merupakan variasi fungsi kunci mod N

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

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

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 dengan konversi Radix Kunci 5 6 7 8 dalam Base 13

Hashing Lipatan

Hashing Lipatan

Penjumlahan dari susunan lipatan 385 976 421 672 Mengabaikan carry

Penjumlahan dari susunan lipatan 385 976 421 672 Mengabaikan carry

385 976 421 782 Dengan carry

385 976 421 782 Dengan carry