Linked List saling terhubung dengan bantuan variabel pointer Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field.
Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULL.
Linked List : artinya node-node tersebut saling terhubung satu sama lain. Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.
Jenis Single LinkList
- Single linked list dengan HEAD
- Single linked list dengan HEAD dan TAIL
Deklarasi Single LinkList
Model struktur dari linked list tersebut dalam Java adalah sebagai berikut:
public class Node {
private int data; /* integer data diisikan dalam node */
Node nextNode; /* node selanjutnya dalam list */
Node(){
this.data = 0; this.nextNode = null;
}
Pembuatan Single Linked List
Keyword new gunanya untuk mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL.
public void buatNode (int dt) {
Node nodebaru = new Node();
nodebaru.data = dt;
nodebaru.next = pointer;
pointer = nodebaru;
}
Penambahan data dari depan
Pada prinsipnya adalah mengkaitkan node baru dengan head, kemudian head akan menunju pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan.
public boolean sisip (int dt1, int dt2) {
Node n = pointer;
while ((n!=null) && (n.data!= dt2))
n = n.next;
if (n==null) return false;
Node nn = new Node ();
nn.data=dt1;
nn.next=n.next;
n.next=nn;
return true;
}
Menghapus data dari depan
Function di atas akan menghapus data terdepan (pertama) yang ditunjuk oleh head pada linked list, Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer. Sebelum data terdepan dihapus, head harus ditunjukkan ke node sesudahnya terlebih dahulu agar list tidak putus, sehingga node setelah head lama akan menjadi head baru (data terdepan yang baru). Jika head masih NULL maka berarti data masih kosong!
public int hapusDiDepan () {
Node hapus = pointer;
pointer = pointer.next;
return hapus.data;
}
Screenshoot Program
untuk mendapatkan source code programnya bisa PM ane atau komen disini, jika banyak permintaan ane kasih..
THANKS YA FOR INFO'A
ReplyDeletesama2 :)
DeleteBermanfaat juga :-) *nice post ...mampir blog gua juga yaa www.blog-berbagi-pengetahuan.blogspot.com #SalamBloggerMania
ReplyDeleteOke bro
Deletemakasih infonya bermanfaat
ReplyDeletemksh gan, lg ada tugas struktur data ni, izin copy
ReplyDeleteMantap bnget gan, ilmu nya, izin copas....
ReplyDeleteGan source code programnya mana?
ReplyDeletethanks bro makasih
ReplyDeleteby cakdarwis.blogspot.com
maslinked list ini nanti nya kapan kita gunakan , kalo untuk pennjelasan mas tentang dasar linked list sudah mantap
ReplyDeletebiasanya kita gunakan dalam database
Delete