Pertemuan 5
Dosen : Endang Retnoningsih, M.Kom
www.endangretno.com
STACK ATAU TUMPUKAN
 Dua hal yang tidak pasti dalam
keberuntungan adalah DATANGNYA dan
PERGINYA
Video Animasi STACK
STACK
•Merupakan bentuk khusus dari Linier List yang
pemasukan dan penghapusan elemennya hanya
dapat dilakukan pada satu posisi, yaitu posisi akhir
dari List (Top)
•Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO).
STACK
•LAST-IN-FIRST-OUT (LIFO)
• benda yang terakhir masuk dalam stack maka
yang pertama keluar dari stack
STACK
•Compo di posisi terakhir, maka Compo akan
menjadi elemen teratas dalam tumpukan.
•Kita menumpuk Televisi pada saat pertama kali,
maka elemen Televisi menjadi elemen terbawah
dari tumpukan.
•Jika kita mengambil elemen dari tumpukan, maka
secara otomatis akan terambil elemen teratas, yaitu
Compo.
OPERASI STACK
•ISEMPTY Untuk memeriksa apakah stack kosong
•ISFULL  Untuk memeriksa apakah stack sudah
penuh
•PUSH  Untuk menambahkan item pada posisi
paling atas (TOP)
•POP  Untuk menghapus item paling atas (TOP)
•CLEAR  Untuk mengosongkan stack
•PRINT Untuk menampilkan semua elemen stack
OPERASI STACK
•ISEMPTY
Untuk memeriksa apakah
stack dalam kondisi kosong
•Dengan cara memeriksa TOP of
STACK
•Jika TOP masih = -1 maka
berarti stack masih kosong
OPERASI STACK
•ISFULL
Untuk memeriksa apakah
kondisi stack sudah penuh
•Dengan cara memeriksa TOP of
STACK
•Jika TOP of STACK = MAX_STACK-
1 maka FULL (Penuh).
•Jika TOP of STACK < MAX_STACK-
1 maka belum penuh
OPERASI STACK
•PUSH
Digunakan untuk memasukkan elemen ke dalam
stack dan selalu menjadi elemen teratas stack
•Cara:
1. Menambah satu (increment) nilai TOP of STACK
setiap ada penambahan elemen stack selama stack
masih belum penuh
2. Isikan nilai baru ke stack berdasarkan indeks TOP of
STACK setelah ditambah satu (diincrement)
OPERASI STACK
•PUSH
OPERASI STACK
•POP
Digunakan untuk menghapus elemen yang berada
pada posisi paling atas dari stack
•Cara:
1. Ambil dahulu nilai elemen teratas stack dengan
mengakses TOP of STACK
2. Tampilkan nilai yang akan diambil
3. Lakukan decrement nilai TOP of STACK sehingga
jumlah elemen stack berkurang 1
OPERASI STACK
•POP
OPERASI STACK
•CLEAR
Digunakan untuk mengosongkan stack / membuat
stack hampa sehingga Top pada Stack berada kembali
di posisi Top = -1
OPERASI STACK
•CLEAR
Digunakan untuk mengosongkan stack / membuat
stack hampa sehingga Top pada Stack berada kembali
di posisi Top = -1
OPERASI STACK
•PRINT
Digunakan untuk menampilkan semua elemen-
elemen stack
•Cara:
Looping semua nilai array secara terbalik, karena kita
harus mengakses dari indeks array tertinggi terlebih
dahulu baru ke indeks yang kecil
OPERASI STACK
•PRINT
Video Animasi
OPERASI STACK
INFIX-POSTFIX-PREFIX
Video Animasi
INFIX-POSTFIX-PREFIX
INFIX-POSTFIX-PREFIX
•Infix: “in” , operator berada di dalam operand
Contoh: A + B
•Postfix: operator berada setelah operand
Contoh: A B +
•Prefix: operator berada sebelum operand
Contoh: + A B
INFIX-POSTFIX-PREFIX
•Stack dapat digunakan untuk mentransformasikan
notasi infix ini menjadi notasi posfix.
INFIX-POSTFIX-PREFIX
•Terdapat 4 aturan dasar untuk mengubah notasi infix
ke dalam notasi posfix:
1. Jika simbol adalah ''('' (kurung buka), maka ia kita
PUSH ke dalam stack
2. Jika simbol adalah '')'' (kurung tutup), POP dari stack
elemen-elemen stack, sampai pertama kali kita POP
simbol ''(''. Semua elemen stack yang di POP
tersebut merupakan output, kecuali ''('' tadi
3. Jika simbol adalah sebuah operand, tanpa
melakukan perubahan elemen stack, operand
tersebut langsung merupakan output.
INFIX-POSTFIX-PREFIX
•Terdapat 4 aturan dasar untuk mengubah notasi infix
ke dalam notasi posfix:
4. Jika simbol adalah sebuah operator, maka jika TOP
stack adalah operator dengan level lebih tinggi atau
sama, maka elemen TOP kita POP, sekaligus keluar
sebagai output, dilanjutkan proses seperti ini
sampai TOP merupakan ''('' atau operator dengan
level lebih rendah.
Kalau hal ini terjadi, operator (yang diamati) kita
PUSH ke dalam stack. Biasanya ditambahkan simbol
; (titik-koma) sebagai penutup ekspresi. Dalam
keadaan ini, kita POP semua elemen stack, sehingga
stack menjadi hampa.
INFIX-POSTFIX-PREFIX
•Contoh:
INFIX-POSTFIX-PREFIX
•Contoh Kasus
•Bentuk Infix 2+5*3
•Postfix 25*3+
LATIHAN
•Ubah bentuk infix berikut menjadi bentuk postfix!
a. (A * (B + C) ^ D – E) / F + G
b. ((1+2)*4)+3
LATIHAN
•Ubah bentuk infix berikut menjadi bentuk postfix!
b. ((1+2)*4)+3
LATIHAN
•Ubah bentuk infix berikut menjadi bentuk postfix!
a. (A * (B + C) ^ D – E) / F + GA B C + D ^ * E - F / G +
b. ((1+2)*4)+3
TERIMA KASIH

Pertemuan 5 Stack atau Tumpukan