Summary
Linked List
Linked list adalah sebuah data structure yang sederhana.
Linked list merupakan element yang berurutan dan element yang satu memiliki
hubungan dengan element selanjutnya. Linked list dapat berisi berbagai tipe
data seperti string, char, int, dan lain-lain. Element yang ada di dalamnya
bisa berurutan atau tidak berurutan. Lalu juga bisa berupa element yang sama
maupun element yang unik.
Linked list dan array memiliki banyak persamaan. Walau begitu
tetap keduanya memiliki perbedaan. Array memiliki index, sehingga jika ingin
mencari nilai dari element ke berapa, kita dengan mudah akan menemukannya
sebagai contoh a[3] (nilai dari element ke 3 ada di indeks ke 4). Sedangkan
dengan linked list, kita perlu untuk mulai dari kepala atau element yang
pertama sampai ke element yang ke 4. Sehingga prosesnya akan lebih lambat dari
pada pencarian menggunakan array.
Linked list adalah kumpulan linear dari nodes, sedangkan
array adalah kumpulan linear dari data element. Array menyimpan nilai di satu
lokasi memory untuk seterusnya. Sedangkan linked list sebaliknya.
Keuntungan menggunakan linked list adalah kita bisa
memasukan atau menghapus element dengan waktu yang cepat karena konstan. Linked
list juga ada dua tipe yaitu single dan double. Singe linked list adalah tiap
element saling berhubungan satu arah dengan element lain. Sedangkan untuk
double linked list berhubungan dua arah dengan element yang lain. Sebagai
contoh linked list single, element pertama berhubungan dengan element
selanjutnya dan seterusnya. Sedangkan double linked list, element pertama dan
kedua saling berhubuungan.
LINKED LIST II
Circular linked
list adalah linked list dimana semua nodenya saling menyatu atau berhubungan
kedalam suatu bentuk lingkaran. Tidak ada NULL di akhirnya. Circular linked
list bisa single bisa double. Ada keunggulan dalam menggunakan circular linked
list. Seperti kita dapat traverse keseluruhan listnnya mulai dari titik
manapun. Semua node bisa menjadi node pembuka atau starting pointnya. Kita
hanya perlu berhenti ketika node pertama dikunjungi lagi. Berguna dalam
mengimplementasikan dalam antrian. Kita tidak perlu menggunakan dua pointer
untuk menentukan mana yang depan dan mana yang belakang. Kita bisa
mempertahankan pointer hanya dengan mengetahui siapa pointer pertamanya.
Circular linked list juga berguna dalam mengoperasikan suatu system. Untuk
mengurutkan suatu aplikasi dan menjalankannya dengan sistematis. Memberikan
waktu untuk menjalankannya.
Doubly linked
list mirip seperti linked list. Dimana single linked list memilliki dua field
atau tempat. Yang satu untuk menyimpan data dan yang satunya lagi untuk
menyimpan alamat dari node selanjutnya. Untuk setiap node hanya ada satu link
atau satu jembatan yang menghubunginya. Bedanya dengan yang doubly linked list
adalah mereka memiliki 2 link atau 2 jembatan diantara nodenya. Keungullan
dalam menggunakan doubly linked list adalah kita mempunyai pointer ke node
manapun. Serta kita bisa menfowardkannya. Hanya dengan satu pointer kita bisa
melihat node yang pertama dan node yang berikutnya sekaligus. Dalam menghapus
sebuah element dalam single linked list juga memerlukan dua pointer dalam
melaksanakannya. Sedangkan doubly linked list hanya membutuhkan satu pointer
saja.
Circular doubly
linked list mirip dengan circulat single linked list hanya saja, pointer di
setiap node memiliki 2 pointer.
Hash table =>
Adalah data structure yang menyimpan data berdasarkan pola yang ada di dalam data tersebut. Dalam Hash Table data disimpan dalam format Array, dimana setiap nilai dalam data tersebut memiliki nilai index yang unik. Kita dapat mengakses data dengan sangat cepat jika kita tahu index data yang kita inginkan.
Hashing
Hashing adalah Teknik dalam mencari nilai dengan kunci yang spesifik, sehingga dapat di akses dengan efisien dan mudah.
Hash table sering dipakai dalam aplikasi yang modern. Hash table digunakan untuk menyimpan nilai per kunci, untuk melakukan pencarian dengan efficient tanpa bergantung pada linear search. Sebagai gambaran Hashing, seperti di perpustakaan. Buku-buku yang ada memiliki kode yang unik yang bisa digunakan untuk mencari informasi tentang buku yang sedang kita cari. Dengan menggunakan system computer di perpustakaan, kita dapat mengetahui posisi yang jelas akan buku yang kita cari di perpustakaan setelah memasukan kode tersebut.
Hash Function =>
Beberapa contoh cara melakukan hash.
1. Simple Mod Function
Source
2. Mid Square Method
Source
3. String Folding
Source
Itu adalah beberapa contoh dari function dalam hashing.
Hash Table dalam implementasi blockchain:
Hash dibuat dengan algoritma dan berhubungan dengan blockchain management dalam cryptocurrency. Cryptocurrency basisnya adalah blockchain yang dimana kumpulan financial report atau pembukuan keuangan saling bergabung atau berhubungan tiap individual block nya dengan data transaksi.
Blockchain hanya mengandung transaksi yang valid. Sehingga mencegah terjadinya penipuan dan penggunaan yang terdouble dalam bertransaksi. Hasilnya akan mengubah dan membeeikan kode yang unik baik dalam angka maupun huruf yang berbeda dan unik antara satu data dengan data yang lainnya. Dalam penggunaannya tentu hashing memerlukan proses data dari block melalui mathematical function, yang akan memberikan hasil Panjang output yang fix. Sehingga inilah mengapa hash diimplementasikan dalam blockchain. Contoh cryptocurrency adalah bitcoin.
Source bacaan saya:
Tree=>
Adalah data structure yang mempresentasikan tentang hubungan antara data secara hierarki.
Binary Tree
Adalah tree yang dimana paling banyak hanya memiliki 2 element. Karena hanya memiliki 2 element kita biasa menamainya dengan left and right child.
Perfect Binary Tree
Complete Binary Tree
Comments
Post a Comment