JOBSHEET - 7
STACK
1. KOMPETENSI
2. ULASAN TEORI
Dua jenis algoritma utama pada stack adalah push dan pop, sebagai berikut :
1. Algoritma Push(Stack, Item)
1) IF MaxStk = Top THEN Overflow
2) Top = Top + 1
3) STACK[Top] = item
4) Exit
2. Algoritma Pop(Stack)
1) IF Top = 0 THEN Underflow; Exit
2) Item = Stack[Top]
3) Top = Top – 1
4) Exit
Salah satu penerapan aplikasi stack terdapat pada bidang aritmatika untuk
penulisan ekspresi matematika. Bentuk penulisan ekspresi matematika
dibagi menjadi 3 notasi utama :
1. Notasi Infix A + B (operand, operator, operand)
2. Notasi Prefix + A B (operator, operand, operand)
3. Notasi Postfix A B + (operand, operand, operator)
Contoh :
Infix (a+b)*(c-d)
Prefix *,-,4,3,/,12,3
Postfix 4,3,-,12,3,/,*
Notasi infix adalah notasi aritmatika yang paling sering dipakai, akan tetapi
notasi posfix adalah notasi yang digunakan oleh mesin kompilasi komputer
untuk mempermudah proses pengkodean. Berikut ini adalah penjelasan
mengenai algoritma Postfix :
1. LANGKAH PRAKTIKUM
Praktikum ini terdiri dari dua package dalam satu project. Package pertama
untuk praktikum 1 merupakan implementasi dari stack dasar untuk data
bertipe integer. Sedangkan praktikum bagian 2 dalam package kedua
merupakan implementasi konversi notasi infix ke postfix. Ekspresi
aritmatika dalam praktikum ini memiliki tipe String.
1. Perhatikan diagram class Stack di bawah ini! Diagram class ini yang
selanjutnya akan dibuat sebagai acuan dalam membuat kode program
class Stack.
Stack
size: int
top: int
data[]: int
stack(size: int)
IsEmpty(): boolean
IsFull(): boolean
push(): void
pop(): void
tampilkan(): void
clearStack(): void
2. Deklarasikan variabel berikut pada class Stack
5. Buatlah method IsFull bertipe boolean untuk mengecek apakah isi stack
sudah penuh
6. Buatlah method push yang bertipe void untuk menambahkan isi array
dengan parameter dt yang bertipe integer
7. Buatlah method pop yang bertipe void untuk mengeluarkan isi data
didalam stack
Algoritma dan Struktur Data
10. Buatlah objek baru bernama tumpuk di class TestStack dengan nilai
parameternya adalah 5
11. Lakukan pengisian data pada stack dengan dengan memanggil method
push
12. Tampilkan data yang sudah anda isikan dilangkah sebelumnya dengan
memanggil method tampilkan
Postfix
n: int
top: int
stack[]: char
Postfix(total: int)
push(): void
pop(): void
convert(String Q): string
isOperand(char c): boolean
isOperator(char c): boolean
presedence(char c):int
3. Tambahkan method push dan pop dengan tipe void sebagai berikut :
Algoritma dan Struktur Data
8. Jalankan Program
4. PERTANYAAN
1) Lakukan penambahan data pada program praktikum 1 di atas yaitu angka
21 dan 45, dan tampilkan datanya!
Algoritma dan Struktur Data
atau
5. TUGAS
1. Modifikasilah program pada praktikum yang sudah anda lakukan yang
inputannya berupa angka gantilah menjadi data kalimat.
2. Buatlah program dengan menggunakan konsep stack untuk
menginputkan sebuah kalimat kemudian outputnya adalah berupa
kalimat terbalik.