Hashing Table and Binary Tree
HASHING
TABLE
Hash table merupakan salah satu struktur
data yang digunakan dalam penyimpanan data sementara. Tujuan dari hash table
adalah untuk mempercepat pencarian kembali dari banyak data yang disimpan. Ide
utama dari hashing adalah mengubah suatu string menjadi suatu bilangan dengan
suatu fungsi. Hash table menggunakan suatu teknik penyimpanan sehingga waktu yang
dibutuhkan untuk penambahan data (insertions), penghapusan data (deletions),
dan pencarian data (searching) relatif sama dibanding struktur data atau
algoritma yang lain. Yang perlu diperhatikan untuk membuat hash
function adalah:
- ukuran array/table size(m),
-
key value/nilai yang didapat dari data(k),
-
hash value/hash index/indeks yang dituju(h).
Beberapa struktur data dan algoritma
pencarian (searching) yang memiliki kelebihan dan kekurangan masing-masing.
Begitu pula dengan hash table ini juga memiliki kekurangan dan kelebihan.
Kelebihan dari hash table antara lain sebagai berikut:
-
Hash table relatif lebih cepat
- Kecepatan
dalam insertions, deletions, maupun searching relatif sama
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 sederhana untuk
mendapatkan hash value dari key value suatu data. Sebenarnya fungsi hashing itu bebas,
terserah Anda ingin mendefinisikannya seperti apa. Namun, diharapkan fungsi
hashing memiliki kriteria sebagai berikut:
-
Untuk dua buah key yang sama, hasil hashing-nya selalu
sama.
-
Memiliki kompleksitas rendah.
-
Meminimalkan collision (akan dijelaskan pada bagian
selanjutnya).
BINARY TREE
Binary
Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal
dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi
tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak
dua child.
Jenis-jenis Binary Tree :
a)
Full Binary Tree
Binary
Tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap subtree harus
mempunyai panjang path yang sama.
b)
Complete Binary Tree
Mirip
dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang path yang
berbeda. Node kecuali leaf memiliki 0 atau 2 child.
c)
Skewed Binary Tree
Skewed binary tree yakni
Binary Tree yang semua nodenya (kecuali leaf) hanya memiliki satu child.
HASH IN BLOCK
CHAIN
Secara
sederhana, hashing berarti mengambil string input dengan panjang berapapun dan
memberikan output dengan panjang tetap. Dalam konteks cryptocurrency seperti bitcoin, transaksi diambil sebagai input
dan dijalankan melalui algoritma hashing (bitcoin menggunakan SHA-256) yang memberikan output dengan
panjang tetap. SHA-256 adalah Secure Hashing Algorithm 256.
Blockchain
adalah daftar tertaut yang berisi data dan pointer hash yang menunjuk ke blok
sebelumnya, sehingga menciptakan rantai. Hash pointer yaitu sebuah pointer yang
bukan hanya berisi alamat dari blok sebelumnya, tetapi juga berisi hash dari
data di dalam blok sebelumnya.
Sumber
:

Comments
Post a Comment