Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Agenda
• Struktur, Karakteristik dan Kegunaan Tree
• Operasi-Operasi pada Tree
• Insert
• Delete
• Traversing: Level order, Pre-order, In-order, Post-order
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Tree
http://www.chesstree.net/
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
https://chrome.google.com/webstore/detail/css-playground-and-dom-
tr/fbdbnlmganadmogpnpceofkilanfolni
DOM Tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Tree
• Struktur data non-linear
• Membentuk hierarkhi / tingkatan
• Merupakan recursive data structure
• Dalam implementasinya, sebagian / seluruhnya tersusun dari struktur data yang
sama dalam bentuk yang lebih kecil
• Contoh: linked list dan tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Struktur Tree Root
Sub-tree
• Node dari Node A
• Menyimpan nilai
• Menyimpan informasi node/sub-tree
di bawahnya
• Root
• Node yang paling atas (Node A)
• Sub-tree
• Bagian dari Tree yang
lebih kecil
• Leaf Sub-tree dari
• Node yang tidak punya Node B
sub-tree/node di bawahnya
Node G, H, I, J, F
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Struktur Tree
Internal Node
External node
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Struktur Tree
• Hubungan antara suatu Node dengan Node-Node satu level di bawahnya
sering juga disebut sebagai Parent – Child
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Root, Inner Node dan Leaf Node
21 Root
32 76 88 Inner/internal Node
44 11 5 Leaf/external Node
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Height dari Tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Depth and Height dari Node
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Depth and Height dari Node
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Depth Depth and Height dari Node
=0
Depth Depth
=1 =1
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Heigh
Depth and Height dari Node
t=3
Heigh Heigh
t=1 t=2
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Jenis-Jenis Tree
• General Tree
• Setiap node-nya bisa memiliki child node dalam jumlah berapapun
• Dalam implementasinya biasanya child nodes disimpan dalam List
• Binary Tree
• Setiap node-nya maksimal memiliki dua child nodes
• Biasanya child nodes disimpan dengan nama left node dan right node
• Paling banyak dipakai dalam algoritma, memiliki banyak variasi bentuk
• Binary Search Tree, AVL Tree, B-Tree, T-Tree, Red Black Tree, …
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Implementasi General Tree
Coba gambarkan tree yang
dihasilkan dari kode program
tersebut!
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Binary Tree
• Bentuk Tree yang lebih banyak digunakan, dan memiliki banyak variasi
• Binary Search Tree, AVL Tree, Red Black Tree, B-Tree, T-Tree, …
• Setiap node maksimal memiliki dua child nodes
• Biasanya dinamakan left node dan right node
• Binary Tree yang lebih spesifik biasanya memiliki aturan pada peletakan
child node, apakah di sebelah kiri atau kanan
• Dari bentuknya, Binary Tree bisa digolongkan menjadi beberapa bentuk
berikut ini:
• Full binary tree, Complete binary tree, Perfect binary tree, Balanced binary tree,
Degenerate/skewed binary tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Jenis-Jenis Binary Tree
Full binary tree Complete binary tree
Semua nodes memiliki dua child, Seluruh level terisi oleh node, kecuali
kecuali external (leaf) node pada level terendahnya
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Jenis-Jenis Binary Tree
Perfect binary tree Balanced binary tree
Semua internal nodes memiliki dua Height dari tree adalah Log n,
child, kemudian seluruh leaf node dengan n adalah jumlah nodes di
berada pada level yang sama dalam tree. Selisih tinggi sebelah kiri
dan kanan tidak boleh lebih dari 1
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Jenis-Jenis Binary Tree
Degenerate/Skewed binary tree
Seluruh internal node hanya
memiliki 1 child saja (sama saja
dengan linked list)
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
ADT Tree
• Operasi-Operasi pada Binary Tree
• Insert
• Traversing (Find, Print)
• Delete
• Mode traversing bisa bermacam-macam
• Level Order / Breadth First Traversal : berdasarkan level, mulai dari level 1, 2, dst…
• Depth First Traversal: mulai dari node terdalam terlebih dahulu
• Depth first traversal terdiri dari tiga macam:
• Pre-Order, In-Order dan Post-Order
• Visualisasi bisa dilihat di: https://algorithm-visualizer.org/brute-
force/binary-tree-traversal
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Pembentukan Binary Tree
• Tentukan root dari tree
• Biasanya node yang pertama
• Jika menambahkan node, gunakan aturan sebagai berikut:
• Jika lebih besar dari parent, masukkan ke sebelah kanan
• Jika lebih kecil atau sama dengan parent, masukkan ke sebelah kiri
• Bentuk ini dinamakan sebagai Binary Search Tree
• Misal dimasukkan secara berurutan:
• 56, 24, 78, 12, 29, 33, 63, 81, 98
• Gambarkan tree yang terbentuk!
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Pembentukan Binary Tree
56, 24, 78, 12, 29, 33, 63, 81, 98
56
24 78
12 29 63 81
33 98
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Traversing Breadth First / Level Order
56
Hasilnya adalah:
56, 24, 78, 12, 29, 63, 81, 33, 98
24 78
12 29 63 81
33 98
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Traversing Pre-Order
Urutannya adalah:
1. Kunjungi root node
56 2. Kunjungi left node
secara rekursif
3. Kunjungi right node
24 78 secara rekursif
Root -> Left -> Right
12 29 63 81 Hasilnya adalah:
56, 24, 12, 29, 33, 78, 63, 81, 98
33 98
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Traversing In-Order
Urutannya adalah:
1. Kunjungi left node
56 secara rekursif
2. Kunjungi root node
3. Kunjungi right node
24 78 secara rekursif
Left-> Root -> Right
12 29 63 81 Hasilnya adalah:
12, 24, 29, 33, 56, 63, 78, 81, 98
33 98
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Traversing Post-Order
Urutannya adalah:
1. Kunjungi left node
56 secara rekursif
2. Kunjungi right node
secara rekursif
24 78 3. Kunjungi root node
Left-> Right -> Root
12 29 63 81 Hasilnya adalah:
12, 33, 29, 24, 63, 98, 81, 78, 56
33 98
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Menghapus Node pada Binary Tree
• Tergantung dari binary tree tersebut
• Apakah ada aturan khusus pembentukan tree?
• Misalnya node lebih kecil atau sama dengan di kiri, sedangkan jika lebih besar di
kanan
• Binary tree sederhana vs Binary tree dengan aturan khusus
• Jika hanya binary tree biasa
• Jika leaf node, hapus langsung
• Jika bukan leaf node, pilih satu node yang berada di paling kanan dari tree untuk
menggantikannya
• Binary Tree dengan aturan khusus
• Akan dibahas pada materi Binary Search Tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Binary Tree Biasa
Hapus F => langsung hapus saja,
A karena merupakan leaf node
F I
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Implementasi Binary Tree
Coba gambarkan tree yang
dihasilkan dari kode program
tersebut!
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Pertanyaan?
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana
Minggu Depan
13 – Binary Search Tree
Struktur Data | Yuan Lukito, S.Kom., M.Cs © 2021 | Prodi Informatika, Universitas Kristen Duta Wacana