PROGRAM KONVERSI INFIX KE POSTFIX


Di bawah ini salah satu tugas mata kuliah struktur data yang mengharuskan membuat program tentang konversi ekspresi infix ke ekspresi postfix.

Langsung aja ya bisa dilihat listingan programnya, ini dalam bahasa pemrograman C++, compilernya pake DEV C++ yang bisa konversiin progam ini ke bahasa C yah silahkan aja ya, namanya juga bagi-bagi ilmu..

nah selesai, saya kasih logikanya sedikit ya..

semua yang diawali sama tanda # merupakan library dalam bahasa pemrograman C++

seperti #include<iostream> merupakan library yang berisi tentang perintah input output (IO). Nah dalam program tersebut yang termasuk ke dalam library iostrem ini antara lain ada cout (dibaca : C out), dan cin (dibaca : C in). cout tersebut untuk menampilkan output ke layar, sedangkan cin untuk membaca inputan kita dari keyboard.

program ini merupakan program konversi dari ekspresi infix ke ekspresi postfix yang menggunakan operasi stack (tumpukan).

paham ngga sama cara pengoperasian stack dalam program ini?

ya, okee saya jelasin secara singkatnya ya..

pengertian dari stacknya terlebih dulu deh, stack merupakan bentuk khusus dari operasi single list, yang dianalogikan sebagai tumpukan baki/nampan, dimana operasi pemasukkannya hanya bisa dari satu arah, begitupun dengan operasi penghapusannya.

cara kerja dari stack bisa disebut LIFO (Last In Last Out) yang bermaksud elemen terakhir yang dimasukkan atau TOP elemen akan dikeluarkan pertama kali menjadi output.

macam-macam operasi pada stack ada CREATE, PUSH, POP, ISEMPTY.

baiklah, sekarang simak nih cara kerja dari program yang menggunakan cara pengeksekusian operasi stack.

pertama, progam ini akan membaca inputan yang kita masukkan. Jika inputan pertama berupa simbol “(” {kurung buka} maka simbol tersebut kita PUSH ke dalam stack.

kedua, jika bertemu dengan simbol “)” {kurung tutup} maka program akan menge-POP seluruh elemen yang berada dalam stack menjadi output sampai bertemu dengan simbol “(“ yang kita inputkan pertama tadi. [simbol “(” tidak menjadi output].

ketiga, jika inputan yang terbaca berupa simbol OPERAND, maka OPERAND tersebut langsung di POP menjadi output.

keempat, jika inputan merupakan simbol OPERATOR maka :

A. kita perhatikan dahulu level dari OPERATOR yang diinputkan, jika TOP stack berisi OPERATOR dengan level lebih tinggi atau sama dengan OPERATOR  yang diinputkan, maka TOP stack tersebut akan di POP menjadi output. Proses seperti ini akan terus berlanjut dan akan berakhir jika bertemu dengan OPERATOR dengan level lebih rendah atau jika bertemu dengan simbol “(“.

B. jika OPERATOR yang diinputkan memiliki level lebih tinggi dibanding dengan OPERATOR yang ada di dalam stack, maka OPERATOR tersebut ikut kita PUSH ke dalam stack.

*keterangan :

-CREATE = operasi pembuatan stack.

-PUSH = operasi memasukkan/menambah elemen ke dalam stack.

-POP = operasi penghapusan elemen dari stack.

-ISEMPTY =operasi stack yang memastikan stack kosong atau tidak, dan output datanyanya bertipe boolean.

-OPERAND = operand di sini merupakan simbol berupa abjad/alfabet (contoh : a,b,c,d…z).

-OPERATOR = merupakan simbol aritmatika (contoh: ^, *, /, +, -“(“, “)” ).

Dalam program ini, prioritas/level simbol OPERAND dianggap sama, dan huruf kapital atau kecil pun dianggap sama.

Namun urutan prioritas/level untuk OPERATOR sangat diperhatikan dalam menghasilkan output nanti.

Pendeklarasian prioritas untuk OPERATOR dapat dilihat sendiri dalam program di foto kedua (inpost2).

Lalu program untuk konversi ekspresi infix ke postfixnya dapat dilihat pada foto ketiga (inpost3).

Penasaran sama outputnya??

langsung aja deh nih check this out…..

setelah diinputkan “t” lalu kita tekan <enter> maka program langsung berakhir dan keluar.

sekian dulu ya, kalo mau ada yang ditanyain langsung aja komen di bawah, makasih😀

semoga bermanfaat😀😀

8 thoughts on “PROGRAM KONVERSI INFIX KE POSTFIX

    • wah gan coba diteliti lagi aja gan, itu berhasil kok, kan outputnya sudah saya sertakan.
      atau situ pake compilernya apa gan? Dev C++ juga bukan? kalo bukan waktu itu temen ane juga ada yang eror mulu dan itu erornya pindah2 ga di baris itu terus, tapi ane lupa gara2 apa, maaf ya gan ga bisa nolong banyak😦

  1. gan, bsa minta file .cpp nya? udah ane ketik persis di atas tp error di bagian operatorstack.pop alias gak kebaca. program sama devc++ kok

    • maaf baru sempat buka lagi, waduh maaf gan programnya di saya juga udah ilang, itu udah lama banget, laptop saya udah berkali2 install ulang buat ngerjain tugas akhir, maaf ya, semangat coba terus🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s