Methode Hash

25
Methode Hash

description

Methode Hash. Hasing. Kalkulasi terhadap nilai key untuk mendapatkan sebuah alamat disebut fungsi hash. Keuntungan: Nilai key yang sebenarnya dapat dipakai karena diterjemahkan kedalam sebuah alamat. - PowerPoint PPT Presentation

Transcript of Methode Hash

Page 1: Methode Hash

Methode Hash

Page 2: Methode Hash

Hasing

Kalkulasi terhadap nilai key untuk mendapatkan sebuah Kalkulasi terhadap nilai key untuk mendapatkan sebuah alamat disebut fungsi hash.alamat disebut fungsi hash.

Keuntungan:Keuntungan: Nilai key yang sebenarnya dapat dipakai karena diterjemahkan kedalam Nilai key yang sebenarnya dapat dipakai karena diterjemahkan kedalam

sebuah alamat.sebuah alamat. Nilai key adalah address space independent bila berkas Nilai key adalah address space independent bila berkas

direorganisasi, fungsi hash berubah tetapi nilai key tetap.direorganisasi, fungsi hash berubah tetapi nilai key tetap. Kelemahan :Kelemahan :

Membutuhkan waktu proses dalam mengimplementasikan fungsi hash.Membutuhkan waktu proses dalam mengimplementasikan fungsi hash. Membutuhkan waktu proses dan akses I/O dalam mengatasi Membutuhkan waktu proses dan akses I/O dalam mengatasi

benturan.benturan.

• Jelaslah bahwa tujuan utama dari fungsi hash adalah mengurangi Jelaslah bahwa tujuan utama dari fungsi hash adalah mengurangi benturan. Kumpulan dari synonim kadang disebut KELAS EKIVALEN. benturan. Kumpulan dari synonim kadang disebut KELAS EKIVALEN. Fungsi hash yg baik adalah mempunyai kelas ekivalen yg kecil dan Fungsi hash yg baik adalah mempunyai kelas ekivalen yg kecil dan mempunyai kalkulasi sederhanamempunyai kalkulasi sederhana

Page 3: Methode Hash

Penampilan fungsi hash bergantung pada :Penampilan fungsi hash bergantung pada : Distribusi nilai key yang dipakaiDistribusi nilai key yang dipakai Banyaknya nilai key yang dipakai relatif terhadap ukuran dari ruang Banyaknya nilai key yang dipakai relatif terhadap ukuran dari ruang

alamat.alamat. Banyaknya record yang dapat disimpan pada alamat tertentu tanpa Banyaknya record yang dapat disimpan pada alamat tertentu tanpa

menyebabkan benturan.menyebabkan benturan. Teknik yang dipakai untuk mengatasi benturanTeknik yang dipakai untuk mengatasi benturan

Page 4: Methode Hash

Beberapa fungsi hash yang umum digunakan :Beberapa fungsi hash yang umum digunakan :

1. Division Remainder1. Division Remainder

Alamat relatif dari suatu nilai key merupakan sisa dari Alamat relatif dari suatu nilai key merupakan sisa dari hasil pembagian nilai key tersebut dengan suatu hasil pembagian nilai key tersebut dengan suatu bilangan yang disebut sebagai bilangan yang disebut sebagai bilangan pembagi.bilangan pembagi.

Banyak faktor yang harus dipertimbangkan dalam Banyak faktor yang harus dipertimbangkan dalam pemilihan pembagi :pemilihan pembagi :

1.1. Jangkauan dari nilai key yang dihasilkan dari opersi KEY MOD Jangkauan dari nilai key yang dihasilkan dari opersi KEY MOD DIV adalah 0 sampai DIV-1. DIV adalah 0 sampai DIV-1.

2.2. Pembagi harus diseleksi untuk mengurangi benturan. Pembagi harus diseleksi untuk mengurangi benturan. 3.3. Menurut riset dari W.Buchholz, sebaiknya pembagi itu Menurut riset dari W.Buchholz, sebaiknya pembagi itu

merupakan bilangan prima. merupakan bilangan prima. 4.4. Bukan bilangan prima yang mempunyai faktor prima kurang Bukan bilangan prima yang mempunyai faktor prima kurang

