Kamis, 25 September 2014

Cuman iseng.. eehh gk siihh aku mau nyumbang ilmu ^^ dikit :D
// CILCULAR_QUEUE // Wahyu Mirad // 13520241032 // E2 ////////////////////////////////////////////////////////////////
 import java.util.Scanner; import java.io.*; class antrian { private int max; private long[] isi; private int kepala; // variabel untuk mengidentifikasi data yang dihapus (data paling awal masuk ke queue) private int ekor; // variabel untuk mengidentifikasi data paling akhir masuk ke queue //-------------------------------------------------------------- public antrian(int n) { // constructor max = n; isi = new long[max]; kepala = max-1; ekor = max-1; } //-------------------------------------------------------------- public boolean isEmpty() { // bernilai true jika queue kosong return (kepala == ekor); } //-------------------------------------------------------------- public boolean isFull() { // bernilai true jika queue penuh int next; if(ekor == max-1) next=0; else next = ekor+1; return (next == kepala); } //-------------------------------------------------------------- public void enQueue(long j) { // memasukkan data di bagian paling belakang dari queue if(ekor == max-1) // jika ekor sama dengan jumlah array -1 ekor = 0; // maka nilai ekor diubah sama dengan -1 else ekor++; isi[ekor] = j; // increment ekor dan masukkan data } //-------------------------------------------------------------- public void deQueue() { // ambil data paling depan dari queue if(kepala == max-1) // jika kepala sama dengan jumlah array kepala = 0; // maka nilai kepala diubah sama dengan 0 else kepala++; //System.out.print(" Kepala =>"); } //-------------------------------------------------------------- public long data_ambil() { return isi[kepala]; } //-------------------------------------------------------------- public long peek() { // melihat data paling depan dari queue int kpl=0; if(kepala == max-1) kpl = 0; else { kpl = kepala; kpl++; } return isi[kpl]; } //-------------------------------------------------------------- /* public short ekor () { int ekr=0; if(ekor== max-1) ekr = 0; else{ ekr = ekor; ekr++; } return isi[ekr]; }*/ /* [ 2 ] [ 4 ] [ 1 ] <= ekor [ 9 ] <= kepala [ ] */ //-------------------------------------------------------------- public void tampil() { // menampilkan isi dari queue int i; //ekor for(i=0; i ekor for(i=0; i<=ekor; i++) { System.out.print(isi[i]); System.out.print(" "); } for(i=kepala+1; i : "); Scanner input = new Scanner(System.in); menu = input.nextInt(); System.out.println("Masukkan Bilangan"); System.out.println(""); //-------------------------------------------------------------- switch(menu) { case 1 : { if(antri.isFull()) System.out.println("Queue sudah penuh!"); else { System.out.println("Maukkan bilangan bulat dan jangan HURUF ^^ "); System.out.print("Datanya --> "); System.out.print(""); System.out.print(""); System.out.print(""); long data = input.nextLong(); antri.enQueue(data); antri.tampil(); } break; } case 2 : { if(antri.isEmpty()) System.out.println("Queue kosong!"); else { antri.deQueue(); antri.tampil(); System.out.println("Data " + antri.data_ambil() + " diambil"); } break; } case 3 : { if(antri.isEmpty()) System.out.println("Queue kosong!"); else System.out.println("Data paling depan " + antri.peek()); antri.tampil(); break; } /*case 4 : { if(antri.isEmpty()) System.out.println("Queue kosong!"); break; }* case 5 : { if(antri.isEmpty()) System.out.println("Queue kosong!"); else System.out.println("Data paling akhir " + antri.deQueue(); break; } */ case 6 : antri.clear();// data akan terhapus semua jadi perlu adanya pengulangan dalam mengisi data baru System.out.println("Data Yang Anda Masukkan akan terhapus semua Jadi jangan DIHAPUS ^_^"); System.out.println(" SILAHKAN MASUKKAN LAGI DATANYA ^^"); break; } } while(menu > 0 && menu < 7); System.out.println(""); System.out.println(" TERIMA KASIH "); System.out.println(""); System.out.println(""); System.out.println("-----------^^--------------"); } // end main()
} // end class javaCircularQueue => dikompeel ajhaa