Skip to main content

Data Structure Summary

Hallo Guys hari kita akan merangkum apa yang sudah kita pelajari dari awal semester. materi yang akan kita bahas adalah
  1. Linked List
  2. Doubly Linked List
  3. Circular Single Linked List
  4. Circular Doubly Linked List
  5. Stack & Queue
  6. Hashing and Binary Tree
  7. Binary Search Tree


1. Linked List

Linked List adalah kumpulan elemen data, yang setiap data nya menunjuk ke data berikutnya, dan di diakhiri oleh null.




Tipe - tipe linked list yaitu :
  • Simple Linked List - hanya bisa bergerak maju.
  • Doubly Linked List - bisa bergerak maju dan mundur.
  • Circular Linked List - data terakhir bisa bergerak maju ke data pertama, dan data pertama                                              bergerak mundur ke data terakhir.



2. Doubly Linked List

Doubly Linked List hampir mirip dengan simple linked list, bedanya dia memiliki 2 pointer, yaitu next dan previous.
  • next - bergerak maju ke data selanjutnya
  • previous - bergerak mundur ke data sebelumnya






3. Circular Single Linked List

Circulat Single Linked List adalah Simple Linked List yang bisa berulang, bedanya kalau di Simple Linked List diakhiri dengan null, kalau di Circular Single Linked List tidak diakhiri dengan null, dia diakhiri dengan pointer di data paling terakhir yang menunjuk ke data pertama.







4. Circular Doubly Linked List

Circulat Doubly Linked List adalah gabungan antara Doubly Linked List dengan Circular Linked List. Linked List jenis ini memiliki 2 buah pointer yaitu next dan previous. Pointer next berfungsi untuk bergerak maju dan pointer previous berfungsi untuk bergerak mundur. Bedanya dengan Doubly Linked List adalah Circular Doubly Linked List apabila sudah berada di akhir data, maka apabila di next akan bergerak kembalik ke data pertama.







Stack and Queue
Stack adalah Struktur Data yang penting karena dia menyimpan elemen-elemennya dengan tersusun rapih. Data disimpan dengan cara Last In First Out (LIFO). Stack bisa diimplementasikan menggunakan array ataupun linked list. Elemen-elemen di dalam stack yang di add atau remove hanya bisa dari satu ujung, yang disebut dengan top.
Stack memiliki operasi-operasi yaitu :

  • push (x): Add item x ke atas Stack.
  • pop (): Delete item dari atas Stack.
  • top (): reveal or return item teratas dari Stack.
Queue hampir sama dengan stack, perbedaannya adalah cara menyimpannya, kalau Stack menyimpan data dengan cara Last in First Out (LIFO), Queue menyimpan data dengan cara First in First Out (FIFO). Elemen-elemen dalam Queue ditambahkan di satu ujung yang disebut bagian Rear dan dihapus dari ujung yang lain yang disebut Front.
Queue juga memiliki operasi yang sama dengan Stack, yaitu :
  • push (x): add item x ke rear queue
  • pop (): delete item dari front queue.
  • front (): reveal or return item paling depan dari queue.

Hashing and Binary Tree

1. Hashing

Hashing adalah metode atau cara untuk mengambil data dengan cepat, cara ini mengubah String Character nya menjadi value yang panjangnya lebih kecil dari aslinya yang berfungsi untuk menunjukan bahwa nilai itu adalah nilai string tersebut.
Hashing biasanya digunakan untuk mengambil suatu item di dalam database karena menggunakan metode hashing mempercepat kita dalam mencari value yang kita inginkan karena value dari original string sendiri diperkecil dengan cara metode hashing.
Hashing juga dapat didefinisikan sebagai konsep mendistribusikan kunci dalam array yang disebut Hash Tabel menggunakan fungsi yang telah ditentukan yang disebut Hash Function.

2. Tree

Tree adalah struktur data non-linear yang mewakili hubungan hierarchy antara data-data yang ada di dalam list. Beberapa relation antara tree dapat diamati dalam struktur directory. Node dalam tree tidak perlu disimpan secara berdekatan, Node bisa disimpan dimana saja asal masih bisa dihubungkan dengan pointer.
contoh

dari contoh diatas :

Degree of Tree = 4
Degree of T = 3
height = 4
Parent of Z = X
Childern of T = U, V, W
Siblings of Y = Z
Ancestor of Z = X, S, R
Descendant of S = X, Y, Z


Binary Search Tree
Binary Search Tree (BST) adalah sebuah konsep penyimpanan data, dimana data disimpan dalam sebuah tree yang memungkinkan untuk melakukan searching dan sorting secara lebih cepat dan insert dan delete yang lebih mudah.

Dalam Binary Search Tree terdapat maksimal 2 anak node dalam setiap nodenya, dan Binary Search Tree memiliki aturan :
  • Left Subtree dari X, berisi elemen yang lebih kecil dari elemen yang disimpan di dalam X.
  • Right Subtree dari X, berisi elemen yang lebih besar dari elemen yang disimpan di dalam X.
Binary Search Tree memiliki beberapa operasi dasar seperti berikut :

1. Find (x)

Find adalah operasi untuk mencari elemen X yang diinginkan. Searching dimulai dari root (akarnya), apabila root mengandung X didalamnya maka search dihentikan. apabila X lebih kecil dari root, maka search akan berlanjut secara rekursif ke Left Subtree. apabila X lebih besar dari root, maka search akan berlanjut secara rekursif ke Right Subtree.


2. Insertion (x)

Insertion adalah operasi untuk insert atau memasukkan sebuah elemen kedalam data. Sama seperti Searching, Insertion juga dimulai dari root. apabila X lebih kecil value didalam root, maka x akan dimasukkan ke Left Subtree, apabila lebih besar maka akan dimasukkan kedalam Right Subtree.


3. Deletion (x)

Deletion adalah operasi untuk menghapus sebuah data dalam node. ada 3 case dalam deletion yaitu :
  • jika data berada di leaf (ujung tree) : hapus saja nodenya
  • jika data berada di node yang memiliki 1 anak : hapus node dan sambungkan node anak dengan parent
  • jika data berada di node yang memiliki 2 anak : temukan anak paling kanan dari Left Subtree (simpul P), ganti kuncinya dengan kunci P dan hapus P secara rekursif.





Comments