Kunjungan Pada Pohon Biner

9
KUNJUNGAN PADA POHON BINER Kunjungan pada pohon biner merupakan salah satu operasi yang sering dilakukan pada suatu pohon biner tepat satu kali (Binary Tree Traversal). Operasi ini terbagi menjadi 3 bentuk : Kunjungan secara Preorder (Depth First Order) mempunyai urutan : Cetak isi simpul yang dikunjungi (Simpul Akar), kunjungi cabang kiri, kunjungi cabang kanan. Kunjungan secara Inorder (Symetric Order), mempunyai urutan : Kunjungi cabang kiri, cetak isi simpul yang dikunjungi (Simpul Akar), kunjungi cabang kanan. Kunjungan secara Postorder, mempunyi urutan : kunjungi cabang kiri, kunjungi cabang kanan, cetak isi simpul yang dikunjungi (Simpul Akar) Pada ketiga cara kunjungan diatas, kunjungan ke cabang kiri dilakukan terlebih dahulu, baru kemudian kunjungan ke cabang kanan, dengan orientasi semacam ini, ketiga kunjungan diatas disebut dengan Left To Right Oriented (RLO). Jika kunjungan ke cabang kanan dilakukan lebih dahulu baru kemudian kunjungan ke cabang kiri, maka orientasi semacam ini disebut Right To Left Oriented (RLO) Kunjungan Level Order kunjungan dimulai dari simpul yang ada pada tingkat 1 (Akar), diteruskan pada simpul di tingkat 2, tingkat 3 dan seterusnya, secara singkat kunjungan level order ini dapat dijelaskan sbb : Dimulai dengan memasukkan akar kedalam antrean kemudian mengeluarkan akar tersebut keluar dari antrean, pada saat akar tersebut dikeluarkan dari

Transcript of Kunjungan Pada Pohon Biner

Page 1: Kunjungan Pada Pohon Biner

KUNJUNGAN PADA POHON BINER

Kunjungan pada pohon biner merupakan salah satu operasi yang sering dilakukan

pada suatu pohon biner tepat satu kali (Binary Tree Traversal). Operasi ini terbagi menjadi 3

bentuk : Kunjungan secara Preorder (Depth First Order) mempunyai urutan : Cetak isi simpul

yang dikunjungi (Simpul Akar), kunjungi cabang kiri, kunjungi cabang kanan. Kunjungan

secara Inorder (Symetric Order), mempunyai urutan : Kunjungi cabang kiri, cetak isi simpul

yang dikunjungi (Simpul Akar), kunjungi cabang kanan. Kunjungan secara Postorder,

mempunyi urutan : kunjungi cabang kiri, kunjungi cabang kanan, cetak isi simpul yang

dikunjungi (Simpul Akar)

Pada ketiga cara kunjungan diatas, kunjungan ke cabang kiri dilakukan terlebih

dahulu, baru kemudian kunjungan ke cabang kanan, dengan orientasi semacam ini, ketiga

kunjungan diatas disebut dengan Left To Right Oriented (RLO). Jika kunjungan ke cabang

kanan dilakukan lebih dahulu baru kemudian kunjungan ke cabang kiri, maka orientasi

semacam ini disebut Right To Left Oriented (RLO)

Kunjungan Level Order kunjungan dimulai dari simpul yang ada pada tingkat 1

(Akar), diteruskan pada simpul di tingkat 2, tingkat 3 dan seterusnya, secara singkat

kunjungan level order ini dapat dijelaskan sbb : Dimulai dengan memasukkan akar kedalam

antrean kemudian mengeluarkan akar tersebut keluar dari antrean, pada saat akar tersebut

dikeluarkan dari antrean, cabang kiri dan cabang kanan secara berturut – turut dimasukkan

dalam antrean.

Dengan kata lain jika suatu elemen dikeluarkan dari antrean, maka cabang kiri dan

kanan dari elemen yang baru dikeluarkan dimasukkan kedalam antrean.

Aplikasi Pohon Biner Notasi Prefix, Infix dan Postfix pada bagian ini akan dibahas tentang

bagaimana menyusun sebuah pohon biner yang apabila dikunjungi secara PreOrder akan

menghasilkan Notasi Prefix, kunjungan secara InOrder menghasilkan Notasi Infik, dan

kunjungan PostOrder menghasilkan Notasi Postfix

Page 2: Kunjungan Pada Pohon Biner

R

T1

T2

R

T1

T2

R

T1

T2

NOTASI PREFIX, INFIX DAN POSTFIX SERTA TRAVERSAL POHON

Traversal adalah proses kunjungan dalam pohon, dengan setiap Simpul hanya dikunjungi

tepat satu kali.

► Operasi dasar yang sering dilakukan pada pohon biner ialah mengunjungi (traversal )

