Struktur Data
TREE (Pohon)
Pohon atau tree adalah salah satu bentuk
graph terhubung yang tidak mengandung
sirkuit.
Karena merupakan graph terhubung, maka
pada pohon selalu terdapat path atau jalur
yang menghubungkan setiap dua simpul
dalam pohon.
Tree (Pohon)
Tree merupakan salah satu bentuk
untuk menggambarkan hubungan yang
bersifat hirarkis antara elemen-elemen
yang ada.
Penggunaan struktur tree :
Silsilah keluarga
Hasil pertandingan yang berbentuk
turnamen
Struktur organisasi dari sebuah
perusahaan
Pohon binar (binary trees) termasuk
dalam struktur data jenis majemuk
nonlinear
Keuntungan menggunakan struktur data
pohon binar :
Kemudahan dalam penyusunan
algoritma pengurutan data
Pencarian data yang relatif lebih cepat
Fleksibelitas dalam penyisipan dan
penghapusan data
Binary Tree
Gambar 1. - Elemen atau nilai
data disebut NODE
- Pada setiap node
A dapat memiliki :
- Derajat masuk
B C (link dengan
node
sebelumnya)
- Derajat keluar
D E F
(link dengan
node
berikutnya)
Skema Pohon Binar
Skema Pohon Binar
Node A dan B memiliki derajat
keluar = 2, tetapi node A memiliki
derajat masuk = 0 dan node B
memiliki derajat masuk =1
Node C memiliki derajat masuk yang
sama dengan derajat keluarnya
yaitu = 1
NodeD, E dan F memiliki derajat
masuk = 1 dan derajat keluar = 0
Representasi Binary Tree
INFO LNK1 LNK2
START 1
3 2 B 6 7
3 A 2 4
4 C 8 0
5
6 D 0 0
7 E 0 0
8 F 0 0
9
10
Secara Sequential
Representasi Binary Tree
Root
•
• A •
• B • • C x
x D x x E x x F x
Secara Link
Terminologi Binary Tree
R
A C
H M I
N T
Terminologi Tree
Term Definition
Node Sebuah elemen dalam sebuah tree; berisi
sebuah informasi (R,A,C,H,M,I,N,T)
Parent Node yang berada di atas node lain secara
langsung; C adalah parent dari M dan I
Child Cabang langsung dari sebuah node; M dan I
merupakan children dari C
Root Node teratas yang tidak punya parent
Sibling Sebuah node lain yang memiliki parent yang
sama; sibling dari A adalah C karena memiliki
parent yang sama yaitu R
Leaf Sebuah node yang tidak memiliki children.
N,T,M,I adalah leaf. Leaf biasa disebut sebagai
external node, sedangkan node lainnya disebut
sebagai internal node (R,A,C,H)
Terminologi Tree
Term Definition
Level Semua node yang memiliki jarak atau
tingkatan yang sama dari root. Rlevel 0;
A,Clevel 1; H,M,Ilevel 2; N,Tlevel 3
Depth Jumlah level yang ada dalam tree atau
ketinggian/ kedalaman pohon adalah level
pohon binar + 1. Dikatakan balance height
bila left subtree dan right subtree memiliki
ketinggian sama atau paling banyak berbeda
1 (satu). Pada gambar tsb depth = 4
Complete Semua parent memiliki children yang penuh
atau setiap node memiliki 0 atau 2 link
dengan node berikutnya
Balance Semua subtree memiliki depth yang sama
Weight Jumlah atau banyaknya leaf (daun). Pada
gambar tsb weight = 4
2-Trees
Pohon binar T dikatakan 2-Trees atau
pohon binar yang dikembangkan
(extended binary tree) bila setiap simpul
mempunyai 0 atau 2 anak.
Simpul dengan 2 anak disebut simpul
internal, sedangkan simpul tanpa anak
disebut simpul eksternal.
Dalam diagramnya, seringkali diadakan
pembedaan antara simpul internal dan
eksternal. Simpul internal digambar
sebagai lingkaran, sedangkan simpul
eksternal sebagai bujur sangkar.
Pohon-2
Pohon-2
Sebuah pemakaian penting
dari pohon-2 adalah untuk
menyajikan suatu ekspresi
aritmetik yang mengandung
operasi binar.
Di sini simpul eksternal
menyajikan operand
(variabel) sedangkan simpul
internal menyajikan
operator yang bekerja
terhadap ke dua
subpohonnya.
Pohon Umum (General Trees)
Merupakan struktur data nonlinier
yang menggambarkan keterkaitan
antara satu node dengan node lainnya,
namun keterkaitan tidak terbatas
hanya memiliki maksimal dua node
(parent boleh memiliki anak
berapapun)
Istilah dalam pohon binar dapat
digunakan, selain left child atau right
child
Contoh Pohon Umum
Korespondensi GT dan BT
Penggambaran pohon umum ke dalam
bentuk pohon binar dilakukan dengan
ketentuan :
Root sama
Cabang paling kiri (dan setiap garis
keturunan) dari pohon umum
dijadikan cabang kiri pohon binar
Saudaradari pohon umum dijadikan
cabang kanan
A A
B
B C D E F C
G D
F G H I
J H E
J I
Y R S
Q T U W Z
P M N
LATIHAN
Konversi pohon biner ini ke pohon umum
C
X
Y D
I E
X2
J
Pembuatan Binary Tree
Pembuatan binary tree lebih mudah
menggunakan binary search tree
dengan cara :
“ jika nilai dari simpul yang akan
disisipkan lebih besar dari simpul
parent, maka simpul tersebut
ditempatkan sebagai subtree kanan.
Jika lebih kecil maka simpul baru
disimpan sebagai subtree kiri.”
Pembuatan Binary Tree
Bila terdapat suatu data yang
dimasukkan secara linier 7,4,2,8,5,9,1,3
maka berapa langkah untuk
mendapatkan angka 3?
Bayangkan jika banyak angkanya ratusan
ribu buah, maka berapa lama komputer
harus bekerja untuk mencari angka yang
kebetulan berada diakhir?
Solusi dengan membuat struktur data
pohon cari binar
Algoritma
Algoritma :
Masukkan satu per satu dari depan dan
bandingkan mulai dari root pohon
Bila pohon dalam keadaan kosong (empty
tree atau null tree), masukkan sebagai root
pohon dan lanjutkan pemasukan data
berikutnya
Bila angka lebih besar, maka telusuri jalur
kanan dan bandingkan kembali dengan nodes
yang ada (rekursif) hingga data tersebut
menempati posisinya yang sesuai dan
lanjutkan dengan data berikutnya
Bila data yang dimasukkan lebih kecil
atau sama, maka telusuri jalur kiri dan
bandingkan kembali dengan nodes yang
ada (rekursif) hingga data tersebut
menempati posisinya yang sesuai dan
lanjutkan dengan data berikutnya
A Hasil penelusuran : A B C
B C
Penelusuran Pohon
Penelusuran IN-ORDER pada Pohon Binar
Telusuri subpohon kiri
Kunjungi Simpul Akar
Telusuri subpohon kanan
A Hasil penelusuran : B A C
B C
Penelusuran Pohon
Penelusuran POST-ORDER pda Pohon Binar
Telusuri subpohon kiri
Telusuri subpohon kanan
Kunjungi Simpul Akar
A Hasil penelusuran : B C A
B C
Penelusuran Pohon
Pada pohon berikut, lakukan penelusuran
dengan metode pre-order, in-order, post-order.
B Pre-Order: B-D-H-I-E-J-K
In-Order: H-D-I-B-J-E-K
D E
Post-Order: H-I-D-J-K-E-B
H I J K
Pembentukan BTree berdasarkan
Preorder, Inorder dan Postorder
B C
D E F
G H I
Contoh2 :
Diketahui :
Secara postorder : GDBHIEFCA
Secara inorder : DGBAHEICF
Caranya adalah :
Cara mirip dengan contoh 1, tetapi
penelusuran dilakukan pada postorder
secara terbalik (dari paling belakang)
Didapat A, kemudian jadikan sebagai root
Ambil C, lihat di inorder. C berada
disebelah kanan dari A, maka C ditulis di
kanan dari A
dst
Hasil : A
B C
D E F
G H I
Latihan
1. Terdapat sebuah binary tree kosong,
kemudian diinsertkan :
JRDGTEMHPAFQ
a. Gambarkan binary tree nya
b. Tentukan inorder, postorder dan
preorder
2. Inorder: EACKFHDBG
Preorder : FAEKCDHGB
a. Gambarkan binary tree-nya
b. Tentukan postorder-nya
Notasi Prefix, Infix, Postfix
Jika pohon binar digunakan untuk
menuliskan ekspresi matematik, maka
dengan metode penelusuran yang berbeda
dihasilkan notasi yang berbeda juga, yaitu
Penelusuran secara pre-order notasi
prefix
Penelusuran secara in-order notasi infix
Penelusuran secara post-order notasi
postfix
Notasi Prefix, Infix, Postfix
+
B C
Notasi prefix :+ B C
Notasi infix :B + C
Notasi postfix :B C +
Notasi Prefix, Infix, Postfix
*
+ -
A B C D
Notasi prefix :* + A B – C D
Notasi infix :A + B * C - D
Notasi postfix :A B + C D - *
TUGAS
1. Dipunyai sekelompok data yang akan
disimpan dalam pohon telusur binar (Binary
Search Tree) dengan urutan pemasukan
sebagai berikut :
MALECITANURATALA SINGGIH
a. gambarkan pohon telusur binar yang
terjadi
b. tuliskan urutan data jika ditelusuri secara
Pre-order
c. tuliskan urutan data jika ditelusuri secara
Post-order
2. Bila diketahui suatu fungsi Y sebagai
berikut : (a + (b^c – d*e*f)^g) / (h*I)
a. Buatlah dalam bentuk binary tree
b. Tuliskan notasi prefix
c. Tuliskan notasi postfix
Buatlah Pohon Biner dari ekspresi aritmatika
berikut ini
P*Q/R–S*T+U/V
A * (B – C) / (D + E) * F * G
V * (W / (X – (Y + Z)))
(2 * 3 / 2 – 7) * (9 + 5 / 3)
((2 + 3) * (5 –2) + 5) * (5 + 3 * 2)