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)
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)
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
Catatan :
- Bila gambar yang ditampilkan kurang jelas, mohon klik gambar tersebut.
Terimakasih telah berkunjung, have a nice day :))
Tidak ada komentar:
Posting Komentar