Sunday, March 15, 2020

Hashing Table & Binary Tree

Hashing Table & Binary Tree

A. Hashing
  • Hashing adalah suatu teknik yang digunakan untuk menyimpan dan menggunakan kembali kunci kunci dengan cara yang cepat.
  • Dalam hashing, suatu string karakter dapat diubah menjadi panjang nilai yang lebih pendek atau kunci yang mewakili string yang asli.
  • Hashing dapat digunakan sebagai index dan mengembaliken barang dalam bentuk database karena lebih cepat untuk mencari barang menggunakan kunci hashed dari pada mencari nilai aslinya.
  • Hashing dapat juga diartikan sebagai konsep mendistribusikan kunci-kunci dalam suatu array yang disebut hash table dengan menggunakan fungsi tertentu yang disebut hash function.
>>Hash Function digunakan untuk memetakan sebuah nilai yang diberikan dengan sebuah kunci khusus untuk mempercepat akses dari isi-isinya. Efisiensi dari pemetaan tergantung pada efisiensi penggunaan efisiensi hash function.
Sebuah hash function yang bagus biasanya mencakupi, komputasi yang efisien dan secara seragam mendistribusi tiap kuncinya.

>>Hash table adalah suatu array yang menyimpan poimnter ke record yang sesuai ke nomornya. sebuah masukan ke hash table adalah NULL jika tidak ada nomor yang punya hash function yang nilainya sama dengan index masukan.
ukuran dari hash table juga biasanya sesuai dengan beberapa urutan dari besar kecilnya dari jumlah total dari string yang memungkinkan, sehingga beberapa string dapat memiliki hash key yang sama. 
B. Binary Tree
Tidak seperti array, linked list, stack dan queues, yaitu data struktur linear, trees ini lebih seperti data struktur hierarki. Sebuah binary tree adalah sebua pohon data struktur yang setiap cabangnya memiliki setidaknya 2 anak, yang di referensi sebagai anak kiri dan anakakanan. Biasanya binary tree dipakai dengan menggunakan Links.

Representasi binary tree biasanya seperti suatu pointer dari cabang bagian paling atas sebuah pohon. Jika tree tersebut kosong, maka nilai dari akarnya adalah NULL, sebuah cabang binary tree daoat berisi data, pointer dari anak kiri dan pointer dari anak kanan.
Binary tree dapat dilalui dari kiri-akar-kanan(inorder), preorder(akar-kiri-kanan) dan postorder(kiri-kanan-akar).

C. Implementation
Hashing table digunakan pada blockchain yang bersangkutan dengan proses memasukkan inpun baranng dari panjang yang merefleksi output dari barang dengan panjang yang sesuai. jika kita ambil contoh dari blockchain yang menggunakan cryptocurrencies, transaksi dari panjang yang berbagai macam, dapat melawati sebuah algoritma hashing dan semua memberikan output dengan panjang yang sesuai.

Monday, March 9, 2020

Linked List (2.0)

Linked List (2.0)
 Pada penggunaan linked list terdapat 2 cara untuk memasukkan data atau menghapus data yang disebut dengan Push dan Pop.
Push bekerja sebagai pemasukkan data sedangkan Pop digunakan untuk menghapus data.
 Push dan Pop ini bekerja pada letak data yang sama yaitu, push depan, push belakang, pop depan dan pop belakang.
 Push dan pop ini pun bekerja pada single linked list maupun double linked list.
 Penggunaan push dan pop biasanya diikuti dengan Memory Allocation(Malloc).

PUSH(Single Linked List)
 Push adalah operasi pada linked list yang digunakan untuk memasukkan atau menambahkan node atau data. push depan biasanya memasukkan data ke yang paling depan sedangkan push belakang memasukkan data ke yang paling belakang.
>>KODING Push Depan

>>KODING Push Belakang

untuk men-Sort datanya diperlukan fungsi lagi seperti ini

POP(Single Linked List)
Pop adalah operasi pada linked list yang digunakan untuk menghapus data-data yang ada atau data yang satu. Pop depan adalah penghapusan data yang berada di depan sedangkan pop belakang adalah penghapusan data yang paling belakang.
>>KODING Pop Depan

>>KODING Pop Belakang

Sort pada pop bisa seperti ini


Ada juga fungsi 1 lagi yaitu, Display. Fungsi ini berfungsi untuk menampilkan data yang telah di sort dari push dan pop.