Programming in Java : Mengubah Ekspresi Infix menjadi Postfix

 


Apa itu Ekspresi Infix dan Postfix

Ekspresi Infix merupakan ekspresi yang digunakan jika operator (tanda +, -, *, /, ^) berada ditengah-tengah operand/variabel yang ingin dihitung. Ekspresi Infix merupakan ekspresi yang paling sering kita gunakan sehari-hari. Contoh ekspresi infix, yaitu :
  1. a+b*c/d
  2. (a^b)*c-d    
Berbeda dengan ekspresi infix, ekspresi postfix menuliskan operator setelah operand yang dimaksud telah dituliskan, misalnya kita akan menambahkan 'a' dengan 'b', kemudian kita mengalikan 'e' dengan 'd' baru mengurangi hasil setelahnya. Contoh berikut akan menunjukkan perbedaan ekspresi infix dan postfix.
    
    Ekspresi Infix     : a+b-(e*d)
    Ekspresi Postfix : ab+ed*-

Program untuk mengubah ekspresi Infix menjadi Postfix

Untuk mengubah ekspresi infix menjadi postfix dapat digunakan queue dan stack. Berikut merupakan class dari queue dan stack.

Queue Class


Stack Class


Pada program ini, stack akan menjadi tempat operator sementara, sedangkan queue digunakan untuk menyimpan operand.

Untuk mengubah ekspresi dari infix ke postfix akan digunakan class baru sebagai berikut

InfixtoPostfix Class


Operator memiliki sifat khusus, seperti * dan / lebih didahulukan dari + dan -, dan sebagainya. Maka dari itu pada infixtoPostfix class dapat dibuat method precedence untuk mengatur hal ini.

Setelah operator dan ekspresi infix telah diatur dan diubah menjadi ekspresi postfix, jawaban masih tersimpan dalam queue. Untuk mengubah queue menjadi String sehingga dapat dikeluarkan output berupa String, maka dibuat method toString pada Queue.java sebagai berikut.


Setelah Queue telah menjadi String, String akan di return ke method main. Berikut contoh pengaplikasian program "Mengubah Ekspresi Infix menjadi Postfix" di Java.


Dan berikut merupakan contoh input dan output dari program




Komentar

Postingan populer dari blog ini

Penjelasan Rekursif pada Tower of Hanoi

Array in Java

Evaluasi Tengah Semester