Minggu, 20 Juni 2021

Pemrograman OOP Java : Queue 1

 

 

 

 

 

Dasar Program Java Berorientasi Objek

Queue 1 : Operasi Dasar Queue


The Objective

Buatlah program menggunakan double linked list yang minimal memiliki menu untuk menjalankan operasi-operasi dasar Queue, antara lain: enqueue, dequeue, dan print. Studi kasusnya adalah antrian pembayaran listrik dengan data yang disimpan dalam node/ simpul adalah nomor urut antrian, dan kode pelanggan.

Posting program dan screenshot-nya di weblog masing-masing. Dan tuliskan link-nya sebagai pesan komentar untuk topik diskusi ini. Jangan lupa sertakan NPM dan Nama.


Source Code

  • appBarisan (Main)

package BasicQueue;

import java.util.Scanner;

public class appBarisan {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        cOperasiBaris brs = new cOperasiBaris();
        int pilih=0;
        do {
            System.out.println("\nAPLIKASI BARISAN PEMBAYARAN LISTRIK");
            System.out.println("1. Enqueue");
            System.out.println("2. Dequeue");
            System.out.println("3. Print");
            System.out.println("4. Exit");
            System.out.print("Pilih = ");
            pilih=input.nextInt();
            switch(pilih) {
            case 1:
                System.out.print("Input Nomor Tunggu: ");
                String notung = input.next();
                System.out.print("Input Kode Pelanggan: ");
                String kodep = input.next();
                cTitikKomponen tk = new cTitikKomponen(notung, kodep);
                brs.enqueue(tk);
                break;
            case 2:
                cTitikKomponen temp = brs.dequeue();
                if(temp==null) {
                    System.out.println("Barisan Saat Ini Kosong");
                }
                else {
                    System.out.println(temp.getkodepelanggan()+" keluar");
                }
                break;
            case 3:
                brs.cetak();
                break;
            case 4:
                System.out.println("Terima Kasih, Sampai Jumpa");
                break;
            }
        }while(pilih!=4);

    }
}

  • cTitikKomponen (The Node)
package BasicQueue;

public class cTitikKomponen {
    private String nomortunggu;
    private String kodepelanggan;
    cTitikKomponen selanjutnya, sebelumnya;
    cTitikKomponen(String notung, String kodep){
        kodepelanggan=kodep; nomortunggu=notung;
        selanjutnya=sebelumnya=null;
        System.out.println("Object "+notung+ " dan "+kodep+" dibuat...");
    }
    
    public String getnomortunggu() {
        return nomortunggu;
    }
    
    public String getkodepelanggan() {
        return kodepelanggan;
    }
}

  • cOperasiBaris (The Queue Operation)
package BasicQueue;

public class cOperasiBaris {
    cTitikKomponen depan, belakang;
    int ukuran;
    cOperasiBaris(){
        depan=belakang=null;
        ukuran=0;
        System.out.println("Objek Barisan Berhasil Dibentuk");
    }
    
    public void enqueue(cTitikKomponen baru) {
        if(belakang==null) {
            depan=belakang=baru;
        }
        else {
            belakang.selanjutnya=baru;
            baru.sebelumnya=belakang;
            belakang=baru;
        }
        ukuran++;
        System.out.println("Enqueue Berhasil Dilakukan");
        System.out.println("");
    }
    
    public cTitikKomponen dequeue() {
        if(belakang==null) {
            System.out.println("Barisan Masih Kosong Saat Ini");
            return(null);
        }
        else if(depan.selanjutnya==null) {
            cTitikKomponen temp=depan;
            depan=belakang=null;
            System.out.println("Dequeue Berhasil Dilakukan");
            ukuran--;
            return(temp);
        }
        else {
            cTitikKomponen temp=depan.selanjutnya;
            cTitikKomponen temp2=depan;
            temp2.selanjutnya=null;
            depan=temp;
            depan.sebelumnya=null;
            System.out.println("Dequeue Berhasil Dilakukan");
            ukuran--;
            return(temp2);
        }
    }
    
    public void cetak() {
        System.out.println("Isi Barisan "+ukuran+" : ");
        System.out.println("DAFTAR BARISAN TRANSAKSI TOKEN LISTRIK");
        for (cTitikKomponen temp=depan; temp!=null; temp=temp.selanjutnya) {
            System.out.println(temp.getnomortunggu()+"\t"+temp.getkodepelanggan());
        }
        System.out.println("");
    }
}


The Visual Output             

  •  QUEUE
 
  • PRINT

  •  DEQUEUE + PRINT

Catatan :

  • Bila gambar yang ditampilkan kurang jelas, mohon klik gambar tersebut.

Terimakasih telah berkunjung, have a nice day :))













Tidak ada komentar:

Posting Komentar