STRUKTUR DATA
MODUL 4
BINARY DAN TRAVERSAL BINARY TREE
Dosen Pengampu
Ach. Arif Alfin, S.Si., M.MT
A. Latar Belakang
Definisi dari tree yaitu salah satu bentuk struktur data tidak linear yang
menggambarkan hubungan yang bersifat hierarkis (hubungan one to many)
antara elemen- elemen. Jadi, pengertian dari tree adalah kumpulan node yang
saling terhubung satu sama lain dalam suatu kesatuan yang membentuk
layakya struktur sebuah pohon. Struktur dari tree terdiri dari root (akar) dan
leaf (daun). Contoh tree : struktur organisasi suatu perusahaan, daftar isi
sebuah buku, dan masih banyak yang lainnya. Untuk struktur dari tree dapat
dilihat pada gambar 1 berikut ini.
B. Tujuan Pratikum
71
BAB II
DASAR TEORI
A. Binary Tree
Binary tree merupakan sebuah tree yang mana setiap simpul tidak
memiliki child lebih dari dua. Masing-masing simpul dalam binary tree terdiri
dari tiga bagian yaitu sebuah data dan dua buah pointer yang dinamakan
pointer kiri dan kanan. Simpul juga mempunyai sibling, descendants, dan
ancestors. Sibling dari sebuah simpul adalah anak lain dari induk simpul
tersebut. Descendants dari sebuah simpul adalah semua simpul-simpul
merupakan cabang (berada di bawah) simpul tersebut. Anchestors dari sebuah
simpul adalah semua simpul yang berada di atas antara simpul tersebut dengan
root.
Dalam struktur data Tree, root node ditentukan sebagai level 0 dan child
dari root node berada pada level 1. Sehingga, apabila suatu simpul dinyatakan
sebagai tingkat N, maka simpul-simpul yang merupakan child dinyatakan
sebagai N+1. Depth atau Kedalaman suatu tree adalah level maksimum dari
simpul tree tersebut.
72
73
Gamabar 2.2. Binary Tree dengan depth / kedalaman / tinggi 5
Binary Tree memiliki struktur data yang hampir mirip dengan Linked List, namun
Linked List lebih ke struktur data linier, sedangkan tree bukan struktur data linier
(lebih ke struktur data hierarkis).
74
2. Traversal inorder (symmetric order) Dilaksanakan dengan jalan
melakukan kunjungan ke subtree kiri, mencetak isi node yang
dikunjungi, lalu melakukan kunjungan ke subtree kanan. Logika umum
traversal inorder adalah sebagai berikut:
o Jika tree kosong, maka keluar.
o Traverse subtree kiri secara inorder.
o Proses node root.
o Traverse subtree kanan secara inorder
3. Traversal postorder Dilaksanakan dengan jalan melakukan kunjungan
ke subtree kiri, lalu ke subtree kanan, dan selanjutnya mencetak isi
node yang dikunjungi. Algoritma umum traversal inorder adalah
sebagai berikut:
o Jika tree kosong, maka keluar.
o Traverse subtree kiri secara postorder.
o Traverse subtree kanan secara postorder.
o Proses node root.
Semua algoritma traversal (preorder, inorder, postorder) yang diberikan di
atas berupa algoritma rekursif, dan sebenarnya dapat dikerjakan secara iteratif
dengan bantuan stack.
Dalam struktur diatas, data merupakan value-nya, left merupakan pointer yang
berisi address dari left node, dan right merupakan pointer yang berisi address
75
dari right node.
Algoritma untuk Membangun suatu BinaryTree
76
Algoritma Pembacaan Binary Tree dengan Traversal InOrder
77
BAB III
LATIHAN PRAKTIKUM
78
BAB IV
TUGAS PRAKTIKUM
1. Buat algoritma Binary Tree untuk gambar berikut ini
79
A. Source Code
Karena BinaryTree menggunakan pointer, maka kita perlu
mendeklarasikan node.
80
81
Method untuk operasi menampilkan traversal PreOrder, InOrder dan
PostOrder
82
Gambar 4.5. Source Code implementasi BinaryTree
83
B. Analisa
84
C. Output
1. Algoritma Kasus 1
Operasi memasukan data Tree menggunakan operasi insert
85
Gambar 4.6. Source Code operasi traversal
2. Algoritma Kasus 2
Operasi memasukan data Tree
86
Gambar 4.7. Hasil Output
3. Algoritma Kasus 3
Operasi menampilkan tinggi tree menggunakan method getHeight
87
88
BAB V
PENUTUP
A. Kesimpulan
89
DAFTAR PUSTAKA
90
LAMPIRAN
A. Tugas Pendahuluan
Binary Tree adalah salah satu bentuk struktur data tidak linear yang
menggambarkan hubungan yang bersifat hierarkis (hubungan one to
many) antara elemen- elemen.
Root adalah akar dari tree atau data teratas dari tree.
Parent adalah node yang memliki maksimal 2 child.
Child adalah node di bawah parent.
Sibling adalah node yang memiliki parent yang sama dengan suatu node.
Leaf Node adalah node dalam tree yang tidak memiliki node dibawahnya.
Level Node adalah posisi dari sebuah node, dan root node ditentukan
sebagai level 0, semakin ke bawah maka level node + 1.
Depth of Binary Tree adalah kedalaman dari suatu Binary Tree.
Anchestor adalah semua simpul yang berada di atas antara simpul
tersebut dengan root.
Descendants adalah semua simpul-simpul merupakan cabang (berada di
bawah) simpul tersebut.
91