Senin, 10 Mei 2021

Pemrograman OOP Java : Double Linked List 1

 

 

 

 

 

 

Dasar Program Java Berorientasi Objek

Double Linked List Series 1


The Objective

Buatlah program sederhana untuk mengelola data barang yang terdiri dari Kode, Nama dan Harga dengan menggunakan double linked list. Menu program setidaknya untuk menambah simpul baru, menghapus simpul, menampilkan linked list (maju dan mundur), serta mencari data Nama di dalam linked list.

 

Source Code

  • appTokoRama (Main Linked List)

package doublelink1;

//F Ramaditya Arief Nursanto
//Double Link List 1

import java.util.Scanner;

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)
package doublelink1;

//F Ramaditya Arief Nursanto
//Double Link List 1

public class cOperasiBarang {
    private cBarangBaru depan;
    private cBarangBaru belakang;
    int dBarangBaru;

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

    public void menambahBarang(cBarangBaru addition) {
        if(depan==null) {
            depan=belakang=addition;
        }else {
            belakang.lanjut=addition;
            addition.mundur=belakang;
            belakang=addition;
        }
        System.out.println("Barang Berhasil Didaftarkan");
    }

    public void menghapusBarang() {
        if(depan==null) {
            System.out.println("Tidak Ada Daftar yang Bisa Dihapus");
        } else if(depan.lanjut==null) {
            depan=belakang=null;
            System.out.println("Barang Tersebut Berhasil Dihapus");
        } else {
            cBarangBaru hap=belakang.mundur;
            belakang.mundur=null;
            hap.lanjut=null;
            belakang=hap;
            System.out.println("Barang Tersebut Berhasil Dihapus");
        }
    }

    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.lanjut) {
            if(all.getnamabarang().equalsIgnoreCase(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("Daftar Barang di Toko Rama");
        System.out.println("Kode Barang \t\tNama Barang \t\tHarga Barang");
        System.out.println("List Maju ");
        for(cBarangBaru all=depan; all!=null; all=all.lanjut) {
            System.out.println(all.getkodebarang()+"\t\t"+all.getnamabarang()+"\t\t"+all.gethargabarang());
            all.toString();
        }
        System.out.println();
        System.out.println("List Mundur ");
        for(cBarangBaru all=belakang; all!=null; all=all.mundur) {
            System.out.println(all.getkodebarang()+"\t\t"+all.getnamabarang()+"\t\t"+all.gethargabarang());
            all.toString();
    } System.out.println();
  }
}

  • cBarangBaru (Node)

package doublelink1;

//F Ramaditya Arief Nursanto
//Double Link List 1

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

    cBarangBaru lanjut, mundur;
    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             

  •  Menu Utama Double Link List
 

  •  Menambah Barang dengan Double Linked List
 
 
 

  •  Mencetak Barang dengan Double Linked List


  •  Menghapus Barang dengan Double Linked List
 

Catatan : 

  • Masih terdapat satu Bug dimana program tidak menemukan barang yang dicari saat memilih menu pencarian
  • Bila gambar yang ditampilkan kurang jelas, mohon klik gambar tersebut.

Terimakasih telah berkunjung, have a nice day :))









Tidak ada komentar:

Posting Komentar