Anda di halaman 1dari 5

MATERI 4

STACK (TUMPUKAN) & QUEUE (ANTRIAN)

A. TEORI
1. Stack (Tumpukan)
Stack merupakan suatu struktur data yang memiliki sifat Last In First Out
(LIFO). Seperti kata stack yang berarti tumpukan, stack dapat dianalogikan
seperti suatu tumpukan. Tumpukan tersusun dari bawah ke atas, dengan
setiap elemen yang baru selalu diletakkan di bagian paling atas tumpukan.
Analogi dari stack dapat dilihat di gambar berikut:

Untuk mengimplementasikan struktur data stack ke dalam pemrograman,


kita dapat menggunakan struktur data yang pernah kita ketahui, seperti array
dan linked list. Karena kita mengetahui bahwa array memiliki kekurangan yang
cukup signifikan jika dibandingkan dengan linked list, maka kita akan
mengimplementasikan stack menggunakan struktur data linked list.

Operasi-operasi yang dapat dilakukan pada stack terbatas pada operasi


pemeriksaan apakah stack kosong, insert, dan delete. Proses penampilan data
atau pengaksesan data dilakukan di luar struktur data stack.

a. Pemeriksaan status stack, kosong atau berisi (isEmpty)


Untuk memeriksa apakah stack memiliki elemen atau tidak, cukup
dengan memeriksa apakah penunjuk ke elemen teratas (top) menunjuk
ke null atau tidak. Jika null, maka kembalikan status bahwa stack kosong.
Jika tidak, maka kembalikan status bahwa stack tidak kosong.

b. Push (insert)
Pada stack, proses insert elemen baru dinamakan push. Proses push
selalu meletakkan elemen baru di atas elemen yang paling atas (top).

c. Pop (delete)
Pada stack, proses delete elemen dinamakan pop. Proses pop selalu
menghapus elemen yang terletak paling atas (top). Elemen yang
dihapus oleh proses pop dikembalikan (return). Agar dapat digunakan
oleh baris yang memanggil proses pop.
d. peek(): Looks at the object at the top of this stack without removing it from
the stack.
e. Int Search (object element): Searches for element in the stack. If found, its
offset from the top of the stack is returned. Otherwise, .1 is returned.

B. PRAKTIKUM

Contoh dari implementasi fungsi-fungsi tersebut dapat dilihat dalam contoh


program di bawah ini.

Catatan: program terdiri dari file Data.java,Stack.java, dan StackRunner.java.

Praktikum 4 : Stack
1. Buat Project Java dengan Nama : NIM_Nama_Praktikum5
2. Buat Package baru dengan nama: praktikumstack
3. Buat Kelas baru dengan nama: Data
4. Ketikkan koding berikut pada area koding

Class berikut merupakan class untuk menyimpan satu elemen data dalam
stack, class ini juga dapat digunakan dalam queue.

package praktikumstack;

public class Data {


int data;
Data next;

1. Buat Kelas baru dengan nama: Stack


2. Ketikkan koding berikut pada area koding

Class berikut merupakan class untuk mengimplementasikan struktur data


stack. Class ini menggunakan class Data sebagai elemen dari dari stack.

package praktikumstack;
public class Stack {
Data top;
void push (Data input) {
input.next=top;
top=input;

Data pop() {
Data x = top;
top = top.next;
return x;

boolean isEmpty() {
return (top==null);
}

1. Buat Kelas baru dengan nama: StackRunner


2. Ketikkan koding berikut pada area koding

Class berikut merupakan program utama yang menggunakan struktur


data stack yang telah dibuat untuk menyimpan dan menampilkan data.

public class StackRunner {


public static void main (String [] args) {
Stack st = new Stack ();
Data tmp;
tmp = new Data ();
tmp.data=12;
st.push(tmp);
tmp = new Data();
tmp.data=9;
st.push(tmp);
tmp = new Data();
tmp.data=2;
st.push(tmp);
tmp = new Data();
tmp.data=7;
st.push(tmp);
tmp = new Data();
tmp.data=11;
st.push(tmp);
while (!st.isEmpty()) {
tmp=st.pop();
System.out.println(tmp.data);
tmp=null;

}
}
Simpan dan Run, hasilny adalah sebagai berikut:

Buat Package dengan nama: praktikumstack2


Buat kelas dengan nama: StackDemo

Ketikkan code berikut:

package praktikumstack2;
import java.util.*;

public class StackDemo {

static void showpush(Stack st, int a) {


st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}

static void showpop(Stack st) {


System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
}

public static void main(String args[]) {


Stack st = new Stack();
System.out.println("stack: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty stack");
}
}

}
Simpan dan run

Anda mungkin juga menyukai