Sabtu, 16 Juli 2011

tugas java aplikasi

===> INTERFACE <=====


public interface interface_project <AnyType> {
void enqueue(AnyType data); //menambah data
AnyType dequeue();  //melihat data terdepan kemudian menghapus
AnyType getFront(); //melihat data terdepan
boolean isEmpty();  //memeriksa apakah queue kosong
boolean isFull();   //memeriksa apakah queue penuh
void makeEmpty();   //mengkosongkan queue
       

}

+++++ IMPLEMENTS +++++


public class implementasi_project <AnyType> implements interface_project<AnyType>{
public  int KAPASITAS_DEFAULT = 100;
private AnyType[] arraykita;
private int terpakai;
private int terdepan;
private int terbelakang;

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

o0o0o0oo0o0 EXECUSI o0o0o0o00o0o0o0

import javax.swing.JOptionPane;

public class execusi_project {


    private implementasi_project que= new implementasi_project();
    private implementasi_project que1= new implementasi_project();

    private int kapasitas=que.KAPASITAS_DEFAULT;
    private String nama="";
    private int jumlah=0;//jumlah pembelian awal = 0
 private String isi1="";
    private String  isi_pilihan1(){
        isi1="Antrian Minyak Tanah ( "+kapasitas+ " liter )\n"+
         "1.Masukkan Data\n"+
         "2.Panggil Antrian\n"+
         "3.Keluar\n"+
         "Masukkan pilihan : ";

          return isi1;

    }


  public void pilihan1(){
      do{

      String x = JOptionPane.showInputDialog(isi_pilihan1());

boolean tree = true;
    try{
      if (x.equals("1"))
menu2();
      else if (x.equals("2"))
menu3();
 else if (x.equals("3"))
     System.exit(1);
      else {
    JOptionPane.showMessageDialog(null,"Maaf Pilihan Anda tidak Ada");
      }
tree = true;
      }catch (Exception e){

      }
       tree = false;
      } while (!true);
      pilihan1();

    JOptionPane.showMessageDialog(null, que.dequeue() + " "+ que1.dequeue());
    pilihan1();
    }

  private void menu2(){
    String x = JOptionPane.showInputDialog("Masukkan nama : " );
    if (x.equals(""))
    JOptionPane.showMessageDialog(null, "Nama harus diisi")    ;
    else
    nama=x;
      try {

      do{
         String y1 = JOptionPane.showInputDialog("Jumlah Pembelian : " );
         jumlah=Integer.parseInt(y1);
         if (jumlah > kapasitas)
             
           JOptionPane.showMessageDialog(null, "Maaf Jumlah pembelian melebihi kapasitas tersedia")    ;

          }while (jumlah>kapasitas);

      }
      catch (Exception e) {

JOptionPane.showMessageDialog(null,"maaf sistem tidak bisa di jalankan");
System.exit(1);
      }

    que.enqueue(nama);
    que1.enqueue(jumlah);
    kapasitas=kapasitas-jumlah;
System.out.println(nama);
System.out.println(jumlah);

    pilihan1();
  }


private void menu3(){

 if (que.isEmpty())
JOptionPane.showMessageDialog(null, "Tidak ada lagi antrian")    ;
 else
  {

String hasil="";

hasil="Nama Pembeli : "+ que.dequeue()+"\n"
+"Jumlah Pembelian : "+ que1.dequeue()        ;
JOptionPane.showMessageDialog(null, hasil)    ;
pilihan1();

 }
}
}

##### execusi2 #######

public class Eksekusi2 {
public static void main(String args[]){//method eksekusi(tidk ada nilai kembalian)
        execusi_project x= new execusi_project();//mengisikan data ke data baru
        x.pilihan1();//memanggil data

    }

}

0 komentar:

Pengikut