Selasa, 25 Februari 2020

Linked List

Linked list merupakan salah satu bagian data structures yang dikenal juga dengan nama senarai berantai. Linked list adalah kumpulan dari data yang saling terhubung. Linked list tidak sama dengan array. Pada array, memori komputer akan disediakan secara berurutan.  Tetapi pada linked list, memori digunakan secara acak tetapi tetap terhubung. Jadi kita dapat mengakses data lain yang ada pada linked list melalui salah satu datanya tergantung pada bentuk linked list yang dibuat.

Pada kesempatan ini, kita akan membahas mengenai jenis-jenis atau bentuk dari linked list. Tetapi, sebelum itu, kita harus mengetahui konsep linked list yang paling sederhana yang biasa disebut dengan single linked list.




Pada linked list, terdapat bagian yang biasa disebut head dan tail. Head menunjuk pada bagian kepala atau awal dari linked list, sementara tail menunjuk pada bagian ekor atau akhir dari linked list. Dalam linked list digunakan pointer yang berfungsi untuk menunjuk address atau alamat dari data yang ada pada linked list.

Dalam single linked list yang sederhana, biasanya hanya digunakan satu pointer saja yang digunakan untuk menunjuk data berikutnya. Single linked list yang sederhana hanya berjalan satu arah, dari head sampai tail. Biasanya tail akan menunjuk pada null untuk menandakan akhir dari sebuah linked list.

Setelah mengetahui konsep dari linked list, kita akan mulai membahas mengenai jenis linked list yang lain. Pada pembahasan kali ini, ada 3 jenis lain dari linked list yang akan kita bahas yaitu :

  1. Circular single linked list
  2. Doubly linked list
  3. Circular doubly linked list

1. Circular Single Linked List

 



Pada circular single linked list, tail akan menunjuk pada head dari linked list, sehingga tidak ada null dalam linked list jenis ini. Hal ini menunjukkan bahwa data yang berada di akhir dan di awal saling terhubung, sehingga dari data terakhir kita dapat mengakses data pertama. Karena ini merupakan variasi dari single linked list, maka linked list ini juga hanya dapat berjalan satu arah, tetapi dapat berputar kembali ke awal.



2. Doubly Linked List

Doubly linked list merupakan jenis linked list yang dapat diakses dua arah. Dalam linked list ini biasanya digunakan dua pointer untuk menunjuk data selanjutnya dan data sebelumnya, jadi kita bisa mengakses data secara bolak-balik. Tetapi, dalam doubly linked list yang sederhana, head di data pertama dan tail di data terakhir akan menunjuk pada null yang menandakan ujung dari sebuah linked list.


3. Circular Doubly Linked List

Circular doubly linked list merupakan variasi dari doubly linked list. Mirip seperti circular single linked list. Yang membedakan adalah data bisa diakses bolak-balik dan dari akhir ke awal atau sebaliknya karena head dari linked list akan terhubung ke data terakhir dan tail akan terhubung ke data pertama.



Referensi gambar :
https://www.learnsteps.com/algorithms-coding-linked-list-python/
http://suciantinovi.blogspot.com/2014/03/linked-list-i_14.html
https://www.geeksforgeeks.org/doubly-linked-list/
https://www.geeksforgeeks.org/doubly-circular-linked-list-set-1-introduction-and-insertion/