Di post saya kali ini, saya akan memberikan sebuah review tiap materi yang sudah saya pernah bahas di blog ini, selamat membaca!
Stack
Stack adalah array atau list struktur panggilan fungsi dan parameter yang digunakan dalam pemrograman komputer modern dan arsitektur CPU. Proses menambahkan data ke stack disebut sebagai "push," sementara mengambil data dari stack disebut "pop."
Beberapa implementasi yang bisa kita lakukan pada stack yaitu:
Queue
Linked List
Linked List adalah sebuah struktur data yang terdiri dari beberapa rangkaian catatan data, yang mana di setiap catatan terdapat referensi tentang catatan lainnya yang berada dalam urutan berikutnya dalam rangkaian.
Linked list bisa terbagi menjadi 3, yaitu:
- Circular Single Linked List
- Doubly Linked List
- Circular Doubly Linked List
Circular Single Linked List
Singly Linked List adalah salah satu jenis linked list yang merupakan koleksi data elemen yang berbentuk linear yang mana juga disebut sebagai 'Nodes'. Elemen-elemen dari linked list ini bisa disimpan di lokasi memori yang berurutan ataupun tidak disimpan sama sekali.
Circular single linked list sebenarnya hampir sama dengan singly linked list, perbedannya hanya pada circular single linked list, node terakhir akan menunjuk kembali ke node paling awal pada urutan.
Doubly Linked List
Doubly linked list adalah urutan elemen di mana setiap simpul memiliki link ke simpul sebelumnya dan simpul berikutnya.
Circular Doubly Linked List
Doubly linked list adalah linked data structure yang terdiri dari sekumpulan catatan terkait berurutan yang disebut 'Nodes'. Doubly linked list dapat digambarkan sebagai dua singly linked list yang dibentuk dari item data yang sama, tetapi dalam urutan berurutan yang berlawanan.
Hashing Table
Hash table atau hashing table adalah metode data structure yang paling cepat dan efisien untuk memanipulasi sejumlah data yang besar. Hashing table sendiri adalah tipe data structure yang mana setiap entry di dalamnya didefinisikan sebagai semacam key yang nantinya akan digunakan untuk mempermudah searching ketika suatu data ingin dicari.
Di dalam hashing table mepunyai sebuah hash function. Hash function adalah sebuah fungsi yang ketika diterapkan pada suatu key pada hashing table akan menghasilkan suatu integer yang bisa digunakan sebagai address dari suatu hashing table.
Binary Tree
Binary tree adalah tipe dari data strutur hierarkis yang mana pada setiap node memiliki maksimal hingga dua anak node, anak node ini biasa disebut sebagai node kanan dan node kiri. Setiap node pada binary tree mempunyai pointer untuk subtree kiri dan kanan, dan data element.
Binary tree biasa digunakan untuk mengimplementasikan binary search dan binary heap. Binary tree juga bisa digunakan untuk sorting data yang mana prosesnya dinamakan "heap sort".
Implementasi Hashing Table dalam Blockchain
Blockchain pada dasarnya adalah buku besar digital transaksi yang digandakan dan didistribusikan di seluruh jaringan sistem komputer di blockchain. Setiap blok dalam rantai berisi sejumlah transaksi, dan setiap kali transaksi baru terjadi di blockchain, catatan transaksi itu ditambahkan ke setiap buku besar peserta.
Implementasi hashing table pada teknologi blockchain sebenarnya tidak terlalu penting karena kebanyakan blockchain mendistribusikan semua data kepada semua orang, dan tidak perlu mencari rute atau tujuan.
Stack
Stack adalah array atau list struktur panggilan fungsi dan parameter yang digunakan dalam pemrograman komputer modern dan arsitektur CPU. Proses menambahkan data ke stack disebut sebagai "push," sementara mengambil data dari stack disebut "pop."
Beberapa implementasi yang bisa kita lakukan pada stack yaitu:
- Peek: Memungkinkan inspeksi elemen paling atas pada tumpukan tanpa benar-benar menghapus elemen.
- Swap: Menukar dua elemen teratas dari stack, elemen pertama menjadi yang kedua dan yang kedua menjadi atas.
- Duplicate: Elemen paling atas muncul dari stack dan kemudian didorong kembali ke stack dua kali, membuat duplikat dari elemen asli.
- Rotate: Menentukan jumlah elemen dalam stack yang diputar sesuai urutannya. Misalnya, memutar empat elemen teratas dari stack akan memindahkan elemen paling atas ke posisi keempat sementara tiga elemen berikutnya naik satu posisi.
Queue
Queue adalah jenis tertentu dari tipe data abstrak atau koleksi di mana entitas dalam koleksi disimpan dalam urutan dan operasi utama (atau hanya) pada koleksi adalah penambahan entitas ke posisi terminal belakang, yang dikenal sebagai enqueue, dan penghapusan entitas dari posisi terminal depan, yang dikenal sebagai dequeue.
Binary Search Tree
Binary search tree adalah binary tree di mana setiap node comparable key (dan nilai yang terkait) dan memenuhi batasan bahwa key di setiap node lebih besar dari key di semua node di subtree kiri node itu dan lebih kecil dari key di semua node dalam subtree kanan node. Tujuan dari binary search tree ini adalah untuk maintain daftar angka yang sudah di sort.
Ada dua operasi dasar yang bisa kita lakukan dengan binary search tree, yakni:
- Cek apakah sebuah nomor ada di binary search tree
- Memasukkan sebuah nilai ke dalam binary search tree
Binary search tree mempunyai beberapa keuntungan ketika mengimplementasikannya, yaitu:
- Searching menjadi sangat cepat dengan binary search tree karena kita mendapatkan petunjuk di setiap langkah, tentang subtree mana yang mengandung elemen yang diinginkan.
- Binary search tree dianggap sebagai struktur data yang efisien dibandingkan dengan array dan linked list. Dalam proses pencarian, binary search tree menghapus setengah subtree di setiap langkah.
- Insertion dan deletion juga bisa dilakukan lebih cepat dengan binary search tree dibandingkan dengan array atau linked list.
Referensi:
- https://www.tutorialride.com/data-structures/linked-list-types-in-data-structure.htm
- http://www.xpode.com/ShowArticle.aspx?ArticleId=284
- https://towardsdatascience.com/hash-tables-explained-5dc457db50da
- https://www.includehelp.com/data-structure-tutorial/hashing.aspx
- https://www.techopedia.com/definition/1145/binary-tree
- https://www.studytonight.com/data-structures/introduction-to-binary-trees
- https://www.quora.com/What-is-a-proper-binary-tree
- https://www.euromoney.com/learning/blockchain-explained/what-is-blockchain
- https://medium.com/the-mission/a-simple-explanation-on-how-blockchain-works-e52f75da6e9a
- https://bitcoin.stackexchange.com/questions/56456/does-a-blockchain-need-a-distributed-hash-table
- https://www.thoughtco.com/definition-of-stack-in-programming-958162
- https://computersciencewiki.org/index.php/Queue
- https://algs4.cs.princeton.edu/32bst/
- https://www.javatpoint.com/binary-search-tree
- https://www.programiz.com/dsa/binary-search-tree
Comments
Post a Comment