dari 20 akan dapat memberikan jaminan penampilan yang lebih dari 20 akan dapat memberikan jaminan penampilan yang lebih baik.baik.

5.5. Walaupun telah ditentukan pembagi dengan baik untuk Walaupun telah ditentukan pembagi dengan baik untuk mengatasi benturan, bila ruang alamat dari berkas relatif mengatasi benturan, bila ruang alamat dari berkas relatif mendekati penuh, maka peluang terjadinya benturan akan mendekati penuh, maka peluang terjadinya benturan akan meningkat.meningkat.

Page 5: Methode Hash

Untuk mengukur kepenuhan berkas relatif digunakan Load Factor Untuk mengukur kepenuhan berkas relatif digunakan Load Factor (Faktor Muat).(Faktor Muat).

Load Factor = banyak record dalam berkasLoad Factor = banyak record dalam berkas

max. banyak record dalam berkasmax. banyak record dalam berkas

• Semua fungsi Hash mulai bekerja buruk, bila berkas hampir penuh. Jika faktor muat lebih besar dari 0,7 atau 0,8, maka berkas tersebut harus diperbesar dan direorganisir. Karena itu, jika berkas berisi relatif N record, maka ruang alamat harus mempunyai paling sedikit 0,25 N record Untuk faktor muat 0,8)

• Contoh : Sebuah berkas relatif yang berisi 4000 record, paling sedikit harus mempunyai ruang alamat untuk 5000 record (faktor muat 0,8). Angka yang dekat dengan 5000 dan terdiri dari faktor prima kurang dari 20 adalah angka 5003. Angka ini dipakai sebagai pembagi.

• Alamat relatif didapat dari sisa pembagian + 1

Page 6: Methode Hash

Perbandingan fungsi HashPerbandingan fungsi Hash

Teknik Division Remainder memberikan penampilan Teknik Division Remainder memberikan penampilan yang terbaik secara keseluruhan.yang terbaik secara keseluruhan.

Teknik Mid Square dapat dipakai untuk file dengan Teknik Mid Square dapat dipakai untuk file dengan load factor cukup rendah akan memberikan penampilan load factor cukup rendah akan memberikan penampilan baik tetapi kadang-kadang dapat menghasilkan baik tetapi kadang-kadang dapat menghasilkan penampilan yang buruk dengan beberapa collision.penampilan yang buruk dengan beberapa collision.

Teknik folding adalah teknik yang paling mudah dalam Teknik folding adalah teknik yang paling mudah dalam perhitungan tetapi dapat memberikan hasil yang salah, perhitungan tetapi dapat memberikan hasil yang salah, kecuali panjang nilai key = panjang address.kecuali panjang nilai key = panjang address.

Page 7: Methode Hash

Pendekatan terhadap masalah CollisionPendekatan terhadap masalah Collision Ada 2 teknik yang digunakan untuk mengatasi

collision yaitu:1. Liear Probing yang merupakan teknik open

addressing Agar linear probing dapat dilaksanakan, harus ada penentu apakah address kosong. Ini dapat dilakukan dengan memberi panji (flag) bahwa lokasi tersebut telah penuh setelah record disimpan. Lokasi dasar penyimpanan dengan teknik linear probing dapat dilihat pada gambar berikut:

Page 8: Methode Hash
Page 9: Methode Hash

2. Double Hasing Yang memakai fungsi hash kedua terhadap hasil dari fungsi

hash pertama. Address dari record yang di-hash kembali dapat terletak di primary area atau di Separate Overflow Area

Keuntungan dari metode Separate Overflow adalah menghindari keadan di mana dapat terjadi metode Open Addressing untuk sebuah record yang tidak dapat disimpan dalam home address-nya menggantikan record lain yang terakhir di hash oleh home address-nya.

Page 10: Methode Hash

Synonim ChainingSynonim Chaining

