Friday, January 30, 2015

Pertemuan 4

NOTASI INFIX, PREFIX, POSTFIX
Notasi infix
§  Contoh           :  X + Y
§  Operator ditulis di antara operand
§  Sebagai contoh A * ( B + C ) / D yang biasa berarti “tambahkan B dan C terlebih dahulu, dan kalikan dengan A . setelah itu bagi dengan D”
§  Notasi infix membutuhkan informasi ekstra :
o Rule mengenai operator Precedence
o Assosiativem dan tanda kurung  ( )


Notasi Postfix
§  Dikenal juga dengan “ Reverse Polish Notation” contoh = XY +
§  Operator ditulis setelah operand . contoh lain  A B C + * D /
§  Operator selalu terurut dari kiri ke kanan , dan  kurung tidak dapat dipergunakan untuk mengubah urutan operasi
§  Contoh = pada notasi di atas , tanda +  dikerjakan terlebih dahulu sebelum *
§  Jika bertemu operator, maka operasi aritmatik akan segera mungkin dikerjakan contoh jika ditemukan + ,  B dan C akan segera dijumlahkan
§  Setelah itu A akan dikalikan dengan hasil B + c dan hasil keseluruhan akan dibagi dengan D
§  Contoh           :  A x ( B + C) / D (operasi infix ke postfix)
Notasi Prefix
§  Dikenal juga dengan “ Polish Notation” contoh = XY +
§  Operator dituliskan sebelum operand . pada contoh : sebelumnya, jika dituliskan pada prefix adalah : / * A + B C D
§  Sebagaimana postfix , operator di evaluasi dari kiri ke kanan
§  Operator akan mengambil dua nilai operand terdekat pada kanan operand
§  Meski pada prefix operator di evaluasi dari kiri ke kanan , namun prefix menggunakan nilai pada bagian kanan , jika nilai operand melibatkan komputasi , maka akan mengubah urutan operator
§  Contoh




§  Contoh lain  :


CONTOH :
 

Notasikan ke dalam infix , postfix dan prefix

1.      Infix
         Sx = (pow (x,2) + a b + y ) / ( pow ( (a + c + d)
                 ( x * x + a * b + y ) / (a + c + d) (a + c + d)
2.     Postfix

Output

  
                                                                                

Stack 

ALGORITMA  KALKULASI  POSTFIX (BINARY)


Selama masih ada token pada input
Jika token adalah operand
  • push ke dalam stack

Selain itu (token adalah operator)
  • Pop 2 kali nilai pada  stack.
  • Evaluasi nilai yang dipop dengan operator,
  • Push hasil operasi.
Jika hanya satu nilai pada stack,maka
  • Nilai adalah hasil kalkulator
Jika ada lebih dari satu nilai,maka
  • (error) terlalu banyak nilai operand pada inputan

CONTOH : 5 1 2 + 4 * 3 - +


CONTOH : 5 1 2 + 4 * 3 - +


KONVERSI INFIX TO POSTFIX
Algoritma Shunting Yard


CONTOH  : 3 + 4 * 2 / ( 1 – 5 ) ^ 2 ^ 3


CONTOH  : 3 + 4 * 2 / ( 1 – 5 ) ^ 2 ^ 3


CONTOH  : 3 + 4 * 2 / ( 1 – 5 ) ^ 2 ^ 3

No comments:

Post a Comment