0% menganggap dokumen ini bermanfaat (0 suara)
83 tayangan

Modul 11 - Binary Tree

Modul ini membahas tentang Binary Tree dan implementasinya dalam bahasa C. Tujuannya adalah mempraktikkan konsep Binary Tree dan mengimplementasikannya dalam penyelesaian masalah. Dijelaskan definisi Root, Edge, Leaf, Height, Level, dan jenis Binary Tree seperti Binary Search Tree. Siswa diminta membuat program CRUD untuk menyimpan dan mengolah data siswa dalam Binary Tree dengan operasi Create, Read, Update, dan Delete.

Diunggah oleh

jowin68389
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
83 tayangan

Modul 11 - Binary Tree

Modul ini membahas tentang Binary Tree dan implementasinya dalam bahasa C. Tujuannya adalah mempraktikkan konsep Binary Tree dan mengimplementasikannya dalam penyelesaian masalah. Dijelaskan definisi Root, Edge, Leaf, Height, Level, dan jenis Binary Tree seperti Binary Search Tree. Siswa diminta membuat program CRUD untuk menyimpan dan mengolah data siswa dalam Binary Tree dengan operasi Create, Read, Update, dan Delete.

Diunggah oleh

jowin68389
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 12

Modul 11

Binary Tree

Praktikum Informasi dan Struktur Data

Semester Gasal TA. 2023 / 2024

Program Studi Informatika

Universitas Atma Jaya Yogyakarta


TUJUAN

• Praktikan mampu memahami konsep dasar dari Binary Tree beserta


pengimplementasiannya dalam bentuk kode pada Bahasa Pemrograman C.
• Praktikan mampu mengimplementasikan pemahamannya tentang Binary Tree dalam
penyelesaian kasus - kasus tertentu.
• Praktikan mampu memahami dan mengimplementasikan modul-modul sebelumnya
dalam modul 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

3 Level node 13 dari root


adalah 4

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.

Node di sebelah kiri selalu lebih Node di sebelah kanan selalu


kecil dari data root nya lebih besar dari data root nya

Pada konteks di samping 3 < 8 Pada konteks di samping 8 < 10


sehingga 3 masuk ke node di sehingga 10 masuk ke node di
kiri. kanan.
Traversal merupakan cara untuk menelusuri setiap node yang ada pada Binary Search Tree
dengan mengimplementasikan konsep Recursive sehingga perulangan yang dilakukan
menjadi semakin sederhana. Adapun beberapa jenis Traversal adalah,
• Pre Order: Root – Left Child – Right Child
• In Order: Left Child – Root – Right Child
• Post Order: Left Child – Right Child – Root
• Level Order: Mengakses node sesuai levelnya dari kiri ke kanan.

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!

Masih bingung Binary Tree? Bisa kontak via PC ke WA / Teams.

Website Penunjang Pembelajaran : http://btv.melezinek.cz/binary-search-tree.html

Anda mungkin juga menyukai