Jumat, 05 Januari 2018

, ,

ALGORITMA & STRUKTUR DATA BAB 4 : ADT SINGLE LINKED LIST

Laporan Praktikum Algoritma & Struktur Data Bab 4 Fakultas Ilmu Komputer Universitas Brawijaya 2017/2018

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.

Source code :
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
Share:

0 comments:

Posting Komentar