bab 9 tree
TRANSCRIPT
![Page 1: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/1.jpg)
Struktur Data - Tree 1
TREE (POHON)
![Page 2: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/2.jpg)
Struktur Data - Tree 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
![Page 3: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/3.jpg)
Struktur Data - Tree 3
Konsep Dasar & Terminologi
Level 0
Level 1
Level 2
Level 3
Node dalam/Internal node
Daun/Leaf
R
S T
X VU W
Y Z
Root/Akar
Gambar 1
![Page 4: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/4.jpg)
Struktur Data - Tree 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.
![Page 5: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/5.jpg)
Struktur Data - Tree 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
![Page 6: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/6.jpg)
Struktur Data - Tree 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
![Page 7: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/7.jpg)
Struktur Data - Tree 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
level 3
![Page 8: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/8.jpg)
Struktur Data - Tree 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
![Page 9: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/9.jpg)
Struktur Data - Tree 9
Pohon Biner (Binary Trees)
R
S T
X
W
U VY
Z
Gambar 2
![Page 10: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/10.jpg)
Struktur Data - Tree 10
Tipe-tipe Pohon Biner
• 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
![Page 11: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/11.jpg)
Struktur Data - Tree 11
Pohon Ekspresi
Pohon Ekspresi
![Page 12: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/12.jpg)
Struktur Data - Tree 12
Pohon Huffman
![Page 13: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/13.jpg)
Struktur Data - Tree 13
Pohon Pencarian Biner
![Page 14: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/14.jpg)
Struktur Data - Tree 14
Pohon Pencarian Biner
![Page 15: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/15.jpg)
Struktur Data - Tree 15
Full Binary Tree
• Sebuah pohon biner penuh adalah pohon biner yang tiap node nya memiliki nol atau dua anak
![Page 16: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/16.jpg)
Struktur Data - Tree 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
![Page 17: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/17.jpg)
Struktur Data - Tree 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.
![Page 18: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/18.jpg)
Struktur Data - Tree 18
Complete Binary Tree
H
D K
B F J L
A C E G I
Gambar 4Representasi
![Page 19: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/19.jpg)
Struktur Data - Tree 19
Incomplete Binary Tree
Gambar 5 Gambar 6
![Page 20: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/20.jpg)
Struktur Data - Tree 20
Kunjungan Pohon (Tree Traversals)
• Kunjungan pohon digunakan untuk menelusuri keberadaan node pada pohon
• Tiga jenis kunjungan pohon :– In-order– Pre-order– Post-order
![Page 21: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/21.jpg)
Struktur Data - Tree 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
![Page 22: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/22.jpg)
Struktur Data - Tree 22
Kunjungan Pohon (Tree Traversals)
![Page 23: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/23.jpg)
Struktur Data - Tree 23
Visualisasi Kunjungan Pohon
![Page 24: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/24.jpg)
Struktur Data - Tree 24
Representasi Pohon Biner
• Pohon biner dapat direpresentasikan dalam 2 model :
1. Representasi berurutan (sequential representation)
2. Representasi berkait (linked representation)
![Page 25: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/25.jpg)
Struktur Data - Tree 25
Representasi Berurutan
H D K B F J L A C E G I
Representasi berurutan dari gambar 4 :
0 1 2 3 4 5 6 7 8 9 10 11
Gambar 7
![Page 26: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/26.jpg)
Struktur Data - Tree 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
![Page 27: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/27.jpg)
Struktur Data - Tree 27
Representasi Berkait
![Page 28: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/28.jpg)
Struktur Data - Tree 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
![Page 29: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/29.jpg)
Struktur Data - Tree 29
Heap Tree
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
![Page 30: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/30.jpg)
Struktur Data - Tree 30
siftUp• Diberikan sebuah node yang tidak memiliki heap
property. Maka yang bisa dilakukan adalah menukar posisi dengan node anak yang nilainya paling besar.
• Proses ini disebut juga sifting up• Bisa terjadi, node anak yang baru kehilangan heap
property
14
8 12
Blue node has heap property
12
8 14
Blue node does not have heap property
![Page 31: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/31.jpg)
Struktur Data - Tree 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
![Page 32: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/32.jpg)
Struktur Data - Tree 32
Contoh
Add a new node here
Add a new node here
Contoh 1
Contoh 2
![Page 33: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/33.jpg)
Struktur Data - Tree 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
![Page 34: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/34.jpg)
![Page 35: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/35.jpg)
![Page 36: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/36.jpg)
![Page 37: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/37.jpg)
![Page 38: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/38.jpg)
![Page 39: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/39.jpg)
![Page 40: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/40.jpg)
![Page 41: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/41.jpg)
![Page 42: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/42.jpg)
![Page 43: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/43.jpg)
![Page 44: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/44.jpg)
![Page 45: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/45.jpg)
![Page 46: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/46.jpg)
![Page 47: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/47.jpg)
Struktur Data - Tree 47
• ...Dan seterusnya, hapus dan ganti root• Ingat, elemen terakhir array selalu berubah• Ulangi sampai elemen terakhir adalah elemen
pertama & array sudah terurut
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
0 1 2 3 4 5 6 7 8 9 10 11 12
![Page 48: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/48.jpg)
Struktur Data - Tree 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
![Page 49: Bab 9 tree](https://reader036.vdocuments.net/reader036/viewer/2022081416/55b2483ebb61ebc55f8b46da/html5/thumbnails/49.jpg)
Struktur Data - Tree 49
Contoh Red-Black Tree