setiap simpul tepat satu kali.

► Ada 3 macam skema mengunjungi/penelusuran simpul-simpul di dalam pohon biner

T, yaitu :

1. Preorder.

2. Inorder.

3. Postorder.

► Preorder

i. Kunjungi R

ii. Telusuri T1

iii. Telusuri T2

► Inorder

i. Telusuri T1

ii. Kunjungi R

iii. Telusuri T2

► Postorder

i. Telusuri T1

ii. Telusuri T2

iii. Kunjungi R

Tiga kegiatan yang terdapat dalam traversal pohon binar adalah :

1. Mengunjungi simpul akar (root)

2. Melakukan traversal subpohon kiri, dan

3. Melakukan traversal subpohon kanan

Page 3: Kunjungan Pada Pohon Biner

Terdapat tiga macam traversal pohon, yaitu :

1. Traversal Pre-order, dilakukan berturut-turut :

a. Kunjungi simpul akar

b. Lakukan traversal subpohon kiri

c. Lakukukan traversal subpohon kanan

2. Traversal In-order, dilakukan berturut-turut :

a. Lakukan traversal subpohon kiri

b. Kunjungi simpul akar

c. Lakukan traversal subpohon kanan

3. Traversal Post-order, dilakukan berturut-turut :

a. Lakukan traversal subpohon kiri

b. Lakukan traversal subpohon kanan

c. Kunjungi simpul akar

Contoh 1 :

F Untai yang dihasilkan secara Pre-order

FDBACEG D G

B E

A C

Page 4: Kunjungan Pada Pohon Biner

F Untai yang dihasilkan secara In-order

ABCDEFG D G

B E

A C

F Untai yang dihasilkan secara Post-order

ACBEDGF

D G

B E

A C

Contoh 2 :

Preorder : a-b-d-h-e-i-c-f-i-g-k-l

Inorder : h-d-b-e-i-a-j-f-c-k-g-l

Postorder : h-d-i-e-b-j-f-k-l-g-c-a

Page 5: Kunjungan Pada Pohon Biner

Prosedur yg di lakukan dengan cara rekursif

a. Prosedur kunjungan secara PreOrder Left to Right Oriented (LRO) dengan rekursif

Prosedur kunjungan PreOrder dapat dilakukan dengan cara rekursif atau non

rekursif. Prosedur kunjungan secara PreOrder LRO dengan rekursif disajikan berikut ini :

Procedure PreOrder (Root:Pohon);

Begin

If Root <> nil then

Begin

Write (Root^.Info);

PreOrder (Root^.kiri);

PreOrder (Root^.kanan);

End;

End;

b. Prosedur kunjungan secara InOrder Left to Right Oriented (LRO) dengan rekursif

Seperti pada kunjungan PreOrder, prosedur kunjungan InOrder dapat dilakukan

dengan cara rekursif atau non rekursif. Prosedur kunjungan secara InOrder LRO dengan

rekursif disajikan berikut ini :

Procedure InOrder (Root:Pohon);

Begin

If Root <> nil then

Begin

InOrder (Root^.kiri);

Write (Root^.Info);

InOrder (Root^.kanan);

End;

End;

Page 6: Kunjungan Pada Pohon Biner

c. Prosedur kunjungan secara PostOrder Left to Right Oriented (LRO) dengan rekursif

Seperti halnya PreOrde dan InOrder, prosedur kunjungan PostOrder juga dapat

dilakukan dengan cara rekursif atau non rekursif. Prosedur kunjungan secara PostOrder

LRO dengan rekursif disajikan berikut ini :

Procedure PostOrder (Root:Pohon);

Begin

If Root <> nil then

Begin

PostOrder (Root^.kiri);

PostOrder (Root^.kanan);

Write (Root^.Info);

End;

End;

Pada ketiga cara kunjungan diatas, kunjungan ke Cabang Kiri dilakukan terlebih dahulu,

baru kemudian kunjungan ke Cabang Kanan. Dengan orientasi semacam ini, Ketiga

kunjungan diatas disebut dengan Left To Right Oriented (LRO). Jika kunjungan ke Cabang

Kanan dilakukan

lebih dahulu baru kemudian kunjungan ke Cabang Kiri, maka Orientasi semacam ini disebut

Right To Left Oriented (RLO).

► Infix : operator berada di antara dua buah operand.

( a+b )*( c / ( d+e )) ► Prefix :

operator mendahului dua buah operand.

* + a b / c + d e

► Postfix : Kedua operand mendahului operatornya.

a b + c d e + / *

Page 7: Kunjungan Pada Pohon Biner

Contoh 9.7 :

( a + b ) * ( c / ( d + e ))

ed

+

(i)

*

b

+

a

/

c

ed

+

(iv)b

+

a

(iii)ed

+

/

c

(ii)