Senin, 19 Januari 2015

INFIX, POSTFIX, dan PREFIX
Bambang Wahyudi (bwahyudi@staff.gunadarma.ac.id)
Ada tiga bentuk penulisan notasi matematis di komputer, satu bentuk adalah yang umum
digunakan manusia (sebagai input di komputer) yaitu infix, dan dua yang digunakan oleh
komputer (sebagai proses), yaitu postfix dan infix. Berikut contoh-contohnya:
No. Infix Postfix Prefix
1. A + B A B + + A B
2. (A + B) * C A B + C * * + A B C
3. A * ( B + C) A B C + * * A + B C
1. Konversi Infix ke Postfix
Untuk mengetahui bentuk postfix dari notasi infix, ada tiga cara yang dapat dilakukan, yaitu
(1) manual, (2) stack, dan (3) binary tree. Berikut contoh notasi infixnya:
A * ( B + C ) / D ^ E – F
1.a. Cara Manual
Caranya adalah dengan menyederhanakan notasi menjadi dua operand (variabel) dan satu
operator, seperti A + B.
Langkah 1: tentukan (berdasarkan derajat operasi) mana yang akan diproses terlebih dulu.
Diperoleh ( B + C ). Jika ( B + C ) dianggap G, maka notasi infix tadi menjadi:
A * G / D ^ E – F
Langkah 2: dari hasil langkah 1, disederhanakan lagi, kali ini ((berdasarkan derajat operasi)
akan disederhanakan D ^ E. Bila D ^ E dianggap H, maka notasi infix tadi
menjadi: A * G / H – F
Langkah 3: dari hasil langkah 2, disederhanakan lagi, kali ini ((berdasarkan derajat operasi)
akan disederhanakan A * G. Bila A* G dianggap I, maka notasi infix tadi
menjadi: I / H – F
Langkah 4: dari hasil langkah 3, disederhanakan lagi, kali ini ((berdasarkan derajat operasi)
akan disederhanakan I / H. Bila I / H dianggap J, maka notasi infix tadi menjadi:
J – F
Setelah diperoleh bentuk seperti itu, maka satu per satu kita kembalikan ke notasi semula
sambil mengubahnya menjadi notasi postfix.
Langkah 5: hasil akhir J – F, dibentuk postfixnya, menjadi J F –
Langkah 6: J sebenarnya adalah I / H yang jika ditulis dalam bentuk postfix menjadi I H /,
lalu kita gabung dengan hasil di langkah 5 tadi, diperoleh: I H / F -
Langkah 7: H sebenarnya adalah D ^ E yang jika ditulis dalam bentuk postfix menjadi D E ^,
lalu kita gabung dengan hasil di langkah 6 tadi, diperoleh: I D E ^ / F –
Langkah 8: I sebenarnya adalah A * G yang jika ditulis dalam bentuk postfix menjadi A G *,
lalu kita gabung dengan hasil di langkah 7 tadi, diperoleh: A G * D E ^ / F –1.



B. Cara Stack
Stack adalah tumpukan (jadi, memori diibaratkan dengan tumpukan) yang memiliki cara
kerja, “yang pertama masuk ke kotak, maka akan terakhir kali diambil kembali” atau “first in
last out”, atau sebaliknya, “yang terakhir masuk ke kotak, akan diambil yang pertama kali,”
atau “last in first out.”
Berikut ini langkah-langkahnya:
1. Proses akan dilakukan dari kiri ke kanan
2. Bila yang diproses adalah operand, maka tulis di hasil. Di sini operand “A”:
A * ( B + C ) / D ^ E – F

Hasil = A
stack
3. Lanjutkan ke operator “*”, karena stack masih dalam keadaan kosong, maka masukkan
operator tersebut ke dalam stack;
A * ( B + C ) / D ^ E – F

Hasil = A
stack
4. Lanjutkan ke operator “(“, operator ini masukkan (tumpuk) saja ke dalam stack;
INFIX, POSTFIX, dan PREFIX: Oleh: Bambang Wahyudi 3
A * ( B + C ) / D ^ E – F

Hasil = A
Stack
5. Lanjutkan ke operand “B”, karena sebagai operand, maka “B” dijadikan hasil saja.
A * ( B + C ) / D ^ E – F

Hasil = A B
Stack
6. Lanjutkan ke operator “+”, operator ini masukkan (tumpuk) saja ke dalam stack;
A * ( B + C ) / D ^ E – F

Bila top stack (posisi teratas tumpukan) adalah “(“ maka apapun operator yang sedang
diproses, masukkan saja ke dalam stack.
Hasil = A B
Stack
7. Lanjutkan ke operand “C”, karena sebagai operand, maka “C” dijadikan hasil saja.
A * ( B + C ) / D ^ E – F

Tidak ada komentar:

Posting Komentar