SlideShare a Scribd company logo
1 of 25
PertemuanPertemuan
Struktur DataStruktur Data
**Pohon Ekspresi *Pohon Ekspresi *
STMIK JAKARTA STI&KSTMIK JAKARTA STI&K
Disusun oleh :Disusun oleh :
Aqwam Rosadi KAqwam Rosadi K
2
Kompetensi
• Mahasiswa mampu membuat dan
mengimplementasikan pohon
ekspresi
• Mahasiswa mampu mengimplementasi
pembuatan ekspresi dari pohon
ekspresi
Expression Tree - 1
• Sebuah expression tree adalah sebuah binary tree
dengan sifat :
– Setiap leaf adalah sebuah operandoperand.
– Root dan internal nodes adalah operatorsoperators.
– Subtrees adalah subexpressions, dengan root adalah sebuah
operator.
Expression Tree - 2
• Dalam expression tree, 3 cara traversals
akan membentuk 3 format ekspresi yang
berbeda yaitu : infixinfix, postfixpostfix, and prefixprefix.
– Inorder traversal menghasilkan infixinfix
expressionexpression
– Postorder traversal menghasilkan postfixpostfix
expressionexpression
– Preorder traversal menghasilkan prefixprefix
expressionexpression
Contoh Expression Tree
• A+B×C-D÷E  ((A+(B×C))-(D÷E))
+
A ÷
D E
-
×
B C
Contoh Expression Tree
• A*B+C  (A*(B+C))
• A ↑ -B+C×D÷E  ((A ↑ (-B))+((C×D)÷E))
*
A +
B C
↑
A
÷
× E
+
-
B C D
Infix Traversal
• Saat mencetak infix expression tree, kita
harus menambahkan kurung bukakurung buka pada awal
setiap ekspresi dan kurung tutupkurung tutup pada akhir
ekspresi.
– Dikarenakan root dari tree dan setiap
subtree dari tree menyatakan
subexpressionsubexpression, maka kita mencetak kurung
buka saat memulai sebuah tree atau
subtree dan kurung tutup saat semua anak
dari tree/subtree sudah diproses.
Algorithm infixinfix (val tree <tree pointer>)
if (tree not empty)
if (tree token is an operand)→
print (tree token)→
else
print (open parenthesis)
infixinfix (tree left)→
print (tree token)→
infixinfix (tree right)→
print (close parenthesis)
end if
end if
return
end infix
Infix Traversal
Postfix Traversal
• Menggunakan postorder traversal seperti pada tree.
• Tidak membutuhkan kurung
Algorithm postfixpostfix (val tree <tree pointer>)
if (tree not empty)
postfixpostfix (tree left)→
postfixpostfix (tree right)→
print (tree token)→
end if
return
end postfix
Prefix Traversal
• Menggunakan preorder traversal seperti pada tree.
• Tidak membutuhkan kurung
Algorithm prefixprefix (val tree <tree pointer>)
if (tree not empty)
print (tree token)→
prefixprefix (tree left)→
prefixprefix (tree right)→
end if
return
end prefix
Infix or postfix or prefix ?
• Bentuk infix 3+5*4. Berapa
hasilnya ?
• Bentuk prefix *+3 5 4. Berapa
hasilnya ?
• Bentuk 35+4*. Berapa hasilnya ?
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.
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
Membuat Pohon Ekspresi
dari Ekspresi Postfix
•
A B C D * - + E /
B
B
Stack
A
A
Stack
A
B
C
Stack
A
D
Stack
C
B
A
C
D
*
Stack
B
A
C D
*
Membuat Pohon Ekspresi
dari Ekspresi Postfix
•
A B C D * - + E /
Stack
E
-
B
C D
-
*
Stack
+
A
B
C D
-
*
+
Stack
E
A
B
C D
-
*
+
Stack
/
/
E
A
B
C D
-
*
+
Membuat Pohon Ekspresi
dari Ekspresi Postfix
Ilustrasi Lain
5 3 - 4 * 9 +
Token
5
push(new ExpressionTree(5,null,null));
Langkah
Stack (top at right)
5
Token
3
push(new ExpressionTree(3,null,null));
Langkah
Stack (top at right)
5 3
Token
-
op2 = pop
op1 = pop
push(new ExpressionTree(-,op1,op2));
Langkah
Stack (top at right)
5
-
3
Token
4
push(new ExpressionTree(4,null,null));
Langkah
Stack (top at right)
5
-
3
4
Token
*
op2 = pop
op1 = pop
push(new ExpressionTree(*,op1,op2));
Langkah
Stack (top at right)
5
-
3
4
*
Token
9
push(new ExpressionTree(9,null,null));
Langkah
Stack (top at right)
5
-
3
4
* 9
Token
+
op2 = pop
op1 = pop
push(new ExpressionTree(+,op1,op2));
Langkah
Stack (top at right)
5
-
3
4
* 9
+
End of the expression
has been reached, and
the full expression tree
is the only tree left on
the stack
Praktikum
• Membuat pohon ekspresi dari
ekspresi postfix
• Operasi traversal pada pohon
ekspresi
• Berupa algoritma & rancangan
program
“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 Content

What's hot

Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur dataAsep Jaenudin
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanFahrul Razi
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05KuliahKita
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianFahrul Usman
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & TautologiHuzairi Zairi
 
Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02KuliahKita
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika MatematikaTaufik_Yui
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan DataSimon Patabang
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorialSiti Khotijah
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuanahmad haidaroh
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automataahmad haidaroh
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
Sistem Tiket Bioskop Menggunakan Diagram UML
Sistem Tiket Bioskop Menggunakan Diagram UMLSistem Tiket Bioskop Menggunakan Diagram UML
Sistem Tiket Bioskop Menggunakan Diagram UMLFarichah Riha
 
Proposisi Logika Informatika
Proposisi Logika InformatikaProposisi Logika Informatika
Proposisi Logika InformatikaDeviGayatri
 
PPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONPPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONUlfa Nur Afifah
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01KuliahKita
 

What's hot (20)

Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
02.logika
02.logika02.logika
02.logika
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05Matematika Diskrit - 03 himpunan - 05
Matematika Diskrit - 03 himpunan - 05
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
proposisi majemuk & Tautologi
 proposisi majemuk & Tautologi proposisi majemuk & Tautologi
proposisi majemuk & Tautologi
 
Bab 6 relasi
Bab 6 relasiBab 6 relasi
Bab 6 relasi
 
Register
RegisterRegister
Register
 
Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02Matematika Diskrit - 10 pohon - 02
Matematika Diskrit - 10 pohon - 02
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika Matematika
 
6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data6 Algoritma Pengurutan Data
6 Algoritma Pengurutan Data
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
 
Materi 3 Finite State Automata
Materi 3   Finite State AutomataMateri 3   Finite State Automata
Materi 3 Finite State Automata
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Sistem Tiket Bioskop Menggunakan Diagram UML
Sistem Tiket Bioskop Menggunakan Diagram UMLSistem Tiket Bioskop Menggunakan Diagram UML
Sistem Tiket Bioskop Menggunakan Diagram UML
 
Proposisi Logika Informatika
Proposisi Logika InformatikaProposisi Logika Informatika
Proposisi Logika Informatika
 
PPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHONPPT Matematika Diskrit - POHON
PPT Matematika Diskrit - POHON
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 

Notasi prefix infix-postifx- expression tree

  • 1. PertemuanPertemuan Struktur DataStruktur Data **Pohon Ekspresi *Pohon Ekspresi * STMIK JAKARTA STI&KSTMIK JAKARTA STI&K Disusun oleh :Disusun oleh : Aqwam Rosadi KAqwam Rosadi K
  • 2. 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 operandoperand. – Root dan internal nodes adalah operatorsoperators. – 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 : infixinfix, postfixpostfix, and prefixprefix. – Inorder traversal menghasilkan infixinfix expressionexpression – Postorder traversal menghasilkan postfixpostfix expressionexpression – Preorder traversal menghasilkan prefixprefix expressionexpression
  • 5. Contoh Expression Tree • A+B×C-D÷E  ((A+(B×C))-(D÷E)) + A ÷ D E - × B C
  • 6. Contoh Expression Tree • A*B+C  (A*(B+C)) • A ↑ -B+C×D÷E  ((A ↑ (-B))+((C×D)÷E)) * A + B C ↑ A ÷ × E + - B C D
  • 7. Infix Traversal • Saat mencetak infix expression tree, kita harus menambahkan kurung bukakurung buka pada awal setiap ekspresi dan kurung tutupkurung tutup pada akhir ekspresi. – Dikarenakan root dari tree dan setiap subtree dari tree menyatakan subexpressionsubexpression, maka kita mencetak kurung buka saat memulai sebuah tree atau subtree dan kurung tutup saat semua anak dari tree/subtree sudah diproses.
  • 8.
  • 9. Algorithm infixinfix (val tree <tree pointer>) if (tree not empty) if (tree token is an operand)→ print (tree token)→ else print (open parenthesis) infixinfix (tree left)→ print (tree token)→ infixinfix (tree right)→ print (close parenthesis) end if end if return end infix Infix Traversal
  • 10. Postfix Traversal • Menggunakan postorder traversal seperti pada tree. • Tidak membutuhkan kurung Algorithm postfixpostfix (val tree <tree pointer>) if (tree not empty) postfixpostfix (tree left)→ postfixpostfix (tree right)→ print (tree token)→ end if return end postfix
  • 11. Prefix Traversal • Menggunakan preorder traversal seperti pada tree. • Tidak membutuhkan kurung Algorithm prefixprefix (val tree <tree pointer>) if (tree not empty) print (tree token)→ prefixprefix (tree left)→ prefixprefix (tree right)→ end if return end prefix
  • 12. Infix or postfix or prefix ? • Bentuk infix 3+5*4. Berapa hasilnya ? • Bentuk prefix *+3 5 4. Berapa hasilnya ? • Bentuk 35+4*. Berapa hasilnya ?
  • 13. 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.
  • 14. 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
  • 15. Membuat Pohon Ekspresi dari Ekspresi Postfix • A B C D * - + E / B B Stack A A Stack A B C Stack A D Stack C B A C D * Stack B A C D *
  • 16. Membuat Pohon Ekspresi dari Ekspresi Postfix • A B C D * - + E / Stack E - B C D - * Stack + A B C D - * + Stack E A B C D - * + Stack / / E A B C D - * +
  • 17. Membuat Pohon Ekspresi dari Ekspresi Postfix Ilustrasi Lain
  • 18. 5 3 - 4 * 9 + Token 5 push(new ExpressionTree(5,null,null)); Langkah Stack (top at right) 5 Token 3 push(new ExpressionTree(3,null,null)); Langkah Stack (top at right) 5 3
  • 19. Token - op2 = pop op1 = pop push(new ExpressionTree(-,op1,op2)); Langkah Stack (top at right) 5 - 3
  • 21. Token * op2 = pop op1 = pop push(new ExpressionTree(*,op1,op2)); Langkah Stack (top at right) 5 - 3 4 *
  • 23. Token + op2 = pop op1 = pop push(new ExpressionTree(+,op1,op2)); Langkah Stack (top at right) 5 - 3 4 * 9 + End of the expression has been reached, and the full expression tree is the only tree left on the stack
  • 24. Praktikum • Membuat pohon ekspresi dari ekspresi postfix • Operasi traversal pada pohon ekspresi • Berupa algoritma & rancangan program
  • 25. “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)