1 / 25

Pertemuan Struktur Data * Pohon Ekspresi *

Pertemuan Struktur Data * Pohon Ekspresi *. STMIK JAKARTA STI&K. Disusun oleh : Aqwam Rosadi K. Kompetensi. Mahasiswa mampu membuat dan mengimplementasikan pohon ekspresi Mahasiswa mampu mengimplementasi pembuatan ekspresi dari pohon ekspresi. Expression Tree - 1.

lilah
Download Presentation

Pertemuan Struktur Data * Pohon Ekspresi *

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pertemuan Struktur Data*Pohon Ekspresi * STMIK JAKARTA STI&K Disusun oleh : Aqwam Rosadi K

  2. Kompetensi • Mahasiswa mampu membuat dan mengimplementasikan pohon ekspresi • Mahasiswa mampu mengimplementasi pembuatan ekspresi dari pohon ekspresi

  3. Expression Tree - 1 • Sebuah expression tree adalah sebuah binary tree dengan sifat : • Setiap leaf adalah sebuah operand. • Root dan internal nodes adalah operators. • Subtrees adalah subexpressions, dengan root adalah sebuah operator.

  4. Expression Tree - 2 • Dalam expression tree, 3 cara traversals akan membentuk 3 format ekspresi yang berbeda yaitu : infix, postfix, and prefix. • Inorder traversal menghasilkan infix expression • Postorder traversal menghasilkan postfix expression • Preorder traversal menghasilkan prefix expression

  5. - +  A  D E B C Contoh Expression Tree • A+BC-DE  ((A+(BC))-(DE))

  6. * A + B C +   A -  E B C D Contoh Expression Tree • A*B+C  (A*(B+C)) • A  -B+CDE  ((A (-B))+((CD)E))

  7. Infix Traversal • Saat mencetak infix expression tree, kita harus menambahkan kurung buka pada awal setiap ekspresi dan kurung tutup pada akhir ekspresi. • Dikarenakan root dari tree dan setiap subtree dari tree menyatakan subexpression, maka kita mencetak kurung buka saat memulai sebuah tree atau subtree dan kurung tutup saat semua anak dari tree/subtree sudah diproses.

  8. Infix Traversal Algorithm infix (val tree <tree pointer>) if (tree not empty) if (tree→token is an operand) print (tree → token) else print (open parenthesis) infix (tree →left) print (tree →token) infix (tree →right) print (close parenthesis) end if end if return end infix

  9. Postfix Traversal • Menggunakan postorder traversal seperti pada tree. • Tidak membutuhkan kurung Algorithm postfix (val tree <tree pointer>) if (tree not empty) postfix (tree →left) postfix (tree →right) print (tree →token) end if return end postfix

  10. Prefix Traversal • Menggunakan preorder traversal seperti pada tree. • Tidak membutuhkan kurung Algorithm prefix (val tree <tree pointer>) if (tree not empty) print (tree →token) prefix (tree →left) prefix (tree →right) end if return end prefix

  11. Infix or postfix or prefix ? • Bentuk infix 3+5*4. Berapa hasilnya ? • Bentuk prefix *+3 5 4. Berapa hasilnya ? • Bentuk 35+4*. Berapa hasilnya ?

  12. Konversi bentuk infix, prefix, postfix • Ada 6 konversi yang dapat dikerjakan : • infix -> prefix, • infix -> postfix, • prefix -> infix, • prefix -> postfix, • postfix -> prefix, • postfix -> infix. • Untuk 2 yang pertama menggunakan stack, sedangkan 4 yang terakhir menggunakan Expression Trees.

  13. Membuat Pohon Ekspresi dari Ekspresi Postfix • Menggunakan stack untuk menyimpan operand • Tree yang dibuat : • Node yang berisi nama variabel menjadi daun • Node yang berisi operator memiliki paling sedikit 2 anak yang dapat berupa operator lain atau node daun

  14. Membuat Pohon Ekspresi dari Ekspresi Postfix • A B C D * - + E / * * A B D C D D C C C B B B B A A A A A Stack Stack Stack Stack Stack

  15. + - + + A - A B * - A - B * B * D C B * D C D C D C Membuat Pohon Ekspresi dari Ekspresi Postfix • A B C D * - + E / / + E - / E E Stack Stack Stack Stack

  16. Membuat Pohon Ekspresi dari Ekspresi Postfix Ilustrasi Lain

  17. 5 3 - 4 * 9 + Token Langkah push(new ExpressionTree(5,null,null)); 5 Stack (top at right) 5 Token Langkah push(new ExpressionTree(3,null,null)); 3 Stack (top at right) 5 3

  18. Token Langkah op2 = pop op1 = pop push(new ExpressionTree(-,op1,op2)); - Stack (top at right) - 5 3

  19. Token Langkah push(new ExpressionTree(4,null,null)); 4 Stack (top at right) - 4 5 3

  20. Token Langkah op2 = pop op1 = pop push(new ExpressionTree(*,op1,op2)); * Stack (top at right) * - 4 5 3

  21. Token Langkah push(new ExpressionTree(9,null,null)); 9 Stack (top at right) * 9 - 4 5 3

  22. Token Langkah op2 = pop op1 = pop push(new ExpressionTree(+,op1,op2)); + Stack (top at right) + End of the expression has been reached, and the full expression tree is the only tree left on the stack * 9 - 4 5 3

  23. Praktikum • Membuat pohon ekspresi dari ekspresi postfix • Operasi traversal pada pohon ekspresi • Berupa algoritma & rancangan program

  24. “Watch your habits, for they become your character. Develop your character, for it becomes your destiny” (Perhatikan kebiasaanmu, karena itu akan menjadi karaktermu. Bentuklah karaktermu, karena itu akan menentukan masa depanmu) 

More Related