Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Proses pencarian : Waktu Pencarian ≈ Jumlah perbandingan Bagaimana agar waktu pencarian konstan, artinya tidak tergantung pada jumlah perbandingan ? 

Presentasi serupa


Presentasi berjudul: "Proses pencarian : Waktu Pencarian ≈ Jumlah perbandingan Bagaimana agar waktu pencarian konstan, artinya tidak tergantung pada jumlah perbandingan ? "— Transcript presentasi:

1

2 Proses pencarian : Waktu Pencarian ≈ Jumlah perbandingan Bagaimana agar waktu pencarian konstan, artinya tidak tergantung pada jumlah perbandingan ?  Fungsi HASH

3 Fungsi Hash Fungsi Hash  mengubah data menjadi alamat data. DATA ALAMAT DATA Fungsi HASH Fungsi HASH

4 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 AlamatNAMAKOTA … 22 23 24 25 … 28 29AMANPKY … 50 51BUSISBY 52CUSIJKT …

5 Fungsi HASH Keuntungan Waktu pencarian tetap/konstan Tidak tergantung dari besarnya atau jumlah data

6 Fungsi HASH Kelemahan “Kolisi”, artinya beberapa data yang berbeda menghasilkan nilai fungsi hash yang sama. Pemilihan ukuran tabel terlalu kecil  overflow terlalu besar  pemborosan Penghapusan suatu data sulit dilakukan Tidak ada hubungan antara letak data dan ketentuan data, artinya tidak ada hubungan antara satu data dengan data lainnya  sulit untuk melakukan sorting

7 Fungsi HASH Fungsi HASH terbagi atas 2 macam: 1. Fungsi Hash terbuka (external hashing) 2. Fungsi Hash tertutup

8 Fungsi Hash Terbuka Fungsi hash memperoleh alamat dari kelompok-kelompok data. Artinya, fungsi hash tidak menunjuk langsung ke suatu data, melainkan ke suatu kelas data. h(x) = 

9 Fungsi Hash Terbuka Jika terdapat N buah data, yang akan ditempatkan dalam tabel berukuran B, maka setiap kelas data akan menampung sebanyak rata-rata N/B buah data.

10 Fungsi Hash Tertutup Data disimpan pada tabel itu sendiri. Jika terjadi kolisi, maka dilakukan Rehash, yaitu melakukan perhitungan fungsi hash lagi hingga didapatkan posisi T[h(z)] yang kosong.

11 Bagaimana membuat Fungsi Hash? Ada 5 Teknik dasar : 1.Konkatenasi 2.Ekstraksi 3.Kompresi 4.Pembagian 5.Perkalian

12 Konkatenasi Alamat diperoleh gabungan huruf dalam data. Contoh: Jika A=00001, B=00010, C=00011, D=00100, …, Z=11010 maka THE beralamat 10100 2 +01000 2 +00101 2 = 20741 10 Maka alamat THE adalah 20741

13 Konkatenasi Kelemahan 1.Ukuran tabel yang digunakan dapat menjadi sangat besar yang mengakibatkan 2.Kebutuhan memori banyak 3.Isi tabel berpencar dan banyak tempat kosong.

14 Ekstraksi Alamat ditentukan dengan mengambil beberapa bit saja dari bit-bit data lalu digabungkan. Contoh: mengambil bit ke-3 huruf pertama dan dua bit terakhir huruf terakhir T = 10100 H = 0100 E = 00101 sehingga alamat utk THE = 101 2 = 5 10

15 Ekstraksi Kelemahan: Kemungkinan terjadi kolisi jika huruf-huruf pada posisi yang diambil nilai bitnya sama. Misal: THE, TIME, THERE Atau kata yang berawal huruf T, F, O, D, G, W (bit ke-3 adalah 1) dan berakhir dengan E, M, Y, A (2 bit terakhir adalah 01)

16 Kompresi Melibatkan semua bit data, misalnya dengan menggunakan relasi XOR. Contoh:T = 10100 H = 01000 E = 00101 XOR 11001 = 25 10

17 Kompresi Kelemahan: Prinsip komutatif relasi XOR, yaitu A xor B = B xor A Sehingga data-data yang terdiri atas huruf yang sama akan menghasilkan nilai XOR yg sama juga. THE = TEH = HET = HTE IKAL = KALI = AKIL = LAKI = KAIL

18 PEMBAGIAN Pembagian akan mendistribusikan nilai fungsi hash di dalam suatu selang tertentu. Contoh : h(z) = z mod m Hasilnya 0 ≤ h(z) ≤ (m-1) h(THE) = h(101000100000101 2 ) mod 31 =h(20741 10 ) mod 31 =2

19 Pembagian Kelemahan: Sangat bergantung pada pemilihan nilai pembagi m. Jika suatu bilangan d sedemikian m mod d = 0 maka h(z) = z mod m = z mod d Akibatnya nilai fungsi hash tidak terdistribusi merata, atau terjadi pengelompokan primer.

20 Pembagian Pemilihan nilai m : m haruslah bilangan prima m jangan berbentuk r k ± a, dimana a bernilai kecil. Misal k = 5, maka m janganlah bilangan di sekitar 32, 32 2 = 1024, 32 3 = 32768, dsb.

21 Perkalian Fungsi hash dihitung dengan rumus : h(z) = trunc (m * fraction (z * a)), 0 ≤ a < 1 fungsi ini menghasilkan nilai 0 ≤ h(z) < m

22 Perkalian Penentuan nilai a harus tepat Untuk nilai a mendekati 0 atau 1, elemen- elemen bernilai kecil akan cenderung mengelompok dalam suatu cluster. Secara teoritis harga a yang baik adalah a = 0,6180339887 a = 0,3819660113

23 Resolusi Kolisi Pada umumnya, jumlah kemungkinan data yang akan disimpan lebih banyak dibandingkan dengan ukuran tabel yang disediakan sehingga fungsi hash yang sudah dirancang secara cermat pun tidak mampu mencegah terjadinya kolisi. Resolusi kolisi = proses untuk menunjukkan posisi yang lain untuk menyimpan data z jika terjadi kolisi.

24 Resolusi Kolisi Sediakan beberapa tempat pada tiap posisi tabel. Tempat untuk tiap posisi tabel ini dapat dilakukan dengan linked list. Posisi data z dalam linked list dapat ditentukan dengan kombinasi nilai z dan indeks list. Metode ini disebut teknik chaining.

25 Resolusi Kolisi Teknik chaining Teknik Separate Chaining

26 Resolusi Kolisi Teknik chaining T[i] Link[i] Teknik Coalesced Chaining 110111112113114115116117118119 imeof 000011600000

27 Resolusi Kolisi Teknik Linear Probing Tanpa mencatat link, melainkan mencari tempat kosong dari posisi yang ditunjukkan nilai fungsi hash.


Download ppt "Proses pencarian : Waktu Pencarian ≈ Jumlah perbandingan Bagaimana agar waktu pencarian konstan, artinya tidak tergantung pada jumlah perbandingan ? "

Presentasi serupa


Iklan oleh Google