Transcript
Page 1: Pertemuan  Struktur Data * Pohon Ekspresi *

Pertemuan Pertemuan Struktur DataStruktur Data **Pohon Ekspresi *Pohon Ekspresi *

Pertemuan Pertemuan Struktur DataStruktur Data **Pohon Ekspresi *Pohon Ekspresi *

STMIK JAKARTA STI&KSTMIK JAKARTA STI&K

Disusun oleh :Disusun oleh :Aqwam Rosadi Aqwam Rosadi

KK

Page 2: Pertemuan  Struktur Data * Pohon Ekspresi *

2

Kompetensi

• Mahasiswa mampu membuat dan mengimplementasikan pohon ekspresi

• Mahasiswa mampu mengimplementasi pembuatan ekspresi dari pohon ekspresi

Page 3: Pertemuan  Struktur Data * 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.

Page 4: Pertemuan  Struktur Data * Pohon Ekspresi *

Expression Tree - 2

• Dalam expression tree, 3 cara traversals

akan membentuk 3 format ekspresi yang

berbeda yaitu : infixinfix, postfixpostfix, and prefixprefix.

– Inorder traversal menghasilkan infix infix

expressionexpression

– Postorder traversal menghasilkan postfix postfix

expressionexpression

– Preorder traversal menghasilkan prefix prefix

expressionexpression

Page 5: Pertemuan  Struktur Data * Pohon Ekspresi *

Contoh Expression Tree

• A+BC-DE ((A+(BC))-(DE))

+

A

D E

-

B C

Page 6: Pertemuan  Struktur Data * Pohon Ekspresi *

Contoh Expression Tree

• A*B+C (A*(B+C))

• A -B+CDE ((A (-B))+((CD)E))

*

A +

B C

A

E

+

-

B C D

Page 7: Pertemuan  Struktur Data * Pohon Ekspresi *

Infix Traversal

• Saat mencetak infix expression tree, kita harus

menambahkan kurung buka kurung 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.

Page 8: Pertemuan  Struktur Data * Pohon Ekspresi *
Page 9: Pertemuan  Struktur Data * Pohon Ekspresi *

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 TraversalInfix Traversal

Page 10: Pertemuan  Struktur Data * Pohon Ekspresi *

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

Page 11: Pertemuan  Struktur Data * Pohon Ekspresi *

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)

prefix prefix (tree →right)

end if

return

end prefix

Page 12: Pertemuan  Struktur Data * Pohon Ekspresi *

Infix or postfix or prefix ?

• Bentuk infix 3+5*4. Berapa hasilnya ?

• Bentuk prefix *+3 5 4. Berapa hasilnya ?

• Bentuk 35+4*. Berapa hasilnya ?

Page 13: Pertemuan  Struktur Data * Pohon Ekspresi *

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.

Page 14: Pertemuan  Struktur Data * Pohon Ekspresi *

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

Page 15: Pertemuan  Struktur Data * Pohon Ekspresi *

Membuat Pohon Ekspresi dari

Ekspresi Postfix

• A B C D * - + E /

B

B

Stack

A

A

StackA

B

C

StackA

D

Stack

C

B

A

C

D*

Stack

B

A

C D

*

Page 16: Pertemuan  Struktur Data * Pohon Ekspresi *

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

-

*

+

Page 17: Pertemuan  Struktur Data * Pohon Ekspresi *

Membuat Pohon Ekspresi dari Ekspresi

PostfixIlustrasi Lain

Page 18: Pertemuan  Struktur Data * Pohon Ekspresi *

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

Page 19: Pertemuan  Struktur Data * Pohon Ekspresi *

Token

- op2 = pop

op1 = pop

push(new ExpressionTree(-,op1,op2));

Langkah

Stack (top at right)

5

-

3

Page 20: Pertemuan  Struktur Data * Pohon Ekspresi *

Token

4 push(new ExpressionTree(4,null,null));

Langkah

Stack (top at right)

5

-

3

4

Page 21: Pertemuan  Struktur Data * Pohon Ekspresi *

Token

* op2 = pop

op1 = pop

push(new ExpressionTree(*,op1,op2));

Langkah

Stack (top at right)

5

-

3

4

*

Page 22: Pertemuan  Struktur Data * Pohon Ekspresi *

Token

9 push(new ExpressionTree(9,null,null));

Langkah

Stack (top at right)

5

-

3

4

* 9

Page 23: Pertemuan  Struktur Data * Pohon Ekspresi *

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

Page 24: Pertemuan  Struktur Data * Pohon Ekspresi *

Praktikum

• Membuat pohon ekspresi dari ekspresi postfix

• Operasi traversal pada pohon ekspresi

• Berupa algoritma & rancangan program

Page 25: Pertemuan  Struktur Data * Pohon Ekspresi *

“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) 


Top Related