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.
Tidak ada komentar:
Posting Komentar