SlideShare a Scribd company logo
TREE (POHON) 
Struktur Data - Tree 1
Tujuan Pembelajaran 
• Di akhir pembelajaran, peserta diharapkan 
memahami tentang : 
– Macam-macam jenis pohon (tree) 
– Mengetahui definisi & konsep pohon biner 
– Mengetahui representasi dari pohon biner 
– Mengenal heap, heapsort, & priority queue 
Struktur Data - Tree 2
Konsep Dasar & Terminologi 
Struktur Data - Tree 3 
Level 0 
Level 1 
Level 2 
Level 3 
Node dalam/ 
Internal node 
Daun/ 
Leaf 
R 
S T 
X U V W 
Y Z 
Root/Akar 
Gambar 1
Konsep & Terminologi 
• Sebuah pohon terdiri atas kumpulan 
elemen atau node 
• Tiap node dapat berisi data dan link 
(penghubung) ke node lainnya 
• Tiap node memiliki satu induk, kecuali 
node root (akar) yang tidak memiliki induk. 
• Tiap node dapat memiliki anak dalam 
jumlah berapapun. 
Struktur Data - Tree 4
Konsep & Terminologi 
• Node-node yang berasal dari induk yang 
sama disebut siblings 
• Sebuah node yang tidak memiliki anak 
dinamakan leaf (daun) 
• Secara umum, hubungan induk-anak 
diistilahkan dengan hubungan the 
ancestor-descendent 
Struktur Data - Tree 5
Konsep & Terminologi 
• Sebuah subtree (pohon anak) dari sebuah 
node adalah tree yang root-nya adalah 
anak dari node tsb. 
• Level dari sebuah node adalah ukuran 
jarak node tersebut terhadap akar. 
• Height (tinggi)/depth dari tree adalah level 
maksimum dari node yang terdapat di tree 
tsb. 
– Pohon kosong (empty tree) memiliki height=0 
Struktur Data - Tree 6
Konsep Dasar & Terminologi 
• Secara umum, setiap node N dapat diurut 
dari root berdasarkan jalur (path) P. 
• Jika path P memiliki n cabang (edge), 
maka dikatakan node N berada di level n 
• Contoh path : 
– Dari R ke X : R – S – X, n=2, X ada di level 2 
– Dari R ke Z : R – S – X – Z, n=3, Z ada di 
Struktur Data - Tree 7 
level 3
Pohon Biner (Binary Trees) 
• Pada sebuah pohon biner, tiap node 
memiliki tepat 2 sub-pohon 
• Sekelompok node T adalah sebuah binary 
tree jika : 
– T adalah pohon kosong 
– Root dari T memiliki 2 subpohon, TL dan TR, 
dimana TL & TR adalah pohon biner 
Struktur Data - Tree 8
Pohon Biner (Binary Trees) 
R 
S T 
Y U V 
Struktur Data - Tree 9 
X 
W 
Z 
Gambar 2
Tipe-tipe Pohon Biner 
Struktur Data - Tree 10 
• Pohon Ekspresi 
– Tiap node berisi operator atau operan 
• Pohon Huffman 
– Merepresentasikan kode Huffman untuk karakter 
yang bisa muncul pada file teks 
– Kode Huffman menggunakan angka-angka bit yang 
berbeda dari ASCII atau Unicode 
• Pohon Pencarian Biner (Binary Search Tree) 
– Semua elemen pada sub-pohon kiri mendahului 
semua elemen pada sub-pohon kanan
Pohon Ekspresi 
Pohon Ekspresi 
Struktur Data - Tree 11
Pohon Huffman 
Struktur Data - Tree 12
Pohon Pencarian Biner 
Struktur Data - Tree 13
Pohon Pencarian Biner 
Struktur Data - Tree 14
Full Binary Tree 
• Sebuah pohon biner penuh adalah pohon 
biner yang tiap node nya memiliki nol atau 
dua anak 
Struktur Data - Tree 15
Perfect Binary Tree 
• Sebuah pohon biner dikatakan sempurna 
(perfect) jika pohon biner tsb merupakan 
pohon biner penuh dan semua node daun 
berada di level yang sama. 
• Secara rekursif, sebuah pohon biner 
sempurna jika : 
– Merupakan pohon biner kosong, atau 
– Root nya memilik dua sub-pohon yang 
sempurna dengan tinggi yang sama 
Struktur Data - Tree 16
Complete Binary Tree 
• Definisi : 
– Pohon biner level N dikatakan sebuah komplit 
jika seluruh node pada level N-1 terisi 
seluruhnya dan pada level N node yang 
kosong adalah node kanan. 
Struktur Data - Tree 17
Complete Binary Tree 
H 
D K 
B F J L 
A C E G I 
Gambar 4 Representasi 
Struktur Data - Tree 18
Incomplete Binary Tree 
Gambar 5 Gambar 6 
Struktur Data - Tree 19
Kunjungan Pohon (Tree Traversals) 
• Kunjungan pohon digunakan untuk 
menelusuri keberadaan node pada pohon 
• Tiga jenis kunjungan pohon : 
– In-order 
– Pre-order 
– Post-order 
Struktur Data - Tree 20
Kunjungan Pohon (Tree Traversals) 
• Preorder: Visit root node, traverse TL, 
traverse TR 
• Inorder: Traverse TL, visit root node, 
traverse TR 
• Postorder: Traverse TL, Traverse TR, visit 
root node 
Struktur Data - Tree 21
Kunjungan Pohon (Tree Traversals) 
Struktur Data - Tree 22
Visualisasi Kunjungan Pohon 
Struktur Data - Tree 23
Representasi Pohon Biner 
• Pohon biner dapat direpresentasikan 
dalam 2 model : 
1. Representasi berurutan (sequential 
representation) 
2. Representasi berkait (linked representation) 
Struktur Data - Tree 24
Representasi Berurutan 
Representasi berurutan dari gambar 4 : 
H D K B F J L A C E G I 
0 1 2 3 4 5 6 7 8 9 10 11 
Gambar 7 
Struktur Data - Tree 25
Akses Elemen 
• Posisi node dapat ditentukan berdasarkan 
rumus berikut : 
– Anak kiri dari node i berada pada indeks : 
2*i+1 
– Anak kanan dari node i berada pada indeks : 
2*i+2 
Struktur Data - Tree 26
Representasi Berkait 
Struktur Data - Tree 27
Heap Tree 
• Definisi : 
– Heap tree adalah pohon biner komplit yang 
tiap node nya memenuhi heap property. 
• Heap Property : 
– Nilai pada node > atau >= nilai semua 
node anaknya 
Struktur Data - Tree 28
Heap Tree 
Struktur Data - Tree 29 
12 
8 3 
12 
8 12 
Node 12 memiliki 
properti heap 
12 
8 14 
Node 12 tidak memiliki 
properti heap 
Node 12 memiliki 
properti heap
siftUp 
• Diberikan sebuah node yang tidak memiliki heap 
property. Maka yang bisa dilakukan adalah menukar 
posisi dengan node anak yang nilainya paling besar. 
14 
8 12 
Blue node has 
heap property 
• Proses ini disebut juga sifting up 
• Bisa terjadi, node anak yang baru kehilangan heap 
property 
Struktur Data - Tree 30 
12 
8 14 
Blue node does not 
have heap property
Langkah Membangun Heap (I) 
• Sebuah pohon yang berisi satu node 
adalah heap tree. 
• Cara menyusun heap adalah dengan 
menambahkan satu node tiap saat 
dengan aturan sbb : 
– Tambahkan node baru di posisi paling kiri 
di level terbawah 
– Jika level terbawah penuh, buat level baru 
Struktur Data - Tree 31
Contoh 
Add a new 
node here 
Add a new 
node here 
Struktur Data - Tree 32 
Contoh 1 
Contoh 2
Langkah Membangun Heap (II) 
• Setiap penambahkan node, mungkin 
menyebabkan node induk kehilangan 
heap property. 
– Solusi  sift up 
• Proses sift up ini dilakukan berulang kali 
hingga : 
– Node berada di posisi yang tepat dalam arti nilai node 
tsb masih lebih kecil daripada node induknya, atau 
– Prosesnya telah sampai pada node root 
Struktur Data - Tree 33
0 1 2 3 4 5 6 7 8 9 10 11 12 
22 22 17 19 21 14 15 18 14 11 3 9 25 
0 1 2 3 4 5 6 7 8 9 10 11 12 
9 22 17 19 22 14 15 18 14 21 3 22 25 
• ...Dan seterusnya, hapus dan ganti root 
• Ingat, elemen terakhir array selalu berubah 
• Ulangi sampai elemen terakhir adalah 
elemen pertama & array sudah terurut 
Struktur Data - Tree 47
Red-Black Tree 
• Red-black tree adalah binary search 
tree yang memenuhi properti sbb : 
– Setiap node adalah red atau black 
– Node root adalah black 
– Setiap daun adalah black 
– Semua anak dari node red adalah black 
– Setiap jalur (path) dari sebuah node ke daun 
berisi node black yang jumlahnya sama 
Struktur Data - Tree 48
Contoh Red-Black Tree 
Struktur Data - Tree 49

