pertemuan struktur data * pohon ekspresi *

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

Upload: lilah

Post on 07-Jan-2016

127 views

Category:

Documents


5 download

DESCRIPTION

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. - PowerPoint PPT Presentation

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)