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
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
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
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
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;
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 + / *
Contoh 9.7 :
( a + b ) * ( c / ( d + e ))
ed
+
(i)
*
b
+
a
/
c
ed
+
(iv)b
+
a
(iii)ed
+
/
c
(ii)
Top Related