Laporan Praktikum Algoritma & Struktur Data Bab 8 Fakultas Ilmu Komputer Universitas Brawijaya 2017/2018
Soal :
Source code :
Soal no.1
Class Bab8QueueNode
Class Bab8QueueList
Class Bab8Queue
Soal no.2
Download the file here
Soal :
1. Kembangkan
program antrian dengan menggunakan ADT Double Linked List yang telah dibuat
pada praktikum sebelumnya. Perhatikan bahwa sifat antrian adalah FIFO : First
In First Out
2. Susunlah
program untuk simulasi Round Robin. Setiap proses deQueue() dilakukan pada
suatu node maka isi suatu node berkurang 1, kalau nilainya sudah sama dengan 0
maka node tersebut dihapus dari List jika lebih besar dari 0 node tersebut
diantrikan lagi untuk diproses berikutnya dengan menggunakan ADT Circular
Linked List
Source code :
Soal no.1
Class Bab8QueueNode
package asdmodul3; public class Bab8QueueNode { Object data; public Bab8QueueNode next; Bab8QueueNode(Object object) { this(object, null); } Bab8QueueNode(Object object, Bab8QueueNode node) { data = object; next = node; } Object getObject() { return data; } Bab8QueueNode getNext() { return next; } }
Class Bab8QueueList
package asdmodul3; public class Bab8QueueList { private Bab8QueueNode nodeAwal; private Bab8QueueNode nodeAkhir; private String nama; public Bab8QueueList() { this("list"); } public Bab8QueueList(String namaList) { nama = namaList; nodeAwal = nodeAkhir = null; } public void sisipDiAwal(Object dt) { if (kosong()) { nodeAwal = nodeAkhir = new Bab8QueueNode(dt); } else { nodeAwal = nodeAkhir.next = new Bab8QueueNode(dt); } } public void sisipDiAkhir(Object dt) { if (kosong()) { nodeAwal = nodeAkhir = new Bab8QueueNode(dt); } else { nodeAkhir = nodeAkhir.next = new Bab8QueueNode(dt); } } public Object hapusDrDepan() { Object itemDihapus = null; if (!kosong()) { itemDihapus = nodeAwal.data; if (nodeAwal == nodeAkhir) { nodeAwal = nodeAkhir = null; } else { nodeAwal = nodeAwal.next; } } return itemDihapus; } public boolean kosong() { return nodeAwal == null; } public void cetak() { if (kosong()) { System.out.printf("Kosong %s\n", nama); return; } System.out.printf("Isi %s adalah : ", nama); Bab8QueueNode kini = nodeAwal; while (kini != null) { System.out.printf("%s ", kini.data); kini = kini.next; } System.out.println("\n"); } }
Class Bab8Queue
package asdmodul3; public class Bab8Queue { private Bab8QueueList listAntrian; public Bab8Queue() { listAntrian = new Bab8QueueList("queue"); } public void enqueueDepan(Object object) { listAntrian.sisipDiAwal(object); } public void enqueueBelakang(Object object){ listAntrian.sisipDiAkhir(object); } public Object dequeue() { return listAntrian.hapusDrDepan(); } public boolean kosong() { return listAntrian.kosong(); } public void cetak() { listAntrian.cetak(); } public static void main(String args[]) { Bab8Queue q = new Bab8Queue(); q.enqueueDepan(10); q.cetak(); q.enqueueBelakang(54); q.cetak(); q.enqueueBelakang(10); q.cetak(); q.enqueueBelakang(94); q.cetak(); q.enqueueDepan(25); q.cetak(); Object dtHapus = null; while (!q.kosong()) { dtHapus = q.dequeue(); System.out.printf("%s dihapus \n", dtHapus); q.cetak(); } } }
Soal no.2
package asdmodul3; class NodeRR { Object data; public NodeRR next; NodeRR(Object object) { this(object, null); } NodeRR(Object object, NodeRR node) { data = object; next = node; } Object getObject() { return data; } NodeRR getNext() { return next; } } public class RoundRobin { private NodeRR nodeAwal, nodeAkhir; private String nama; public RoundRobin() { this("list"); } public RoundRobin(String namaList) { nama = namaList; nodeAwal = nodeAkhir = null; } public void enqueue(Object dt) { if (kosong()) { nodeAwal = nodeAkhir = new NodeRR(dt); } else { nodeAkhir = nodeAkhir.next = new NodeRR(dt); } } public Object dequeue() { Object itemDihapus = null; if (!kosong()) { itemDihapus = nodeAwal.data; do { if (nodeAwal == nodeAkhir) { nodeAwal = nodeAkhir = null; } else { nodeAwal = nodeAwal.next; enqueue((int) itemDihapus - 1); if ((int)nodeAwal.data==0){ nodeAwal = nodeAwal.next; } } }while ((int)nodeAwal.data==0); } return itemDihapus; } public boolean kosong() { return nodeAwal == null; } public void cetak() { if (kosong()) { System.out.printf("Kosong %s\n", nama); return; } System.out.printf("Isi %s adalah : ", nama); NodeRR kini = nodeAwal; while (kini != null) { System.out.printf("%s ", kini.data); kini = kini.next; } System.out.println("\n"); } public static void main(String[] args) { RoundRobin q = new RoundRobin(); q.enqueue(4); q.cetak(); q.enqueue(3); q.cetak(); q.enqueue(2); q.cetak(); q.enqueue(1); q.cetak(); Object dtHapus = null; while (!q.kosong()) { dtHapus = q.dequeue(); System.out.printf("%s dihapus \n", dtHapus, "%s didecrement dan dienqueue \n", dtHapus); q.cetak(); } } }
Download the file here
tae
BalasHapus