Pendekatan pemecahan collision yang mengakses synonim dengan Pendekatan pemecahan collision yang mengakses synonim dengan fasilitas link list untuk record-recordnya dalam kelas ekivalen. Adapun fasilitas link list untuk record-recordnya dalam kelas ekivalen. Adapun link list record-record dengan home address yang sama tak akan link list record-record dengan home address yang sama tak akan mengurangi jumlah collision, tetapi akan mengurangi waktu akses mengurangi jumlah collision, tetapi akan mengurangi waktu akses untuk me-retrieve record-record yang tak ada di home addressnya.untuk me-retrieve record-record yang tak ada di home addressnya.

Contoh :Contoh : KEY KEY HOME ADDRESS HOME ADDRESS ACTUAL ADDRESS ACTUAL ADDRESS

AdamsAdams 20 20 2020 BatesBates 21 21 2121 CollColl 20 20 2222 DeanDean 21 21 2323 EvansEvans 24 24 2424 FlintFlint 20 20 2525

R20 R21 R22 R23 R24 R25R20 R21 R22 R23 R24 R25 .. Adams .. Bates .. Coll .. Dean .. Evans .. Flint .. ..... Adams .. Bates .. Coll .. Dean .. Evans .. Flint .. ...

gambar hashing dengan synonim chaininggambar hashing dengan synonim chaining

Page 11: Methode Hash

HOME PRIMARY DATA OVERFLOWHOME PRIMARY DATA OVERFLOWADDRESS AREA AREAADDRESS AREA AREA

2020 Adams .. 0 Coll ..Adams .. 0 Coll ..

2121 Bates .. 1 Dean ..Bates .. 1 Dean ..

2222 2 Flint .. 2 Flint .. 2323 3 3 2424 Evans ..Evans ..

Page 12: Methode Hash

metode hash dinamis, kunci yang telah masuk dapat digeser oleh kunci yang masuk belakangan

menggunakan link (double table), link berupa NOF :number of offset

NOF merupakan jumlah perpindahan dengan incremen tertentu

Page 13: Methode Hash

Algoritma

1. Konversikan kunci dengan fungsi yang ditentukan

2. Jika collision : a. cek apakah kunci yang menempati adalah pemilik

HA, jika bukan maka lakukan (i), jika ya lakukan langkah (ii)

i. pindahkan kunci tersebut dan linknya dgn incremen kunci yang dipakai sebelumnya

ii. cek apakah apakah ada link, jika ya hitung link = index + (incremen(index) * NOF))

Page 14: Methode Hash

iii. tentukan probe address dgn nilai incremen kunci yg menempati Home Address (HA) atau link terakhir dari HA

b. hitung nilai NOF,jumlah perpindahan kunci dari HA atau link terakhir HA sampai alamat kucni ditempatkan, dan letakan pada link di HA atau link terakhir HA

Page 15: Methode Hash

Catatan

Kunci yang mengalami collision ditempatkan pada alamat yang dicari dgn incremen kunci yg menempati HA atau link terakhir dari HA

Kunci yg menempati bukan pada HA-nya akan digeser oleh pemilik HA

Nilai NOF dihitung berdasarkan jumlah perpindahan kunci dgn incremen yg ditentukan dan nilai NOF diletakan pd HA atau link terakhir dari HA

Page 16: Methode Hash

Macam-macam HashMacam-macam Hash

Hashing dengan kunci Modulud NHashing dengan kunci Modulud N Hashing dengan kunci Modulud PHashing dengan kunci Modulud P Hashing dengan LipatanHashing dengan Lipatan Hashing dengan pengkuadratanHashing dengan pengkuadratan Hashing dengan konversi radixHashing dengan konversi radix

Page 17: Methode Hash

Hashing dengan kunci Modulud NHashing dengan kunci Modulud N

Satu fungsi hash yang paling popular yang mempunyai Satu fungsi hash yang paling popular yang mempunyai keuntungan yaitu menghasilkan nilai dalam rentang ruang keuntungan yaitu menghasilkan nilai dalam rentang ruang alamat (0) sampai dengan (N-1), di implementasikan alamat (0) sampai dengan (N-1), di implementasikan dengan N, dimana N adalah ukuran tabel atau berkas. dengan N, dimana N adalah ukuran tabel atau berkas. Hasil fungsi modulus adalah sisa pembagian kunci oleh NHasil fungsi modulus adalah sisa pembagian kunci oleh N

