Laporan Praktikum Algoritma & Struktur Data Bab 5 Fakultas Ilmu Komputer Universitas Brawijaya 2017/2018
Soal :
Source code :
Class NodeBuku
Class Bab5Buku
Download the file here
Soal :
Modifikasikanlah program di atas dengan
mengganti tipe item data pada NodeDLL dengan Object. Kemudian gunakan class
Buku yang pernah dibuat pada praktikum bab 4 untuk diisikan pada DLL. Gunakan
pemasukan data secara interaktif.
Source code :
Class NodeBuku
package asdmodul2; class NodeBuku { Object data; NodeBuku prev, next; String judul, kategori; double sewa, denda; }
Class Bab5Buku
package asdmodul2; import java.util.Scanner; public class Bab5Buku { private NodeBuku pKepala, pEkor; public Bab5Buku() { pKepala = null; pEkor = null; } public void sisipDipKepala(String j, String k, double s, double d) { NodeBuku baru = new NodeBuku(); baru.judul = j; baru.kategori = k; baru.sewa = s; baru.denda = d; if (pKepala == null) { baru.prev = pKepala; baru.next = pEkor; pKepala = baru; pEkor = baru; } else { baru.next = pKepala; pKepala.prev = baru; pKepala = baru; } } public void sisipDipEkor(String j, String k, double s, double d) { NodeBuku baru = new NodeBuku(); baru.judul = j; baru.kategori = k; baru.sewa = s; baru.denda = d; if (pEkor == null) { baru.prev = pKepala; baru.next = pEkor; pKepala = baru; pEkor = baru; } else { baru.prev = pEkor; pEkor.next = baru; pEkor = baru; } } public void hapusDataTertentu(String dataHapus) { NodeBuku curr = pKepala; while (curr.judul == null ? dataHapus != null : !curr.judul.equals(dataHapus)) { curr = curr.next; } if (curr == pKepala) { pKepala = curr.next; } else { curr.prev.next = curr.next; } if (curr == pEkor) { pEkor = curr.prev; } else { curr.next.prev = curr.prev; } } public void sisipDataTerurut(double s) { NodeBuku a = new NodeBuku(); a.sewa = s; NodeBuku curr = pKepala; while (curr != null) { NodeBuku cr = curr.next; while (cr != null) { if (curr.sewa > cr.sewa) { double temp = curr.sewa; curr.sewa = cr.sewa; cr.sewa = temp; } cr = cr.next; } curr = curr.next; } } public void cetak(String kom) { System.out.println(kom); NodeBuku p = pKepala; while (p != pEkor.next) { System.out.print("\nJudul : " + p.judul + "\nKategori : " + p.kategori + "\nBiaya sewa : " + p.sewa + "\nBiaya denda : " + p.denda + "\n============================="); p = p.next; } System.out.println("\nNULL"); } public static void main(String s[]) { Scanner sausan = new Scanner(System.in); int choose; String judul, kategori; double sewa, denda; Bab5Buku buku = new Bab5Buku(); NodeBuku book = new NodeBuku(); do { System.out.println("PROGRAM SEWA BUKU"); System.out.print("0.EXIT\n1.TAMBAH DATA AWAL\n2.TAMBAH DATA AKHIR\n3.HAPUS DATA\n4.URUTKAN DATA\n5.CETAK DATA\nPILIH "); choose = sausan.nextInt(); switch (choose) { case 1: System.out.print("Judul\t: "); judul = sausan.next(); sausan.nextLine(); System.out.print("Kategori\t: "); kategori = sausan.next(); sausan.nextLine(); System.out.print("Biaya sewa\t: "); sewa = sausan.nextDouble(); System.out.print("Biaya denda\t: "); denda = sausan.nextDouble(); buku.sisipDipKepala(judul, kategori, sewa, denda); break; case 2: System.out.print("Judul\t: "); judul = sausan.next(); sausan.nextLine(); System.out.print("Kategori\t: "); kategori = sausan.next(); sausan.nextLine(); System.out.print("Biaya sewa\t: "); sewa = sausan.nextDouble(); System.out.print("Biaya denda\t: "); denda = sausan.nextDouble(); buku.sisipDipEkor(judul, kategori, sewa, denda); break; case 3: System.out.print("Judul\t: "); judul = sausan.next(); sausan.nextLine(); buku.hapusDataTertentu(judul); buku.cetak("DATA BUKU '" + judul + "' DIHAPUS"); break; case 4: buku.sisipDataTerurut(book.sewa); buku.cetak("URUTANNYA"); break; case 5: buku.cetak("DATA BUKU"); break; } } while (choose != 0); } }
Download the file here
0 comments:
Posting Komentar