Hashing table & Binary Tree

Hashing Table

Hashing adalah sebuah cara untuk mengetahui objek secara spesifik dari kumpulan objek yg mirip.

Sedangkan Hash Table adalah 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.

Operasi pada hash table:

  • insert: diberikan sebuah key dan nilai, insert nilai dalam tabel
  • find: diberikan sebuah key, temukan nilai yang berhubungan dengan key
  • remove: diberikan sebuah key,temukan nilai yang berhubungan dengan key, kemudian hapus nilai tersebut
  • getIterator: mengambalikan iterator,yang memeriksa nilai satu demi satu
Contoh deklarasi hash table dalam coding:

HASHTBL *hashtbl_create(hash_size size, hash_size
(*hashfunc)(const char *))
{
HASHTBL *hashtbl;
if(!(hashtbl=malloc(sizeof(HASHTBL)))) return NULL;
free(hashtbl);
return NULL;
}
hashtbl->size=size;
if(hashfunc) hashtbl->hashfunc=hashfunc;
else hashtbl->hashfunc=def_hashfunc;
return hashtbl;
}

Binary Tree

Binary Tree merupakan bentuk struktur data yang tidak linier yang menggambarkan hubungan hierarchy (one to many) antara elemen-elemennya. Selain itu binary tree juga merupakan suatu tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal 2 subtree dan kedua subtree tersebut tidak boleh saling berhubungan.

  • Perfect binary tree, tiap nodenya (kecuali node terakhir) memiliki 2 child dan tiap subtree mempunyai panjang path yang sama
Image result for binary tree
  • Complete binary tree, subtree boleh memiliki panjang berbeda, selain node terakhir memili 0 atau 2 child


Image result for binary tree
  • Skewed binary tree, semua node kecuali node terakhir hanya memiliki 1 child
Image result for binary tree skewed

Hashing Table Implementation in Blockchain

Secara sederhana, hashing berarti mengambil string input dengan panjang berapa pun 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.


Source:

Comments

Popular posts from this blog

Laporan Akhir Mata Kuliah Human and Computer Interaction Aplikasi Predical

FINAL SUMMARY