Skip to main content

 Single Linked List

• Linked List pada dasarnya adalah sekumpulan data yang bersifat linear. Setiap satuan data pada Linked List biasa kita sebut dengan Node. Pada penerapannya nanti, Node ini biasa di representasikan dengan struct. Isi dari Node pada kasus Linked List adalah data yang ingin kita simpan serta pointer (dalam Single Linked List kita gunakan satu pointer untuk menunjuk data sesudahnya).Konsep data structure yang menggunakan Linked List antara lain adalah Stack dan Queue.

• Sekarang pertanyaan yang mungkin muncul adalah mengapa kita harus menggunakan Linked List dibandingkan dengan array, padahal kedua data structure ini sama-sama linear ?
Kita menggunakan Linked List dengan alasan Linked List bersifat dinamis. Maksud dinamis disini adalah jumlah data yang dapat kita simpan dapat kita expand terus menerus  (selama masih dapat ditampung oleh memory komputer kita). Hal seperti ini tidak dapat kita lakukan jika kita menggunakan array. Contohnya  :
struct Mahasiswa msh[100] -> Jika kita menggunakan array seperti ini maka jumlah data yang ditampung maksimal hanyalah 100 mahasiswa. Linked List ini cocok digunakan jika kita ingin menyimpan data dengan jumlah yang belum dapat kita tentukan.

• Perbedaan Linked List dengan Array :
1. Pada Linked List lokasi memory dari setiap Node tidaklah urut, sedangkan pada Array data ditempatkan pada lokasi memory yang berdekatan.
2. Pada Linked List kita harus melakukan iterasi untuk mengakses Node, sedangkan pada Array kita bisa mengakses data dengan memanfaatkan index dari Array.
3. Pada Linked List kita diberi fleksibilitas lebih (dapat menambah data terus menerus) sedangkan Array lebih bersifat statis (tidak fleksibel).

• Pada Linked List kita akan menemui beberapa operasi antara lain :

1. Traversing = Accessing setiap data yang kita punya. Dapat kita lakukan dengan metode Looping.
2. Searching = Kita lakukan pencarian dengan cara linear search (looping per Node).
3. Inserting = menambahkan data, biasa kita kenal dengan sebutan Push. Push pada Linked List ada beberapa macam antara lain Push Head, Push Mid, dan Push Tail.
4. Deleting = menghapus data, biasa kita kenal dengan sebutan Pop. Pop pada Linked List sama seperti Push (terdiri dari beberapa macam) antara lain Pop Head, Pop Mid, Pop Tail.

• Istilah-istilah pada Linked List :
Push = inserting data.
Pop = deleting data.
Traversing = accessing data.
Overflow = keadaan dimana tidak ada memory lagi pada komputer kita.
Underflow = keadaan dimana tidak ada lagi data yang harus di delete (free).



Comments

Popular posts from this blog

Review Data Structure + Contoh Soal Double Linked List - Bahasa Indonesia

1. Pointer and Array materi tentang pointer sebenarnya sudah didapatkan pada semester, namun konsep pointer ini ditekankan kembali. Mengapa ? Karena pada data structure ini pointer adalah konsep yang harus dikuasai terlebih dahulu. Semua alokasi memory yang dilakukan secara dinamis akan disimpan didalam bagian memory yang bernama heap. Untuk mengakses Heap kita harus menggunakan pointer. Array pada semester ini akan jarang digunakan, array biasa dimunculkan untuk melakukan perbandingan dengan Linked List. Selain ini Array juga akan kita temukan pada implementasi Hash Table. 2. Linked List Linked List adalah suatu bentuk struktur data dimana struktur daat ini bertipe linear, sama seperti Array. Lalu apa kelebihan Linked List dibandingkan Array ? Dengan menggunakan Linked List berarti kita dapat menambahkan data terus menerus secara dinamis (dalam batas memory), tidak seperti Array dimana ukuran haruslah fix di awal dan tidak bisa diubah lagi. Pada Linked List kita biasa mengenal

Linked List Implementation Concept - Stack & Queue - Bahasa Indonesia

1. Introduction      Setelah belajar tentang penerapan Linked List khususnya Single Linked List, kita melanjutkan proses pembelajaran tentang Struktur Data kita kepada konsep Stack dan Queue. Sebenarnya kedua konsep ini dapat diterapkan dengan menggunakan struktur data yang telah kita pelajari jauh-jauh hari yaitu Array, namun pada saat ini kita akan memfokuskan pada penerapan Stack dan Queue dengan Linked List 2. Stack     Stack adalah struktur data yang menyimpan element secara berurut . Analogi yang sering digunakan untuk menggambarkan konsep stack adalah tumpukan piring dimana piring yang akan kita ambil pasti merupakan piring paling atas dan pada saat kita menaruh piring baru, kita pasti akan meletakkan piring tersebut di posisi paling atas.     Sebutan Stack yang sering kita gunakan adalah Last In First Out (LIFO) . Pada penerapannya stack memiliki beberapa operasi yaitu push, pop, peek (top). Push adalah operasi ketika kita akan menambahkan data/Node pada Linked List a

AVL Tree (+Code), Konsep Awal B-Tree, dan Red-Black Tree

♣ AVL TREE AVL Tree adalah suatu jenis modifikasi BST. Tree ini dinamai sesuai dengan penemunya yaitu Adelson, Velsky, dan Landis. AVL Tree juga dikenal sebagai self-balancing tree karena jenis tree ini dapat mengoptimasi dirinya sendiri dengan melakukan operasi tertentu. Tujuan dari self -balancing tree ini adalah mempercepat operasi yang ada di BST pada umumnya yaitu insert, search, dan delete. Dengan AVL maka average case dan worst case dari BST dapat diperbaiki menjadi O (log n). • Hal penting yang perlu dipelajari di dalam konsep AVL Tree adalah : 1. Height 2. Balance Factor 3. Rotation Pattern 1. Height Konsep height pada dasarnya sama didalam semua konsep tree. Height root biasa dimulai dengan 0. Height adalah jarak suatu Node dengan Leaf Node terjauh dari Node tersebut. 2. Balance Factor Pada konsep AVL kita mengenal konsep baru yaitu balance factor. Balance factor adalah selisih tinggi antara subtree kiri dan kanan. Balance factor ini kita gunakan untuk menentu