Anda di halaman 1dari 4

BAB 4.

STACK

Pokok Bahasan :
 Konsep dasar Stack
 Operasi dasar pada Stack
 Implementasi Stack menggunakan Array
 Implementasi Stack menggunakan kelas Stack

Tujuan :
Setelah melakukan praktikum ini, diharapkan mahasiswa mampu :

 Memahami konsep dasar stack dan operasi yang dilakukan pada stack.
 Melakukan implementasi stack dengan menggunakan array
 Melakukan implementasi stack dengan menggunakan kelas Stack

Dasar Teori :
4.1. Konsep dasar Stack

Stack (tumpukan) adalah struktur data yang memungkinkan penyisipan dan pengambilan data
dari satu ujung yang disebut puncak. Sesuai dengan namanya, struktur data ini digambarkan seperti
keadaan tumpukan piring atau tumpukan buku.

Stack memiliki sifat LIFO (last in first out) artinya, data yang terakhir kali dimasukkan akan
menjadi data yang pertama kali dikeluarkan.

4.2. Operasi dasar pada Stack

Operasi dasar pada stack terdiri dari :


 Push : operasi untuk memasukkan data ke dalam tumpukan. Biasa ditulis dengan push(T,d). T
adalah objek tumpukan dan d adalah data yang akan dimasukkan kedalam tumpukan.
 Pop : operasi untuk mengambil data dari tumpukan. Biasa ditulis dengan pop(T), dengan T
adalah objek tumpukan. Dalam hal ini data yang akan dikeluarkan adalah data yang paling atas
atau yang paling terakhir dimasukkan.

4.3. Implementasi Stack menggunakan Array

Silahkan ujicobakan kode dibawah ini menggunakan netbeans.


 Buatlah kelas baru bernama Tumpukan.java

public class Tumpukan {


final int MAKSDATA = 8;
private String[] tumpukan = new String[MAKSDATA];
private int puncak;

// Konstruktor
public Tumpukan() {
puncak = -1;
}

// Memasukkan data ke tumpukan


// Nilai balik berupa false
// kalau tumpukan sudah penuh
public boolean push(String data) {

// Periksa kalau tumpukan penuh


if (puncak == (MAKSDATA - 1)) {
System.out.print("Tumpukan penuh! ");
System.out.println(data + " tidak dimasukkan.");

return false;
}

// Masukkan data ke tumpukan


puncak++;
tumpukan[puncak] = data;

return true;
}

public String pop() {


if (! empty())
return tumpukan[puncak--];
else
return "**error**"; // menyatakan tumpukan sudah habis
}

public boolean empty() {


return (puncak == -1);
}

public String tampil() {


return tumpukan[puncak--];
}
}
4.4. Implementasi Stack menggunakan kelas Stack

Pada Java, terdapat kelas Stack yang dapat digunakan untuk melakukan operasi-operasi pada
stack. Untuk memanggil kelas Stack dapat melakukan : import java.util.Stack;

Untuk memanggil kelas tersebut, cukup dengan menggunakan contoh sebagai berikut (tipe data
bisa dirubah sesuai kebutuhan:

Stack<String> tumpukan = new Stack<String>();

Berikut method-method yang bisa digunakan pada kelas Stack :

Metode Anggota Keterangan


push(arg) Menyisipkan data arg di puncak tumpukan
pop() Mengambil data yang ada di puncak tumpukan.
peek() Memberikan nilai balik berupa elemen yang ada di puncak tanpa
menghapusnya.
empty() Menghasilkan true kalau tumpukan kosong atau false kalau tumpukan
mengandung data
get(indexs) Menghasilkan elemen yang posisinya sama dengan indeks
firstElemen() Menghasilkan elemen pertama
lastElemen() Menghasilkan elemen terakhir
clear() Menghapus semua elemen di tumpukan
remove(index) Menghapus elemen yang posisinya sama dengan indeks

LATIHAN
1. Buatlah program main dengan nama tumpukankota.java yang memanggil method-method pada
kelas tumpukan.java seperti contoh di bagian 4.3, kemudian cobakan untuk memasukkan data nama
kota berikut:
push(“Jakarta”)
push(“Bandung”);
push(“Bogor”);
push(“Depok”);
push(“Sukabumi”);
push(“Surabaya”);
pop();
pop();
push(“Bekasi”);
push(“Semarang”);
pop();

apa output yang dihasilkan?


2. Implementasikan soal no 1 dengan menggunakan kelas Stack pada Java.
3. Buatlah program java menggunakan stack untuk membalik string,
Contoh :
Input : universitas
Output : satisrevinu
4. Buatlah program java untuk mengkonversikan bilangan desimal ke sistem biner.

Contoh :

Input : 19

Output : 1 0 0 1 1

Algoritma yang digunakan :

Tumpukan → kosong

while bilangan > 0

digit →sisa pembagian bulat bilangan dengan 2

push(tumpukan, Digit)

bilangan → pembagian bulat Bilangan dengan 2

end- While

while(Tumpukan tidak kosong)

digit → pop(Tumpukan)

Tampilkan Digit

end-While

Anda mungkin juga menyukai