html
1.
memenggal
dan
kemudian
tidak
akan
terlihat
hash
dengan
table : menggunakan
jelas. Akan
tetapi ,
binary
pada kasus
dengan jumlah record yang sangat besar, lebar lokasi penyimpanan yang
kecil, dan banyaknya record yang mempunyai angka hash
pengimplementasian binary search
yang sama,
perbedaan waktu akses yang lebih cepat dari pada menggunakan metode
standar hash table.
Pada struktur
disimpan
juga
dari
rumus
(1 ). Metode
kunci
yang disimpan.
Metode penyimpanan record pada struktur baru ini agak berbeda dengan
metode penyimpanan pada struktur hash table standar, namun metode ini
masih menggunakan keunggulan
kunci dan penggunaan
lokasi
record
dalam tabel.
4. Ada beberapa macam fungsi/metode hash yang relatif sederhana yang
dapat digunakan dalam penyimpanan database :
a. Metode Pembagian Bersisa (division-remainder method)
digunakan sebagai pembagi untuk membagi nilai yang asli dan menghasilkan
sisa. Sisa tersebut adalah nilai hashnya. Secara umum, rumusnya h(k)= k
mod m. Dalam hal ini m adalah jumlah lokasi memori yang tersedia pada
array. Fungsi hash tersebut menempatkan record dengan kunci k pada suatu
lokasi memori yang beralamat h(k). Metode ini sering menghasilkan nilai
hash yang sama dari dua atau lebih nilai aslinya atau disebut dengan
bentrokan. Karena itu, dibutuhkan mekanisme khusus untuk menangani
bentrokan yang disebut kebijakan resolusi bentrokan.
b. Melipat (folding)
Metode ini membagi nilai asli ke dalam beberapa bagian, kemudian
menambahkan nilai-nilai tersebut, dan mengambil beberapa angka terakhir
sebagai nilai hashnya.
c. Transformasi Radiks (radix transformation)
Karena nilai dalam bentuk digital, basis angka atau radiks dapat diganti
sehingga menghasilkan urutan angka-angka yang berbeda. Contohnya nilai
desimal (basis 10) bisa ditransformasikan kedalam heksadesimal (basis 16).
Digit atas hasilnya bisa dibuang agar panjang nilai hash dapat seragam.
d. Pengaturan ulang digit (digit rearrangement)
Metode ini mengubah urutan digit dengan pola tertentu. Contohnya
mengambil digit ke tiga sampai ke enam dari nilai aslinya, kemudian
membalikan urutannya dan menggunakan digit yang terurut terbalik itu
sebagai
nilai
hash.
Fungsi
hash
yang
bekerja
dengan
baik
untuk
hash
https://informatika11d.wordpress.com/2012/11/22/struktur-data-hash-table/
Struktur Data Hash Table
Hash table menggunakan memori penyimpanan utama berbentuk array dengan tambahan
algoritma untuk mempercepat pemrosesan data. Pada intinya hash table merupakan
penyimpanan data menggunakan key value yang didapat dari nilai data itu sendiri. Dengan key
value tersebut didapat hash value. Jadi hash function merupakan suatu fungsi sederhanauntuk
mendapatkan hash value dari key value suatu data. Yang perlu diperhatikan untuk membuat
hash function adalah:
Berikut contoh penggunaan hash table dengan hash function sederhana yaitu memodulus key
value dengan ukuran array : h = k (mod m)
Misal kita memiliki array dengan ukuran 13, maka hash function : h = k (mod 13).
Dengan hash function tersebut didapat :
13
25
12
27
39
Linear Probing
Apabila telah terisi, linear probing mencari alamat lain dengan bergeser 1 indeks dari alamat
sebelumnya hingga ditemukan alamat yang belum terisi data, dengan rumus
(h+1) mod m.
Quadratic Probing
Quadratic Probing mencari alamat baru untuk ditempati dengan proses perhitungan kuadratik
yang lebih kompleks. Tidak ada formula baku pada quadratic probing ini,anda dapat
menentukan sendiri formula yang akan digunakan.
Contoh formula quadratic probing untuk mencari alamat baru:
h,(h+i2)mod m,(h-i2)mod m, ,(h+((m-1)/2)2)mod m, (h-((m-1)/2)2)mod m
dengan i = 1,2,3,4, , ((m-1)/2)
Mksud formula di atas adalah jika alamat h telah terisi, maka alamat lain yang digunakan
adalah (h+1)mod m, jika telah terisi gunakan alamat (h-1)mod m, jika telah terisi gunakan
alamat (h+4)mod m, jika telah terisi gunakan alamat (h-4)mod m, dan seterusnya.
Jadi jika m=23,maka nilai maksimal i adalah : ((23-1)/2)=11.
Double hashing
Sesuai dengan namanya, alamat baru untuk menyimpan data yang belum dapat masuk ke
dalam table diperoleh dengan menggunakan hash function lagi. Hash function kedua yang
digunakan setelah alamat yang dihasilkan oleh hash function awal telah terisi tentu saja
berbeda dengan hash function awal itu sendiri.
Kelemahan dari closed hashing adalah ukuran array yang disediakan harus lebih besar dari
jumlah data. Selain itu dibutuhkan memori yang lebih besar untuk meminimalkan collision.
2. Open hashing (Separate Chaining)
Pada dasarnya separate chaining membuat tabel yang digunakan untuk proses hashing menjadi
sebuah array of pointer yang masing-masing pointernya diikuti oleh sebuah linked list, dengan
chain (mata rantai) 1 terletak pada array of pointer, sedangkan chain 2 dan seterusnya
berhubungan dengan chain 1 secara memanjang.
Kelemahan dari open hashing adalah bila data menumpuk pada satu/sedikit indeks sehingga
terjadi linked list yang panjang.
2
3
6
7
8
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
10
11
owners.
12
13
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
14
15
16
17
18
19
20
21
22
+--------------------+
| information_schema |
| mahasiswa
| mysql
| performance_schema |
| test
23
| universitas
24
+--------------------+
25
26
27
28
Database changed
29
30
31
+------------------+-------------------------------------------+-------------+
32
| user
33
+------------------+-------------------------------------------+-------------+
34
35
36
| password
| host
| root
| *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | localhost
| ilkom_admin
| *7438236BE048F242AA18D2EE074296F078CD701A | localhost
| mahasiswa
| *7438236BE048F242AA18D2EE074296F078CD701A | localhost
37
38
39
40
41
42
43
44
| ekonomi_admin
| *7438236BE048F242AA18D2EE074296F078CD701A | localhost
| tamu
| localhost
| dosen_ilkom
| *7438236BE048F242AA18D2EE074296F078CD701A | localhost
| *7438236BE048F242AA18D2EE074296F078CD701A | %
| ilkom_admin1
| *7438236BE048F242AA18D2EE074296F078CD701A | localhost
+------------------+-------------------------------------------+-------------+
13 rows in set (0.16 sec)
45
+-------------------------------------------+
| PASSWORD('qwerty')
+-------------------------------------------+
| *AA1420F182E88B9E5F874F6FBE7459291E8F4601 |
+-------------------------------------------+
+-------------------------------------------+
| PASSWORD('r4hasia')
+-------------------------------------------+
| *7438236BE048F242AA18D2EE074296F078CD701A |
+-------------------------------------------+
6
1 row in set (0.00 sec)
Fungsi hashing ini dirancang untuk tidak bisa ditebak dari apa kata
password yang asli berasal. Namun bagaimana jika terdapat user yang
lupa passwordnya sendiri? Caranya adalah dengan membuat password
baru untuk user tersebut, atau menghapus password tersebut. Langkahlangkah untuk merubah dan menghapus password user MySQL akan kita
bahas pada tutorial selanjutnya.