Senin, 19 Mei 2014



source code program Stack dan Queue dalam bahasa java

Stack : tumpukan

·       LIFO (Last In First Out) : yang terakhir dimasukkan pertama diakses
·       Operasi-operasi dasar:
·        push : menambahkan data pada stack
·       pop : mengambil data pada stack
·       isEmpty : mengecek apakah stack masih kosong
·       isFull : mengecek apakah stack sudah penuh
·       peek : melihat data yang paling atas
·       clear : mengosongkan stack

Queue : antrian (mengakses dari depan)
·       FIFO (First In First Out)
·       Operasi-operasi dasar:
·       enQueueu : menambahkan data pada queue
·       deQueueu : mengambil data pada queue
·       isEmpty : mengecek apakah queue masih kosong
·       isFull : mengecek apakah queue sudah penuh
·       peek : melihat data yang paling depan dari queue
·       clear : mengosongkan queue
Circular Queueu : lingkaran antrian
·       Dalam Queue, setiap kali menghapus satu item maka semua item berpindah. Hal ini tidaklah efektif. Dengan Circular Queue ini lebih efektif karena seolah-olah rear dan front-nya menyatu sehingga tidak terjadi pergeseran semua data.
·       Circular queue menggunakan dua buah index yaitu front dan rear.
·       Circular queue mengorbankan satu tempat kosong tepat di depan elemen pertama yaitu index front.
·       Circular queue dikatakan kosong apabila index front = index rear.• Sedangkan dikatakan penuh jika rear next = front.
·       Operasi-operasi dasar:

·       enQueueu : menambahkan data pada circular queue
·       deQueueu : mengambil data pada circular queue
·       isEmpty : mengecek apakah circular queue masih kosong
·       isFull : mengecek apakah circular queue sudah penuh
·       peek : melihat data yang paling depan dari circular queue
·       clear : mengosongkan circular queue
dalam contoh ini saya menggunakan 8 class yang berbeda, langsung saja source codenya :


Catatan :
semua class dibawah diletakan pada direktori yang sama

Buatlah class dengan nama mahasisiwa. java dan souce codenya : 
public class mahasiswa {
    private String nim;
    private String nama;
    private double ipk;   

    public mahasiswa(){
        nim = "";
        nama = "";
        ipk = 0.00;
    }

    public String getNIM(){
        return nim;
    }

    public String getNAMA(){
        return nama;
    }

    public double getIPK(){
        return ipk;
    }

    public void setNIM(String nim){
        this.nim = nim;
    }

    public void setNAMA(String nama){
        this.nama = nama;
    }

    public void setIPK(double ipk){
        this.ipk = ipk;
    }
}

Buatlah class dengan nama pasien. java dan souce codenya : 
public class pasien {
    private String nama;
    private String keluhan;

    public pasien(){

    }

    public String getNama(){
        return nama;
    }

    public String getKeluhan(){
        return keluhan;
    }

    public void setNama(String nama){
        this.nama = nama;
    }

