Summary & Review 1
Hi!!
Pada blog kali ini, kita akan mereview materi-materi yang sudah dipelajari sebelumnya.
1. Linked List
Linked List merupakan koleksi linear dari data, yang disebut sebagai nodes, dimana setiap node akan menunjuk pada node lain melalui sebuah pointer. Linked List dapat didefinisikan pula sebagai kumpulan nodes yang merepresentasikan sebuah sequence.
Single/ Singly Linked List
Single Linked List adalah sekumpulan dari node yang saling terhubung dengan node lain melalui sebuah pointer.
Circular Singly Linked List
Circular Single Linked List adalah suatu linked list dimana tail menuju ke head dan hanya memiliki satu arah, serta tidak memiliki nilai NULL.
Double/ Doubly Linked List
Double Linked List adalah elemen-elemen yang dihubungkan dengan dua pointer dalam satu elemen dan list dapat melintas baik di depan (head) atau belakang (tail).
Circular Doubly Linked List
Circular Doubly Linked List adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut dengan pointer next dan prve-nya menunjuk ke dirinya sendiri secara circular.
Untuk lebih jelasnya, bisa mengakses link ini : https://data-structure-sheila.blogspot.com/2020/02/linked-list-merupakan-koleksi-linear.html
Linked list, baik single linked list, maupun double linked list memiliki dua operasi utama, yaitu push dan pop. Push berarti menambah, insert data, sedangkan pop berarti delete atau menghapus.
2. Stack and Queue
Stack
Stack
(Tumpukan) adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur
linear. Kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja
yaitu posisi ATAS (TOP) tumpukan. Tumpukan digunakan dalam algoritma pengimbas
(parsing), algoritma penilaian (evaluation) dan algoritma penjajahan balik
(backtrack). Elemen-elemen di dalam tumpukan dapat bertipe integer, real,
record dalam bentuk sederhana atau terstruktur.
Sistem pengaksesan pada stack menggunakn sistem
LIFO (Last In First Out), artinya elemen yang terakhir masuk itu yang akan
pertama dikeluarkan dari tumpukan (Stack).
Queue
Queue merupakan suatu struktur data linear.
Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan
penghapusan pada ujung yang bebeda. Penghapusan dilakukan pada bagian depan
(front) dan penambahan berlaku pada bagian belakang (Rear). Elemen-elemen di
dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau
terstruktur. Sistem pengaksesan pada Queue menggunakan sistem
FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan
pertama dikeluarkan dari Queue. Queue merupakan salah satu contoh aplikasi dari
pembuatan double linked list yang cukup sering kita temui dalam kehidupan
sehari-hari, misalnya saat anda mengantri diloket untuk membeli tiket.
Untuk lebih jelasnya mengenai code push dan pop, serta stack and queue bisa mengakses link ini : https://data-structure-sheila.blogspot.com/2020/03/linked-list-stack-queue.html
3. Hashing Table and Binary Tree
HASHING TABLE
Hashing
adalah teknik untuk melakukan penambahan/insertion, penghapusan/deletion dan
pencarian/searching dengan constant average time. Hash table merupakan salah satu struktur data yang digunakan
dalam penyimpanan data sementara. Tujuan dari hash table adalah untuk
mempercepat pencarian kembali dari banyak data yang disimpan. Hash table menggunakan array sebagai
medium penyimpanan dan menggunakan fungsi hash untuk menghasilkan sebuah indeks
dimana suatu elemen harus dimasukkan atau ada. Hal ini menyebabkan waktu
yang dibutuhkan untuk penambahan data (insertions), penghapusan data
(deletions), dan pencarian data (searching) relatif sama dibanding struktur
data atau algoritma yang lain.
Hash Function
Hash function
merupakan suatu fungsi sederhana untuk mendapatkan hash value dari key value
suatu data. Berikut adalah beberapa metode penting hash function:
1. Mid-square
2. Division
3. Folding
4. Digit
Extraction
5. Rotating Hash
Collision
Collision berarti ada
lebih dari satu data yang memiliki hash index yang sama, padahal seperti yang
kita ketahui, satu alamat / satu index array hanya dapat menyimpan satu data
saja. Berikut ini cara-cara
yang digunakan untuk mengatasi collision :
1. Closed
hashing (Open Addressing) :
a. Linear Probing
b. Quadratic Probing
c. Double hashing
2. Open
hashing (Separate Chaining)
BINARY TREE
Tree bisa
didefinisikan sebagai kumpulan simpul / node dengan satu elemen khusus yang
disebut root dan node lainnya. Subtree adalah tree yang terbagi menjadi
himpunan-himpunan yang tak saling berhubungan satu sama lainnya. Binary tree/ pohon biner adalah pohon dengan syarat bahwa tiap node hanya memiliki boleh maksimal
dua subtree dan kedua subtree tersebut harus terpisah.
Tipe Binary Tree
1. PERFECT binary tree adalah pohon biner di mana setiap tingkat berada pada kedalaman yang sama.
2. COMPLETE binary tree adalah pohon biner di mana setiap tingkat, kecuali yang terakhir, sepenuhnya diisi dan semua node yang sejauh mungkin kiri. Sebuah PERFECT binary tree pasti COMPLETE binary tree.
3. SKEWED binary tree adalah pohon biner di mana setiap node memiliki paling banyak satu anak.
4. BALANCED binary tree is a binary
tree in which no leaf is much farther away from the root than any other leaf
(different balancing scheme allows different definitions of “much farther”).
Implementasi Hash Pada Blockchain
Blockchain
adalah sistem pencatatan transaksi di banyak database yang tersebar luas di
banyak komputer yang masing-masing memuat catatan yang identikal. Blockchain memiliki tiga mekanisme, salah satunya
menggunakan teknik hash. Hash berguna untuk mendeteksi perubahan
yang terjadi didalam blockchain. Teknik ini membuat blockchain lebih aman dan
kredibel dalam menyimpan data-data penting karena jika ada yang mengubah satu
blok dalam blockchain maka nilai hashnya akan berubah menjadi tidak valid. Lalu
perubahan tersebut akan menyebabkan seluruh blockchain menjadi tidak valid.
Untuk lebih jelasnya mengenai hash table dan binary tree, bisa mengakses link ini : https://data-structure-sheila.blogspot.com/2020/03/hashing-table-binary-tree.html
4. Binary Search Tree (BST)
Binary Search Tree (BST) adalah
struktur data yang mengadopsi konsep Binary Tree namun terdapat aturan bahwa
setiap clild node sebelah kiri selalu lebih kecil nilainya dari pada root node. Begitu pula
sebaliknya, setiap child node sebelah kanan selalu lebih besar nilainya
daripada root node. Jadi, Binary Search Tree adalah proses searching berbasis binary
tree.
Tujuan membedakan
kiri dan kanan sesuai besaran nilainya adalah untuk memberikan efiesiensi
terhadap proses searching sehingga proses search akan lebih cepat.
Sifat Binary Tree:
- Setiap child node sebelah kiri harus lebih kecil nilainya
daripada root nodenya.
- Setiap child node sebelah kanan harus lebih besar nilainya
daripada root nodenya.
3 jenis cara untuk melakukan penelusuran data (traversal) pada
BST :
1. PreOrder
2. InOrder
3. PostOrder
Operasi BST ada dua, yaitu:
1. Insert
Ketika insert sebuah node
baru perlu diperhatikan operasi pencarian posisi yang sesuai. Dalam hal ini
node baru tersebut akan menjadi daun/leaf.
2. Delete
Operasi delete memiliki 3
kemungkinan :
- Delete terhadap node tanpa
anak/child (leaf/daun) : node dapat langsung dihapus
- Delete terhadap node dengan satu anak/child : maka node anak akan menggantikan
posisinya.
- Delete terhadap node dengan dua
anak/child : maka node akan digantikan oleh node paling kiri dari Sub Tree
Kanan atau dapat juga digantikan oleh anak paling kanan dari Sub Tree Kiri.
Untuk lebih jelasnya mengenai BST, dapat mengakses link ini : https://data-structure-sheila.blogspot.com/2020/03/binary-search-tree-bst.html
5. Contoh Code Double Linked List
Berikut merupakan contoh code dalam Bahasa C, yaitu aplikasi seperti di supermarket. Aplikasi ini memiliki fungsi add item, edit item, delete item, view item, dan checkout.
Untuk codenya bisa mengakses web ini : https://data-structure-sheila.blogspot.com/2020/04/contoh-code-double-linked-list-in-c.html
atau untuk file .cpp nya bisa mengakses link ini : https://drive.google.com/open?id=16IF9KQfsdpy098GK2osXbmAsgErl_AXu
Dibuat oleh : Sheila Gracia Angelina
NIM : 2301857456




Comments
Post a Comment