Lap.link List

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

Transcript of Lap.link List

Page 1: 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

Page 2: Lap.link List

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

Page 3: Lap.link List

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).

Page 4: Lap.link List

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;

}

Page 5: Lap.link List

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;

}

Page 6: Lap.link List

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");

Page 7: Lap.link List

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;

Page 8: Lap.link List

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){

Page 9: Lap.link List

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");

Page 10: Lap.link List

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

Page 11: Lap.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 

Page 12: Lap.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

Page 13: Lap.link List

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

Page 14: Lap.link List

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