Lap.link List
-
Upload
jersey-bola -
Category
Documents
-
view
88 -
download
0
Transcript of Lap.link List
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 1/14
Laporan Praktikum Algoritma dan Struktur Data
Single & Double Link List
10 November 2011
Praktikan :
Sunna Rezkyarum Putri
105090604111005
Asisten :
Agung Putra W
Ratna Putri S
Laboratorium Matematika
Prodi Ilmu Komputer
Fakultas Matematika & Ilmu Pengetahuan
Alam
Universitas Brawijaya
Malang
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 2/14
BAB I
PENDAHULUAN
Linked List adalah salah satu bentuk struktur data,
berisi kumpulan data (node) yang tersusun secara
sekuensial, saling sambung-menyambung dan
dinamis.
Single Link List artinya field pointer-nya hanya
satu buah saja dan satu arah serta pada akhir node,
pointernya menunjuk NULL. Gambar berikut merupakan
ilustrasi dari penerapan single linked list :
Sedangkan Double Linked List (DLL) adalah
suatu cara pengolahan data yang bekerja dengan
record dalam jumlah besar, sehingga membutuhkan
alokasi memori dinamis yang besar pula. DLL biasanya
digunakan pada saat alokasi memori konvensional tidak
lagi bisa diandalkan. Sedangkan bekerja dengan data
yang besar tidak dapat dihindari lagi, karena tidak
jarang pula, data besar tersebut memiliki hubungan
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 3/14
yang erat. Di dalam DLL tidak hanya sekadar
menampilkan setiap record-nya, melainkan dapat pula
menambahkan record, menghapus beberapa record
sesuai keinginan pengguna, sampai mengurutkan
record. Kondisi tersebut memungkinkan dimilikinya satu
rantai data yang panjang dan saling berhubungan.
Pada Double Linked List, setiap node memiliki dua buah
pointer ke sebelah kiri (prev) dan ke sebelah kanan
(next).
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 4/14
BAB II
ISI
2.1 Source Code
2.1.1 Single Link List
class Node {
int data;
Node next;
}
public class SingleLinkList{
private Node pointer;
public SingleLinkList(){
pointer = null;
}
public void buatNode(int dt){
Node nodeBaru = new Node();
nodeBaru.data = dt;
nodeBaru.next = pointer;
pointer = nodeBaru;
}
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 5/14
public void cetak (String kom){
System.out.println(kom);
Node n = pointer;
while (n!=null){
System.out.print(n.data+"->");
n=n.next;
}
System.out.println("NULL");
}
public boolean sisipSebelum(int dt1,int
dt2){
Node n = pointer;
while((n!=null)&&(n.next.data!=dt2))
n=n.next;
if(n==null)return false;
Node ss = new Node();
ss.data = dt1;
ss.next = n.next;
n.next = ss;
return true;
}
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 6/14
public boolean HapusData(int dt){
Node n = pointer;
while((n!=null)&&(n.next.next.data!=dt))
n=n.next;
if(n==null)return false;
n.next = n.next.next;
return true;
}
public static void main (String[] args){
SingleLinkList l = new
SingleLinkList();
l.buatNode(15);
l.buatNode(23);
l.buatNode(21);
l.buatNode(9);
l.buatNode(7);
l.buatNode(6);
System.out.println("Single Link
List");
System.out.println();
l.cetak("Link List Mula-mula");
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 7/14
l.sisipSebelum(18,9);
System.out.println();
l.cetak("Data setelah disisipi data 18
sebelum data 9");
l.HapusData(18);
System.out.println();
l.cetak("Data setelah data sebelum 18
dihapus");
}}
2.1.2 Double Link List
class Node{
int data;
Node prev,next;
}
public class DoubleLL{
private Node head,tail;
public DoubleLL(){
head = null;
tail = null;
}
public void sisipDiHead(int dt){
Node baru = new Node();
baru.data = dt;
if(head == null){
baru.prev = head;
baru.next = tail;
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 8/14
head = baru;
tail = baru;
}else{
baru.next = head;
head.prev = baru;
head = baru;
}
}
public boolean sisipSetelah(int dt1,intdt2){
Node n = head;
while((n!=null)&&(n.next.data!=dt2))
n=n.next;
if(n==null)return false;
n=n.next;
Node baru = new Node();
if(n==tail){
baru.data = dt1;baru.next=tail;
tail=baru;
n.next=baru;
baru.prev=n;
}
baru.data = dt1;
baru.next=n.next;
baru.next.prev=baru;
n.next=baru;
baru.prev=n;
return true;
}
public boolean HapusData(int dt){
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 9/14
Node n = head;
while((n!=null)&&(n.data!=dt))
n=n.next;if(n==null)return false;
n.prev.next=n.next;
n.next.prev=n.prev;
return true;
}
public void cetak(String kom){
System.out.println(kom);System.out.print("head<->");
Node p = head;
while(p!=tail.next){
System.out.print(p.data+"<->");
p=p.next;
}
System.out.println("tail");
System.out.println();
}
public static void main (String
[]args){
DoubleLL d = new DoubleLL();
d.sisipDiHead(10);
d.sisipDiHead(30);
d.sisipDiHead(170);
d.sisipDiHead(50);
d.sisipDiHead(2);
System.out.println("Double Link List");
System.out.println();
d.cetak("Double Link List");
d.cetak("Data setelah sisip data di
head");
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 10/14
d.HapusData(170);
d.cetak("Data 170 setelah hapus data ");
d.sisipSetelah(300,50);d.cetak("Data setelah 30 sisip data ");
}}
2.2 OUTPUT
2.2.1 Single Link List
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 11/14
2.2.2 Double Link List
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 12/14
2.3 PEMBAHASAN
2.3.1 Single Link List
Pada program ini menggunakan single linked
list untuk menampilkan datanya . Paling pertama
membuat alat batu class node . Kemudian membuat
sebuah class SinglelinkList , dan membuat constructor .
Kemudian dibuat method-methode yang mempunyaimasing-masing tugas . Lalu di tampilkan dari method
main dan juga sumber data ,
2.3.1 Double Link List
Pada program ini menggunakan double link list
untuk menampilkan data .Program double link list sama
dengan single link list yang membedakannya terdapat
menambahan node prev , next . tail dan head . Head
untuk memasukkan data , untuk mencetaknya dari node
tail . Pada prosesnya juga hampir sama .
BAB III
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 13/14
Penutup
3.1 Kesimpulan
Keuntungan menggunakan Link list adalah kita
tidak perlu membuat program lagi ketika ingin
menambahkan node/tempat suatu data, kita hanya
tinggal memasukkan data pada method buatnode jika
ingin membuat node baru.
3.2 Saran
Praktikum sebaiknya dilakukan lebih awal , dan
dalam menerangkan algoritma programnya lebih pelan
agar lebih bisa di pahami
5/16/2018 Lap.link List - slidepdf.com
http://slidepdf.com/reader/full/laplink-list 14/14
Daftar pustaka
www.wilkipedia.com diakses pada tanggal 15 november 2011