Senin, 26 November 2012

Struktur Data - Program Queue

// 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