Anda di halaman 1dari 3

Variabel S : yang bertipe data stack.

Elemen dari S : masing-masing bertipe integer dan panjang stack maksimum adalah 100 elemen. Variabel TOP-PTR : menyatakan index dari elemen TOP(S) dari stack. Maka berlaku bahwa : NOEL(S) = TOP-PTR ISEMPTY(S) = True jika TOP-PTR = 0 False jika TOP-PTR > 0 Operasi PUSH dan POP dapat kita program sebagai berikut : EON : menyatakan elemen yang di PUSH ke dalam S EOFF : menyatakan elemen yang di POP ke luar S NOEL-MAX : panjang maksimum stack Dalam PASCAL Type Stack_Struct; Record Stack : Array [1..100] of integer, Toppptr : integer; End; Var S : Stack_Struct; Procedure PUSH(Eon : integer); Begin If (S.Topptr <Noelmax) then Begin S.Topptr := S.Topptr + 1; S.Stack[S.Topptr] := Eon End Else Overflow_Condition End;

Procedure POP(Eoff : integer) Begin If (S.Topptr >0) then Begin Eoff := S.Stack[S.Topptr]; S.Topptr := S.Topptr - 1 End Else Underflow_Condition End; Catatan : Overflow : suatu keadaan dimana kita melakukan operasi PUSH terhadap stack dalam keadaan penuh. Underflow : keadaan dimana kita melakukan operasi POP terhadap stack kosong.

Algoritma untuk mengubah Notasi Infix ke dalam Notasi Postfix


Ekspresi diamati satu persatu dari kiri ke kanan. Pada algoritma ada 4 aturan dasar : 1. Jika simbol adalah "(" , maka simbol tersebut di PUSH ke dalam stack. 2. Jika simbol adalah ")' , seluruh isi stack di POP keluar mulai dari simbol "(" yang pertama ditemukan dalam stack. 3. Jika simbol yang discan adalah operand, maka simbol tersebut langsung sebagai output. 4. Jika simbol adalah operator, maka dilakukan pembandingan dulu dengan simbol operator yang berada pada posisi TOP dalam stack. a. Jika derajatnya setara atau lebih rendah dari simbol yang berada pada posisi TOP, maka TOP stack di POP keluar sebagai Output dan simbol yang baru di PUSH ke dalam stack. b. Jika derajatnya lebih tinggi dari simbol yang berada pada posisi TOP, maka simbol (operator ) yang di scan tersebut di PUSH ke dalam stack Biasanya diakhir operasi ditambah simbol ";" (titik koma), jika dalam keadaan ini maka POP semua elemen stack, sehingga stack hampa.

Urutan prioritas dari operator : 1. Perpangkatan (^) 2. Perkalian (*) atau Pembagian (/) 3. Penjumlahan (+) atau Pengurangan (-)

Anda mungkin juga menyukai