    public void setKeluhan(String keluhan){
        this.keluhan = keluhan;
    }

}


 
Buatlah class dengan nama Tumpukan. java dan souce codenya :
public class Tumpukan  {
    private jenis[] data= (jenis[])new Object[10];
        private int posisi=0;
        public void push(jenis isi){
               data[posisi++] = isi;
        }
        public jenis pop(){
               return data[--posisi];
        }
        public jenis peek(){
               return data[posisi-1];
        }
        public boolean isEmpty(){
               return(posisi==0);
        }
        public boolean isFull(){
               return(posisi==data.length);
        }
        public void clear(){
               posisi=0;
        }
}


 
Buatlah class dengan nama Antrian. java dan souce codenya :
class Antrian{
        private jenis[] data=(jenis[]) new Object[10];
        private int ekor=0;
        private jenis temp;
        public void enqueue(jenis isi){
               data[ekor++]=isi;
        }
        public jenis dequeue(){
               temp=data[0];
               for(int i=0; i


Buatlah class dengan nama LingkaranAntrian. java dan souce codenya :

class LingkaranAntrian{
        private jenis[] data= (jenis[])new Object[10];
        private int ekor=0;
        private int kepala=0;
        private int jumlah=0;
        private jenis temp;
        public void enqueue(jenis isi){
               data[ekor]=isi;
               jumlah++;
               if(ekor==data.length){
                       ekor=0;
               }else{
                       ekor++;
               }
        }
        public jenis dequeue(){
               temp=data[kepala];
               jumlah--;
               if(kepala==data.length-1){
                       kepala=0;
               }else{
                       kepala++;
               }
               return temp;
        }
       
        public jenis peek(){
               return data[kepala];
        }
        public boolean isEmpty(){
               return(jumlah==0);
        }
        public boolean isFull(){
               return(jumlah==data.length);
        }
        public void clear(){
               kepala=0;
               ekor=0;
               jumlah=0;
        }
}

Buatlah class dengan nama mainAntrianMahasisiwa. java dan souce codenya :

import java.util.*;
public class mainAntrianMahasiswa{
    public static void main (String[] args) {
       
    String nama, nim;
    double ipk;
   
    Antrian antrian = new Antrian();
    mahasiswa data;
    boolean kondisi=true;
   
    while (kondisi){
        System.out.println (" ");
        System.out.println ("Pilih Menu di bawah ini");
        System.out.println ("1. Input data");
        System.out.println ("2. Ambil data");
        System.out.println ("3. Lihat peek");
        System.out.println ("4. Cek kosong");
        System.out.println ("5. Cek Penuh");
        System.out.println ("6. Clear");
        System.out.println ("7. Waktu");
        System.out.println ("8. Keluar");
        System.out.print ("Masukkan pilihan Anda : ");
        Scanner op = new Scanner(System.in);
        int Menu = op.nextInt();
       
        if(Menu==1){
            Scanner inputString = new Scanner(System.in);
            System.out.print ("Masukkan Nama : ");
            nama = inputString.nextLine();
            Scanner input = new Scanner(System.in);
            System.out.print ("Masukkan Nim : ");
            nim = input.next();
            System.out.print ("Masukkan IPK : ");
            ipk = input.nextDouble();
            data = new mahasiswa();
            data.setNAMA(nama);
            data.setNIM(nim);
            data.setIPK(ipk);
            antrian.enqueue(data);
        }
       
        else if(Menu==2){
            if(antrian.isEmpty()){
                System.out.println ("Kosong");
            }
            else{
                data=antrian.dequeue();
                System.out.println(data.getNAMA()+" | "+data.getNIM() + " | " + data.getIPK());
            }
        }

        else if(Menu==3){
            if(antrian.isEmpty()){
                System.out.println("Kosong");
        }
            else{
                data=antrian.peek();
                System.out.println(data.getNAMA()+" | "+data.getNIM() + " | " + data.getIPK());
            }
        }

        else if(Menu==4){
            if(antrian.isEmpty()){
                System.out.println ("Kosong");
            }
            else{
                System.out.println ("Ada isinya");
            }   
        }

        else if(Menu==5){
            if(antrian.isFull()){
            System.out.println ("Penuh");
            }
            else{
                System.out.println ("Belum Penuh");
            }
        }

        else if(Menu==6){
            antrian.clear();
            System.out.println ("Antrian dikosongkan");
        }
       
        else if(Menu==7){
            Date dt = new Date();
            int detik = dt.getSeconds();
            int menit = dt.getMinutes();
            int jam = dt.getHours();
            int har = dt.getDay();
            int tanggal = dt.getDate();
            int month = dt.getMonth();
            int tahun  =dt.getYear();

            //yang menentukan am pm
            String wkt = "AM";
            if(jam>12){
                wkt = "PM";
            }
            System.out.print("\n===================================\n");
            String[] ha = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum,at", "Sabtu"};
            String[] bulan = {"January", "February", "Maret", "April", "Mei", "Juni", "Juli",
"Agustus", "September", "Oktober", "November", "Desember"};
            System.out.print("Sekarang : "+jam+":"+menit+" "+wkt+"\npada "+ha[har]+
" Tgl : "+tanggal+", Bln : "+bulan[month]+" 2013");
            System.out.print("\n===================================\n");
        }
       
        else if(Menu==8){
            kondisi = false;
        }
       
        else if(Menu>=9){
            System.out.println("Input menu harus diantara 1 sampai 7");
        }
       
        else if(Menu<=0){
            System.out.println("Input menu harus diantara 1 sampai 7");
        }             
       
        }
    }
}

Buatlah class dengan nama mainLingAntrianPasien. java dan souce codenya :

import java.util.*;
public class mainLingAntrianPasien{
    public static void main (String[] args) {
        String nama, nim;
        double ipk;
       
        LingkaranAntrian lingkaranantrian = new
        LingkaranAntrian();
        mahasiswa data;
       
        boolean kondisi=true;
       
        while (kondisi){
            System.out.println (" ");
            System.out.println ("Pilih Menu di bawah ini");
            System.out.println ("1. Input data");
            System.out.println ("2. Ambil data");
            System.out.println ("3. Lihat peek");
            System.out.println ("4. Cek kosong");
            System.out.println ("5. Cek Penuh");
            System.out.println ("6. Clear");
            System.out.println ("7. Waktu");
            System.out.println ("8. Keluar");
            System.out.print ("Masukkan pilihan Anda : ");
            Scanner op = new Scanner(System.in);
            int Menu = op.nextInt();

            if(Menu==1){
                Scanner inputString = new Scanner(System.in);
                System.out.print ("Masukkan Nama : ");
                nama = inputString.nextLine();
                Scanner input = new Scanner(System.in);
                System.out.print ("Masukkan Nim : ");
                nim = input.next();
                System.out.print ("Masukkan IPK : ");
                ipk = input.nextDouble();

                data=new mahasiswa();
                data.setNAMA(nama);
                data.setNIM(nim);
                data.setIPK(ipk);
                lingkaranantrian.enqueue(data);
            }

            else if(Menu==2){
                if(lingkaranantrian.isEmpty()){
                    System.out.println ("Kosong");
                }
                else{
                    data=lingkaranantrian.dequeue();
                    System.out.println (data.getNAMA()+"|"+data.getNIM() + "|" + data.getIPK());
                }
            }

            else if(Menu==3){
                if(lingkaranantrian.isEmpty()){
                    System.out.println ("Kosong");
                }
                else{
                    data=lingkaranantrian.peek();
                    System.out.println (data.getNAMA()+"|"+data.getNIM() + "|" + data.getIPK());
                }
            }

            else if(Menu==4){
                if(lingkaranantrian.isEmpty()){
                    System.out.println ("Kosong");
                }
                else{
                    System.out.println ("Ada isinya");
                }
            }

            else if(Menu==5){
                if(lingkaranantrian.isFull()){
                    System.out.println ("Penuh");
                }
                else{
                System.out.println ("Belum Penuh");
                }
            }

            else if(Menu==6){
                lingkaranantrian.clear();
                System.out.println ("Antrian dikosongkan");
            }

            else if(Menu==7){
                Date dt = new Date();
                int detik = dt.getSeconds();
                int menit = dt.getMinutes();
                int jam = dt.getHours();
                int har = dt.getDay();
                int tanggal = dt.getDate();
                int month = dt.getMonth();
                int tahun  =dt.getYear();

                //yang menentukan am pm
                String wkt = "AM";
                if(jam>12){
                    wkt = "PM";
                }
                System.out.print("\n===================================\n");
                String[] ha = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum,at", "Sabtu"};
                String[] bulan = {"January", "February", "Maret", "April", "Mei", "Juni",
"Juli", "Agustus", "September", "Oktober", "November", "Desember"};
                System.out.print("Sekarang : "+jam+":"+menit+" "+wkt+"\npada "+ha[har]+
" Tgl : "+tanggal+", Bln : "+bulan[month]+" 2013");
                System.out.print("\n===================================\n");
            }

            else if(Menu==8){
                kondisi = false;
            }

            else if(Menu>=9){
                System.out.println("Input menu harus diantara 1 sampai 7");
            }

            else if(Menu<=0){
                System.out.println("Input menu harus diantara 1 sampai 7");
            }
       
        }
    }
}

Buatlah class dengan nama mainTumpukanMahasisiwa. java dan souce codenya :    
import java.util.*;
public class mainTumpukanMahasiswa{
    public static void main (String[] args) {
        String nama, nim;
        double ipk;
        Tumpukan tumpukan = new Tumpukan();
        mahasiswa data;
        boolean kondisi=true;
       
        while (kondisi){
            System.out.println (" ");
            System.out.println ("Pilih Menu di bawah ini");
            System.out.println ("1. Input data");
            System.out.println ("2. Ambil data");
            System.out.println ("3. Lihat Peek");
            System.out.println ("4. Cek kosong");
            System.out.println ("5. Cek Penuh");
            System.out.println ("6. Clear");
            System.out.println ("7. Waktu");
            System.out.println ("8. Keluar");
            System.out.print ("Masukkan pilihan Anda : ");
            Scanner op = new Scanner(System.in);
            int Menu = op.nextInt();

            if(Menu==1){
                Scanner inputString = new Scanner(System.in);
                System.out.print ("Masukkan Nama : ");
                nama = inputString.nextLine();
                Scanner input = new Scanner(System.in);
                System.out.print ("Masukkan Nim : ");
                nim = input.next();
                System.out.print ("Masukkan IPK : ");
                ipk = input.nextDouble();

                data=new mahasiswa();
                data.setNAMA(nama);
                data.setNIM(nim);
                data.setIPK(ipk);
                tumpukan.push(data);
            }
            else if(Menu==2){
                if(tumpukan.isEmpty()){
                    System.out.println ("Kosong");
                }
                else{
                    data=tumpukan.pop();
                    System.out.println (data.getNAMA()+"|"+data.getNIM() + "|" + data.getIPK());
                }
            }

            else if(Menu==3){
                if(tumpukan.isEmpty()){
                    System.out.println ("Kosong");
                }
                else{
                    data=tumpukan.peek();
                    System.out.println (data.getNAMA()+" | "+data.getNIM() + " | " + data.getIPK());;
                }
            }

            else if(Menu==4){
                if(tumpukan.isEmpty()){
                    System.out.println ("Kosong");
                }
                else{
                    System.out.println ("Ada isinya");
                }
            }
            else if(Menu==5){
                if(tumpukan.isFull()){
                    System.out.println ("Penuh");
                }else{
                    System.out.println ("Belum Penuh");
                }
            }

            else if(Menu==6){
                tumpukan.clear();
                System.out.println ("Tumpukan dikosongkan");
            }
           
            else if(Menu==7){
                Date dt = new Date();
                int detik = dt.getSeconds();
                int menit = dt.getMinutes();
                int jam = dt.getHours();
                int har = dt.getDay();
                int tanggal = dt.getDate();
                int month = dt.getMonth();
                int tahun  =dt.getYear();

                //yang menentukan am pm
                String wkt = "AM";
                if(jam>12){
                    wkt = "PM";
                }
                System.out.print("\n===================================\n");
                String[] ha = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum,at", "Sabtu"};
                String[] bulan = {"January", "February", "Maret", "April", "Mei", "Juni", "Juli",
"Agustus", "September", "Oktober", "November", "Desember"};

                System.out.print("Sekarang : "+jam+":"+menit+" "+wkt+"\npada "+ha[har]+
>" Tgl : "+tanggal+", Bln : "+bulan[month]+" 2013");
                System.out.print("\n===================================\n");
            }

            else if(Menu==8){
                kondisi = false;
            }
           
            else if(Menu>=9){
                System.out.println("Input menu harus diantara 1 sampai 7");
            }

            else if(Menu<=0){
                System.out.println("Input menu harus diantara 1 sampai 7");
            }
           
        }
    }
}

Sekarang silahkan dicoba dijalankan, setiap nama class yang diawali dengan "main" merupakan kelas utama yang menjalankan fungsi yang berbeda dengan class main yang lain.