0% menganggap dokumen ini bermanfaat (0 suara)
54 tayangan

Linked List

Linked list adalah struktur data linear yang terdiri dari rangkaian elemen yang disebut node. Terdapat beberapa jenis linked list seperti singly, doubly, dan circular linked list. Masing-masing memiliki keunggulan dan kekurangan tertentu yang sesuai untuk berbagai kebutuhan aplikasi.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
54 tayangan

Linked List

Linked list adalah struktur data linear yang terdiri dari rangkaian elemen yang disebut node. Terdapat beberapa jenis linked list seperti singly, doubly, dan circular linked list. Masing-masing memiliki keunggulan dan kekurangan tertentu yang sesuai untuk berbagai kebutuhan aplikasi.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

2.1.

8 Linked List
Linked list adalah struktur data linear yang mendasarkan diri pada konsep
node, di mana setiap node memiliki dua komponen utama: data yang menyimpan
nilai, dan pointer yang menunjukkan ke node berikutnya dalam urutan. Singly linked
list, salah satu jenis linked list, memiliki setiap node yang terhubung ke node
berikutnya dalam satu arah. Ini memulai dari node pertama yang disebut head dan
berakhir dengan node terakhir yang menunjuk ke nullptr. Doubly linked list, di sisi
lain, memungkinkan setiap node untuk memiliki dua pointer: satu menunjuk ke node
sebelumnya dan satu lagi ke node berikutnya, memungkinkan akses maju dan
mundur. Circular linked list, yang merupakan variasi dari linked list, memiliki node
terakhir yang menunjuk kembali ke node pertama, membentuk lingkaran. Ini
menyediakan navigasi sekuensial dalam struktur data dan dapat berguna dalam
situasi yang memerlukan representasi sirkular atau siklik data. Pemilihan jenis linked
list yang tepat tergantung pada kebutuhan spesifik aplikasi dan kompleksitas operasi
diinginkan, masing-masing dengan kelebihan dan kelemahan mereka sendiri.
1. Singly Linked List:
Singly linked list adalah struktur data linear di mana setiap elemen, atau node,
memiliki dua bagian: data dan pointer ke node berikutnya dalam urutan.
Karakteristik dasar dari singly linked list adalah:
A. Setiap node hanya memiliki satu pointer yang menunjuk ke node berikutnya.
B. Linked list dimulai dari node pertama yang disebut head dan berakhir dengan
node terakhir yang pointer next-nya menunjuk ke nullptr.
C. Operasi penambahan dan penghapusan di depan linked list adalah operasi
yang cepat, tetapi operasi pencarian memerlukan pencarian sekuensial dari
awal hingga node target.
2. Doubly Linked List:
Doubly linked list adalah struktur data linear di mana setiap elemen, atau node,
memiliki tiga bagian: data, pointer ke node sebelumnya, dan pointer ke node
berikutnya dalam urutan. Karakteristik dasar dari doubly linked list adalah:
A. Setiap node memiliki dua pointer: satu menunjuk ke node sebelumnya (prev),
dan satu lagi menunjuk ke node berikutnya (next).
B. Linked list memiliki akses maju dan mundur, karena setiap node memiliki
informasi tentang node sebelumnya dan node berikutnya.
C. Operasi penambahan dan penghapusan node di depan atau di belakang linked
list dapat dilakukan dengan cepat.
D. Tambahan memori yang digunakan untuk menyimpan pointer tambahan.
3. Circular Linked List:
Circular linked list adalah struktur data linear di mana node terakhir dalam linked
list menunjuk kembali ke node pertama, membentuk lingkaran atau cincin.
Karakteristik dasar dari circular linked list adalah:
A. Node terakhir dalam linked list menunjuk kembali ke node pertama,
membentuk lingkaran.
B. Tidak ada node yang menunjuk ke nullptr, karena setiap node memiliki
pointer yang menunjuk ke node berikutnya.

Linked list adalah struktur data linear yang terdiri dari rangkaian elemen yang
disebut "node". Setiap node berisi dua bagian: data dan referensi (atau pointer) ke
node berikutnya dalam urutan. Keuntungan utama dari linked list adalah ukurannya
yang dinamis dan kemampuan untuk melakukan penambahan atau penghapusan
elemen dengan efisien tanpa perlu menggeser elemen lain, seperti yang diperlukan
pada array. Terdapat beberapa jenis linked list, termasuk singly linked list di mana
setiap node memiliki satu pointer ke node berikutnya, doubly linked list di mana
setiap node memiliki dua pointer (satu ke node berikutnya dan satu lagi ke node
sebelumnya), dan circular linked list di mana node terakhir menunjuk kembali ke
node pertama, membentuk lingkaran. Operasi dasar pada linked list meliputi
penambahan node (di awal, di akhir, atau di tengah), penghapusan node (dari awal,
dari akhir, atau dari tengah), dan pencarian node (berbasis nilai atau posisi).

