REVIEW


LINKED LIST

Linked list adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer. Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat dimanipulasi.

Linked List terdiri dari berbagai macam, contohnya:

-
Singly Linked List
  Linked list yang pointernya hanya mengarah ke NODE yang menampung. Singly linked list hanya memiliki 1 arah dan tidak bolak-balik.

  Contoh:


-Doubly Linked List
   Linked list yang memiliki pointer penunjuk 2 arah, yakni ke node sebelum dan ke node sesudah.
   Contoh:


  OPERASI PADA DOUBLY LINKED LIST
  
  - INSERT
     Insert bisa dilakukan di depan, tengah, dan di belakang
  - DELETE
     Sama seperti INSERT, DELETE juga bisa dilakukan di depan, tengah,dan di belakang
  - TRAVERSAL
     Mengunjungi semua elemen list dan biasanya dimulai dari elemen pertama
  - SEARCHING 
     Melakukan searching berdasarkan suatu kunci untuk mencaru apakah data yang diinginkan ada dalam list dan sekaligus mendapatkan alamat dari elemen yang dicari

-Circular Doubly Linked List
   Linked list yang memiliki 3 pointer, dimana setiap node memiliki 3 field, yaitu:
   - 1 field yang menunjuk pointer berikutnya
   - 1 field yang menunjuk pointer sebelummnya
   - 1 field yang berisi data untuk node tersebut

  Contoh: 



HASHING TABLE & BINARY TREE



HASHING TABLE
HASHING adalah proses menghasilkan output yang panjangnya sama dari input yang panjangnya berbeda. Hashing digunakan untuk menandai dan mendapatkan kembali suatu hal dalam database.

Hashing table adalah struktur data yang terdiri dari table yang menyimpan string yang asli. Keunggulan dari struktur hash table ini adalah waktu aksesnya yang cukup cepat, jika record yang dicari langsung berada pada angka hash lokasi penyimpanannya. 

Contoh Hashing Table









Implementasi hashing table dalam blockchain

Hash adalah sebuah kode yang ada dalam sebuah data di Blockchain. Isi dari hash tersebut adalah serangkaian kata dan huruf. Dalam blockchain, nilai output yang dikenal sebagai hash, digunakan sebagai sebuah penanda unit untuk blok data. Blok hash bergantung pada data yang terdapat dalam blok tersebut, yang berarti setiap perubahan yang terjadi pada data tersebut membutuhkan perubahan pada blok hash. Blockchain digunakan dalam Bitcoin.

BINARY TREE

Binary tree adalah sebuah struktur data yang menyerupai pohon dan setiap simpulnya memiliki cabang maksimal 2.

Jenis-jenis binary tree
  • ·         Perfect binary tree
  • ·         Complete binary tree
  • ·         Skewed binary tree
  • ·         Balanced binary tree


Contoh Binary Tree



BINARY SEARCH TREE

Binary search tree 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.

Pada Binary Search Tree terdapat aturan :
·       Setiap child node sebelah kiri harus lebih kecil daripada root nodenya
·       Setiap child node sebelah kanan harus lebih besar dariapada root nodenya


Ada 3 jenis metode untuk melakukan penelusuran data pada Binary Search Tree, antara lain :
·       PreOrder
·       InOrder
·       PostOrder



AVL Tree adalah binary search tree yang dapat menyeimbangkan dirinya sendiri. Tiap subtree kiri dan kanan memiliki perbedaan tinggi maksimal 1.

Terdapat 2 operation pada AVL Tree, yaitu :


  • Insertion
  • Deletion

Proses insertion pada AVL Tree sama halnya dengan insertion pada Binary Search Tree. Dimana Node baru diposisikan sebagai leaf.


Rebalance pada AVL Tree dapat dilakukan dengan Single Rotation dan Double Rotation.

Terdapat 4 kasus dalam proses rebalance AVL Tree

Yang pertama, node terdalam terletak pada subtree kiri dari anak kiri T.
Yang kedua, node terdalam terletak pada subtree kanan dari anak kanan T.
Yang ketiga, node terdalam terletak pada subtree kanan dari anak kiri T.
Yang keempat, node terdalam terletak pada subtree kiri dari anak kanan T.

Untuk kasus 1&2 dapat diselesaikan dengan Single Rotation. Sedangkan, untuk kasus 3&4 dapat diselesaikan dengan Double Rotation.

Contoh Single Rotation


Contoh Double Rotation



Proses Deletion pada AVL Tree sama halnya dengan Deletion pada Binary Search Tree. Node yang dihapus digantikan oleh node terbesar pada subtree kiri atau node terkecil pada subtree kanan.

Contoh Deletion AVL Tree

HEAP AND TRIES



Heap adalag binary tree lengkap yang berdasarkan struktur data dimana value key pada node nya diatur sedemikian rupa sehungga value key pada node anaknha tidak ada yang lebih besar dari value key node orang tuanya.

Terdapat 2 macam heap :
•    Min Heap
Setiap elemen node lebih kecil dari anaknya
•    Max Heap
Setiap elemen node lebih besar dari anaknya

MIN HEAP
Setiap elemen node lebih kecil dari elemen anaknya. Element heap terbesar terleta di salah satu leaf node. Heap bisa diimplementasikan dengan linked-list, tetapi lebih mudah diimplementasikan dengan array.

Contoh Min-Heap








Aplikasi penggunaan Heap
•    Priority Queue
•    Selection Algorithm
•    Dijkstra’s Algortihm
•    Prim Algorithm
•    Heap Sort


Insertion di Min-Heap
Menginput element baru di akhir heap. Membandingkan nilai node sekarang dengan nilai parent nya. Jika nilai node sekarang lebih kecil dari parent nya, tukar nilainya. Berhenti menukar jika nilai parent nya lebih kecil dari nilai node sekarang.
Contoh insertion Min-Heap











Deletion di Min-Heap
Menukar root dengan element terakhir heap. Mengurangi jumlah element di dalam heap. Membandingkan nilai node sekarang dengan nilai di kiri dan kanan. Menukar nilai node sekarang dengan child terkceil. Berhenti menukar jika nilai node yang sekarang lebih kecil daripada nilai children nya.

Contoh Deletion Min-Heap
















MAX-HEAP
Setiap elemen node lebih besar dari element children nya. Ini menyatakan jika elemen terbesar terletak di root.
MIN-MAX HEAP
Kegunaan dari  min-max untuk mencari elemen terbesar dan terkecil dari heap dalam waktu yang bersamaan.
Contoh MIN-MAX HEAP








Dalam Min-Max Heap elemen terkecil terdapat di root. Elemen terbesar terletak di salah satu root’s child.
Insertion di Min-Max Heap
Insert elemen baru di akhir heap. Upheap elemen baru. 


 Deletion di Min-Max Heap
Deletion elemen terkecil
·        Menukar root dengan elemen terakhir di heap
·        Mengurangi jumlah elemen heap
·        Dowheapamin dari root

Deletion elemen terbesar
·        Menukar left-child atau right-child dari root
·        Mengurangi jumlah elemen di heap
·        Downheapmax dari node
Contoh deletion Min-Max Heap










TRIES

Tries adalah struktur data tree berurutan yang digunakan untuk menyimpan array yang asiosiatif.
Aplikasi penggunaan tries
·        Penyelesaian otomatis tulisan yang akan dicari pada browser
·        Pemeriksa ejaan

Contoh dari tries




Source :
geeksforgeeks.org
javatpoint.com

Comments

Popular posts from this blog

LINKED LIST

Linked List Review