More Related Content

What's hot

Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
Kelinci Coklat
 
Queue
Queue Queue
Materi 6. perulangan
Materi 6. perulanganMateri 6. perulangan
Materi 6. perulangan
Melva Amma Kalian
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
Zaldy Eka Putra
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
eddie Ismantoe
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
Fahrul Usman
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
Rhe Dwi Yuni
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circular
Hitesh Wagle
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
istiqlal
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Fatma Qolbi
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
Simon Patabang
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
KuliahKita
 
Makalah array
Makalah arrayMakalah array
Makalah arrayAnanda II
 
Kriptografi modern
Kriptografi modernKriptografi modern
Kriptografi modern
niizarch
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
Endang Retnoningsih
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
Meycelino A. T
 
Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Sunarya Marwah
 

What's hot (20)

Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)5. Doubly Linked List (Struktur Data)
5. Doubly Linked List (Struktur Data)
 
Queue
Queue Queue
Queue
 
Materi 6. perulangan
Materi 6. perulanganMateri 6. perulangan
Materi 6. perulangan
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
Modul Pratikum Algoritma dan Pemrograman dalam Bahasa Visual C++ 2010
 
queue antrian
queue antrianqueue antrian
queue antrian
 
Aturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode PembuktianAturan Inferensi dan Metode Pembuktian
Aturan Inferensi dan Metode Pembuktian
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circular
 
MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )MAKALAH STACK (TUMPUKAN )
MAKALAH STACK (TUMPUKAN )
 
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
Matematika diskrit (dual graf, lintasan dan sirkuit euler, lintasan dan sirku...
 
7 Metode Pencarian Data Array
7 Metode Pencarian Data Array7 Metode Pencarian Data Array
7 Metode Pencarian Data Array
 
Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06Matematika Diskrit - 06 relasi dan fungsi - 06
Matematika Diskrit - 06 relasi dan fungsi - 06
 
Makalah array
Makalah arrayMakalah array
Makalah array
 
Kriptografi modern
Kriptografi modernKriptografi modern
Kriptografi modern
 
Pertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau TumpukanPertemuan 5 Stack atau Tumpukan
Pertemuan 5 Stack atau Tumpukan
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
 
Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)
 

Similar to Bab 9 tree

Tree
TreeTree
Pertemuan 9 revisijan2013-mhs
Pertemuan 9 revisijan2013-mhsPertemuan 9 revisijan2013-mhs
Pertemuan 9 revisijan2013-mhs
Bina Sarana Informatika
 
Struktur affif
Struktur affifStruktur affif
Struktur affif
Sejahtera Affif
 
Biner
BinerBiner
Pertemuan 9 ok
Pertemuan 9 okPertemuan 9 ok
Pertemuan 9 ok
eli priyatna laidan
 
Asd sesi tree part1
Asd sesi tree part1Asd sesi tree part1
Asd sesi tree part1
BintangWijaya5
 
Algoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon binerAlgoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon biner
Georgius Rinaldo
 
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Setia Juli Irzal Ismail
 
Tree
TreeTree
Algoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon BinerAlgoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon Biner
KuliahKita
 
Asd sesi searching part 2
Asd sesi searching part 2Asd sesi searching part 2
Asd sesi searching part 2
BintangWijaya5
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
BintangWijaya5
 
Queue dan tree
Queue dan treeQueue dan tree
Queue dan tree
radar radius
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
Citra Kapindo
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
Georgius Rinaldo
 
Asd sesi tree part2
Asd sesi tree part2Asd sesi tree part2
Asd sesi tree part2
BintangWijaya5
 

Similar to Bab 9 tree (20)

Tree
TreeTree
Tree
 
Pertemuan 9 revisijan2013-mhs
Pertemuan 9 revisijan2013-mhsPertemuan 9 revisijan2013-mhs
Pertemuan 9 revisijan2013-mhs
 
