1 / 27

STRUKTUR DATA FUNGSI HASH

PERTEMUAN KE-23 Senin , 20 Desember 2010. STRUKTUR DATA FUNGSI HASH. Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya. Proses pencarian : Waktu Pencarian ≈ Jumlah perbandingan

studs
Download Presentation

STRUKTUR DATA FUNGSI HASH

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PERTEMUAN KE-23 Senin, 20 Desember 2010 STRUKTUR DATAFUNGSI HASH Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya

  2. Prosespencarian : WaktuPencarian≈ Jumlahperbandingan Bagaimana agar waktupencariankonstan, artinyatidaktergantungpadajumlahperbandingan ?  Fungsi HASH

  3. Fungsi Hash • Fungsi Hash  mengubah data menjadialamat data. Fungsi HASH DATA ALAMAT DATA

  4. Fungsi Hash • Contoh: A=1, B=2, C=3, … , Z=26, maka AMAN = 1+13+1+14 = 29 BUSI = 2+21+19+9 = 51 CUSI = 3+21+19+9 = 52

  5. Fungsi HASH Keuntungan • Waktupencariantetap/konstan • Tidaktergantungdaribesarnyaataujumlah data

  6. Fungsi HASH Kelemahan • “Kolisi”, artinyabeberapa data yang berbedamenghasilkannilaifungsi hash yang sama. • Pemilihanukurantabel terlalukecil overflow terlalubesar  pemborosan • Penghapusansuatu data sulitdilakukan • Tidakadahubunganantaraletak data danketentuan data, artinyatidakadahubunganantarasatu data dengan data lainnya sulituntukmelakukan sorting

  7. Fungsi HASH • Fungsi HASH terbagiatas 2 macam: 1. Fungsi Hash terbuka (external hashing) 2. Fungsi Hash tertutup

  8. Fungsi Hash Terbuka • Fungsi hash memperolehalamatdarikelompok-kelompok data. Artinya, fungsi hash tidakmenunjuklangsungkesuatu data, melainkankesuatukelas data. h(x) = 

  9. Fungsi Hash Terbuka • JikaterdapatNbuah data, yang akanditempatkandalamtabelberukuranB, makasetiapkelas data akanmenampungsebanyak rata-rata N/Bbuah data.

  10. Fungsi Hash Tertutup • Data disimpanpadatabelitusendiri. • Jikaterjadikolisi, makadilakukan Rehash, yaitumelakukanperhitunganfungsi hash lagihinggadidapatkanposisi T[h(z)] yang kosong.

  11. BagaimanamembuatFungsi Hash? Ada 5 Teknikdasar : • Konkatenasi • Ekstraksi • Kompresi • Pembagian • Perkalian

  12. Konkatenasi • Alamatdiperolehgabunganhurufdalam data. Contoh: Jika A=00001, B=00010, C=00011, D=00100, …, Z=11010 maka THE beralamat 101002+010002+001012 = 2074110 Makaalamat THE adalah 20741

  13. Konkatenasi Kelemahan • Ukurantabel yang digunakandapatmenjadisangatbesar yang mengakibatkan • Kebutuhanmemoribanyak • Isitabelberpencardanbanyaktempatkosong.

  14. Ekstraksi • Alamatditentukandenganmengambilbeberapa bit sajadari bit-bit data laludigabungkan. Contoh: mengambil bit ke-3 hurufpertamadandua bit terakhirhurufterakhir T = 10100 H = 0100 E = 00101 sehinggaalamatutk THE = 1012 = 510

  15. Ekstraksi Kelemahan: Kemungkinanterjadikolisijikahuruf-hurufpadaposisi yang diambilnilaibitnyasama. Misal: THE, TIME, THERE Ataukata yang berawalhuruf T, F, O, D, G, W (bit ke-3 adalah 1) danberakhirdengan E, M, Y, A (2 bit terakhiradalah 01)

  16. Kompresi • Melibatkansemua bit data, misalnyadenganmenggunakanrelasi XOR. Contoh: T = 10100 H = 01000 E = 00101 XOR 11001 = 2510

  17. Kompresi Kelemahan: Prinsipkomutatifrelasi XOR, yaitu A xor B = B xor A Sehingga data-data yang terdiriatashuruf yang samaakanmenghasilkannilai XOR ygsamajuga. THE = TEH = HET = HTE IKAL = KALI = AKIL = LAKI = KAIL

  18. PEMBAGIAN • Pembagianakanmendistribusikannilaifungsi hash didalamsuatuselangtertentu. Contoh : h(z) = z mod m Hasilnya 0 ≤ h(z) ≤ (m-1) h(THE) = h(1010001000001012) mod 31 = h(2074110) mod 31 = 2

  19. Pembagian Kelemahan: • Sangatbergantungpadapemilihannilaipembagi m. • Jikasuatubilangan d sedemikian m mod d = 0 maka h(z) = z mod m = z mod d Akibatnyanilaifungsi hash tidakterdistribusimerata, atauterjadipengelompokan primer.

  20. Pembagian Pemilihannilai m : • m haruslahbilangan prima • m janganberbentukrk ± a, dimana a bernilaikecil. Misal k = 5, maka m janganlahbilangandisekitar 32, 322 = 1024, 323 = 32768, dsb.

  21. Perkalian • Fungsi hash dihitungdenganrumus : h(z) = trunc (m * fraction (z * a)), 0 ≤ a < 1 fungsiinimenghasilkannilai 0 ≤ h(z) < m

  22. Perkalian • Penentuannilai a harustepat • Untuknilai a mendekati 0 atau 1, elemen-elemenbernilaikecilakancenderungmengelompokdalamsuatu cluster. • Secarateoritisharga a yang baikadalah a = 0,6180339887 a = 0,3819660113

  23. ResolusiKolisi • Padaumumnya, jumlahkemungkinan data yang akandisimpanlebihbanyakdibandingkandenganukurantabel yang disediakansehinggafungsi hash yang sudahdirancangsecaracermat pun tidakmampumencegahterjadinyakolisi. • Resolusikolisi = prosesuntukmenunjukkanposisi yang lain untukmenyimpan data z jikaterjadikolisi.

  24. ResolusiKolisi • Sediakanbeberapatempatpadatiapposisitabel. Tempatuntuktiapposisitabelinidapatdilakukandengan linked list. • Posisi data z dalam linked list dapatditentukandengankombinasinilai z danindeks list. Metodeinidisebutteknik chaining.

  25. ResolusiKolisi Teknik chaining Teknik Separate Chaining

  26. ResolusiKolisi Teknik chaining T[i] Link[i] Teknik Coalesced Chaining

  27. ResolusiKolisi • Teknik Linear Probing Tanpamencatat link, melainkanmencaritempatkosongdariposisi yang ditunjukkannilaifungsi hash.

More Related