Selasa, 21 Juni 2011

project UTS java

---- 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();
    }
}


0 komentar:

Pengikut