Minggu, 20 Juni 2021

Pemrograman OOP Java : Queue - ADT 1

 

 

 

 

 

 

Dasar Program Java Berorientasi Objek

Queue - ADT 1 : Plane Ticketing Program


The Objective

Buatlah program menggunakan pustaka ADT untuk melayani antrian pembelian tiket pesawat terbang di bandara. Menu program sekurang-kurangnya terdiri dari: ambil nomor antrian, panggil antrian, dan tampilkan daftar antrian. Di dalam menu panggil antrian, user memasukkan setidaknya data bandara asal, bandara tujuan, dan berat bagasi. Kemudian sistem akan menampilkan jumlah biaya total yang harus dibayar; standar biaya tiket dan bagasi silahkan diasumsikan sendiri. Fitur lain yang bisa ditambahkan adalah mengatur posisi kursi yang sudah terisi dan yang masih kosong sehingga penumpang bisa memilih seat-nya (perlu array 2 dimensi untuk menyimpan data kursi penumpang).

Posting program dan tampilannya di weblog masing-masing. Kemudian tuliskan tanggapan di diskusi ini berisi URL-nya, dilengkapi dengan NPM, dan Nama mahasiswa.


Source Code

  • appBarisan (Main)

package ADT;

import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;

public class appPlaneTicketing {
    public static void main(String[] args) {
        int bagasipesawat;
        int hargatiket=558000;
        int hargajasabg=21000;
        String noantri, namapenumpang, maskapai, asalbandara, bandaratujuan;
        Queue ques = new LinkedList();
        Scanner input = new Scanner(System.in);
        int opsi=0;
        do {
            System.out.println("\nAPLIKASI PLANE TICKETING");
            System.out.println("1. Ambil nomor antrian");
            System.out.println("2. Panggil antrian");
            System.out.println("3. Daftar antrian");
            System.out.println("4. Keluar");
            System.out.print("Pilih = ");
            opsi=input.nextInt();
            switch(opsi) {
            case 1:
                System.out.print("Input Nomor Antrian : ");
                noantri = input.next();
                ques.add(noantri);
                break;
            case 2:
                if(ques.size()>0) {
                    System.out.println("PANGGILAN UNTUK NOMOR ANTRIAN SELANJUTNYA");
                    ques.poll();
                    System.out.print("Nama Penumpang : ");
                    namapenumpang = input.next();
                    System.out.print("Maskapai : ");
                    input = new Scanner(System.in);
                    maskapai = input.nextLine();
                    System.out.print("Input Asal Bandara :");
                    input = new Scanner(System.in);
                    asalbandara=input.nextLine();
                    System.out.print("Input Bandara yang Dituju :");
                    input = new Scanner(System.in);
                    bandaratujuan=input.nextLine();
                    System.out.print("Input Beban Bagasi Pengguna : ");
                    input = new Scanner(System.in);
                    bagasipesawat=input.nextInt();
                    int totalbg=bagasipesawat*hargajasabg;
                    int totalfee=totalbg+hargatiket;
                    System.out.println("Bandara Asal : "+ asalbandara);
                    System.out.println("Bandara Tujuan : "+ bandaratujuan);
                    System.out.println("Harga Jasa Bagasi : "+totalbg);
                    System.out.println("Total Charge : "+totalfee);
                }
                else {
                    System.out.println("Antrian Saat Ini Tidak Berisi");
                }
                break;
            case 3:
                if(ques.size()>0) {
                    System.out.println("Daftar Antrian Pengguna Maskapai");
                    System.out.println(ques);
                }
                else {
                    System.out.println("Antrian Saat Ini Tidak Berisi");
                }
                break;
            case 4:
                System.out.println("Terimakasih, Selamat Menikmati Perjalanan");
                break;
            }
        }while(opsi!=4);

    }
}

The Visual Output             

  •  INPUT 2 NOMOR ANTRIAN PENUMPANG
 

  • PEMANGGILAN NOMOR ANTRIAN 1


  •  PEMANGGILAN NOMOR ANTRIAN 2 
 

Catatan :

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

Terimakasih telah berkunjung, have a nice day :))














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 :))