Linked list
Linked List atau senarai berantai adalah kumpulan atau koleksi dari komponen yang dinamakan node. Setiap node menyimpan informasi tentang alamat dari node berikutnya (Malik, 2003). Sebuah node terdiri dari dua bagian, yaitu data dan link.
Apabila kita menggunakan java, konsep linked list ini sudah terlingkupi dalam Java Collection Framework (JCF). Dengan Java, kita tidak perlu lagi membuat LinkedList. Kita tinggal menggunakan class yang sudah disediakan dalam JCF.
Berikut syntax yang anda tuliskan kalau anda menggunakan JCF:
import java.util.*;
public class MyLinkedList {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add(5);
list.addFirst(3);
list.addLast(9);
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(”angka: ” + it.next());
}
}
}
Dalam contoh berikut, linked list akan dimanfaatkan untuk mencatat nomor telepon. Untuk itu, dibuat class untuk menampung data dari tiap orang, yaitu dalam class PhoneBook.
import java.util.*;
public class CobaLinkedList {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add(new PhoneBook(”Arwan”,”0812157826″));
list.add(new PhoneBook(”Roni”,”Ra duwe”));
list.addFirst(new PhoneBook(”Hari”,”0892392929″));
list.addLast(new PhoneBook(”Edi”,”0839298493″));
list.remove(1);
Iterator it = list.iterator();
while (it.hasNext()) {
PhoneBook tampil = (PhoneBook) it.next();
System.out.println(”nama: ” + tampil.nama);
System.out.println(”No HP: ” + tampil.noHP);
}
}
}
class PhoneBook {
String nama;
String noHP;
public PhoneBook(String nama, String noHP) {
this.nama = nama;
this.noHP = noHP;
}
}
Dalam contoh di atas, kita memanfaatkan LinkedList yang sudah ada dalam Java Collection Framework. Beriikut kalau anda ingin membuat class linked list sendiri, berikut class listnya:
public class MyList {
Object elemen;
MyList next;
public MyList(Object elemen) {
this.elemen = elemen;
this.next = null;
}
}
Untuk menambahkan list di depan, terlebih dahulu anda harus menghubungkan list yang baru dngan list yang sudah ada, kemudian memindahkan ujung depan dari list menjadi list yang baru anda masukkan. Berikut syntax untuk tambah depan:
public static MyList tambahDepan(MyList list, Object elemen) {
MyList temp = new MyList(elemen);
temp.next = list;
return temp;
}
Untuk menambahkan di belakang, maka terlebih dahulu anda harus mencari list yang paling belakang, kemudian mengarahkan list paling belakang ke dalam list yang baru anda masukkan. Berikut syntax untuk tambah belakang:
public static MyList tambahBelakang(MyList list, Object elemen) {
MyList temp = new MyList(elemen);
MyList depan = list;
while (list.next != null) {
list = list.next;
}
// sudah di akhir
list.next = temp;
return depan;
}
Untuk menambahkan di tengah, ini yang agak harus hati-hati. Jangan sampai anda menghilangkan link ke list berikutnya. Utuk itu anda harus mencari posisi yang tepat, kemudian mengarahkan link list baru anda dengan list setelah list, baru kemudian mengarahkan link dari list ke list baru anda. Berikut syntax untuk tambah tengah:
public static MyList tambahTengah(MyList list, Object elemen, int index) {
MyList temp = new MyList(elemen);
MyList depan = list;
int i=0;
while ((list.next != null) && (i < (index-1))) {
i++;
list = list.next;
}
temp.next = list.next;
list.next = temp;
return depan;
}
Dikutip dari: arwankhoiruddin.staff.uii.ac.id/2009/03/25/linked-list/
tanpa pengubahan…

Tidak ada komentar:
Posting Komentar