LINKED LIST
Linked List (Senerai Berantai) di dalam Bahasa pemorgraman merupakan sebuah
struktur data yang digunakan untuk menyimpan sejumlah objek data yang biasanya secara
berurut sehingga memungkinkan
penambahan, pengurangan, dan pencarian atas elemen yang ingin dicari dalam list
tersebut menjadi efektif.
Struktur data mempunyai elemen atau yang bisa dikatakan sebagai tempat
untuk mencatat/ menyimpan data antara satu dengan yang lainnya sehingga menjadi
barisan list abstrak. Nah, barisan list abstrak ini dinamakan node.
Di dalam Linked List ini, kita diperbolehkan untuk memasukan nilai dan
menghilangkan nilai elemen di tempat manapun selama itu masih didalam node yang
kita punya. Biasanya Linked List ini digunakan di algoritma untuk menyelesaikan
Real-Time Problems, dimana jumlah elemen yang dimasukan tidak terduga.
Didalam Linked List sendiri pun kita dapat melakukan yang namanya penambahan
(insert) atau penghapusan (delete) node yang anggapan sudah tidak dipakai lagi.
Untuk penjelasan insert dan delete akan dijelaskan selanjutnya.
Tapi, terkadang untuk yang sudah mengerti algoritma, akan bertanya-tanya
tentang apakah perbedaan antara Linked List sendiri dengan Array ? Berikut
adalah penjelesannya.
NO
|
Linked List
|
Array
|
1
|
Setiap element linked list terdiri dari bagian, data dan pointer address
|
Setiap element array hanya berisi data saja
|
2
|
Pengalokasian ruang memori
dilakukan tanpa pendeklarasian sebelumnya dan terbatas pada jumlah ruang
memori yang tersisa (dapat dipakai)
|
Pengalokasian
ruang memori terbatas pada jumlah ruang yang dideklarasikan sebelumnya.
|
(source : https://kuliahinformatika.wordpress.com/2010/01/21/linked-list-perbedaan-linked-list-dengan-array/)
Adapun
beberapa contoh Linked List didalam Bahasa pemograman, yaitu sbb :
- Circular Linked List
- Doubly Linked List
- Circular Doubly Linked List
A.
Circular Linked List

Di
gambar atas, dapat kita lihat dimana HEAD (node pertama didalam linked list) di
Linked List tersebut adalah ‘A’ dan TAIL (node terakhir didalam linked
list)-nya adalah ‘D’.
Dan untuk mendapatkan sesuai gambar diatas kita dapat menggunakan
tail(node D)->next = head (node A).
B.
Doubly Linked List
Di dalam Doubly Linked List, dikenalkan pointer bernama
next dan prev dimana fungsi dari pointer ini adalah :
·
Next : meminta computer untuk memajukan head/tail
yang kita sudah tentukan sebelumnya.
·
Prev :
meminta computer untuk memundurkan head/tail yang sudah kita tentukan sebelumnya.
Tapi, apa yang terjadi jika kita memajukan tail yang
letaknya sudah di ujung kanan dan memundurkan head yang letaknya juga sudah di ujung
kiri. Well, disini kita dikenalkan lagi atau bisa dikatakan sebagai pushHead dan
pushTail. Apa sih kegunaannya ? ini di peruntukan untuk meng-set Head dan Tail
yang baru. Caranya/ Algoritmanya bagaimana kalau ini ?
Sebelum kita melompat ke Algoritma pushHead dan
pushTail, seperti yang pernah dikatakan diatas, kita bisa menambahkan node baru
pada list kita. Bagaimana kah itu ?
Algoritma
1.
Menambahkan node baru :

2.
pushHead & pushTail

3.
Delete Head/ Tail

C.
Circular Doubly Linked List

Sama seperti Single
Linked List, ini menyatukan head dengan tail. Tapi bedanya disini adalah, kita
juga menyatukan tail dengan head lagi. Caranya adalah dengan
tail -> next
= head dan head -> prev = tail.
Sekiain terima
kasih untuk penjelasan Linked List ini. Mungkin kurang lengkap dari penjelasan
penjelasan web lainnya. Mohon maaf jika ada kesalahan.
Komentar
Posting Komentar