Struktur affif
Struktur affifStruktur affif
Struktur affif
 
Biner
BinerBiner
Biner
 
Tistrukdat10
Tistrukdat10Tistrukdat10
Tistrukdat10
 
Bab x tree (pohon)
Bab x   tree (pohon)Bab x   tree (pohon)
Bab x tree (pohon)
 
8
88
8
 
Pertemuan 9 ok
Pertemuan 9 okPertemuan 9 ok
Pertemuan 9 ok
 
Asd sesi tree part1
Asd sesi tree part1Asd sesi tree part1
Asd sesi tree part1
 
Algoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon binerAlgoritma dan Struktur Data - pohon biner
Algoritma dan Struktur Data - pohon biner
 
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
Slide minggu 3 pertemuan 1 (struktur data1) [repariert]
 
Tree
TreeTree
Tree
 
Algoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon BinerAlgoritma dan Struktur Data - Pohon Biner
Algoritma dan Struktur Data - Pohon Biner
 
Asd sesi searching part 2
Asd sesi searching part 2Asd sesi searching part 2
Asd sesi searching part 2
 
Buku struktur data pages-111-122
Buku struktur data pages-111-122Buku struktur data pages-111-122
Buku struktur data pages-111-122
 
Queue dan tree
Queue dan treeQueue dan tree
Queue dan tree
 
Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)Laporan Resmi BAB 1 (Tree)
Laporan Resmi BAB 1 (Tree)
 
Bab 3 pohon (tree)
Bab 3   pohon (tree)Bab 3   pohon (tree)
Bab 3 pohon (tree)
 
Algoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohonAlgoritma dan Struktur Data - pengenalan pohon
Algoritma dan Struktur Data - pengenalan pohon
 
Asd sesi tree part2
Asd sesi tree part2Asd sesi tree part2
Asd sesi tree part2
 

More from arii_manroe

Bab 11 hash_table
Bab 11 hash_tableBab 11 hash_table
Bab 11 hash_table
arii_manroe
 
Bab 10 tree_lanjutan
Bab 10 tree_lanjutanBab 10 tree_lanjutan
Bab 10 tree_lanjutan
arii_manroe
 
Bab 8 rekursif
Bab 8 rekursifBab 8 rekursif
Bab 8 rekursif
arii_manroe
 
Bab 7 double_linked_list
Bab 7 double_linked_listBab 7 double_linked_list
Bab 7 double_linked_list
arii_manroe
 
Bab 6 singly_linked_list
Bab 6 singly_linked_listBab 6 singly_linked_list
Bab 6 singly_linked_list
arii_manroe
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
arii_manroe
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
arii_manroe
 
Bab 3 searching_array
Bab 3 searching_arrayBab 3 searching_array
Bab 3 searching_array
arii_manroe
 
Bab 2 sorting_array
Bab 2 sorting_arrayBab 2 sorting_array
Bab 2 sorting_array
arii_manroe
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataBab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
arii_manroe
 
Bab 12 file_manipulation
Bab 12 file_manipulationBab 12 file_manipulation
Bab 12 file_manipulation
arii_manroe
 

More from arii_manroe (11)

Bab 11 hash_table
Bab 11 hash_tableBab 11 hash_table
Bab 11 hash_table
 
Bab 10 tree_lanjutan
Bab 10 tree_lanjutanBab 10 tree_lanjutan
Bab 10 tree_lanjutan
 
Bab 8 rekursif
Bab 8 rekursifBab 8 rekursif
Bab 8 rekursif
 
Bab 7 double_linked_list
Bab 7 double_linked_listBab 7 double_linked_list
Bab 7 double_linked_list
 
Bab 6 singly_linked_list
Bab 6 singly_linked_listBab 6 singly_linked_list
Bab 6 singly_linked_list
 
Bab 5 queue_antrian_
Bab 5 queue_antrian_Bab 5 queue_antrian_
Bab 5 queue_antrian_
 
Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_Bab 4 stack_tumpukan_
Bab 4 stack_tumpukan_
 
Bab 3 searching_array
Bab 3 searching_arrayBab 3 searching_array
Bab 3 searching_array
 
Bab 2 sorting_array
Bab 2 sorting_arrayBab 2 sorting_array
Bab 2 sorting_array
 
Bab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_dataBab 1 abstraksi_tipe_data
Bab 1 abstraksi_tipe_data
 
