Linked List

Linked List
Apa itu Linked list? Linked List adalah suatu struktur data yang terdiri dari urutan record data dimana setiap record data terdiri dari field dimana salah satunya menyimpan alamat dari record data selanjutnya. Seperti definisi di atas, Linked list merupakan bagian dari struktur data. Di dalam linked list terdapat sesuatu yang disebut node. Node merupakan elemen data yang telah terhubung atau dihubungkan dengan link. Terdapat 2 istilah yang sering kita dengar di dalam Linked list yaitu tail dan head. Di dalam linked list terdapat 2 hal yang bisa dilakukan yaitu insertion dan deletion. Dengan ini di dalam linked list dimungkinkan untuk menambah atau menghapus node baik dia tail head atau bukan keduanya. Linked list terdiri dari 2 tipe yaitu single linked list dan double linked list.

Linked List VS Array
Apasih perbedaan array dengan linked list? Seperti yang kita ketahui array relatif lebih mudah jika dibandingkan dengan linked list. Lalu kenapa kita harus menggunakan linked list? Salah satu alasan mengapa kita menggunakan linked list dibanding dengan array adalah ketika kita menggunakan array hal yang dilakukan adalah komputer akan memblok memori ketika compile sementara linked list dialokasikan selama runtime. Operasi seperti  insertion dan deletion dalam array jauh lebih sulit dibandingkan di dalam linked list. Perbedaan selanjutnya yang membedakan linked list dengan array adalah dengan array ketika kita memesan sebanyak 10 blok memori maka memori  yang diblok sejumlah 10 dengan saling bersebelahan. Sedangkan tidak dengan linked list yang penempatannya random tidak harus bersebelahan.

Single Linked List


https://www.studytonight.com/code/python/ds/images/linked-list-1.png

Gambar tersebut merupakan contoh dari single linked list. Ciri-cirinya adalah didalam single linked list setiap node terdiri dari 2 field. 1 field merupakan value dan satunya lagi adalah link ke node selanjutnya. Di dalam single linked list, satu node hanya memiliki 1 link saja(hanya searah). Untuk memasukan (insert) value yang baru di dalam linked list kita harus membuat node baru dan menghubungkannya.
Sedangkan seperti keuntungan dalam menggunakan linked list adalah bisa lebih mudah melakukan deletion. Berikut adalah contoh code yang bisa digunakan dalam menerapkan deletion di dalam linked list.


Doubly Linked List
https://miro.medium.com/max/4000/1*Rkn3q6HJoEkRO4T_SVlyuw.png


Doubly linked list adalah jenis linked list dimana setiap nodenya memiliki 3 field.  Dalam doubly linked list terdapat satu tambahan pointer yang dinamakan previous yang bersamaan dengan next dan data yang single linked.
Dalam doubly linked list seperti linked list lainnya tetap bisa diberlakukan deletion juga. berikut adalah code dalam melakukan deletion doubly linked list.


Circular Single Linked List
https://media.geeksforgeeks.org/wp-content/uploads/CircularSinglyLinkedList.png

Ketika kita menggunakan single linked list kita memulai dari node head dan ketika kita berada di tengah tidak memungkinkan untuk kembali ke node sebelumnya. Masalah ini bisa diselesaikan dengan Circular Single Linked list. Pada umumnya Circular Single Linked List ini kurang lebih mirip dengan single linked list hanya jika di single linked list node terakhir atau tail memiliki pointer yang NULL dan pada Circular Single Linked List ini node terakir atau tail akan memiliki pointer yang mengarah ke head.

Circular Doubly Linked list
https://media.geeksforgeeks.org/wp-content/uploads/Circular-doubly-linked-list.png
Masalah dalam Single linked list juga berlaku pada doubly linked list sehingga untuk mengatasinya kita bisa menerapkan Circular Doubly Linked list. Pada prinsipnya cara kerja Circular Doubly Linked list mirip dengan Circular Doubly Linked List namun bedanya Circular Doubly Linked List memiliki 2 buah link yang satu terkoneksi dengan previous dan yang satu terkoneksi dengan next node.







ps: Sudah ijin dengan Pak Henry Chong


Komentar

Postingan populer dari blog ini

AVL Tree