---- interface ------
public interface queue_interface<AnyType> {
void enqueue(AnyType data); //menambah data
AnyType dequeue(); //melihat data terdepan kemudian menghapus
AnyType getFront(); //melihat data terdepan
//AnyType getRear();
boolean isEmpty(); //memeriksa apakah queue kosong
boolean isFull(); //memeriksa apakah queue penuh
void makeEmpty(); //mengkosongkan queue
}
---class implementasi-----
public class QueueKita1<AnyType> implements queue_interface<AnyType>{
public int KAPASITAS_DEFAULT = 10000;
private AnyType[] arraykita;
private int terpakai;
private int terdepan;
private int terbelakang;
public QueueKita1(){
arraykita = (AnyType[]) new Object[KAPASITAS_DEFAULT];
makeEmpty();
}
public void enqueue(AnyType data) {
if(isFull()){
//System.out.println("queue penuh, keluar dari aplikasi");
//System.exit(1);
perluasKapasitas();
}
this.terbelakang = penambah(this.terbelakang);
this.arraykita[this.terbelakang] = data;
this.terpakai++;
}
public AnyType dequeue() {
if(isEmpty()){
System.out.println("queue kosong, keluar dari aplikasi");
System.exit(1);
}
this.terpakai--;
AnyType tmp = this.arraykita[this.terdepan];
this.arraykita[this.terdepan] = null;
this.terdepan = penambah(this.terdepan);
return tmp;
}
public AnyType getFront() {
if(isEmpty()){
System.out.println("queue kosong, keluar dari aplikasi");
System.exit(1);
}
return this.arraykita[this.terdepan];
}
public boolean isEmpty() {
return this.terpakai == 0;
}
public boolean isFull() {
return this.terpakai == this.arraykita.length;
}
public void makeEmpty() {
this.terpakai = 0;
this.terdepan = 0;
this.terbelakang = -1;
}
public int kapasitas(){
return this.terpakai;
}
private int penambah(int awal){
if(++awal == this.arraykita.length)
awal = 0;
return awal;
}
private void perluasKapasitas(){
AnyType[] tmp = (AnyType[]) new Object[arraykita.length];
//for(int i=0; i<arraykita.length; i++)
// tmp[i] = arraykita[i];
//System.arraycopy(asal, idxasal, tujuan, idxtujuan, besararray);
System.arraycopy(arraykita, 0, tmp, 0, arraykita.length);
arraykita = (AnyType[]) new Object[arraykita.length+KAPASITAS_DEFAULT];
//for(int i=0; i<tmp.length; i++)
// arraykita[i] = tmp[i];
System.arraycopy(tmp, 0, arraykita, 0, tmp.length);
}
}
---class exucusi-----
import javax.swing.JOptionPane;
/**
*
* @author captain 11th
*/
public class Implement1 {
private QueueKita1 que= new QueueKita1();
private QueueKita1 que1= new QueueKita1();
private int kapasitas=que.KAPASITAS_DEFAULT;
private String nama="";
private int jumlah_pembelian=0;
private String isi1="";
private String isi_menu1(){
isi1="Gudang Bulog ( "+kapasitas+ " )\n"+
"1.Masukkan Data\n"+
"2.Panggil Antrian\n"+
"3.Keluar\n"+
"Masukkan pilihan : ";
return isi1;
}
public void menu1(){
String x = JOptionPane.showInputDialog(isi_menu1());
if (x.equals("1"))
menu2();
else if (x.equals("2"))
menu3();
else if (x.equals("3"))
System.exit(1);
else if (x.equals("4")){
JOptionPane.showMessageDialog(null, que.dequeue() + " "+ que1.dequeue()) ;
menu1();
}
}
private void menu2(){
String x = JOptionPane.showInputDialog("Masukkan nama : " );
if (x.equals(""))
JOptionPane.showMessageDialog(null, "Nama harus diisi") ;
else
nama=x;
try {
do{
String x1 = JOptionPane.showInputDialog("Jumlah Pembelian : " );
jumlah_pembelian=Integer.parseInt(x1);
if (jumlah_pembelian > kapasitas)
JOptionPane.showMessageDialog(null, "Jumlah pembelian melebihi kapasitas tersedia") ;
}while (jumlah_pembelian>kapasitas);
}
catch (Exception e) {
}
que.enqueue(nama);
que1.enqueue(jumlah_pembelian);
kapasitas=kapasitas-jumlah_pembelian;
System.out.println(nama);
System.out.println(jumlah_pembelian);
menu1();
}
private void menu3(){
if (que.isEmpty())
JOptionPane.showMessageDialog(null, "Tidak ada lagi antrian") ;
else
{
String hasil="";
hasil="Nama : "+ que.dequeue()+"\n"
+"Jumlah Pembelian : "+ que1.dequeue() ;
JOptionPane.showMessageDialog(null, hasil) ;
menu1();
}
}
public static void main(String args[]){
Implement1 x= new Implement1();
x.menu1();
}
}
Selasa, 21 Juni 2011
project UTS java
Diposting oleh
Unknown
di
09.07
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar