Pengertian Linked list :
- sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian
- struktur berupa rangkaian elemen saling berkait dimana setiap elemen dihubungkan elemen lain melalui pointer. Pointer adalah alamat elemen. Penggunaan pointer untuk mengacu elemen berakibat elemen-elemen bersebelahan secara logik walau tidak bersebelahan secara fisik di memori.
Link list adalah desain tempat penyimpanan data yang terdiri dari node-node (simpul-simpul) yang saling terhubung.
Link list dapat diilustrasikan seperti kereta api, dimana kereta api terdiri dari gerbong-gerbong yang saling terhubung yang dapat mengangkut penumpang. Gerbong disini setara dengan node dalam link list yang berfungsi untuk menyimpan data.
Jika kita menyimpan data 3, 5 dan 7 dalam array, maka ilustrasi tempat penyimpanannya sbb:
Dengan 1 nama, array bisa menyimpan data yg bertipe sama. Dimana setiap data mempunyai indeks.
Sedangkan jika data tersebut disimpan dalam link list, maka ilustrasi tempat penyimpanannya sbb:
Singly Linked List :
~ Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya dan juga memiliki field yang berisi data.
~ Akhir linked list ditandai dengan node terakhir akan menunjuk ke null yang akan digunakan sebagai kondisi berhenti saat pembacaan linked list.
Doubly Linked List :
~ Linked
list dengan menggunakan pointer, dimana setiap node memiliki 3 field,
yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field
pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data
dari node tersebut.
~ Pointer next dan prev-nya menunjuk ke null.
Singly Circular Linked List :
~ Single
Linked List yang pointer next-nya menunjuk ke dirinya sendiri, jika
terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke
pointer terdepannya.
Double Circular Linked List :
~ Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.
Link list tidak mempunyai indeks seperti array. Kita hanya bisa memberi nama node. Akan tetapi, tidak semua node dalam link list mempunyai nama. Sebaiknya kita memberi nama untuk node yang pertama (misal namanya head), dan node yang terakhir (misal namanya tail). Tujuannya untuk memudahkan operasi link list dari depan atau belakang, misal nambah data atau menghapus data.
Langkah yang pertama, kita harus mendefinisikan apa itu node. Dalam Java, sebaiknya pendefinisian node ini dibuat dalam sebuah class, misal:
Kemudian kita buat design link list dalam class yang lain, misal:
Operasi-operasi yang bisa dilakukan dalam link list yaitu:
- Tambah data (insert)
- Edit data (edit)
- Hapus data (delete)
- Pengurutan data (sorting)
- Pencarian data (searching)
Tambah Depan
Untuk tambah data dari depan, caranya:
Tambah Belakang
Untuk tambah data dari belakang, caranya:
Hapus Depan
Untuk menghapus data dari depan, caranya:
Hapus Belakang
Untuk menghapus data dari belakang, caranya:
Referensi:
http://dianuraiman.blogspot.com/2011/11/link-list-dalam-java.html
http://tutorialpemrograman.wordpress.com/2009/02/14/linked-list-dalam-bahasa-java/
http://desiasfi.wordpress.com/2012/04/14/stack-dan-queue-dengan-linked-list-pada-java/
Salam kenal teh fenny,
BalasHapusSangat bermanfaat tulisannya, tetapi link untuk download contoh program lengkap tidak bisa dibuka,
segera diperbaiki ya teh.
Terima kasih
Okesippp samasama...
Hapusok.. makasih jg masukannya
butuh perbaikannya teh fenny
Hapusmbak fenny izin copas yah
BalasHapusselffi binadarma 2013 :) tugas struktur data nih hehe
sangat bermanfaat sekali untuk tugas kuliah :D
BalasHapusprogramnya bisa dikirim diemail saya?? timkreatifblog@gmail.com
BalasHapusprogramnya 404 min...
BalasHapusupdate dong ? ato via email sy boleh
Sangat membantu
BalasHapuskalau method mencari menggunakan dua parameter gimana min..??
BalasHapus