280 likes | 576 Views
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
E N D
PERTEMUAN KE-23 Senin, 20 Desember 2010 STRUKTUR DATAFUNGSI HASH Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya
Prosespencarian : WaktuPencarian≈ Jumlahperbandingan Bagaimana agar waktupencariankonstan, artinyatidaktergantungpadajumlahperbandingan ? Fungsi HASH
Fungsi Hash • Fungsi Hash mengubah data menjadialamat data. Fungsi HASH DATA ALAMAT DATA
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
Fungsi HASH Keuntungan • Waktupencariantetap/konstan • Tidaktergantungdaribesarnyaataujumlah data
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
Fungsi HASH • Fungsi HASH terbagiatas 2 macam: 1. Fungsi Hash terbuka (external hashing) 2. Fungsi Hash tertutup
Fungsi Hash Terbuka • Fungsi hash memperolehalamatdarikelompok-kelompok data. Artinya, fungsi hash tidakmenunjuklangsungkesuatu data, melainkankesuatukelas data. h(x) =
Fungsi Hash Terbuka • JikaterdapatNbuah data, yang akanditempatkandalamtabelberukuranB, makasetiapkelas data akanmenampungsebanyak rata-rata N/Bbuah data.
Fungsi Hash Tertutup • Data disimpanpadatabelitusendiri. • Jikaterjadikolisi, makadilakukan Rehash, yaitumelakukanperhitunganfungsi hash lagihinggadidapatkanposisi T[h(z)] yang kosong.
BagaimanamembuatFungsi Hash? Ada 5 Teknikdasar : • Konkatenasi • Ekstraksi • Kompresi • Pembagian • Perkalian
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
Konkatenasi Kelemahan • Ukurantabel yang digunakandapatmenjadisangatbesar yang mengakibatkan • Kebutuhanmemoribanyak • Isitabelberpencardanbanyaktempatkosong.
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
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)
Kompresi • Melibatkansemua bit data, misalnyadenganmenggunakanrelasi XOR. Contoh: T = 10100 H = 01000 E = 00101 XOR 11001 = 2510
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
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
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.
Pembagian Pemilihannilai m : • m haruslahbilangan prima • m janganberbentukrk ± a, dimana a bernilaikecil. Misal k = 5, maka m janganlahbilangandisekitar 32, 322 = 1024, 323 = 32768, dsb.
Perkalian • Fungsi hash dihitungdenganrumus : h(z) = trunc (m * fraction (z * a)), 0 ≤ a < 1 fungsiinimenghasilkannilai 0 ≤ h(z) < m
Perkalian • Penentuannilai a harustepat • Untuknilai a mendekati 0 atau 1, elemen-elemenbernilaikecilakancenderungmengelompokdalamsuatu cluster. • Secarateoritisharga a yang baikadalah a = 0,6180339887 a = 0,3819660113
ResolusiKolisi • Padaumumnya, jumlahkemungkinan data yang akandisimpanlebihbanyakdibandingkandenganukurantabel yang disediakansehinggafungsi hash yang sudahdirancangsecaracermat pun tidakmampumencegahterjadinyakolisi. • Resolusikolisi = prosesuntukmenunjukkanposisi yang lain untukmenyimpan data z jikaterjadikolisi.
ResolusiKolisi • Sediakanbeberapatempatpadatiapposisitabel. Tempatuntuktiapposisitabelinidapatdilakukandengan linked list. • Posisi data z dalam linked list dapatditentukandengankombinasinilai z danindeks list. Metodeinidisebutteknik chaining.
ResolusiKolisi Teknik chaining Teknik Separate Chaining
ResolusiKolisi Teknik chaining T[i] Link[i] Teknik Coalesced Chaining
ResolusiKolisi • Teknik Linear Probing Tanpamencatat link, melainkanmencaritempatkosongdariposisi yang ditunjukkannilaifungsi hash.