HASH TABLE DAN BINARY TREE
Hashing adalah teknik dalam struktur data, dimana teknik ini
digunakan untuk menyimpan dan mengambil / mencari kata kunci dengan cepat dan
efisien. Dalam hashing, string akan ditransformasikan menjadi sebuah kunci yang
mewakili string aslinya. Hashing digunakan untuk mengindeks dan menemukan suatu
value dengan kata kunci yang lebih pendek. Hashing dilakukan untuk menyimpan
data, mencari data, menambah data, dan menghapus data dengan lebih efisien.
Hash Table adalah sebuah struktur data yang terdiri atas table
dan fungsi yang digunakan untuk menyimpan / menaruh key value yang unik untuk
setiap record (baris) menjadi angka (hash).
Contoh simplenya :
|
arr[ ]
|
value
|
|
0
|
algo
|
|
1
|
bahaha
|
|
2
|
cat
|
|
3
|
NULL
|
|
4
|
NULL
|
|
5
|
fly
|
|
6
|
go
|
|
…
|
|
|
25
|
zebra
|
algo terletak pada arr[0] karena dimulai dengan huruf ‘a’,
dimana pemetaan array dimulai dari 0 untuk abjad ‘a’, 1 untuk abjad ‘b’, dst
hinggal 25 untuk ‘z’
ada beberapa cara untuk melakukan hash pada sebuah sebuah
string, yaitu :
1.
Mid-square -> teknik hashing dengan
mengkuadratkan value dari string, kemudian diambik digit tengahnya dan
dijadikan sebagai key value. Namun, dalam teknik ini ada batasannya, yaitu saat
value yang dikuadratkan memiliki 6 digit, maka saat dikuadratkan akan mencapai
12 digit. Tentu saja ini akan mengakibatkan overflow pada int. Hal ini harus diurus,
seperti dengan mengganti int menjadi long. Cara ini cukup efisien karena
kemungkinan key value sama sangatlah rendah.
2.
Divison (paling sering digunakan) -> teknik
hashing dengan memodulo nilai asli dengan jumlah lokasi memori yang tersedia. Rumusnya
secara umum adalah h(k) = k mod m, dimana k merupakan key nya dan m merupakan jumlah lokasi memori
yang tersedia pada array. Metode ini sering kali menghasilkan nilai unik yang
sama, sehingga diperlukan mekanisme khusus untuk menanganinya.
3.
Folding -> teknik hashing dengan memagi nilai
kunci menjadi beberapa bagian dimana setiap bagiannya memiliki jumlah digit
yang sama dengan alamat relative.
4.
Digit Extraction -> teknik hashing dengan
menentukan digit dari angka yang diberikan sebagai hash address.
5.
Rotating hash
TREE
Tree merupakan salah satu bentuk struktur data tidak linear
yang menggambarkan hubungan yang bersifat hirarkis. Tree bias didefinisikan
sebagai kumpulan simpul node dengan satu elemen khusus yang disebut Root dan
dnode lainnya.
Ada beberapa istilah dalam tree, yaitu sbb :
1.
Parent : Node yang berada 1 level diatas suatu
node
2.
Child : Node yang berada 1 level dibawah suatu
node
3.
Sibling : Node yang memiliki parent sama
4.
Root : Node khusus yang tidak memiliki node
diatasnya
5.
Degree : Banyaknya child yang dimiliki oleh
suatu node
Komentar
Posting Komentar