Bab 12 file_manipulation
Bab 12 file_manipulationBab 12 file_manipulation
Bab 12 file_manipulation
 

Bab 9 tree

  • 1. TREE (POHON) Struktur Data - Tree 1
  • 2. Tujuan Pembelajaran • Di akhir pembelajaran, peserta diharapkan memahami tentang : – Macam-macam jenis pohon (tree) – Mengetahui definisi & konsep pohon biner – Mengetahui representasi dari pohon biner – Mengenal heap, heapsort, & priority queue Struktur Data - Tree 2
  • 3. Konsep Dasar & Terminologi Struktur Data - Tree 3 Level 0 Level 1 Level 2 Level 3 Node dalam/ Internal node Daun/ Leaf R S T X U V W Y Z Root/Akar Gambar 1
  • 4. Konsep & Terminologi • Sebuah pohon terdiri atas kumpulan elemen atau node • Tiap node dapat berisi data dan link (penghubung) ke node lainnya • Tiap node memiliki satu induk, kecuali node root (akar) yang tidak memiliki induk. • Tiap node dapat memiliki anak dalam jumlah berapapun. Struktur Data - Tree 4
  • 5. Konsep & Terminologi • Node-node yang berasal dari induk yang sama disebut siblings • Sebuah node yang tidak memiliki anak dinamakan leaf (daun) • Secara umum, hubungan induk-anak diistilahkan dengan hubungan the ancestor-descendent Struktur Data - Tree 5
  • 6. Konsep & Terminologi • Sebuah subtree (pohon anak) dari sebuah node adalah tree yang root-nya adalah anak dari node tsb. • Level dari sebuah node adalah ukuran jarak node tersebut terhadap akar. • Height (tinggi)/depth dari tree adalah level maksimum dari node yang terdapat di tree tsb. – Pohon kosong (empty tree) memiliki height=0 Struktur Data - Tree 6
  • 7. Konsep Dasar & Terminologi • Secara umum, setiap node N dapat diurut dari root berdasarkan jalur (path) P. • Jika path P memiliki n cabang (edge), maka dikatakan node N berada di level n • Contoh path : – Dari R ke X : R – S – X, n=2, X ada di level 2 – Dari R ke Z : R – S – X – Z, n=3, Z ada di Struktur Data - Tree 7 level 3
  • 8. Pohon Biner (Binary Trees) • Pada sebuah pohon biner, tiap node memiliki tepat 2 sub-pohon • Sekelompok node T adalah sebuah binary tree jika : – T adalah pohon kosong – Root dari T memiliki 2 subpohon, TL dan TR, dimana TL & TR adalah pohon biner Struktur Data - Tree 8
  • 9. Pohon Biner (Binary Trees) R S T Y U V Struktur Data - Tree 9 X W Z Gambar 2
  • 10. Tipe-tipe Pohon Biner Struktur Data - Tree 10 • Pohon Ekspresi – Tiap node berisi operator atau operan • Pohon Huffman – Merepresentasikan kode Huffman untuk karakter yang bisa muncul pada file teks – Kode Huffman menggunakan angka-angka bit yang berbeda dari ASCII atau Unicode • Pohon Pencarian Biner (Binary Search Tree) – Semua elemen pada sub-pohon kiri mendahului semua elemen pada sub-pohon kanan
  • 11. Pohon Ekspresi Pohon Ekspresi Struktur Data - Tree 11
  • 12. Pohon Huffman Struktur Data - Tree 12
  • 13. Pohon Pencarian Biner Struktur Data - Tree 13
  • 14. Pohon Pencarian Biner Struktur Data - Tree 14
  • 15. Full Binary Tree • Sebuah pohon biner penuh adalah pohon biner yang tiap node nya memiliki nol atau dua anak Struktur Data - Tree 15
  • 16. Perfect Binary Tree • Sebuah pohon biner dikatakan sempurna (perfect) jika pohon biner tsb merupakan pohon biner penuh dan semua node daun berada di level yang sama. • Secara rekursif, sebuah pohon biner sempurna jika : – Merupakan pohon biner kosong, atau – Root nya memilik dua sub-pohon yang sempurna dengan tinggi yang sama Struktur Data - Tree 16
  • 17. Complete Binary Tree • Definisi : – Pohon biner level N dikatakan sebuah komplit jika seluruh node pada level N-1 terisi seluruhnya dan pada level N node yang kosong adalah node kanan. Struktur Data - Tree 17
  • 18. Complete Binary Tree H D K B F J L A C E G I Gambar 4 Representasi Struktur Data - Tree 18
  • 19. Incomplete Binary Tree Gambar 5 Gambar 6 Struktur Data - Tree 19
  • 20. Kunjungan Pohon (Tree Traversals) • Kunjungan pohon digunakan untuk menelusuri keberadaan node pada pohon • Tiga jenis kunjungan pohon : – In-order – Pre-order – Post-order Struktur Data - Tree 20
  • 21. Kunjungan Pohon (Tree Traversals) • Preorder: Visit root node, traverse TL, traverse TR • Inorder: Traverse TL, visit root node, traverse TR • Postorder: Traverse TL, Traverse TR, visit root node Struktur Data - Tree 21
  • 22. Kunjungan Pohon (Tree Traversals) Struktur Data - Tree 22
  • 23. Visualisasi Kunjungan Pohon Struktur Data - Tree 23
  • 24. Representasi Pohon Biner • Pohon biner dapat direpresentasikan dalam 2 model : 1. Representasi berurutan (sequential representation) 2. Representasi berkait (linked representation) Struktur Data - Tree 24
  • 25. Representasi Berurutan Representasi berurutan dari gambar 4 : H D K B F J L A C E G I 0 1 2 3 4 5 6 7 8 9 10 11 Gambar 7 Struktur Data - Tree 25
  • 26. Akses Elemen • Posisi node dapat ditentukan berdasarkan rumus berikut : – Anak kiri dari node i berada pada indeks : 2*i+1 – Anak kanan dari node i berada pada indeks : 2*i+2 Struktur Data - Tree 26
  • 28. Heap Tree • Definisi : – Heap tree adalah pohon biner komplit yang tiap node nya memenuhi heap property. • Heap Property : – Nilai pada node > atau >= nilai semua node anaknya Struktur Data - Tree 28
  • 29. Heap Tree Struktur Data - Tree 29 12 8 3 12 8 12 Node 12 memiliki properti heap 12 8 14 Node 12 tidak memiliki properti heap Node 12 memiliki properti heap
  • 30. siftUp • Diberikan sebuah node yang tidak memiliki heap property. Maka yang bisa dilakukan adalah menukar posisi dengan node anak yang nilainya paling besar. 14 8 12 Blue node has heap property • Proses ini disebut juga sifting up • Bisa terjadi, node anak yang baru kehilangan heap property Struktur Data - Tree 30 12 8 14 Blue node does not have heap property
  • 31. Langkah Membangun Heap (I) • Sebuah pohon yang berisi satu node adalah heap tree. • Cara menyusun heap adalah dengan menambahkan satu node tiap saat dengan aturan sbb : – Tambahkan node baru di posisi paling kiri di level terbawah – Jika level terbawah penuh, buat level baru Struktur Data - Tree 31
  • 32. Contoh Add a new node here Add a new node here Struktur Data - Tree 32 Contoh 1 Contoh 2
  • 33. Langkah Membangun Heap (II) • Setiap penambahkan node, mungkin menyebabkan node induk kehilangan heap property. – Solusi  sift up • Proses sift up ini dilakukan berulang kali hingga : – Node berada di posisi yang tepat dalam arti nilai node tsb masih lebih kecil daripada node induknya, atau – Prosesnya telah sampai pada node root Struktur Data - Tree 33
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. 0 1 2 3 4 5 6 7 8 9 10 11 12 22 22 17 19 21 14 15 18 14 11 3 9 25 0 1 2 3 4 5 6 7 8 9 10 11 12 9 22 17 19 22 14 15 18 14 21 3 22 25 • ...Dan seterusnya, hapus dan ganti root • Ingat, elemen terakhir array selalu berubah • Ulangi sampai elemen terakhir adalah elemen pertama & array sudah terurut Struktur Data - Tree 47
  • 48. Red-Black Tree • Red-black tree adalah binary search tree yang memenuhi properti sbb : – Setiap node adalah red atau black – Node root adalah black – Setiap daun adalah black – Semua anak dari node red adalah black – Setiap jalur (path) dari sebuah node ke daun berisi node black yang jumlahnya sama Struktur Data - Tree 48
  • 49. Contoh Red-Black Tree Struktur Data - Tree 49