Meskipun linked list menawarkan kelebihan seperti ukuran yang dinamis dan
efisiensi dalam penambahan dan penghapusan elemen, mereka juga memiliki
kekurangan seperti overhead memori tambahan untuk menyimpan pointer dan akses
elemen yang lebih lambat dibandingkan dengan array. Linked list banyak digunakan
dalam berbagai aplikasi, termasuk implementasi struktur data lain seperti stack dan
queue, manajemen memori dinamis dalam sistem operasi, dan sebagai dasar untuk
membangun struktur data yang lebih kompleks seperti grafik dan pohon. Dalam
perbandingan dengan array, linked list lebih efisien dalam operasi penambahan dan
penghapusan, tetapi kurang efisien dalam akses elemen acak. Konsep lanjutan dari
linked list termasuk penggunaan sentinel nodes untuk mempermudah operasi dan
struktur yang mereferensikan diri sendiri untuk menjaga keterkaitan antar node.

Selain linked list, ada beberapa struktur data penting lainnya yang sering
digunakan dalam pemrograman. Stack adalah struktur data linear yang mengikuti
prinsip Last In, First Out (LIFO), di mana elemen terakhir yang ditambahkan adalah
elemen pertama yang akan dihapus. Operasi dasar pada stack meliputi push
(menambahkan elemen ke puncak), pop (menghapus elemen dari puncak), dan peek
(melihat elemen di puncak tanpa menghapusnya). Stack banyak digunakan dalam
pengelolaan panggilan fungsi rekursif, implementasi mekanisme undo, dan evaluasi
ekspresi aritmatika. Memahami berbagai struktur data ini sangat penting dalam
pengembangan perangkat lunak yang efisien dan optimal, karena masing-masing
memiliki keunggulan dan kekurangan yang sesuai untuk berbagai jenis aplikasi.
3.1.8 Linked list
1. Singly Linked List

Gambar 3.14 Langka Kerja Singly Linked List

Gambar 3.15 Langka Kerja Singly Linked List


2. Doubly Linked List

Gambar 3.16 Langka Kerja Doubly Linked List


Gambar 3.17 Langka Kerja Doubly Linked List
4.1.8 Linked List
1. Singly Linked List

Gambar 4.11 Hasil Singly Linked List


Program ini mengimplementasikan linked list sederhana dan menguji
berbagai metode yang telah diimplementasikan untuk menambahkan,
menampilkan, dan menghapus node. Pertama, kelas `Node` didefinisikan
data integer dan pointer yang menunjuk ke node berikutnya. Kelas
`LinkedList` kemudian didefinisikan untuk mengelola daftar ini, dengan
beberapa metode untuk memanipulasi linked list: `insert At Beginning` untuk
menambahkan node di awal daftar, `insertAtEnd` untuk menambahkan node
di akhir daftar, `insertAfter` untuk menambahkan node setelah node tertentu,
`insert Before` untuk menambahkan node sebelum node tertentu, `display`
untuk menampilkan semua node dalam daftar, dan `deleteNode` untuk
menghapus node dengan nilai tertentu. Pada fungsi `main`, sebuah objek
`LindLisket` dibuat dan tiga node dengan nilai 1, 2, dan 3 ditambahkan ke
dalam linked list menggunakan metode `insertAtEnd`. Saat metode `display`
dipanggil, linked list ditampilkan sebagai "Linked List: 1 -> 2 -> 3 -> NULL",
menunjukkan bahwa ketiga node telah berhasil ditambahkan. Selanjutnya, node
dengan nilai 1 dihapus menggunakan metode `deleteNode`. Ketika metode
`display` dipanggil lagi, output yang dihasilkan adalah "Linked List: 2 -> 3 ->
NULL", yang menunjukkan bahwa node dengan nilai 1 telah berhasil dihapus
dari linked list, dan node yang tersisa adalah 2 dan 3. Hasil ini mengonfirmasi
diperbarui sesuai dengan operasi yang dilakukan.
2. Doubly Linked List

Gambar 4.12 Hasil Doubly Linked List


Program ini mengimplementasikan struktur data Doubly Linked List, yang
merupakan varian dari linked list biasa, di mana setiap node memiliki dua pointer:
satu untuk node sebelumnya (prev) dan satu untuk node berikutnya (next). Kelas
`Node` didefinisikan untuk merepresentasikan setiap elemen dalam linked list,
dengan tambahan pointer `prev` yang menunjuk ke node sebelumnya.
Selanjutnya, kelas `DoublyLinkedList` didefinisikan untuk mengelola linked list
tersebut, dengan berbagai metode untuk menambah, menampilkan, dan
menghapus node. Metode `insertAtBeginning` dan `insertAtEnd` digunakan untuk
`insertBefore` digunakan untuk menambahkan node setelah dan sebelum node
dengan nilai tertentu. Dalam fungsi `main`, sebuah objek `DoublyLinkedList`
dibuat, dan tiga node dengan nilai 1, 2, dan 3 ditambahkan ke linked list
menggunakan metode `insertAtEnd`. Setelah itu, linked list ditampilkan dua kali:
pertama dari depan ke belakang menggunakan metode `displayForward`, dan
kedua dari belakang ke depan menggunakan metode `displayBackward`. Output
dari kedua pemanggilan ini menampilkan linked list secara berurutan dan
terbalik. Selanjutnya, node dengan nilai 5 ditambahkan sebelum node dengan
nilai 2 menggunakan metode `insertBefore`, dan node dengan nilai 7
ditambahkan setelah node dengan nilai 5 menggunakan metode
`insertAfter`. Setiap kali linked ini memberikan gambaran visual tentang
bagaimana struktur linked list berubah setelah setiap operasi penambahan.

Anda mungkin juga menyukai