You are on page 1of 8

package p2a_2014_queueapp;

import java.util.Arrays;
public class classQueue {
private int maxSize; // ukuran besarnya array queue
private long [] QArray; //property QArray bertipe long
private int Q_Index; // property indeks insert Queue
//--------------------------------------------------------------
public classQueue (int s) // konstruktor
{
maxSize = s; // menentukan kapasitas array Queue
QArray = new long[maxSize]; // mengkonstruksi array
Q_Index = -1; // inisialisasi index insert Queue
}
//--------------------------------------------------
private boolean kosong() // bernilai true jika Queue kosong
{
return (Q_Index == -1);
}
//---------------------------------------------------
private boolean penuh() // bernilai true jika Queue penuh
{
return (Q_Index == maxSize - 1);
}
//----------------------------------------------------
public void tampilkanQueue() //menampilkan isi Queue setelah operasi Queue
{
System.out.println("Update Isi Queue = "+ Arrays.toString(QArray));
}
//-----------------------------------------------------
public void insert(long j) // memasukan data pada top of stack
{
if (!this.penuh()){
Q_Index++; // naikan Q_Index
QArray[Q_Index] = j; // tambahkan data kestack
System.out.print("insert ["+j+"]: ");
} else
{
System.out.print("Insert ["+j+"] gagal dilakukan :");
System.out.println("Queue sudah penuh");
}
this.tampilkanQueue();
}
//----------------------------------------------------
private void QArrayGeserKiri()
{
for(int i=0; i < Q_Index; i++)
{
QArray[i] = QArray[i+1]; //data dikanan dipindahkan kekiri
}
}
//--------------------------------------------------------------
public long remove() // mengeluarkan data dari depan Queue
{
long sementara = -1;

if (!this.kosong()){
sementara = QArray[0]; // simpan data yang dihapus
this.QArrayGeserKiri();//geser kiri data yang tersisa
QArray[Q_Index]=0;
Q_Index--; //turunkan Q_Index
System.out.println("Remove, data["+sementara+" keluar dari Queue: ");
}else
{
System.out.println("remove gagal dilakukan: Queue sudah kosong");
}
this.tampilkanQueue();
return sementara;
}
}

package p2a_2014_queueapp;
public class P2A_2014_QueueApp {
public static void main(String[] args) {
classQueue obyekQueue = new classQueue(5);

obyekQueue.tampilkanQueue();
obyekQueue.insert(17);
obyekQueue.insert(23);
obyekQueue.insert(19);
obyekQueue.insert(13);
obyekQueue.insert(27);
obyekQueue.insert(17);
obyekQueue.remove();
}

}

package p2b_2014_stackapp;
public class P2B_2014_stackapp {
public static void main(String[] args) {
classStack obStack = new classStack(5);

obStack.push(27);
obStack.push(33);
obStack.push(46);
obStack.push(115);
obStack.push(23);
obStack.push(75);
System.out.println("");

obStack.pop();
obStack.pop();
obStack.pop();
obStack.pop();
obStack.pop();
obStack.pop();

}

}

package p2b_2014_stackapp;

import java.util.Arrays;

public class classStack {
private int maxSize; // besarnya array stack
private long[] stackArray ; // deklarasi array untuk stack
private int tos; // variabel indeks untuk top of stack

//--------------------------------------------------------------------------
public classStack(int s) // konstruktor
{
maxSize = s; // menentukan kapasitas stack
stackArray = new long[maxSize]; // menciptakan stack array
tos = -1; // inisialisasi tos, ketika stack masih kosong
}

//--------------------------------------------------------------------------
public boolean kosong() // bernilai true jika stack kosong
{
return (tos == -1);
}
//--------------------------------------------------------------------------
public boolean penuh() // bernilai ture jika stack penuh
{
return (tos == maxSize - 1);
}

//--------------------------------------------------------------------------
public void tampilkanStack() //menampilkan isi stack setelah operasi stack
{
System.out.println("Update Isi Stack = "+ Arrays.toString(stackArray));
}

//-----------------------------------------------------------------------------
public void push (long j) // memasukan data pada top of stack
{
if (!this.penuh()){
tos++; //naikan tos
stackArray[tos] = j; //tambahkan data ke stack
System.out.print("PUSH ["+j+"]: ");
} else
{
System.out.print("Push ["+j+"] gagal dilakukan: ");
System.out.println("Stack sudah penuh");
}
this.tampilkanStack();
}

//-----------------------------------------------------------------------------
public long pop() // mengeluarkan data dari top of stack
{
long sementara = -1;

if (!this.kosong()){
sementara = stackArray[tos]; //ambil data yg dihapus
stackArray[tos]=0;
tos--; //turunkan tos
System.out.print("POP, data["+sementara+"] keluar dari stack: ");
}else
{
System.out.println("POP gagal dilakukan: Stack sudah kosong");
}
this.tampilkanStack();
return sementara;
}


}

You might also like