Tuesday, February 21, 2012

Prefix, Infix, dan Postfix


Notasi Prefix, Infix, dan Postfix

Dalam struktur data yang banyak dipelajari, kita ketahui adanya 3 notasi operasi yang dilakukan untuk suatu operasi aritmatika, yaitu prefix, infix, dan postfix.
Sebelum kita kupas mengenai notasi di atas, perlu dipahami terlebih dahulu indikator yang membentuk terjadinya notasi dalam struktur data. Notasi terbentuk dari operand dan operator. Operand adalah data atau nilai yang membantu dalam proses sedangkan operator adalah fungsi yang digunakan dalam proses.
Contoh :
A + B * C
2 + 3 * 5
Keterangan : A, B, C, 2, 3, 5 adalah operand
+, * adalah operator
Nahh… sekarang mudah-mudahan sudah dapat diketahui indikator yang membentuk suatu notasi. Selanjutnya kita harus mengetahui level/hirarkhi dari operator seperti
1. ^ (pangkat)
2. * (kali) atau / (bagi)
3. + (jumlah) atau – (kurang)
Seperti yang telah dibahas di awal, diketahui notasi pada struktur data terdiri atas 3 macam, yaitu


1. Prefix
yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada didepan operand.
Contoh :  A + B * C (Infix)
maka notasi prefixnya adalah   +A*BC
Pemecahannya :
A  +  B  *  C
diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses dimulai  dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi adalah * kemudian +.
Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C , prefixnya dengan menggabungkan operand dan memindahkan operator kedepan dari operand, sehingga fungsi B * C, notasi prefixnya menjadi *BC. Sehingga hasil sementara dari notasi prefix adalah
A + *BC
selanjutnya mencari prefix untuk operator yang berikutnya, yaitu +, cara yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan *BC, gabungkan operand, sehingga menjadi A*BC, lalu pindahkan operator kedepan operand, sehingga hasil akhir menjadi
+ A * B C
Contoh yang lain:
1.  A + B  – C * D
2     3    1   —–>    hirarkhi level
A + B – *CD   —–>    1
+AB – *CD     —–>    2
– +AB *CD     —–>    3
2. A * B ^ C – D
2   1    3      —–>    hirarkhi
A * ^BC – D     —–>    1
*A^BC - D       —–>    2
-*A^BCD         —–>    3
3.  A + ( B – C ) * D
3      1      2   —–> hirarkhi
A + -BC * D      —–>  1 (karena diapit tanda paranthesis atau kurung buka/tutup,( ) )
A + *-BCD        —–>  2
+ A *-BCD        —–>  3


2. Infix
yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada diantara operand. Notasi ini hanya dikenal oleh manusia dan selalu digunakan dalam perhitungan aritmatika.
Contoh :  A + B * C
( A + B ) * C
A – ( B + C ) * D ^ E


3. Postfix
yaitu notasi yang terbentuk atas operator dengan operand, dimana operator berada dibelakang operand. Notasi ini hanya dikenal oleh processor dan dipahami dalam ALU.
Contoh :  A + B * C (Infix)
maka notasi postfixnya adalah   ABC*+
Pemecahannya :
A  +  B  *  C
diketahaui ada 3 operand yaitu : A, B, C, dan 2 operator yaitu : +, *. Proses dimulai  dengan melihat dari hirarkhi operator. Contoh diatas operator yang tertinggi adalah * kemudian +.
Tanda * diapit oleh dua operand yaitu B dan C yaitu B * C , postfixnya dengan menggabungkan operand B dan C menjadi BC lalu memindahkan operator ke belakang operand C, sehingga fungsi B * C, notasi postfixnya menjadi BC*. Sehingga hasil sementara dari notasi postfix adalah
A + BC*
selanjutnya mencari postfix untuk operator yang berikutnya, yaitu +, cara yang dilakukan sama seperti di atas, operator +, diapit oleh 2 operand, yaitu A dan BC*, gabungkan operand tersebut, sehingga menjadi ABC*, lalu pindahkan operator + ke belakang operand ABC*, sehingga hasil akhir menjadi
ABC*+
Contoh yang lain:
1.  A + B  – C * D
2     3    1   —–>    hirarkhi level
A + B – CD*   —–>    1
AB+ – *CD     —–>    2
AB+*CD-       —–>    3
2. A * B ^ C – D
2   1    3      —–>    hirarkhi
A * BC^ – D     —–>    1
ABC^* - D       —–>    2
ABC^*D-         —–>    3
3.  A + ( B – C ) * D
3      1      2   —–> hirarkhi
A + BC- * D      —–>  1 (karena diapit tanda paranthesis atau kurung buka/tutup,( ) )
A + BC-D*        —–>  2
A BC-D*+         —–>  3

Jika ingin menguasai cara pembentukkan notasi ini caranya adalah dengan BANYAK LATIHAN KASUS.
1. A * ( B + C ) / ( D – E ), Notasi Postfix dan Prefix?
2. ABC+*DE-/, Notasi Infix dan Prefix?
3. 223+*32-, berapakah hasilnya

0 comments: