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
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Ajeng Savitri
 
Relasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi RekursiRelasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi RekursiOnggo Wiryawan
 
Pengertian Logika Informatika
Pengertian Logika InformatikaPengertian Logika Informatika
Pengertian Logika InformatikaZezen Wahyudin
 
Supremum dan infimum
Supremum dan infimum  Supremum dan infimum
Supremum dan infimum Rossi Fauzi
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritriyana fairuz kholisa
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
 
Bab 3 resolusi logika ta 2019
Bab 3 resolusi logika ta 2019Bab 3 resolusi logika ta 2019
Bab 3 resolusi logika ta 2019Sukma Puspitorini
 
Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03KuliahKita
 
Matematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifMatematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifAyuk Wulandari
 
Matematika Diskrit - 10 pohon - 04
Matematika Diskrit - 10 pohon - 04Matematika Diskrit - 10 pohon - 04
Matematika Diskrit - 10 pohon - 04KuliahKita
 
soal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptsoal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptAmirahChiCwexNezz
 

What's hot (20)

Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
Penyederhanaan Fungsi Boolean
Penyederhanaan Fungsi BooleanPenyederhanaan Fungsi Boolean
Penyederhanaan Fungsi Boolean
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
Relasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi RekursiRelasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
Relasi Rekursi : Definisi, Contoh, Jenis Relasi Rekursi
 
Pengertian Logika Informatika
Pengertian Logika InformatikaPengertian Logika Informatika
Pengertian Logika Informatika
 
Supremum dan infimum
Supremum dan infimum  Supremum dan infimum
Supremum dan infimum
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
 
Array dan Contoh
Array dan ContohArray dan Contoh
Array dan Contoh
 
Latihan soal struktur data
Latihan soal struktur dataLatihan soal struktur data
Latihan soal struktur data
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Bab 3 resolusi logika ta 2019
Bab 3 resolusi logika ta 2019Bab 3 resolusi logika ta 2019
Bab 3 resolusi logika ta 2019
 
Turunan Fungsi Kompleks
Turunan Fungsi KompleksTurunan Fungsi Kompleks
Turunan Fungsi Kompleks
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03Matematika Diskrit - 08 kombinatorial - 03
Matematika Diskrit - 08 kombinatorial - 03
 
Matematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi RekursifMatematika Diskrit Relasi Rekursif
Matematika Diskrit Relasi Rekursif
 
Matematika Diskrit - 10 pohon - 04
Matematika Diskrit - 10 pohon - 04Matematika Diskrit - 10 pohon - 04
Matematika Diskrit - 10 pohon - 04
 
soal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptsoal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).ppt
 
Graf pohon (bagian ke 6)
Graf pohon (bagian ke 6)Graf pohon (bagian ke 6)
Graf pohon (bagian ke 6)
 
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHERTEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER
 

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)