Laporan Praktikum Algoritma & Struktur Data Bab 4 Fakultas Ilmu Komputer Universitas Brawijaya 2017/2018
Soal :
Source code :
Class Bab4SLL
Class Bab4Real
Download the file here
Soal :
1. Modifikasilah program
Latihan 4 di atas sehingga SLL dapat
menampung sembarang object. Untuk itu anda perlu membuat class baru bernama
Buku dengan data dan method sebagai berikut :
2. Untuk penyisipan data secara urut gunakan
pengurutan berdasarkan HargaSewa.
Class Bab4SLL
package asdmodul2; public class Bab4SLL { public String kategori, judul; public double hargaSewa, hargaDenda; public Bab4SLL(String judul, String kategori, double hargaSewa, double hargaDenda) { this.judul = judul; this.kategori = kategori; this.hargaSewa = hargaSewa; this.hargaDenda = hargaDenda; } public double getHargaSewa() { return hargaSewa; } public double getHargaDenda() { return hargaDenda; } public String getKategori() { return kategori; } public String getJudul() { return judul; } }
Class Bab4Real
package asdmodul2; class Node2 { public Object data; public String judul, kategori; public double hargaSewa, hargaDenda; public Node2 pointer, next; } public class Bab4Real { public Node2 pointer, tail, peep = null; public Bab4Real() { pointer = null; } public void buatNode(String jdl, String kategori, double hS, double hD) { Node2 nodeBaru = new Node2(); nodeBaru.data = jdl; nodeBaru.kategori = kategori; nodeBaru.hargaSewa = hS; nodeBaru.hargaDenda = hD; nodeBaru.next = pointer; pointer = nodeBaru; } public boolean sisip(String jd, String jdl) { Node2 n = pointer; while ((n != null) && (n.data != jdl)) { n = n.next; } if (n == null) { return false; } Node2 nn = new Node2(); nn.data = jd; nn.next = n.next; n.next = nn; return true; } public Node2 hapusDiDepan() { Node2 hapus = pointer; pointer = pointer.next; return hapus.pointer; } public void sisipDataDiAkhir(String j, String k, double s, double d) { Node2 pSblAkhir, pAkhir; pSblAkhir = null; pAkhir = pointer; Node2 baru = new Node2(); baru.data = j; baru.kategori = k; baru.hargaSewa = s; baru.hargaDenda = d; baru.next = null; while (pAkhir != null) { pSblAkhir = pAkhir; pAkhir = pAkhir.next; } pSblAkhir.next = baru; } public void sisipDataUrut() { Node2 a = pointer; while (a != null) { Node2 b = a.next; while (b != null) { if (a.hargaSewa < b.hargaSewa) { double temp = a.hargaSewa; a.hargaSewa = b.hargaSewa; b.hargaSewa = temp; } b = b.next; } a = a.next; } } public void hapusData(String dataHapus) { if (pointer == null) { System.out.println("EMpty"); } else if (pointer.data == dataHapus) { pointer = pointer.next; } else if (pointer == null) { return; } Node2 curr = pointer; while (curr.next != null) { if (curr.next.data == dataHapus) { curr.next = curr.next.next; } else { curr = curr.next; } } } public Node2 getPointer() { return pointer; } /*public static ASDModul2 gabung(ASDModul2 L1, ASDModul2 L2) { return L1; }*/ public void cetak(String kom) { System.out.println(kom); Node2 n = pointer; while (n != null) { System.out.printf("%s%s %s%s %s %s%s %n", n.data, "\t", n.kategori, "\t", n.hargaSewa, "\t", n.hargaDenda); n = n.next; } System.out.println("NULL"); } public static void main(String[] args) { System.out.println("PROGRAM SEWA BUKU"); Bab4Real book = new Bab4Real(); book.buatNode("Jigsaw", "Thriller", 20000, 5000); book.buatNode("Night", "Horror", 25000, 5000); book.buatNode("Hujan", "Romance", 10000, 3000); System.out.println("Data Buku\n"); book.cetak("Judul \t Kategori \t Harga Sewa \t Harga Denda"); Bab4SLL bk = new Bab4SLL("Jigsaw", "Thriller", 20000, 5000); book.sisipDataUrut(); book.cetak("==================URUT BERDASARKAN HARGA SEWA===================\nJudul \t Kategori \t Harga Sewa \t Harga Denda"); book.sisipDataDiAkhir("Bulan", "Romance", 35000, 15000); book.cetak("==================DATA BUKU 'BULAN' DITAMBAHKAN=================\nJudul \t Kategori \t Harga Sewa \t Harga Denda"); book.hapusDiDepan(); book.cetak("========================DATA AWAL DIHAPUS=======================\nJudul \t Kategori \t Harga Sewa \t Harga Denda"); book.hapusData("Bulan"); book.cetak("====================DATA BUKU 'BULAN' DIHAPUS===================\nJudul \t Kategori \t Harga Sewa \t Harga Denda"); } }
Download the file here
0 comments:
Posting Komentar