Materi Kuliah : Struktur Data & Algoritma
Prodi Sistem Informasi - FakultasTeknik UPI –Y.A.I
STACK
PENGERTIAN STACK
Sering dikenal dengan istilahTumpukan
Proses menyusun elemen dimana elemen yang pertama
dimasukkan akan berada dibawah, elemen kedua akan berada diatas yang pertama, dst.
Proses pengambilan elemen akan dimulai dari elemen yang paling atas dari tumpukkan atau yang terakhir dimasukkan
LIFO (Last In First Out) : Elemen yang terakhir dimasukkan akan menjadi elemen yang pertama dikeluarkan
Contoh : tumpukan barang, tumpukkan buku, pemrosesan data di sistem komputer dengan menggunakan stack, dsb.
PENGERTIAN STACK
Jika ada elemen yang dimasukkan maka elemen tersebut akan diletakan di atas elemen E
Jika dari tumpukan tersebut akan dikeluarkan maka elemen pertama yang akan dikeluarkan adalah E
E D C B A
ISTILAH DALAM STACK
Kapasitas Maksimum Stack (MAX)
Bilangan yang menunjukkan banyaknya elemen yang dapat ditampung oleh Stack
Penunjuk ElemenTerakhir (TOP)
Bilangan yang menunjukkan posisi elemen terakhir
Proses Memasukkan Elemen Ke Stack (PUSH)
Proses Mengeluarkan Elemen dari Stack (POP)
Proses Mengosongkan Stack atau kondisi awal Stack (INISIALISASI)
E D C B A
Semua Proses Dalam Stack Menggunakan PenunjukTOP
KONDISI PADA STACK
Stack Penuh JikaTop = Max
Algoritma :
JikaTop = Max maka Stack Penuh JikaTop < Max maka Stack Tidak Penuh
Stack Kosong JikaTop = 0
Algoritma :
JikaTop = 0 maka Stack Kosong
JikaTop > 0 maka Stack Tidak Kosong
7 6 5 4 3 2 1
7 G
6 F
5 E
4 D
3 C
2 B
1 A
INISIALISASI
Proses menjadikan Stack ke
kondisi awal atau mengosongkan Stack
Top diberikan nilai berada di bawah posisi elemen pertama → 0
Algoritma :
Inisialisasi (Stack) {
Ubah nilaiTop menjadi 0 }
7 6 5 4 3 2 1
PUSH
Proses memasukkan elemen ke Stack
Dapat dilakukan jika Stack Tidak Penuh
Algoritma :
Push (Stack) {
Jika Stack tidak penuh Tambahkan nilaiTop
Masukkan elemen pada posisi Top
Jika Stack penuh
Tampilkan pesan kesalahan }
7 6 5 4 3 B 2 A 1
7 6 5 4 C 3 B 2 A 1
POP
Proses mengeluarkan elemen dari Stack
Dapat dilakukan jika Stack Tidak Kosong
Algoritma : Pop (Stack) {
Jika Stack tidak kosong
Tampilkan elemen pada posisi Top
Kurangi nilaiTop Jika Stack kosong
Tampilkan pesan kesalahan }
7 6 5 4 3 2 A 1 7 6 5 4 3 B 2 A 1
LATIHAN
1. Jika diberikan stack spt di samping tuliskan posisi Top dan isi Stack setelah perintah berikut dieksekusi
a. Push(Z), Push(K), Pop(), Push(G),Push(H), Push(T), Push(R), Push(Y), Pop(), Pop()
b. Pop(), Push(G),Push(H), Push(T), Push(R), Push(Y), Pop(), Pop(), Push(Z), Push(K), Pop(), Push(P), Push(U)
2. Tuliskan Algoritma untuk
menampilkan isi sebuah Stack
STACK DENGAN ARRAY
Implementasi dengan menggunakan array 1 dimensi
No indeks awal untuk elemen pertama dari stack adalah 0
No indeks akhir untuk elemen terakhir dari stack adalah max-1, dimana max adalah maksimum banyaknya elemen yang dapat ditampung oleh stack
7 6 5 4 C 3 B 2 A 1
IN OUT
MAX = 7 TOP
6 5 4 3 C 2 B 1 A 0
Implementasi dengan array
KONDISI STACK DENGAN ARRAY
Stack Penuh JikaTop = Max - 1
Algoritma :
JikaTop = Max – 1 maka Stack Penuh
JikaTop < Max – 1 maka Stack Tidak Penuh
Stack Kosong JikaTop = -1
Algoritma :
JikaTop = -1 maka Stack Kosong
JikaTop > -1 maka Stack Tidak Kosong
INISIALISASI STACK DENGAN ARRAY
Proses menjadikan Stack ke kondisi awal atau mengosongkan Stack
Top diberikan nilai berada di bawah posisi elemen pertama → -1 Algoritma :
Inisialisasi (Stack) {
Ubah nilaiTop menjadi -1 }
PUSH
Proses memasukkan elemen ke Stack
Dapat dilakukan jika Stack Tidak Penuh
Algoritma :
Push (Stack) {
Jika Stack tidak penuh Tambahkan nilaiTop
Masukkan elemen pada posisiTop Jika Stack penuh
Tampilkan pesan kesalahan }
POP
Proses mengeluarkan elemen dari Stack
Dapat dilakukan jika Stack Tidak Kosong
Algoritma : Pop (Stack) {
Jika Stack tidak kosong
Tampilkan elemen pada posisiTop Kurangi nilaiTop
Jika Stack kosong
Tampilkan pesan kesalahan }
KESIMPULAN
Stack dapat diimplementasikan dengan array 1 dimensi
Implementasi Stack dengan menggunakan array pada prinsipnya hanya mengubah nilai awal stack menjadi 0 karena indeks array dimulai dengan 0 → top = -1 jika stack kosong
Operasi yang dilakukan pada stack dengan menggunakan array adalah dengan memanipulasi nomor indeks dari array yang menunjukkan posisi top
LATIHAN
Pada Bahasa Java, dikenal operasi pada stack selain push dan pop adalah peek. Peek adalah perintah yang menampilkan elemen paling atas dari suatu stack. Buatlah algoritma untuk operasi tersebut