Modul 11 - Binary Tree
Modul 11 - Binary Tree
Binary Tree
TREE
Tree merupakan sebuah struktur data non-linear yang merepresentasikan struktur hierarki.
Dengan kata lain, Tree memiliki ‘atasan’ atau biasa disebut dengan root dan ‘bawahan’ atau
biasa disebut dengan child. Tidak seperti Array, Stack, Queue, dan Linked List yang mana
termasuk ke dalam struktur data linear, Tree memiliki beberapa kelebihan karena sifatnya
yang non-linear, namun kita akan bahas mengenai beberapa istilah-istilah yang ada pada tree
terlebih dahulu.
• Root, merupakan sebuah node teratas dari sebuah Tree yang mana tidak memiliki
Parent Node dan setiap Tree hanya memiliki satu buah Root.
Root
• Edge, merupakan sebuah hubungan antara Parent Node dan Child Node dan
berfungsi untuk melambangkan hubungan antar node.
Parent Node
Edge
Child Node
• Leaf, merupakan sebuah node yang tidak memiliki Child Node dan bisa dikatakan
bahwa Leaf merupakan node terbawah dari suatu Tree. Setiap Tree pasti memiliki
minimal 1 Leaf.
Leaf
• Supertree, adalah bagian yang mengambarkan pohon yang lebih besar, dimana pohon
lain menjadi subtreenya.
• Subtree, adalah suatu bagian dari pohon lain yang merupakan cabang dari pohon
yang lebih besar.
Supertree
Subtree
Dalam konteks di atas, apabila melihat node 3 dan 10 sebagai pohon sendiri, node 3 dan 10 tersebut
dapat disebut Supertree dan node di bawahnya adalah Subtree, dst. Semua ini tergantung dari
prespektif melihat pohonnya saja.
• Height / Depth, merupakan jarak dari Root ke jalur yang memiliki Edge terbanyak.
0
1
Height pohon tersebut = 3
2
3
• Level, merupakan jarak dari Root ke sebuah node tertentu.
1
Level node 10 dari root
2 adalah 2
Perbedaan antara Height dan Level hanya pada titik start, dimana height pada pohon
kosong akan di-set sebagai -1 dan level adalah 0, dan menghitung node ke bawah
hanya berbeda satu saja di antara kedua istilah tersebut. Tidak terlalu berbeda dalam
konsepnya.
BINARY TREE
Binary Tree merupakan turunan dari konsep Tree yang mana pembedanya adalah setiap node
pada Binary Tree hanya dapat memiliki maksimal 2 Child Node. Adapun jenis Binary Tree
yang akan digunakan pada Praktikum Informasi dan Struktur Data - Modul Binary Tree
adalah Binary Search Tree (BST) yang mana memiliki sifat yang berpola, yakni seluruh
Left Child harus memiliki nilai yang lebih kecil daripada Parent Node dan Right Child
dan sebaliknya.
Pre Order: 8 – 3 – 1 – 6 – 4 – 7 – 10 – 14 – 13
In Order: 1 – 3 – 4 – 6 – 7 – 8 – 10 – 13 – 14
Post Order: 1 – 4 – 7 – 6 – 3 – 13 – 14 – 10 – 8
Level Order: 8 – 3 – 10 – 1 – 6 – 14 – 4 – 7 – 13
Guided Binary Tree
Anda sebagai programmer yang baru mempelajari Binary Tree diminta untuk
menerapkan pengetahuan yang baru dipelajari tersebut dengan membuat suatu aplikasi simple
yang dapat menampung struktur penyimpanan data seperti berikut :
Anda diminta untuk membuat program tersebut dapat melakukan operasi CRUD
(Create, Read, Update, Delete) terhadap data siswa tersebut. Berikut detail yang perlu
diperhatikan saat membuat operasi – operasi tersebut :
1. Create: Input data ke Binary Tree menggunakan nilai sebagai pembanding, untuk
masuk ke tree kiri atau kanan.
2. Read: Print semua data menggunakan semua traversal yang tersedia, kecuali
level order.
3. Update: Update data nama siswa yang ada di Binary Tree.
4. Delete: Menghapus data siswa, sesuai input nama, apabila nama terdapat
ditengah maupun terletak di root, operasi ini akan menghapus keseluruhan
dari node tersebut yang ditemukan sampai node paling bawah. Apabila node
terletak di-leaf hanya menghapus node leaf tersebut.
Visualisasi Delete :
2
5.2
Delete 3
1 3 1
2 2
2 Tree Empty
1 3 Delete 2
3
4
4
2 6 4
Delete 6 2 6
5 7 2 6
7
2 Finish
header.h
source.c
main.c
Format Penamaan
GDBT_X_YYYYY.zip
Keterangan
X = Kelas
Y = 5 digit NPM
Hint UGD! Pelajari variasi penghapusan data maupun variasi yang mungkin dalam
pengerjaan Binary Search Tree!