Rahmat Deddy Rianto Dako, ST, M.Eng Ungkapan Numeris Rahmat Deddy Rianto Dako, ST, M.Eng
Infix - Prefix A + B – C (A + B) * (C – D) Jan Lukasiewicz Notasi Polish - + A B C * + A B - C D infix prefix Infix - Prefix
Penjelasan (A + B) * (C – D) (+ A B) * ( – C D ) Mis, P = (+ A B) Q = ( – C D) Maka P * Q * P Q * + A B – C D Penjelasan
Infix – Postfix A + B – C (A + B) * (C – D) Reverse Polish Notation (RPN) A B + C – A B + C D – * infix Postfix/Suffix Infix – Postfix
Algoritma INFIX_KE_POSTFIX (1) Langkah 0 Baca ungkapan dalam notasi infix, misalnya, S; tentukan panjang ungkapan tersebut, misalnya N karakter; siapkan sebuah tumpukan kosong dan siapkan derajat masing operator, misalnya : $ = 3, * dan / = 2, + dan - = 1, dan ( = 0 Algoritma INFIX_KE_POSTFIX (1)
Algoritma INFIX_KE_POSTFIX (2) Langkah 1 Dimulai dari I = 1 sampai N kerjakan : R = S[I] Test nilai R, jika R adalah : Operand : langsung ditulis Kurung buka : push ke dalam tumpukan Kurung tutup : pop dan tulis semua isi tumpukan sampai ujung tumpukan = “(“. Pop juga tanda “(“ ini, tetapi tidak usah ditulis. Operator : jika tumpukan kosong, atau derajat R lebih tinggi dibanding derajat ujung tumpukan, push operator ke dalam tumpukan. Jika tidak, pop ujung tumpukan dan tulis; kemudian ulangi perbandingan R dengan ujung tumpukan. Kemudian R dipush. (catatan, kurung buka di dalam tumpukan dianggap mempunyai derajat lebih rendah dibanding R Algoritma INFIX_KE_POSTFIX (2)
Algoritma INFIX_KE_POSTFIX (3) Langkah 2 Jika akhir notasi infix telah tercapai, dan tumpukan masih belum kosong, pop semua isi tumpukan dan tulis hasilnya. Algoritma INFIX_KE_POSTFIX (3)
Contoh - (A + B)/((C – D) * E $ F) Proses Ke Karakter dibaca Isi tumpukan Karakter tercetak Notasi postfix yang terbentuk 1 ( 2 A 3 + + ( 4 B A B 5 ) A B + 6 / 7 ( / 8 ( ( / 9 C A B + C 10 - - ( ( / Contoh - (A + B)/((C – D) * E $ F)
Contoh - (A + B)/((C – D) * E $ F) Proses Ke Karakter dibaca Isi tumpukan Karakter tercetak Notasi postfix yang terbentuk 11 D - ( ( / A B + C D 12 ) ( / - A B + C D - 13 * * ( / 14 E A B + C D – E 15 $ $ * ( / 16 F A B + C D – E F 17 A B + C D – E F $ 18 A B + C D – E F $ * 19 / 20 Contoh - (A + B)/((C – D) * E $ F)
Buatlah Algoritma tersebut dalam program Pekerjaan Rumah
Queue (Antrian) Next Meeting