Minggu, 02 Mei 2021

Pemrograman OOP Java : Linked List

 

 

 

 

Dasar Program Java Berorientasi Objek

Linked List Series 1


The Objective

Buatlah program linked list dengan menu seperti untuk mengelola data barang yang terdiri dari Kode , Nama , dan Harga..

 

Source Code

  • appTokoRama (Main Linked List)

//F Ramaditya Arief Nursanto
//Linked List 1

public class appTokoRama {
    public static void main(String[] args) {
        cOperasiBarang tko = new cOperasiBarang(null);
        Scanner input = new Scanner(System.in);
        int opsi=0;

        do{
            System.out.println();
            System.out.println("Menu Aplikasi Toko Rama");
            System.out.println("1. Menambah Barang Baru");
            System.out.println("2. Menghapus Barang Tersedia");
            System.out.println("3. Mencari Barang Dalam Daftar");
            System.out.println("4. Mencetak Daftar List Barang");
            System.out.println("5. Keluar Dari Program");
            System.out.print("Masukkan Opsi : ");
            opsi=input.nextInt();

            switch(opsi) {
                case 1:
                    System.out.println();
                    System.out.print("Masukkan Kode Barang : ");
                    String kdb = input.next();
                    System.out.print("Masukkan Nama Barang : ");
                    input = new Scanner(System.in);
                    String nmb = input.nextLine();
                    System.out.print("Masukkan Harga Barang : ");
                    input = new Scanner(System.in);
                    int hgb = input.nextInt();
                    cBarangBaru brb = new cBarangBaru(kdb, nmb, hgb);
                    tko.menambahBarang(brb);
                    break;
                case 2:
                    tko.menghapusBarang();
                    break;
                case 3:
                    System.out.println();
                    System.out.print("Nama Barang yang Dicari : ");
                    String nbrb = input.next();
                    tko.mencariBarang(nbrb);
                    break;
                case 4:
                    tko.mencetakBarang();
                    break;
                case 5:
                    System.out.println("Sampai Jumpa & Terima Kasih!");
                    break;
                    default : System.out.println("Pastikan Untuk Memilih Menu yang Tersedia Ya");

            }
        }while(opsi!=5);
    }
}

  • cOperasiBarang (DaftarTerkait)
//F Ramaditya Arief Nursanto
//Linked List

public class cOperasiBarang {
    private cBarangBaru depan;
    int dBarangBaru;

    cOperasiBarang (cBarangBaru shelf) {
        depan=shelf; dBarangBaru=0;
    }

    public void menambahBarang(cBarangBaru addition) {
        if(depan==null) {
            depan=addition;
        }else {
            addition.setselanjutnya(depan);
            depan=addition;
        }
        dBarangBaru++;
        System.out.println("Barang Berhasil Didaftarkan");
    }

    public String menghapusBarang() {
        String tempKode=null;
        String tempNama=null;
        int tempHarga=0;
        
        if(depan!=null) {
            cBarangBaru all=depan.getselanjutnya();
            tempKode=depan.getkodebarang();
            tempNama=depan.getnamabarang();
            depan.setselanjutnya(null);
            depan=all;
            dBarangBaru--;
            System.out.println("Barang Tersebut Berhasil Dihapus dari Daftar");
        }else {
            System.out.println("Daftar Barang Saat ini Telah Kosong");
            return tempKode+" "+tempNama+" "+tempHarga;
        }
        return tempNama;
    }

    public void mencariBarang(String src) {
        boolean eksis = false;
        System.out.println();
        System.out.println("Hasil Mencari Barang Dari Daftar : ");
        for(cBarangBaru all=depan; all!=null; all=all.getselanjutnya()) {
            if(all.getnamabarang()==src) {
                eksis = true;
                break;
            }
        }
            if(eksis==false) {
                System.out.println("Barang Tersebut Tidak Ada Dalam Daftar");
            }else{
                System.out.println("Barang Tersebut Ditemukan");
            }
    }

    public void mencetakBarang() {
        System.out.println();
        System.out.println("Daftar Barang di Toko Rama");
        for(cBarangBaru all=depan; all!=null; all=all.lanjut) {
            System.out.println("\nKode Produk : "+all.getkodebarang()+"\nNama Barang : "+all.getnamabarang()+"\nHarga Barang : "+all.gethargabarang());
        }
    }
}
  • cBarangBaru (Node)

 //F Ramaditya Arief Nursanto
//Linked List 1

public class cBarangBaru {
    private String kodebarang;
    private String namabarang;
    private int hargabarang;   

    cBarangBaru lanjut;
    cBarangBaru(String kdb, String nmb, int hgb) {
        lanjut=null; kodebarang=kdb; namabarang=nmb; hargabarang=hgb;
    }

    //set Barang Baru
    public void setkodebarang(String kdb) {
        kodebarang=kdb;
    }
    public void setnamabarang(String nmb) {
        namabarang=nmb;
    }
    public void sethargabarang(int hgb) {
        hargabarang=hgb;
    }
    public void setselanjutnya(cBarangBaru lnjt){
        lanjut=lnjt;
    }

    //get Barang Baru
    public String getkodebarang() {
        return kodebarang;
    }
    public String getnamabarang() {
        return namabarang;
    }
    public int gethargabarang() {
        return hargabarang;
    }
    public cBarangBaru getselanjutnya() {
        return lanjut;
    }
}

The Visual Output              

  •  Tampilan Menu Aplikasi
 

  •  Penambahan Barang dengan Linked List
 



  •  Mencetak Daftar Barang



  •  Menghapus Barang
 

  •  Mencari Barang


Catatan : 

  • Masih terdapat satu Bug dimana program tidak dapat melakukan pencarian barang yang dimaksud
  • Bila gambar yang ditampilkan kurang jelas, mohon klik gambar tersebut.

Terimakasih telah berkunjung, have a nice day :))





Tidak ada komentar:

Posting Komentar