SlideShare une entreprise Scribd logo
1  sur  61
TABEL HASH (HASH TABLE)
1
OVERVIEW
• Hashing
• T
abel Hash
Pengenalan
• Sisa pembagian
• Pemotongan
• Pelipatan
Memilih fungsi
tabel hash
• Pengalamatan terbuka
• Doublr Hashing
• Pembentukan rantai
• Pengalamatan buket
Menangani
tabrakan dalam
tabel hash
2
PENGENALAN HASHING
3
HASHING Metode untuk menyimpan data dalam sebuah
array agar penyimpanan data, pencarian data,
penambahan data, dan penghapusan data
dapat dilakukan dengan cepat.
Metode untuk melakukan penambahan,
penghapusan dan pencarian dengan constant
average time.
PENGENALAN TABEL HASH
Hash Table → sebuah struktur data yang terdiri atas sebuah tabel dan fungsi
yang bertujuan untuk memetakan nilai kunci yang unik untuk setiap record
(baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel.
Menyimpan data pada memori ke dalam baris-baris dan kolom-kolom
sehingga membentuk table yang diakses dengan cepat
4
PENGENALAN TABEL HASH
CONT…
5
TUJUAN
Mendapatkan posisi (lokasi, alamat) record secara langsung (immediate, direct)
pada waktu dicari.
Mempercepat pencarian kembali dari banyak data yang disimpan.
Dapat memotong banyak biaya pencarian
berkas,menghapus data juga lebih mudah dan cepat)
direktori. (memasukkan
Mempercepat table look-up, atau untuk membandingkan data (misalnya
mencari data tertentu dalam sebuah basis data, mendeteksi data yang
terduplikasi dalam sebuah file berukuran besar, dan sebagainya).
Proses menyimpan dan mencari data lebih cepat
6
WHY HASH?
Untuk mengindex sekumpulan array untuk memudahkan proses pencarian.
NIP dalam sebuah Perusahaan menggunakan 5 digit,
Nilai Berkisar antara 00000 -99999. Bila menggunakan array diperlukan array yang mampu
menampung 100.000 elemen.
Fakta yang ada Perusahaan hanya memiliki 100 pegawai. 100.000 elemen akan membuat banyak
ruang tidak terpakai / pemborosan memori.
Berapa jumlah array yang sebaiknya digunakan agar pencarian data menurut kunci bisa dilakukan
dengan cepat? Diperlukan array yang berukuran kecil tetapi bisa menampung semua data.
Bagaimana cara memetakan antara NIP dengan lokasi Array ? Dengan fungsi Hash (hash function).
7
NIP
5 DIGIT
00000 -
99999
8
WHY HASH? CONT…
Total
Pegawai
100 orang
100.000 elemen HASH
Array
• Ukuran tetap (fix)
• Banyak memori yang tidak terpakai
• Boros ruang memori
Linked list
• Ukuran dinamis
• Hemat memori
• Waktu yang dipakai untuk proses search lama
• Boros waktu
9
WHY HASH? CONT…
KELEBIHAN TABEL HAS
1
H
0
Waktu aksesnya yang cukup cepat, jika record yang dicari langsung
berada pada angka hash lokasi penyimpanannya.
Hashing relatif lebih cepat
Kecepatan dalam insertions, deletions, maupun searching relatif sama
Cocok untuk merepresentasikan data dengan frekuensi insert, delete
dan search yang tinggi
KEKURANGAN TABEL HAS
1
H
1
Sering sekali ditemukan hash table yang record-
recordnya mempunyai angka hash yang sama
(bertabrakan).
Sulit (tidak efficient) untuk mencetak seluruh
elemen pada hash table
Tidak efficient untuk mencari elemen minimum or
maximum
IMPLEMENTASI HASH
Mencari pola rantai DNA
Pencarian dan pengarsipan data pada sistem
informasi geografis
Di bidang jaringan computer digunakan untuk
memproses jaringan misalnya pada jaringan ad hoc
bergerak
12
FUNGSI HASH
• Fungsi hash harus memiliki sifat berikut:
• Mudah dihitung.
• Dua key yang berbeda akan dipetakan pada dua sel yang
berbeda pada array.
• Dapat dicapai dengan menggunakan direct-address table
dimana semesta dari key relatif kecil.
• Membagi key secara rata pada seluruh sel.
• Sebuah fungsi hash sederhana adalah menggunakan fungsi
mod (sisa bagi)
13
• Komputasi harus mudah dan cepat
• Harus menghasilkan nilai tersebar
disepanjang jangkauan indeks array.
• Harus dapat cepat dihitung.
• Harus meminimalkan juga collisions
yang terjadi.
Kriteria
Memilih
Fungsi Hash
MEMILIH FUNGSI HAS
1
H
4
METODE FUNGSI HASH15
Metode
Membentuk
Fungsi Hash
Sisa
Pembagian
(Modular
Aritmethic)
Pemotongan
(Truncation)
Kelipatan
(Folding)
FUNGSI HASH :
16
SISAPEMBAGIAN (MODULAR ARITHMETIC)
Sisa dari pembagian dua buah bilangan
Melakukan konversi data ke bentuk bilangan bulat, dibagi dengan ukuran hash
table, dan mengambil hasil sisa baginya sebagai indeks.
Konsep dari sisa pembagian adalah membagi nilai kunci Misalnya NIP pada data
pegawai dengan suatu nilai dan sisa pembagian yang digunakan sebagai alamat
hash.
Secara matematika fungsi hash ditulismenjadi :
H(k) =k mod m, m>n
dengan :
k =kunci
m =suatu bilangan pembagi
n =jumlah data
SISAPEMBAGIAN (MODULAR
ARITHMETIC) CONT…
17
Mengingat k mod m menghasilkan bilangan antara 0 sampai m-1
maka apabila lokasi memori (indeks array) berawal dengan 1, hasil
pembagian perlu ditambah dengan angka 1.
Dengan demikian fungsi hash berupa
• H(k)=(k mod m) +1
18
7003
CONTOH MODULAR ARITHMETIC
19
20
CONTOH MODULAR ARITHMETIC
CONT…
HAI
CONTOH MODULAR ARITHMETIC
CONT…
• Misalnya dibuat Tabel hash yang
memetakan huruf A-Z
• Dibuat kunci yang memetakan ASCII yang
diinputkan
• Dibuat sistem modulus dari 6
• Misal:input → HAI
• H→ 72%6 = 0
• A→ 65%6=5
• I→ 73%
6 =1
21
DISKUSI ?????
22
Hash (x) =x mod 10
Key :45, 72, 39, 48, 56, 77, 91, 63, 84, 90
0
1
2
3
4
5
6
7
8
9
Hash (x) =x mod 6
Key :45, 72, 39, 48, 56, 77, 91, 63, 84, 90
0
1
2
3
4
5
FUNGSI HAS
2
H
4
:
PEMOTONGAN (TRUNCATION)
Dilakukan dengan mengabaikan bagian -
bagian tertentu dalam kunci dan
menggunakan yang tersisa sebagai
indeks untuk mengakses data dalam
tabel hash.
Sebagian dari key dapat dibuang/diabaikan,
bagian key sisanya
digabungkan untuk membentuk index.
CONTOH PEMOTONGAN
(TRUNCATION)
• Key :222345654, 301657434, 123882345, 125456789
T
runcation Delete 6 digit terakhir
222345654 =222 ;simpan 222345654 dilokasi 222
301657434 =301; simpan 301657434 dilokasi 301
123882345 =123; simpan 123882345 dilokasi 123
125456789 =125; simpan 123456789 dilokasi 125
25
CONTOH PEMOTONGAN
(TRUNCATION) CONT
26
FUNGSI HASH27
:
PELIPATAN (FOLDING)
Kunci dibagi-bagi menjadi beberapa bagian misalnya per
dua digit kemudian dijumlahkan .
Hasilnya dipotong sehingga masuk jangkauan indeks dalam
tabel hash
Data dipecah menjadi beberapa bagian, kemudian tiap
bagian tersebut digabungkan lagi dalam bentuk lain.
CONTOH PELIPATAN (FOLDING)
• Contoh: kunci 123456, 234351, 222456, 321654, dilipat menjadi 2 bagian,
setiap 3 digit.
• Maka:
123+654 =777 ;simpan 123456 dilokasi 777
234+153 =387 ;simpan 234351 dilokasi 387
222+654 =876 ;simpan 222456 dilokasi 876
321+456 =777; simpan 321654 dilokasi 777
• Dari perhitungan terjadi kolisi untuk nomor 123456 dan 321654
28
• Contoh: kunci 12345789 , kalikan 3 digit pertama dengan 3 digit terakhir dari
kunci.
• Maka:
123 x 789 =97047 ;simpan 12345789 dilokasi 97047
30
FUNGSI HASH :
PERKALIAN (MULTIPLICATION)
TABRAKAN (COLLISION)
31
MENANGANITABRAK
32
AN
(COLLISION RESOLUTION)
Collision Resolution: Penyelesaian bila terjadi collision (tabrakan)
Situasi yang membuat beberapa kunci memiliki alamat hash yang
sama atau disebut dengan tabrakan hash (hash collision).
Dikatakan terjadi collision jika dua buah keys dipetakan pada
sebuah sel.
Collision bisa terjadi saat melakukan insertion.
Dibutuhkan prosedur tambahan untuk mengatasi terjadinya collision.
METODE MENANGANI TABRAKAN
Pengalamatan
Terbuka (Open
Addressing)
–Closed Hashing
Pembentukan Rantai
(Chaining)
– Open Hashing
Pengalamatan Buket
(Bucket Addressing)
33
OPEN ADDRESSING -
CLOSED HASHING
Pada pengalamatan terbuka semua elemen disimpan dalam tabel
hash itu sendiri.
Ide: mencari alternatif sel lain pada tabel
Pada prosesinsertion, coba sel lain sesuai urutan dengan
menggunakan fungsi pencari urutan seperti berikut:
Fungsi f digunakan sebagai pengatur strategy collision resolution.
Bagaimana bentuk fungsi f?
34
35
Beberapa strategi/alternatif untuk
menentukan bentuk fungsi f,
yaitu:
Open
Addressing
Pemeriksaan
linear (linear
probing)
Quadratic
probing
Double
hashing
OPEN ADDRESSING -
CLOSED HASHING CONT…
36
Key yang bertabrakan ditaruh di slot yang tak
terpakai
Misalnya
• k mod m =k mod 100
Jika kita ingin meng input kan angka 8002,
seharusnya ditaruh di index 2
Dengan menggunakan open addressing angka
8002 ditaruh di index 4
8002
8002
CONTOH CLOSED HASHING
CONTOH CLOSED HASHING
CONT…
37
Fungsi linear relatif paling sederhana dan mudah
diimplementasikan.
Gunakan fungsi linear
f(i)=i
Tabrakan hash ditangani dengan mencari lokasi terdekat yang
masih kosong atau yang dikenal dengan pemeriksaan linear.
Bila terjadi collision, cari posisi pertama pada tabel yang
terdekat dengan posisi yang seharusnya.
LINEAR PROBING
38
• Dapat menimbulkan masalah:
primaryclustering
Elemen-elemen yang menurut perhitungan hash diletakkan pada lokasi
sel berbeda, diarahkan pada sel pengganti yang sama
• Adapun fungsi hash bisa menjadi :
h(k,i) =(h'(k)+i) mod m, m=0..n-1
• Contoh urutan pencarian sbb :
h+1, h+2, h+3 ,..., h+i
• Linear Probing hanya disarankan untuk ukuran hash table yang ukurannya
lebih besar dua kali dari jumlah data.
39
LINEAR PROBING CONT…
• T
abel hash dengan fungsi
• Hash (x) =x mod 10
• Data yang ingin diinput :89, 18, 49, 58, 9
CONTOH LINEAR PROBING
40
0 49
1 58
2 9
3
4
5
6
7
8 18
9 89
• H(89) =89%10 =9
• H(18) =18%10=8
• H(49) =49%10 =9 → collision
• H1 (49) =(9 +1) %10 =0
• H(58) =58%10 =8 → collision
• H1 (58) =(8 +1) %10 =9
• H2 (58) =(8 +2) %10 =0
• H3 (58) =(8 +3) %10 =1(√)
• H(9) =9%10 =9 → collision
• H1 (9) =(9 +1) %10 =0
• H2 (9) =(9 +2) %10 =1
• H3 (9) =(9 +3) %10 =2 (√)
CONTOH LINEAR PROBING
CONT…
41
• Misal terdapat data sebagai berikut
• Data diatas dimasukkan ke dalam urutan yang sama.
• Silahkan isi key pada hash table disamping
menggunakan linear probing
42
DISKUSI ??? (2)
0
1
2
3
4
5
6
7
8
9
• T
erjadi collision key K
• K seharusnya berada di index 5 ditempatkan di index 8
• Melalui 4 probe
• T
erjadi collision key Z
• Zseharusnya berada di index 0 ditempatkan di index 3
• Melalui 4 probe
43
PEMBAHASAN DISKUS
I
0 P Z
1 Q
2 R
3 Z
4
5 A K
6 B
7 C
8 K
9 Y
PROBE BERHASIL DAN PROBE
GAGAL
Probe berhasil adalah dengan menghitung
banyaknya alamat dari alamat yang
seharusnya informasi tersebut berada
sampai alamat dimana informasi tersebut
dicatat.
Probe gagal adalah dengan menjumlahkan
probe yang diperlukan untuk mencari alamat
kosong yang terdekat oleh setiap alamat
yang ada.
44
PEMBAHASAN DISKUS
IKELOMPOK 2
CONT…
• Probe rata-rata pencarian berhasil
• B =(1 +1 +1 +4 +1 +1 +1 +1 +4) / 9
• B =15 / 9 =1.667
• Probe rata-rata pencarian gagal
• P Q R Z - A B C K Y
• B =(5 +4 +3 +2 +1 +10 +9 +8 +7 +6) / 10
• B =55 / 10 =5.5
45
Fungsi hash yang dipakai adalah :
f(key) =key mod 10
Ruang alamat yang tersedia :10 alamat
Metode Collision Resolution yang dipakai adalah Open
Addressing dengan Linear Probing jarak 3
Urutan kunci yang masuk adalah :20, 31, 33, 40, 10, 12, 30,
dan 15
DISKUSI KELOMPOK 3
20
31
12
33
30
40
15
10
Key f Proses Addr 0
20 0 0 0 1
31 1 1 1 2
33 3 3 3 3
40 0 0, 3, 6 6 4
10 0 0, 3, 6, 9 9 5
12 2 2 2 6
30 0 0, 3, 6, 9, 2, 5 5 7
15 5 5, 8 8 8
Probe total = 19 9
PEMBAHASAN DISKUS
IKELOMPOK 3
Probe rata-rata = 19/8
KELEMAHAN LINEAR PROBING
Data cenderung untuk mengumpul pada satu tempat
Hal ini bisa dipahami karena jika ada suatu data yang akan
disisipkan pada suatu alamat dan alamat yang dimaksud sudah
dipakai, maka data baru tersebut akan ditempatkan pada lokasi
berikutnya yang letaknya berurutan.
Primary clustering
48
Menghindari primary clustering dengan menggunakan fungsi:
f(i)=i2
Menimbulkan banyak permasalahan bila hash table telah terisi lebih dari setengah.
Perlu dipilih ukuran hash table yang bukan bilangan kuadrat.
Dengan ukuran hash table yang merupakan bilangan prima dan hash table yang terisi
kurang dari setengah, strategy quadratic probe dapat selalu menemukan lokasi untuk setiap
elemen baru.
OPEN ADDRESSING
49
:
PEMERIKSAAN KUADRATIK(QUADRATIC PROBING)
OPEN ADDRESSING:
PEMERIKSAAN KUADRATIK(QUADRATIC PROBING)
CONT…
Pemeriksaan Kuadratik yang dilakukan dengan urutan sbb :
• h(k,i) =(h'(k)+i2)mod m, i=0..n-1
Contoh urutan pencarian sbb :
• h, h+1, h+4, h+9 ,..., h+i2
Dapat melakukan increment bila terjadi collision
50
52
OPEN ADDRESSING:
53
DOUBLE HASHING
Double hashing, pemeriksaan dilakukan dengan
urutan sbb :
• h(k,i)=(h1(k)+ih2(k))mod m
Dengan h1 dan h2 adalah fungsi hash contoh
pemeriksaan dengan double hashing:
• h1, h1+h2, h1+2h2, h1+3h2 , ...,h1+
i x h2
Baik pada pemeriksaan kuadratik maupun double
hashing , h menyatakan alamat hash yang
diperoleh melalui fungsi hash dan i dimulai dari 0.
Fungsi untuk collision resolution disusun dengan fungsi
hash seperti :
f(i) =i *hash2(x)
Setiap saat faktor hash2(x) ditambahkan pada probe.
Harus hati-hati dalam memilih fungsi hash kedua untuk menjamin
agar tidak menghasilkan nilai 0 dan mem-probe ke seluruh sel.
Salah satu syaratnya ukuran hash table haruslah bilangan prima.
DOUBLE HASHING
CONT…
OPEN ADDRESSING5
:
4
CONTOH DOUBLE HASHING
55
TEKNIK PEMBENTUKAN RANT
5
A
6
I
(CHAINING-OPEN HASHING)
• Permasalahan Collision diselesaikan dengan menambahkan
seluruh elemen yang memilih nilai hash sama pada sebuah set.
• Menyediakan sebuah linked list untuk setiap elemen yang
memiliki nilai hash sama.
• Tiap sel pada hash table berisi pointer ke sebuah linked list
yang berisikan data/elemen.
TEKNIK PEMBENTUKAN RANTAI
(CHAINING-OPEN HASHING) CONT…
• Menambahkan sebuah elemen ke dalam tabel. Dilakukan dengan
menambahkan elemen pada akhir atau awal linkedlist yang sesuai
dengan nilai hash.
• Bergantung apakah perlu ada pengujian nilai duplikasi atau tidak.
• Dipengaruhi berapa sering elemen terakhir akan diakses.
• Untuk pencarian, gunakan fungsi hash untuk menentukan linked
list mana yang memiliki elemen yang dicari, kemudian lakukan
pembacaan terhadap linked list tersebut.
57
TEKNIK PEMBENTUKAN RANTAI
(CHAINING-OPEN HASHING) CONT…
• Penghapusan dilakukan pada linked list setelah pencarian
elemen dilakukan.
• Dapat saja digunakan struktur data lain selain linked list untuk
menyimpan elemen yang memiliki fungsi hash yang sama
tersebut.
• Kelebihan utama dari metode ini adalah dapat menyimpan data
yang tak terbatas. (dynamic expansion).
• Kekurangan utama adalah penggunaan memory pada tiap sel.
58
OPEN HASHING
59
OPEN VS CLOSED HASHING
60
• Closed Hashing
• Open Hashing
CONTOH OPEN HASHING
61
BUCKET ADDRESSING
Teknik pengalamatan buket mirip dengan
pembentukan rantai , namun tabrakan tidak
ditangani dengan link list, melainkan dengan
array.
Buket sendiri diartikan sebagai sebuah blok ruang
memori yang cukup untuk menampung sejumlah
data yang memiliki alamat hash yang sama
62
63
BUCKET ADDRESSING
64
Green
Hall
Jenk
King
Land
Mark
Nutt
30
30
32
33
33
33
33
CONTOH BUCKET ADDRESSING

Contenu connexe

Dernier

MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfChananMfd
 
aksi nyata sosialisasi Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi  Profil Pelajar Pancasila.pdfaksi nyata sosialisasi  Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi Profil Pelajar Pancasila.pdfsdn3jatiblora
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptPpsSambirejo
 
presentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiapresentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiaNILAMSARI269850
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
aksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajaraksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajarHafidRanggasi
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxsyahrulutama16
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSovyOktavianti
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfWidyastutyCoyy
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxSlasiWidasmara1
 
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidupfamela161
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdfanitanurhidayah51
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfNurulHikmah50658
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...Kanaidi ken
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...asepsaefudin2009
 
(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptxSirlyPutri1
 

Dernier (20)

MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdfMAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
 
aksi nyata sosialisasi Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi  Profil Pelajar Pancasila.pdfaksi nyata sosialisasi  Profil Pelajar Pancasila.pdf
aksi nyata sosialisasi Profil Pelajar Pancasila.pdf
 
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.pptLATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
LATAR BELAKANG JURNAL DIALOGIS REFLEKTIF.ppt
 
presentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesiapresentasi lembaga negara yang ada di indonesia
presentasi lembaga negara yang ada di indonesia
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
aksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajaraksi nyata penyebaran pemahaman merdeka belajar
aksi nyata penyebaran pemahaman merdeka belajar
 
vIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsxvIDEO kelayakan berita untuk mahasiswa.ppsx
vIDEO kelayakan berita untuk mahasiswa.ppsx
 
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptxSesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptxMODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
MODUL P5 KEWIRAUSAHAAN SMAN 2 SLAWI 2023.pptx
 
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk HidupUT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
UT PGSD PDGK4103 MODUL 2 STRUKTUR TUBUH Pada Makhluk Hidup
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdf
 
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdfMODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
MODUL 1 Pembelajaran Kelas Rangkap-compressed.pdf
 
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...PELAKSANAAN  + Link-Link MATERI Training_ "Effective INVENTORY &  WAREHOUSING...
PELAKSANAAN + Link-Link MATERI Training_ "Effective INVENTORY & WAREHOUSING...
 
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
Materi Sosiologi Kelas X Bab 1. Ragam Gejala Sosial dalam Masyarakat (Kurikul...
 
(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx(NEW) Template Presentasi UGM 2 (2).pptx
(NEW) Template Presentasi UGM 2 (2).pptx
 

En vedette

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

En vedette (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

Hash Table.pptx

  • 1. TABEL HASH (HASH TABLE) 1
  • 2. OVERVIEW • Hashing • T abel Hash Pengenalan • Sisa pembagian • Pemotongan • Pelipatan Memilih fungsi tabel hash • Pengalamatan terbuka • Doublr Hashing • Pembentukan rantai • Pengalamatan buket Menangani tabrakan dalam tabel hash 2
  • 3. PENGENALAN HASHING 3 HASHING Metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data, dan penghapusan data dapat dilakukan dengan cepat. Metode untuk melakukan penambahan, penghapusan dan pencarian dengan constant average time.
  • 4. PENGENALAN TABEL HASH Hash Table → sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai kunci yang unik untuk setiap record (baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel. Menyimpan data pada memori ke dalam baris-baris dan kolom-kolom sehingga membentuk table yang diakses dengan cepat 4
  • 6. TUJUAN Mendapatkan posisi (lokasi, alamat) record secara langsung (immediate, direct) pada waktu dicari. Mempercepat pencarian kembali dari banyak data yang disimpan. Dapat memotong banyak biaya pencarian berkas,menghapus data juga lebih mudah dan cepat) direktori. (memasukkan Mempercepat table look-up, atau untuk membandingkan data (misalnya mencari data tertentu dalam sebuah basis data, mendeteksi data yang terduplikasi dalam sebuah file berukuran besar, dan sebagainya). Proses menyimpan dan mencari data lebih cepat 6
  • 7. WHY HASH? Untuk mengindex sekumpulan array untuk memudahkan proses pencarian. NIP dalam sebuah Perusahaan menggunakan 5 digit, Nilai Berkisar antara 00000 -99999. Bila menggunakan array diperlukan array yang mampu menampung 100.000 elemen. Fakta yang ada Perusahaan hanya memiliki 100 pegawai. 100.000 elemen akan membuat banyak ruang tidak terpakai / pemborosan memori. Berapa jumlah array yang sebaiknya digunakan agar pencarian data menurut kunci bisa dilakukan dengan cepat? Diperlukan array yang berukuran kecil tetapi bisa menampung semua data. Bagaimana cara memetakan antara NIP dengan lokasi Array ? Dengan fungsi Hash (hash function). 7
  • 8. NIP 5 DIGIT 00000 - 99999 8 WHY HASH? CONT… Total Pegawai 100 orang 100.000 elemen HASH
  • 9. Array • Ukuran tetap (fix) • Banyak memori yang tidak terpakai • Boros ruang memori Linked list • Ukuran dinamis • Hemat memori • Waktu yang dipakai untuk proses search lama • Boros waktu 9 WHY HASH? CONT…
  • 10. KELEBIHAN TABEL HAS 1 H 0 Waktu aksesnya yang cukup cepat, jika record yang dicari langsung berada pada angka hash lokasi penyimpanannya. Hashing relatif lebih cepat Kecepatan dalam insertions, deletions, maupun searching relatif sama Cocok untuk merepresentasikan data dengan frekuensi insert, delete dan search yang tinggi
  • 11. KEKURANGAN TABEL HAS 1 H 1 Sering sekali ditemukan hash table yang record- recordnya mempunyai angka hash yang sama (bertabrakan). Sulit (tidak efficient) untuk mencetak seluruh elemen pada hash table Tidak efficient untuk mencari elemen minimum or maximum
  • 12. IMPLEMENTASI HASH Mencari pola rantai DNA Pencarian dan pengarsipan data pada sistem informasi geografis Di bidang jaringan computer digunakan untuk memproses jaringan misalnya pada jaringan ad hoc bergerak 12
  • 13. FUNGSI HASH • Fungsi hash harus memiliki sifat berikut: • Mudah dihitung. • Dua key yang berbeda akan dipetakan pada dua sel yang berbeda pada array. • Dapat dicapai dengan menggunakan direct-address table dimana semesta dari key relatif kecil. • Membagi key secara rata pada seluruh sel. • Sebuah fungsi hash sederhana adalah menggunakan fungsi mod (sisa bagi) 13
  • 14. • Komputasi harus mudah dan cepat • Harus menghasilkan nilai tersebar disepanjang jangkauan indeks array. • Harus dapat cepat dihitung. • Harus meminimalkan juga collisions yang terjadi. Kriteria Memilih Fungsi Hash MEMILIH FUNGSI HAS 1 H 4
  • 15. METODE FUNGSI HASH15 Metode Membentuk Fungsi Hash Sisa Pembagian (Modular Aritmethic) Pemotongan (Truncation) Kelipatan (Folding)
  • 16. FUNGSI HASH : 16 SISAPEMBAGIAN (MODULAR ARITHMETIC) Sisa dari pembagian dua buah bilangan Melakukan konversi data ke bentuk bilangan bulat, dibagi dengan ukuran hash table, dan mengambil hasil sisa baginya sebagai indeks. Konsep dari sisa pembagian adalah membagi nilai kunci Misalnya NIP pada data pegawai dengan suatu nilai dan sisa pembagian yang digunakan sebagai alamat hash. Secara matematika fungsi hash ditulismenjadi : H(k) =k mod m, m>n dengan : k =kunci m =suatu bilangan pembagi n =jumlah data
  • 17. SISAPEMBAGIAN (MODULAR ARITHMETIC) CONT… 17 Mengingat k mod m menghasilkan bilangan antara 0 sampai m-1 maka apabila lokasi memori (indeks array) berawal dengan 1, hasil pembagian perlu ditambah dengan angka 1. Dengan demikian fungsi hash berupa • H(k)=(k mod m) +1
  • 19. 19
  • 21. CONTOH MODULAR ARITHMETIC CONT… • Misalnya dibuat Tabel hash yang memetakan huruf A-Z • Dibuat kunci yang memetakan ASCII yang diinputkan • Dibuat sistem modulus dari 6 • Misal:input → HAI • H→ 72%6 = 0 • A→ 65%6=5 • I→ 73% 6 =1 21
  • 22. DISKUSI ????? 22 Hash (x) =x mod 10 Key :45, 72, 39, 48, 56, 77, 91, 63, 84, 90 0 1 2 3 4 5 6 7 8 9 Hash (x) =x mod 6 Key :45, 72, 39, 48, 56, 77, 91, 63, 84, 90 0 1 2 3 4 5
  • 23. FUNGSI HAS 2 H 4 : PEMOTONGAN (TRUNCATION) Dilakukan dengan mengabaikan bagian - bagian tertentu dalam kunci dan menggunakan yang tersisa sebagai indeks untuk mengakses data dalam tabel hash. Sebagian dari key dapat dibuang/diabaikan, bagian key sisanya digabungkan untuk membentuk index.
  • 24. CONTOH PEMOTONGAN (TRUNCATION) • Key :222345654, 301657434, 123882345, 125456789 T runcation Delete 6 digit terakhir 222345654 =222 ;simpan 222345654 dilokasi 222 301657434 =301; simpan 301657434 dilokasi 301 123882345 =123; simpan 123882345 dilokasi 123 125456789 =125; simpan 123456789 dilokasi 125 25
  • 26. FUNGSI HASH27 : PELIPATAN (FOLDING) Kunci dibagi-bagi menjadi beberapa bagian misalnya per dua digit kemudian dijumlahkan . Hasilnya dipotong sehingga masuk jangkauan indeks dalam tabel hash Data dipecah menjadi beberapa bagian, kemudian tiap bagian tersebut digabungkan lagi dalam bentuk lain.
  • 27. CONTOH PELIPATAN (FOLDING) • Contoh: kunci 123456, 234351, 222456, 321654, dilipat menjadi 2 bagian, setiap 3 digit. • Maka: 123+654 =777 ;simpan 123456 dilokasi 777 234+153 =387 ;simpan 234351 dilokasi 387 222+654 =876 ;simpan 222456 dilokasi 876 321+456 =777; simpan 321654 dilokasi 777 • Dari perhitungan terjadi kolisi untuk nomor 123456 dan 321654 28
  • 28. • Contoh: kunci 12345789 , kalikan 3 digit pertama dengan 3 digit terakhir dari kunci. • Maka: 123 x 789 =97047 ;simpan 12345789 dilokasi 97047 30 FUNGSI HASH : PERKALIAN (MULTIPLICATION)
  • 30. MENANGANITABRAK 32 AN (COLLISION RESOLUTION) Collision Resolution: Penyelesaian bila terjadi collision (tabrakan) Situasi yang membuat beberapa kunci memiliki alamat hash yang sama atau disebut dengan tabrakan hash (hash collision). Dikatakan terjadi collision jika dua buah keys dipetakan pada sebuah sel. Collision bisa terjadi saat melakukan insertion. Dibutuhkan prosedur tambahan untuk mengatasi terjadinya collision.
  • 31. METODE MENANGANI TABRAKAN Pengalamatan Terbuka (Open Addressing) –Closed Hashing Pembentukan Rantai (Chaining) – Open Hashing Pengalamatan Buket (Bucket Addressing) 33
  • 32. OPEN ADDRESSING - CLOSED HASHING Pada pengalamatan terbuka semua elemen disimpan dalam tabel hash itu sendiri. Ide: mencari alternatif sel lain pada tabel Pada prosesinsertion, coba sel lain sesuai urutan dengan menggunakan fungsi pencari urutan seperti berikut: Fungsi f digunakan sebagai pengatur strategy collision resolution. Bagaimana bentuk fungsi f? 34
  • 33. 35 Beberapa strategi/alternatif untuk menentukan bentuk fungsi f, yaitu: Open Addressing Pemeriksaan linear (linear probing) Quadratic probing Double hashing OPEN ADDRESSING - CLOSED HASHING CONT…
  • 34. 36 Key yang bertabrakan ditaruh di slot yang tak terpakai Misalnya • k mod m =k mod 100 Jika kita ingin meng input kan angka 8002, seharusnya ditaruh di index 2 Dengan menggunakan open addressing angka 8002 ditaruh di index 4 8002 8002 CONTOH CLOSED HASHING
  • 36. Fungsi linear relatif paling sederhana dan mudah diimplementasikan. Gunakan fungsi linear f(i)=i Tabrakan hash ditangani dengan mencari lokasi terdekat yang masih kosong atau yang dikenal dengan pemeriksaan linear. Bila terjadi collision, cari posisi pertama pada tabel yang terdekat dengan posisi yang seharusnya. LINEAR PROBING 38
  • 37. • Dapat menimbulkan masalah: primaryclustering Elemen-elemen yang menurut perhitungan hash diletakkan pada lokasi sel berbeda, diarahkan pada sel pengganti yang sama • Adapun fungsi hash bisa menjadi : h(k,i) =(h'(k)+i) mod m, m=0..n-1 • Contoh urutan pencarian sbb : h+1, h+2, h+3 ,..., h+i • Linear Probing hanya disarankan untuk ukuran hash table yang ukurannya lebih besar dua kali dari jumlah data. 39 LINEAR PROBING CONT…
  • 38. • T abel hash dengan fungsi • Hash (x) =x mod 10 • Data yang ingin diinput :89, 18, 49, 58, 9 CONTOH LINEAR PROBING 40 0 49 1 58 2 9 3 4 5 6 7 8 18 9 89 • H(89) =89%10 =9 • H(18) =18%10=8 • H(49) =49%10 =9 → collision • H1 (49) =(9 +1) %10 =0 • H(58) =58%10 =8 → collision • H1 (58) =(8 +1) %10 =9 • H2 (58) =(8 +2) %10 =0 • H3 (58) =(8 +3) %10 =1(√) • H(9) =9%10 =9 → collision • H1 (9) =(9 +1) %10 =0 • H2 (9) =(9 +2) %10 =1 • H3 (9) =(9 +3) %10 =2 (√)
  • 40. • Misal terdapat data sebagai berikut • Data diatas dimasukkan ke dalam urutan yang sama. • Silahkan isi key pada hash table disamping menggunakan linear probing 42 DISKUSI ??? (2) 0 1 2 3 4 5 6 7 8 9
  • 41. • T erjadi collision key K • K seharusnya berada di index 5 ditempatkan di index 8 • Melalui 4 probe • T erjadi collision key Z • Zseharusnya berada di index 0 ditempatkan di index 3 • Melalui 4 probe 43 PEMBAHASAN DISKUS I 0 P Z 1 Q 2 R 3 Z 4 5 A K 6 B 7 C 8 K 9 Y
  • 42. PROBE BERHASIL DAN PROBE GAGAL Probe berhasil adalah dengan menghitung banyaknya alamat dari alamat yang seharusnya informasi tersebut berada sampai alamat dimana informasi tersebut dicatat. Probe gagal adalah dengan menjumlahkan probe yang diperlukan untuk mencari alamat kosong yang terdekat oleh setiap alamat yang ada. 44
  • 43. PEMBAHASAN DISKUS IKELOMPOK 2 CONT… • Probe rata-rata pencarian berhasil • B =(1 +1 +1 +4 +1 +1 +1 +1 +4) / 9 • B =15 / 9 =1.667 • Probe rata-rata pencarian gagal • P Q R Z - A B C K Y • B =(5 +4 +3 +2 +1 +10 +9 +8 +7 +6) / 10 • B =55 / 10 =5.5 45
  • 44. Fungsi hash yang dipakai adalah : f(key) =key mod 10 Ruang alamat yang tersedia :10 alamat Metode Collision Resolution yang dipakai adalah Open Addressing dengan Linear Probing jarak 3 Urutan kunci yang masuk adalah :20, 31, 33, 40, 10, 12, 30, dan 15 DISKUSI KELOMPOK 3
  • 45. 20 31 12 33 30 40 15 10 Key f Proses Addr 0 20 0 0 0 1 31 1 1 1 2 33 3 3 3 3 40 0 0, 3, 6 6 4 10 0 0, 3, 6, 9 9 5 12 2 2 2 6 30 0 0, 3, 6, 9, 2, 5 5 7 15 5 5, 8 8 8 Probe total = 19 9 PEMBAHASAN DISKUS IKELOMPOK 3 Probe rata-rata = 19/8
  • 46. KELEMAHAN LINEAR PROBING Data cenderung untuk mengumpul pada satu tempat Hal ini bisa dipahami karena jika ada suatu data yang akan disisipkan pada suatu alamat dan alamat yang dimaksud sudah dipakai, maka data baru tersebut akan ditempatkan pada lokasi berikutnya yang letaknya berurutan. Primary clustering 48
  • 47. Menghindari primary clustering dengan menggunakan fungsi: f(i)=i2 Menimbulkan banyak permasalahan bila hash table telah terisi lebih dari setengah. Perlu dipilih ukuran hash table yang bukan bilangan kuadrat. Dengan ukuran hash table yang merupakan bilangan prima dan hash table yang terisi kurang dari setengah, strategy quadratic probe dapat selalu menemukan lokasi untuk setiap elemen baru. OPEN ADDRESSING 49 : PEMERIKSAAN KUADRATIK(QUADRATIC PROBING)
  • 48. OPEN ADDRESSING: PEMERIKSAAN KUADRATIK(QUADRATIC PROBING) CONT… Pemeriksaan Kuadratik yang dilakukan dengan urutan sbb : • h(k,i) =(h'(k)+i2)mod m, i=0..n-1 Contoh urutan pencarian sbb : • h, h+1, h+4, h+9 ,..., h+i2 Dapat melakukan increment bila terjadi collision 50
  • 49. 52
  • 50. OPEN ADDRESSING: 53 DOUBLE HASHING Double hashing, pemeriksaan dilakukan dengan urutan sbb : • h(k,i)=(h1(k)+ih2(k))mod m Dengan h1 dan h2 adalah fungsi hash contoh pemeriksaan dengan double hashing: • h1, h1+h2, h1+2h2, h1+3h2 , ...,h1+ i x h2 Baik pada pemeriksaan kuadratik maupun double hashing , h menyatakan alamat hash yang diperoleh melalui fungsi hash dan i dimulai dari 0.
  • 51. Fungsi untuk collision resolution disusun dengan fungsi hash seperti : f(i) =i *hash2(x) Setiap saat faktor hash2(x) ditambahkan pada probe. Harus hati-hati dalam memilih fungsi hash kedua untuk menjamin agar tidak menghasilkan nilai 0 dan mem-probe ke seluruh sel. Salah satu syaratnya ukuran hash table haruslah bilangan prima. DOUBLE HASHING CONT… OPEN ADDRESSING5 : 4
  • 53. TEKNIK PEMBENTUKAN RANT 5 A 6 I (CHAINING-OPEN HASHING) • Permasalahan Collision diselesaikan dengan menambahkan seluruh elemen yang memilih nilai hash sama pada sebuah set. • Menyediakan sebuah linked list untuk setiap elemen yang memiliki nilai hash sama. • Tiap sel pada hash table berisi pointer ke sebuah linked list yang berisikan data/elemen.
  • 54. TEKNIK PEMBENTUKAN RANTAI (CHAINING-OPEN HASHING) CONT… • Menambahkan sebuah elemen ke dalam tabel. Dilakukan dengan menambahkan elemen pada akhir atau awal linkedlist yang sesuai dengan nilai hash. • Bergantung apakah perlu ada pengujian nilai duplikasi atau tidak. • Dipengaruhi berapa sering elemen terakhir akan diakses. • Untuk pencarian, gunakan fungsi hash untuk menentukan linked list mana yang memiliki elemen yang dicari, kemudian lakukan pembacaan terhadap linked list tersebut. 57
  • 55. TEKNIK PEMBENTUKAN RANTAI (CHAINING-OPEN HASHING) CONT… • Penghapusan dilakukan pada linked list setelah pencarian elemen dilakukan. • Dapat saja digunakan struktur data lain selain linked list untuk menyimpan elemen yang memiliki fungsi hash yang sama tersebut. • Kelebihan utama dari metode ini adalah dapat menyimpan data yang tak terbatas. (dynamic expansion). • Kekurangan utama adalah penggunaan memory pada tiap sel. 58
  • 57. OPEN VS CLOSED HASHING 60 • Closed Hashing • Open Hashing
  • 59. BUCKET ADDRESSING Teknik pengalamatan buket mirip dengan pembentukan rantai , namun tabrakan tidak ditangani dengan link list, melainkan dengan array. Buket sendiri diartikan sebagai sebuah blok ruang memori yang cukup untuk menampung sejumlah data yang memiliki alamat hash yang sama 62