F (kunci) = kunci mod NF (kunci) = kunci mod N

Page 18: Methode Hash

Contoh :Contoh :

Ada kunci 30 dan 40, dimana N = 12Ada kunci 30 dan 40, dimana N = 12

Maka :Maka :

30 mod N = 630 mod N = 6, didapat dari 30 dibagi 12 hasilnya 2 dengan , didapat dari 30 dibagi 12 hasilnya 2 dengan

sisa 6sisa 6

40 mod N = 4, 40 mod N = 4, didapat dari 40 dibagi 12 hasilnya 3 dengan didapat dari 40 dibagi 12 hasilnya 3 dengan

sisa 4sisa 4

Page 19: Methode Hash

Hashing dengan kunci Modulud PHashing dengan kunci Modulud P

Fungsi ini merupakan variasi fungsi kunci modulus N, Fungsi ini merupakan variasi fungsi kunci modulus N,

F (kunci) = kunci mod PF (kunci) = kunci mod P

Dengan P sebagai bilangan prima terkecil yang lebih besar Dengan P sebagai bilangan prima terkecil yang lebih besar atau sama dengan N, dan N adalah ukuran tabel. P ini atau sama dengan N, dan N adalah ukuran tabel. P ini menjadi ukuran tabel baru yang menggantikan Nmenjadi ukuran tabel baru yang menggantikan N

Page 20: Methode Hash

Contoh :Contoh :

Ada kunci 30 dan 40, dengan N = 12, maka P = 13 Ada kunci 30 dan 40, dengan N = 12, maka P = 13

30 mod P = 4,30 mod P = 4, didapat dari 30 dibagi 13 hasilnya 2 sisa 4 didapat dari 30 dibagi 13 hasilnya 2 sisa 4

40 mod P = 1,40 mod P = 1, didapat dari 40 dibagi 13 hasilnya 3 sisa 1 didapat dari 40 dibagi 13 hasilnya 3 sisa 1

Page 21: Methode Hash

Hashing dengan lipatanHashing dengan lipatan

Fungsi ini akan melipat digit pada batasan yang Fungsi ini akan melipat digit pada batasan yang ditentukan berdasarkan kondisi digit awal dan digit yang ditentukan berdasarkan kondisi digit awal dan digit yang akan dihasilkan.akan dihasilkan.

Contoh : ada kunci 9 digit 589 976 124 Contoh : ada kunci 9 digit 589 976 124

Selanjutnya akan kita lipat mengikuti lipatan kertasSelanjutnya akan kita lipat mengikuti lipatan kertas

Page 22: Methode Hash

9 7 6

Page 23: Methode Hash

Penjumlahan dari susunan yang telah Penjumlahan dari susunan yang telah dibuat dibuat

Mengabaikan CarryMengabaikan Carry menggunakan menggunakan CarryCarry

Page 24: Methode Hash

Hashing dengan pengkuadratanHashing dengan pengkuadratan

Hashing ini cara kerjanya adalah Hashing ini cara kerjanya adalah mengkuadratkan kunci. Hasil pengkuadratan mengkuadratkan kunci. Hasil pengkuadratan kemudian dapat dikombinasikan dengan kemudian dapat dikombinasikan dengan pemotongan atau lipatan untuk mendapatkan pemotongan atau lipatan untuk mendapatkan alamat yang diijinkan.alamat yang diijinkan.

Contoh :Contoh :

Pengkuadratan kunci Pengkuadratan kunci 782782

Page 25: Methode Hash

Hashing dengan konversi Radix Hashing dengan konversi Radix

Dalam konversi radix, kunci dianggap dalam Dalam konversi radix, kunci dianggap dalam base selain 10, yang kemudian di konversi ke base selain 10, yang kemudian di konversi ke dalam basis 10.dalam basis 10.

Contoh = ada kunci 5 6 7 8 dalam base 13 Contoh = ada kunci 5 6 7 8 dalam base 13

Posisi :Posisi : 33 22 11 00

55 66 77 88