Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Stack.

Presentasi serupa


Presentasi berjudul: "Stack."— Transcript presentasi:

1 Stack

2 Pendahuluan Stack Tumpukan piring, tumpukan kertas, tumpukan batu, dlsb Dalam kehidupan sehari-hari sering kita menjumpai tumpukan Sifat tumpukan : satu elemen tumpukan dapat diambil bila tumpukan di atasnya dapat diambil

3 Pendahuluan Stack Elemen terakhir yang ditumpuk, yang akan diambil untuk yang pertama. Sifat ini disebut : LIFO  Last In First Out Untuk tumpukan tertentu ada yang khusus  elemen tumpukan hanya boleh diambil satu persatu

4 Pendahuluan Stack Pada dunia komputer, konsep tumpukan sering digunakan Sifat tumpukannya hanya boleh diambil satu per satu Contoh : Penanganan pemanggilan sub program saat pelaksanaan suatu program Evaluasi pernyataan aritmatika

5 Pendahuluan Stack Ada dua operasi dasar pada tumpukan : Tumpuk Ambil

6 Implementasi dengan larik
Max. tumpukan atas tumpukan

7 Implementasi dengan larik
def maksTumpukan : 20 Tumpukan : array[1 .. maksTumpukan] of string atas : integer edef

8 Operasi tumpuk data Operasi pertama : tumpuk data proc tumpuk
{tumpuk data x pada tumpukan dan laporkan apakah penuh atau tidak} if atas == maksTumpukan then penuh = true else atas = atas + 1 tumpukan[atas] = x penuh = false eif eproc

9 Operasi ambil data Operasi ambil data proc Jumput(x, kosong)
{ambil elemen teratas tumpukan lalu simpan pada x dan laporkan apakah kosong atau tidak} if atas == 0 then kosong = true else x = tumpukan[atas] atas = atas - 1 kosong = false eif eproc

10 Evaluasi Bentuk Postfix
Suatu pernyataan aritmatika terdiri dari sejumlah operator dan operand Operator dapat terdiri dari : +, -, *, / dll Operand : bilangan atau variabel

11 Evaluasi Bentuk Postfix
Setiap pernyataan aritmatika dapat dinyatakan dalam bentuk : Infix : 2 + 3 Prefix : 2 3 + Postfix : + 2 3

12 Evaluasi Bentuk Postfix
2 4 6 * + : akan menghasilkan nilai = 26 Algoritmanya : Ambil satu operator while ada operator do Operasikan terhadap dua operand disebelah kirinya, dan hasilnya membentuk operand baru Ambil operator berikutnya ewhile

13 Evaluasi Bentuk Postfix
Kelompok aksara yang dianggap satu kesatuan disebut token Token : Operator Operand Tanda sama dengan merupakan akhir dari pernyataan

14 Evaluasi Bentuk Postfix
Modul : Operasikan terhadap dua operand disebelah kirinya, dan hasilnya membentuk operand baru merupakan operasi pada tumpukan Setiap kali menemukan operand, ditumpuk pada tumpukan

15 Evaluasi Bentuk Postfix
Modul : Pengoperasian dua operand disebelah kiri operator sama dengan pengoperasian dua operand teratas pada tumpukan. Hasilnya ditaruh lagi pada tumpukan. Hasil akhir dari pengevaluasian adalah elemen teratas pada tumpukan.

16 Pernyataan yang akan dikerjakan
Isi Tumpukan Isi Tumpukan OP 1 OP 2 = 3 + = 2 + = 2 3 = 2 3 = 2 3 = 5

17 Pernyataan yang akan dikerjakan
Isi Tumpukan Isi Tumpukan OP 1 OP 2 2 4 6 * + = 4 6 * + = 2 6 * + = 2 4 * + = + = 2 4 6 + = 2 2 4 6 + = 2 24 = 2 24 = 2 24 = 26

18 Pernyataan yang akan dikerjakan
Isi Tumpukan Isi Tumpukan OP 1 OP 2 * /= 4 + 6 * /= 2 + 6 * /= 2 4 4 6 * /= 2 4 6 * /= 2 6 * /= 6 * /= 6 6 /= 6 6 /= 6 6 /= 36

19 Pernyataan yang akan dikerjakan
Isi Tumpukan Isi Tumpukan OP 1 OP 2 3 -/= 36 15 -/= 3 /= 36 15 15 3 /= 36 /= 36 12 = 36 12 = 36 12 = 3

20 Algoritma Global AmbilToken (token, operand, operator)
while token < > tandaSamaDengan do if token = simbolOperand then Tumpuk (operand, penuh) else (token adalah operator) Jumput (op1, kosong) Jumput (op2, kosong)

21 Algoritma Global Tumpuk (Evaluasi (op2, op1, operator), tumpukan) Eif
AmbilToken(token, operand, operator) ewhile

22 Pengembangan Algoritma
prog EvaluasiPostfix () read(pernyataan) AmbilToken (token, operand, operator) while token < > tandaSamaDengan do case token of

23 Pengembangan Algoritma
simbolOperand: Tumpuk (operand, penuh) If penuh then Henti(‘Pernyataan terlalu panjang’)

24 Pengembangan Algoritma
simbolOperator: Jumput(op1, kosong) if kosong then Henti (‘Kurang operand’) Jumput (op2, kosong) Tumpuk (Evaluasi (op2, op1, operator), penuh)

25 Pengembangan Algoritma
SimbolAbsah: Henti (‘Aksara tidak dikenal) SimbolKosong: (‘Pernyataan tidak lengkap’) ecase AmbilToken (token, operand, operator) ewhile

26 Pengembangan Algoritma
{Periksa keadaan akhir tumpukan dan tuliskan hasilnya} case atas of 0: write (‘Pernyataan kosong’) 1: write (tumpukan[atas]) else write (‘Kurang Operator’) ecase eprog

27 Deskripsi masing-masing modul
AmbilToken (token, operand, operator): Mengambil satu token Token dapat berupa : Simbol operand Simbol operator Tanda sama dengan Aksara absah Simbol Kosong

28 Deskripsi masing-masing modul
AmbilToken (token, operand, operator): Simbol operand variabel operand Simbol operator variabel operator

29 Deskripsi masing-masing modul
Tumpuk (operand, penuh) Menaruh operand pada tumpukan Melaporkan tumpukan penuh/tidak Penuh variabel penuh benar Bila tidak variabel penuh salah

30 Deskripsi masing-masing modul
Henti (pesan): Menghentikan program sambil memperagakan pesan

31 Deskripsi masing-masing modul
Jumput (x, kosong) : Ambil operand dari tumpukan Simpan dalam variabel x Melaporkan apakah tumpukan kosong? Kosong variabel kosong benar Isi variabel kosong salah

32 Deskripsi masing-masing modul
Evaluasi (op1, op2, operator) Mengembalikan hasil evaluasi operand op1 dengan operand op2 menggunakan operator

33 Algoritma Base-Conversion
Mengkonversi nilai basis 10 ke basis 2

34 Algoritma Base-Conversion
Stack of Remainders Computation Output 13 R 2 26 6 R 1 2 13 1

35 3 R 2 6 1 1 R 1 2 3 1 1

36 R 1 2 1 1 1 1 1

37 1 1 1 1 1 1 1 1 1 1 1

38 1 1 1


Download ppt "Stack."

Presentasi serupa


Iklan oleh Google