Tree (Pohon)
• Dalam dunia nyata, sebuah pohon
memiliki : akar, cabang, daun.
• Dalam dunia komputer, pohon (tree)
Linear List dan Tree
• Linear list digunakan untuk data
yang terurut secara serial.
– Contoh : nama mahasiswa satu kelas,
nama hari dalam minggu, nama bulan dalam tahun, dll.
• Tree digunakan untuk data yang
terurut secara hirarki (one to many).
– Contoh : tingkatan pegawai dalam
Contoh Tree
Definisi
• Tree adalah Kumpulan element yang
saling terhubung secara hirarki (one to many).
• Element pada tree disebut node.
Aturan :
• Sebuah node hanya boleh memiliki satu
induk/parent. Kecuali root, tidak memiliki induk/parent.
• Setiap node dapat memiliki nol atau banyak cabang anak (one to many).
• Node yang tidak memiliki cabang anak disebut
Contoh Tree
great grand child of root
grand children of root
children of root
Example : Java’s Classes
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
Root
• Root (Node Root) adalah node yang
memiliki hirarki tertinggi.
• Node yang pertama kali dibentuk.
Sehingga tidak memiliki parent (node induk).
• Penelusuran path tiap node dimulai dari
root.
• Subtree adalah node-node lain dibawah
Root and Subtrees
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
root
Subtree 1
Subtree 2
Levels
• Level adalah posisi hirarki dari sebuah
node.
Level 4
Level 3
Level 2 Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
Latihan
Ancestor (F)?
Descendant (B)? Parent (I)?
Child (C)? Sibling (G)? Size?
Height? Root? Leaf?
Latihan
Latihan
Gambarkan tree dari representasi berikut:
DF
Tentukan : 1. Root
Representasi Tree?
• Database, file xml.
• Paling mudah menggunakan
Binary Tree (Pohon Biner)
• Pada sebuah pohon biner, tiap node
Contoh binary tree
• R
• S • T
• X
• W
• U • V
• Y
Contoh Binary Tree
Latihan
•
Buatlah Binary tree dari ekspresi
aritmatik berikut :
Akses Elemen
• Posisi node dapat ditentukan
berdasarkan rumus berikut :
• Asumsi root dimulai dari index 0 :
– Anak kiri dari node i berada pada indeks :
2*i+1
– Anak kanan dari node i berada pada indeks :
2*i+2
• Asumsi root dimulai dari index 1 :
– Anak kiri dari node i berada pada indeks :
2*i
– Anak kanan dari node i berada pada indeks :
Contoh
H
D K
B F J L
Representasi Binary Tree
• Binary tree dapat direpresentasikan
Representasi Tree
H D K B F J L A C E G I
Representasi tree menggunakan array (asumsi root pada index 0) :
0 1 2 3 4 5 6 7 8 9 10 11
Linked Representation
leftChild element rightChild root
F
C
Latihan
• Representasikan dengan ilustrasi array
dan linked list.
Full Binary Tree
• Tiap subtree memiliki panjang path yang
sama.
Complete Binary Tree
• Seluruh node sebelah kiri terisi
seluruhnya. Node sebelah kanan pada level n-1 ada yang kosong.
H
D K
B F J L
Incomplete Binary Tree
Skewed Binary Tree
• Binary tree yang semua nodenya
(kecuali leaf) hanya memiliki satu anak.
• Disebut juga minimum binary tree.
Definisi
• Penelusuran seluruh node pada binary
tree.
• Metode :
PreOrder Traversal
• Preorder traversal
1. Cetak data pada root
2. Secara rekursif mencetak seluruh data pada subpohon kiri
Preorder Example (visit = print)
a
b c
Preorder Example (visit = print)
a
b c
d e f
g h i j
Preorder Of Expression Tree
Gives prefix form of expression!
InOrder Traversal
• Inorder traversal
1.Secara rekursif mencetak seluruh data pada subpohon kiri
2.Cetak data pada root
Inorder Example (visit = print)
a
b c
Inorder Example (visit = print)
a
b c
d e f
g h i j
Postorder Traversal
• Postorder traversal
1.Secara rekursif mencetak seluruh data pada subpohon kiri
2.Secara rekursif mencetak seluruh data pada subpohon kanan
Postorder Example (visit = print)
a
b c
Postorder Example (visit = print)
ab c
d e f
g h i j
Postorder Of Expression Tree
Gives postfix form of expression!
Level Order
• Secara rekursif mencetak data mulai
Level-Order Example (visit =
print)
a
b c
d e f
g h i j
Latihan
• Telusuri pohon biner berikut dengan