// Tugas queue( Tugas Ke_Enam )
/*
Nama : Ati Tasmiati Dewi
Nim : 11520244043
*/
////////////////////////////////////////////////////////////////
import java.util.Scanner;
import java.io.*;
class antrian {
private int max;
private long[] isi;
private int ekor; // variabel untuk mengidentifikasi data paling akhir masuk ke queue
//--------------------------------------------------------------
public antrian(int n) { // constructor
max = n;
isi = new long[max];
ekor = -1; // mula-mula queue kosong (inisialisasi)
}
//--------------------------------------------------------------
public boolean isFull() { // bernilai true jika queue penuh
return (ekor == max-1);
}
//--------------------------------------------------------------
public boolean isEmpty() { // bernilai true jika queue kosong
return (ekor == -1);
}
//--------------------------------------------------------------
public void enQueue(long j) { // memasukkan data di bagian paling belakang dari antrian
ekor++; // increment ekor
isi[ekor] = j; // masukkan data
}
//--------------------------------------------------------------
public void deQueue() { // ambil data di bagian depan dari queue
for(int i=0; i<ekor; i++)
isi[i]=isi[i+1];
ekor--;
}
//--------------------------------------------------------------
public long peek() { // melihat data di bagian paling depan dari queue
return isi[0];
}
//--------------------------------------------------------------
/* method ini sebenarnya tidak ada dalam queue karena dalam queue
data yang bisa diakses HANYA data paling awal masuk queue */
public void tampil() { // menampilkan isi dari queue
for(int i=0; i<ekor+1; i++) {
System.out.print(isi[i]);
System.out.print(" ");
}
System.out.println("");
}
//--------------------------------------------------------------
public void clear() {
while( !isEmpty() ) // hapus data sampai kosong
deQueue();
}
//--------------------------------------------------------------
} // end class antrian
////////////////////////////////////////////////////////////////
class javaQueue {
public static void main(String[] args) {
antrian antri = new antrian(5); // queue menampung sampai 5 data
int menu;
do {
System.out.println(" ---------- ");
System.out.println(" Pilih Menu ");
System.out.println(" ---------- ");
System.out.println(" 1. Tambah data queue ");
System.out.println(" 2. Ambil data queue ");
System.out.println(" 3. Lihat data queue ");
System.out.println(" 4. Buat queue baru ");
System.out.println(" 5. Keluar ");
System.out.println(" ----------------- ");
System.out.println(" Pilihan anda --> : ");
System.out.println(" ----------------- ");
Scanner input = new Scanner(System.in);
menu = input.nextInt();
System.out.println("");
//--------------------------------------------------------------
switch(menu) {
case 1 : {
if(antri.isFull()) System.out.println(" Queue sudah penuh! ");
else {
System.out.print(" Datanya --> ");
long data = input.nextLong();
antri.enQueue(data);
}
break;
}
case 2 : {
if(antri.isEmpty()) System.out.println(" Queue kosong! ");
else {
System.out.println(" Data " + antri.peek() + " diambil ");
antri.deQueue();
}
break;
}
case 3 : {
if(antri.isEmpty()) System.out.println(" Queue kosong! ");
else
antri.tampil();
break;
}
case 4 : antri.clear();
break;
}
} while(menu > 0 && menu < 5);
} // end main()
} // end class javaQueue
Tidak ada komentar:
Posting Komentar