Anda di halaman 1dari 42

Tree

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. Rlevel 0;
A,Clevel 1; H,M,Ilevel 2; N,Tlevel 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

Hasil Penggambaran BT dari GT


LATIHAN

Konversi pohon umum ini ke pohon biner

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

 Contoh untuk data : 7,4,2,8,5,9,1,3


Latihan

 Buatlah binary tree dari


HAKCBLJ
 Buatlah pohon cari binar
untuk elemen-elemen data :
78, 12, 67, 34, 6, 25, 50,
33, 29
Penelusuran Pohon(TRAVERSING)
 Kunjungan terhadap nodes
umumnya dilakukan untuk
keperluan pengolahan data
selanjutnya
 Ada 3 metode penelusuran pohon :
 Metode PRE-ORDER
 Metode IN-ORDER
 Metode POST-ORDER
Penelusuran Pohon
Penelusuran PRE-ORDER pada Pohon Binar
 Kunjungi Simpul Akar
 Telusuri subpohon kiri
 Telusuri subpohon kanan

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

Untuk membentuk suatu


binary tree berdasarkan
preorder, inorder dan
postorder dapat dilakukan
dengan syarat menggunakan
2 dari tiga penelusuran dan
salah satunya adalah inorder
Contoh1 :
 Diketahui :
Secara preorder : ABDGCEHIF
Secara inorder : DGBAHEICF
 Caranya adalah :
Telusuri sepanjang preorder
 Didapat A, kemudian jadikan sebagai root
 Ambil B, lihat di inorder. B berada disebelah
kiri dari A, maka B ditulis di kiri dari A
 dst
 Hasil : A

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)

Anda mungkin juga menyukai