Tugas Konversi Infix to Postfix

By | December 7, 2012

Struktur Data Tugas Infix to Postfix – Infix dan postfix adalah suatu cara penulisan ungkapan-ungkapan yang rumit, misalnya pemakaian tanda kurung dalam operasi matematika.

Infix adalah cara penulisan ungkapan dengan meletakkan operator di antara dua operand dalam hal ini pemakaian tanda kurung sangat menentukan hasil operasi.

Contoh pemakaian infix adalah A+B, A+B-C, (A+B)*(C-D)

Postfix adalah metode penulisan dengan menuliskan operator setelah operand dan tanpa menuliskan tanda kurung.

Contoh penulisan sufix adalah AB + , AB + C – , AB + CD -*

Konversi Infix to Postfix ada beberapa cara, namun kali ini yang dibahas adalah menggunakan metode 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 salah satu contoh proses pengubahan infix menjadi postfix :
infix to postfix

 

Download secara lengkap berupa pdf : Tugas Struktur Data – Konversi Infix to Postfix

Untuk contoh program menggunakan pascal bisa disimak di Program konversi infix to postfix pascal.

.

Please rate this

14 thoughts on “Tugas Konversi Infix to Postfix

  1. uda_Gundar

    ini program nya kok ga sesuai sama algoritma infix ke posfix nya ya gan…itu link dari contoh program nya juga ga sesuai…seharus nya kan ketika pengecekan “-” hasil nya itu “AB^” bukan “A^B”…
    mohon penjelasan nya gan…

    Reply
    1. Ollivia

      terima kasih gan atas koreksinya. teorinya sudah benar namun untuk script programnya yang salah. untuk script program pada Script opr := [‘$’]+[‘*’]+[‘/’]+[‘+’]+[‘-‘]; salah dan diganti opr := [‘^’]+[‘*’]+[‘/’]+[‘+’]+[‘-‘]; yaitu karakter $ diganti/seharusnya ^.

      semoga membantu 😀

      Reply
  2. uda_Gundar

    hemhh…ane rasa mash ada kslahan gan..dari link contoh program agan sharusnya hasil nya itu seperti ini : AB^CDEF+*/- ini ane cari manual

    Reply
    1. Ollivia

      ketika mengolah operator “*”, akan dimasukkan ke dalam stack. Karena di top stack
      sudah ada isinya (yaitu “-” dan “/”), maka bandingkan kedua operator yang sudah ada di stack dengan operator yang baru masuk. Karena “*” dan “/” berderajat sama, maka stack
      yang masuk lebih dulu kita keluarkan menjadi hasil yaitu operator “/” dicetak.

      Itu sudah jelas teorinya mas. kalau menurut mas uda_Gundar bagaimana teorinya kok “/” bisa keluar sebagai hasil setelah “*”

      Reply
      1. uda_Gundar

        soal nya kan a^b-c/d*(e+f) gan…

        cek a krna oprnd maskin ke posfix
        posfix : a
        stack : kosong

        cek ^ krna operator masukin ke stack
        posfix : a
        stack : ^

        cek b krna oprnd maskin ke posfix
        psofix : ab
        stack : ^

        cek – krn – – masukin ke stack
        posfix : ab^c
        stack : – /

        cek d krna oprnd maskin ke posfix
        posfix : ab^cd
        stack : – /

        cek * krna * >= / maka masukin ke stack
        posfix : ab^cd
        stack : – / *

        cek ( krna ( lngsung maskin ke stack
        psofix : ab^cd
        stack : – / * (

        cek e krna e oprnd mskin ke posfix
        posfix : ab^cde
        stack : – / * (

        cek + karna + oprtor mskin ke stack
        posfix : ab^cde
        stack : – / * ( +

        cek f krna f oprnd maskin ke posfix
        posfix : ab^cdef
        stack : – / * ( +

        cek ) krna ) masukin ke stack
        posfix : ab^cdef
        stack : – / * ( + )

        krna tanda ( ketemu sama ) dan isi dari ( dan ) adalah + , maka + langsng cetak ke posfix
        posfix : ab^cdef+
        stack : – / *

        karna yg di cek abis…yang ada pada stack langsung di cetak ke psofix

        jadi posfix akhir nya : ab^cdef+*/-
        dan stack : kosong

        teori yang ane dapet dari dosen ane sih kaya gini gan…

        Reply
        1. Ollivia

          untuk tingkatan operator yang paling tinggi :
          1. ^
          2. * dan / sama kuat, mana yg lebih dulu masuk stack dia yang lebih dulu keluar.
          3. + dan – sama kuat, mana yg lebih dulu masuk stack dia yang lebih dulu keluar.

          Reply
  3. uda_Gundar

    ralat gan …
    soal nya kan a^b-c/d*(e+f)
    cek a krna oprnd maskin ke posfix
    posfix : a
    stack : kosong

    cek ^ krna ^ adalah operator masukin ke stack
    posfix : a
    stack : ^

    cek b krna b adalah oprnd maskin ke posfix
    psofix : ab
    stack : ^

    cek – krn – lebih kecil derajt nya dari ^ maka cetak ^ ke posfix
    posfix : ab^
    stack : –

    cek c krna c adalah oprnd maskin ke posfix
    posfix : ab^c
    stack : –

    cek / krna / lebih besar derajat nya dari – maka masukin / ke stack
    posfix : ab^c
    stack : – /

    cek d krna d adalah oprnd maskin ke posfix
    posfix : ab^cd
    stack : – /

    cek * krna * >= / maka masukin ke stack
    posfix : ab^cd
    stack : – / *

    cek ( krna ( lngsung maskin ke stack
    psofix : ab^cd
    stack : – / * (

    cek e krna e oprnd mskin ke posfix
    posfix : ab^cde
    stack : – / * (

    cek + karna + oprtor mskin ke stack
    posfix : ab^cde
    stack : – / * ( +

    cek f krna f oprnd maskin ke posfix
    posfix : ab^cdef
    stack : – / * ( +

    cek ) krna ) masukin ke stack
    posfix : ab^cdef
    stack : – / * ( + )

    krna tanda ( ketemu sama ) dan isi dari ( dan ) adalah + , maka + langsng cetak ke posfix
    posfix : ab^cdef+
    stack : – / *

    karna yg di cek abis…yang ada pada stack langsung di cetak ke psofix

    jadi posfix akhir nya : ab^cdef+*/-
    dan stack : kosong

    teori yang ane dapet dari dosen ane sih kaya gini gan : ketika derajat operator yg di cek lebih besar dari pada yg ada di stack maka langung cetak ke postfix ,dan ketika derajat operator yang dicek lebih kecil dari yg di stack maka operator pada stack yg derajat nya besar di keluarkan…

    Reply
  4. uda_Gundar

    ralat lagi bgian ini gan 😀 ketika derajat operator yg di cek lebih besar dari pada yg ada di stack maka langung cetak ke stack ,dan ketika derajat operator yang dicek lebih kecil dari yg di stack maka operator pada stack yg derajat nya besar lngsung di keluarkan ke posfix…

    Reply
  5. Ollivia

    untuk tingkatan operator yang paling tinggi :
    1. ^
    2. * dan / sama kuat, mana yg lebih dulu masuk stack dia yang lebih dulu keluar.
    3. + dan – sama kuat, mana yg lebih dulu masuk stack dia yang lebih dulu keluar.

    dan untuk operator yang di dalam ( akan ditampung di stack hingga menemui ), setelah menemui kurung tutup maka akan dikeluarkan semua operator di antara ( dan ).

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*