Hashing
Hashing adalah sebuah teknik untuk mengidentifikasi suatu objek spesifik dalam kelompok objek yang sama.
Hash Function
Sebuah fungsi yang mengubah angka yang besar menjadi integer yang kecil. Integer yang kecil ini akan dipakai sebagai index di dalam hash table.
Contohnya : Nomor telepon memliki hash function yang buruk jika menggunakan tiga digit pertama maka hash function yang baik untuk nomor telepon adalah memakai tiga digit terakhir.
Hash Table
Hash Table adalah sebuah array yang menyimpan pointers yang bersambungan dengan sebuah angka. Entry dalam hash table adalah NIL jika tidak ada angka yang memiliki hash function value yang sama dengan index entry tersebut.
Dalam hash table ada kemungkinan 2 key memiliki value yang sama. Situasi ini dapat dinamakan collision dan memiliki 2 solusi yaitu chaining dan open addresing
Hash Table implementation in Blockchain
Tulang punggung cryptocurrency adalah blockchain, yang merupakan buku besar global yang dibentuk dengan menghubungkan bersama-sama satu blok data transaksi. Blockchain hanya berisi transaksi yang divalidasi, yang mencegah transaksi penipuan dan pengeluaran ganda mata uang. Nilai terenkripsi yang dihasilkan adalah serangkaian angka dan huruf yang tidak menyerupai data asli dan disebut hash. Penambangan cryptocurrency melibatkan bekerja dengan hash ini.
Hashing membutuhkan pemrosesan data dari blok melalui fungsi matematika, yang menghasilkan output dengan panjang tetap. Menggunakan output dengan panjang tetap meningkatkan keamanan karena siapa pun yang mencoba mendekripsi hash tidak akan dapat mengetahui berapa lama atau pendek input hanya dengan melihat panjang output.
Binary Tree

Binary Tree adalah hierarchial data structure, sebuah tree dimana elementnya memiliki paling banyak 2 anak. Node yang paling atas dinamakan root sedangkan anaknya dinamakan right child dan left child. Node yang tidak memiliki anak dinamakan leaves.
Main application for binary trees adalah:
- Manipulasi Hierachial data
- Membuat informasi mudah untuk dicari
- Manipulasi sorted lists of data
- Algoritma router
- Sebuah bentuk dari multi-stage decision-making
Traversals
Traversal adalah proses yang mengunjungi semua node di pohon. Karena pohon adalah struktur data nonlinier, tidak ada traversal yang unik. Kami akan mempertimbangkan beberapa algoritma traversal dengan kami mengelompokkan dalam dua jenis berikut
- Depth-first traversal
- Breadth-first traversal
Ada 3 jenis dari Depth-first traversal yaitu:
- PreOrder traversal - kunjungi orang tua terlebih dahulu lalu anak kiri dan kanan;
- InOrder traversal - kunjungi anak kiri, lalu orang tua dan anak kanan;
- PostOrder traversal - kunjungi anak kiri, lalu anak kanan dan kemudian orang tua;
Hanya ada 1 jenis dari Breadth-first traversal yaitu level order traversal. traversal ini mengunjungi semua node dari level atas ke bawah dan dari kiri ke kanan.