Sunday, April 24, 2016

Konversi Notasi Infix Menjadi Postfix Menggunakan Pascal

Dear, Readers,

Beberapa hari ini (cuma seminggu, si :p) saya disibukan dengan tugas mengkonversi notasi infix menjadi postfix menggunakan bahasa pascal. Untungnya dengan bantuan beberapa teman program ini dapat diselesaikan. hihi

Sebenarnya ada banyak program di internet yang sudah jadi, namun kebanyakan memeanfaatkan fungsi dan prosedur, yang mungkin akan sulit dipahami pemula. Jadi dalam post ini saya akan sekedar share soal program yang telah kami buat.


Well, suatu program tidak akan berjalan mulus tanpa algoritma yang oke.

Berikut algoritma konversi infix menjadi postfix secara singkat.
  • Jika bertemu '(',
    • Push / masukan simbol '(' ke dalam stack.
  • Jika bertemu ')'
    • Pop / keluarkan satu-persatu elemen dalam stack secara terurut mulai dari posisi teratas sampai dengan terbawah.
  • Jika bertemu Operator (^,*,/,+,-),
    • Push / masukan  elemen ke dalam stack.
    • Namun, Perlu diperhatikan jika elemen baru yang akan dimasukan tingkatannya (prioritas) lebih rendah atau sama dengan dari elemen yang sudah ada di posisi teratas stack, maka pop dahulu elemen yang ada dalam stack, hingga prioritas elemen baru tidak lebih tinggi dari elemen top (paling atas).
  • Jika operand (katakanlah, huruf, alfabet, variabel),
    • Langsung cetak operand tersebut.
  • Jika bertemu ';',
    • Pop semua elemen dalam stack secara terurut mulai dari posisi teratas sampai bawah.

Berikut Source Code programnya:






Download Source Code via Google Drive

Catatan:
  • Jika dijalankan via Free Pascal IDE muncul errorcode 201. << ini saya belum tahu deh cara perbaikannya.
  • Maaf konversi otomatis di blog ini belum di disable, jadi mungkin beberapa script masih terhalang emoticon.
  • Sementara ini logika per sintaks belum sempat saya jelaskan secara lengkap.
  • Thx to FPC, Notepad++, github, dll

No comments:

Post a Comment