1. A+B*C/D
a. Rubah menjadi Postfix : ABC*D/+ :
Stack | Input | Output | Keterangan |
Kosong | A+B*C/D |
|
|
Kosong | +B*C/D | A |
|
+ | B*C/D | A |
|
+ | *C/D | AB |
|
+* | C/D | AB | Derajat * > +, maka ditumpuk |
+* | /D | ABC |
|
+/ | D | ABC* | Derajat / = *, maka * dikeluarkan |
+/ | Selesai | ABC*D |
|
Kosong |
| ABC*D/+ | Stack dikeluarkan |
b. Rubah menjadi Prefix : +A*B/CD
1) Membalikkan ekspresi infix : D/C*B+A
2) Jadikan Setiap '(' sebagai ')' dan setiap ')' sebagai '(' : tidak ada
3) Menggunakan bentuk postfix
Stack | Ekspresi | Output | Keterangan |
Kosong | D/C*B+A |
|
|
Kosong | /C*B+A | D |
|
/ | C*B+A | D |
|
/ | *B+A | DC |
|
* | B+A | DC/ | Derajat / = *, maka / dikeluarkan |
* | +A | DC/B |
|
+ | A | DC/B* | Derajat + < *, maka * dikeluarkan |
+ | Selesai | DC/B*A |
|
Kosong |
| DC/B*A+ | Stack dikeluarkan |
4) Membalikkan output : +A*B/CD
2. 2(C+D)/E
a. Rubah menjadi Postfix : 2CD+E/
Stack | Input | Output | Keterangan |
Kosong | 2(C+D)/E |
|
|
Kosong | (C+D)/E | 2 |
|
( | C+D)/E | 2 |
|
( | +D)/E | 2C |
|
(+ | D)/E | 2C |
|
(+ | )/E | 2CD |
|
Kosong | /E | 2CD+ | Karena operator ), maka + dikeluarkan |
/ | E | 2CD+ |
|
/ | Selesai | 2CD+E |
|
Kosong |
| 2CD+E/ | Stack dikeluarkan |
|
|
|
|
b. Rubah menjadi Prefix : /2+CDE
1) Membalikkan ekspresi infix : E/)D+C(2
2) Jadikan Setiap '(' sebagai ')' dan setiap ')' sebagai '(' : E/(D+C)2
3) Menggunakan bentuk postfix
Stack | Ekspresi | Output | Keterangan |
Kosong | E/(D+C)2 |
|
|
Kosong | /(D+C)2 | E |
|
/ | (D+C)2 | E |
|
/( | D+C)2 | E |
|
/( | +C)2 | ED |
|
/(+ | C)2 | ED |
|
/(+ | )2 | EDC |
|
/ | 2 | EDC+ | Karena operator ), maka + dikeluarkan |
/ | Selesai | EDC+2 |
|
Kosong |
| EDC+2/ | Stack dikeluarkan |
4) Membalikkan output : /2+CDE
3. (1+2)*3/6
a. Rubah menjadi Postfix : 12+3*6/
Stack | Input | Output | Keterangan |
Kosong | (1+2)*3/6 |
|
|
( | 1+2)*3/6 |
|
|
( | +2)*3/6 | 1 |
|
(+ | 2)*3/6 | 1 |
|
(+ | )*3/6 | 12 |
|
Kosong | *3/6 | 12+ | Karena operator ), maka + dikeluarkan |
* | 3/6 | 12+ |
|
* | /6 | 12+3 |
|
/ | 6 | 12+3 | Derajat / = *, maka * dikeluarkan |
/ | Selesai | 12+3*6 | Stack dikeluarkan |
Kosong |
| 12+3*6/ |
|
b. Rubah menjadi Prefix : *+12/36
1) Membalikkan ekspresi infix : 6/3*)2+1(
2) Jadikan Setiap '(' sebagai ')' dan setiap ')' sebagai '(' : 6/3*(2+1)
3) Menggunakan bentuk postfix
Stack | Ekspresi | Output | Keterangan |
Kosong | 6/3*(2+1) |
|
|
Kosong | /3*(2+1) | 6 |
|
/ | 3*(2+1) | 6 |
|
/ | *(2+1) | 63 |
|
* | (2+1) | 63/ | Derajat / = *, maka / dikeluarkan |
*( | 2+1) | 63/ |
|
*( | +1) | 63/2 |
|
*(+ | 1) | 63/2 |
|
*(+ | ) | 63/21 |
|
* | Selesai | 63/21+ | Karena operator ), maka + dikeluarkan |
Kosong |
| 63/21+* | Stack dikeluarkan |
4) Membalikkan output : *+12/36
4. (3+4)/(A+B)*C
a. Rubah menjadi Postfix : 34+AB+/C*
Stack | Input | Output | Keterangan |
Kosong | (3+4)/(A+B)*C |
|
|
( | 3+4)/(A+B)*C |
|
|
( | +4)/(A+B)*C | 3 |
|
(+ | 4)/(A+B)*C | 3 |
|
(+ | )/(A+B)*C | 34 |
|
Kosong | /(A+B)*C | 34+ | Karena operator ), maka + dikeluarkan |
/ | (A+B)*C | 34+ |
|
/( | A+B)*C | 34+ |
|
/( | +B)*C | 34+A |
|
/(+ | B)*C | 34+A |
|
/(+ | )*C | 34+AB |
|
/ | *C | 34+AB+ | Karena operator ), maka + dikeluarkan |
* | C | 34+AB+/ | Derajat / = *, maka / dikeluarkan |
* | Selesai | 34+AB+/C |
|
Kosong |
| 34+AB+/C* | Stack dikeluarkan |
b. Rubah menjadi Prefix : /+34*+ABC
1) Membalikkan ekspresi infix : C*)B+A(/)4+3(
2) Jadikan Setiap '(' sebagai ')' dan setiap ')' sebagai '(' : C*(B+A)/(4+3)
3) Menggunakan bentuk postfix
Stack | Ekspresi | Output | Keterangan |
| C*(B+A)/(4+3) |
|
|
| *(B+A)/(4+3) | C |
|
* | (B+A)/(4+3) | C |
|
*( | B+A)/(4+3) | C |
|
*( | +A)/(4+3) | CB |
|
*(+ | A)/(4+3) | CB |
|
*(+ | )/(4+3) | CBA |
|
* | /(4+3) | CBA+ | Karena operator ), maka + dikeluarkan |
/ | (4+2) | CBA+* |
|
/( | 4+2) | CBA+* |
|
/( | +2) | CBA+*4 |
|
/(+ | 2) | CBA+*4 |
|
/(+ | ) | CBA+*43 |
|
/ | Selesai | CBA+*43+ | Karena operator ), maka + dikeluarkan |
Kosong |
| CBA+*43+/ | Stack dikeluarkan |
4) Membalikkan output : /+34*+ABC
No comments:
Post a Comment