09 Struktur Data Hirarki SDH - Binary - Heap Tree
By. Sri Rezeki Candra Nursari
Materi Materi Pengantar Struktur Data Abstract Data Type (ADT) Rekursif : Fibonacci Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick) Struktur Data Linier (Linked List, Stack, Queu)
3 3 sks sks ALGORI TMA STRUKTUR ALGORI TMA STRUKTUR DATA DATA -- Lit erat ur :
1. H.M Deit el, P.J Deit el, Small J ava How t o Program-sixt h Edit ion, Pear son Pr ent ice Hall, 2005
2. Elliot B. Kof f man, Paul A.T. Wolf gang, Obj ect s, Abst ract ion,
Dat a St ruct ures and Design Using J ava, J ohn Wiley &
Sons.I nc, 2005 3. Mar k Allen Weiss, Dat a St ruct ures & Algorit hm Analysis in
J ava, Addison-Wesley, 1999 4.
Moh.Sj ukani, Algorit ma & St rukt ur Dat a dengan C, C++ dan
J ava, Mit r a Wacana Media, Agust us 2005
5. Andr i Kr ist ant o, St rukt ur Dat a dengan C, Gr aha I lmu, 2003
6. Bambang Wahyudi, Pengant ar St rukt ur Dat a dan Algorit ma, Andi, 2004
7. Ema Ut ami, St rukt ur Dat a, Gr aha I lmu, 2007
TREE - POHON
TREE - POHON
- Tree merupakan salah sat u bent uk st rukt ur data yang non linear/ t idak linear yang menggambarkan hubungan yang bersifat hirarki (hubungan one t o many) antara elemen-elemen
Tree dapat juga didefinisikan sebagai
kumpulan simpul/ node dengan sat u
elemen khusus yang disebut ROOT dan
Istilah Umum Dalam TREE
1. Tree (pohon) dan Graph (Graf)
2. Simpul (Vert ex, Node) dan Busur (Edge, Arc)
3. Superordinat dan subordinat , fat her dan son, parent dan children
4. Root (akar) dan Leaf (daun)
5. Level (t ingkat ) dan Dept h (kedalaman)
6. Degree (derajat ) simpul dan degree
1. Tree/ Pohon & Graph/ Graf
- Tree (pohon) merupakan bagian dari graph
- Dengan simbol matemat ik pernyataan Tree
2. Simpul & Busur
- Pohon merupakan kumplan dari simpul dan busur, dimana salah sat u simpul merupakan akar (root ) dan simpul-simpul lain membent uk suat u sub pohon / sub t ree yang
2. Simpul & Busur
- Simpul/ Node/ Tit ik/ Vert ex
- – Tree t erdiri dari 14 buah simpul (n=14) simpul A
s.d. N at au v s.d. v
13
V = {v , v , v ....... , v )1
2
13
- Busur/ Edge
- – Tree t erdiri dari 13 buah
3. Superordinat & Subordinat
- Superordinatdiist ilahkan dengan fat her/ bapak/ parent sedangkan subordinat diist ilahkan dengan son/ anak/ child
- Contoh:
- – Simpul B merupakan
superordinat simpul E dan F
- – Simpul E dan F merupakan
subordinat simpul B
- – Simpul B mempunyai
4. Root/ Akar & Leaf/ Daun
- Root (akar) adalah simpul yang t idak mempunyai superordinat .
- – Unt uk pohon yang dicont ohkan
A disamping, maka akar adalah simpul
- – Root : Sat u-sat unya node khusus
dalam t ree yang tak punya predecessor
- Leaf/ daun adalah simpul yang t idak
mempunyai subordinat
5. Level & Depth/ Kedalaman
- Level (t ingkat ) akar dinyatakan berada pada level 0, set iap t urunan sat u subordinat , level bertambah
1
- Dept h (kedalaman) sat u pohon yang mempunyai level teratas atau level tert inggi = k, maka disebut kedalamannya = k
- – Unt uk pohon yang
6. Degree sebuah simpul
- Degree merupakan sebuah simpul yang menyatakan jumlah simpul subordinat dari simpul t ersebut
- – Unt uk pohon
disamping :
- Sim pul A : degree = 3
- Sim pul B : degree = 2
istilah-istilah umum dalam tree
- Predecessor: node yang berada di atas node tertent u
Successor : node yang berada di bawah
node tertent u
istilah-istilah umum dalam tree
: seluruh node yang terletak sebelum node tertent u dan terletak pada jalur yang sama
- Ancestor
- Descendant : seluruh node yang terletak
sesudah node tertent u dan terletak pada jalur yang sama
Ancest or (F) = A Descendant (A) = F,G & D,E
A
Parent (D) = B Child (A) = B,C Sibling (F) = G Size = 7
B C Height = 3
Root = A Leaf = D,E,F,G
A
Ancest or (F) = …… Descendant (C) = …. Parent (D) = ….
B Child (A) = ….. C Sibling (F) = ….
Size = …. Height = …. Root = ….. Leaf = ……
G D E F
Degree: Simpul A = ….
Simpul B = ..... Simpul C = ….
Root / Akar = ….. Leaf/ Daun = …… Degree Simpul ......, Degree = ....
A Simpul ......, Degree = ....
et c......
B Superordinat / Parent = ….
C
Subordinat/ Child Simpul ......, Child = ....
Simpul ......, Child = ....
G D E F et c......
Node/ Vert ex/ Tit ik/ Simpul = …. Busur/ Edge/ Arc = ….
J H
I Level = ......
7a. M -ary Tree
- M atau K menyatakan derajat pohon
- Cont oh : sebuah simpul pohon M -ary
dimana M =3 digambarkan dengan Linked-
List
INFO
7b. Binary Tree
- M atau K menyatakan derajat pohon
- Cont oh : sebuah simpul pohon Binary Tree / Pohon Biner dimana M =2 digambarkan dengan Linked-List
INFO
Contoh Pohon Biner A B C D E F G
8. Link, Null-Link dan Bukan Null-Link
- Link –
Point er yang digunakan unt uk menunjuk simpul subordinat
- – Unt uk cont oh pohon biner adalah set iapsimpul mempynyai 2
link, sehingga jumlah link = n* 2
- Null-Link
- – Link yang bernilai Null, yait u link yang t idak menunjuk simpul
subordinat
- Bukan Null-Link
Pohon dengan M = 3 Jumlah simpul 10, maka n = 10 Jumlah Null-Link = n * (M -1) + 1
Contoh Soal : M -ary
- Sebuah pohon M -ary dengan 10 buah simpul. Apabila M =3, Hit ung berapa jumlah Null-Link nya?
A B C D G H
Pohon dengan M = 2 Jumlah simpul 10, maka n = 10 Jumlah Null-Link = n * (M -1) + 1
Contoh Soal : Pohon Biner
- Sebuah pohon biner dengan 10 buah simpul. Apabila M =2, Hit ung berapa jumlah Null-Link nya?
A B C F
BINARY TREE – POHON BINER
POHON BINER / BINARY TREE
- Sebuah pohon biner/ binary t ree adalah merupakan himpunan t erbat as yang
- – M ungkin kosong
- – Terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang saling asing
- – Dia humpunan yang saling asing t ersebut adalah pohon
biner pada sub pohon kiri (left ) dan sub pohon kanan
(right )
POHON BINER / BINARY TREE
- M erupakan pohon M -ary dimana M =2, yang art inya set iap simpul paling banyak memiliki 2 simpul
subordinat yang biasa disebut subordinat kiri (left -
child) dan subordinat kanan (right -child)
INFO Left Right
POHON BINER / BINARY TREE
- St rict ly Binary Tree merupakan pohon biner yang semua simpulnya, (kecuali simpul leaf/ daun)
mempunyai lengkap simpul subordinat kiri dan
subordinat kanan Sebuah pohon biner st rict lybinary t ree, apabila
mempunyai n buah daun, maka akan mempunyai (2n-1) buah simpul
A
COM PLETE BINARY TREE/ FULL BINARY TREE/
ALM OST COM PLETE BINARY TREE
- Complet e Binary Tree dengan kedalaman = d, merupakan pohon biner st rict ly binary t reedimana semua daun hanya berada pada level d
- Pada pohon complet e binary t ree/ full binary t ree/ almost complet e binary t ree berlaku :
n=2^ k
- – Pada leve k jumlah simpul
COM PLETE BINARY TREE/ FULL BINARY TREE/
- Pada pohon complet e binary t ree/ full binary t ree/ almost complet e binary t ree berlaku :
- – Unt uk pohon dengan kedalaman d, maka jumlah simpul bukan daun n = (2^ d)-1
- – Bila jumlah seluruh simpul = n, maka kedalaman pohon adalah d = log (n+1)-1
2
- – Set iap simpul yang berada dibaw ah level d-1, mempunyai dua subordinat
COM PLETE BINARY TREE/ FULL BINARY TREE/ ALM OST COM PLETE BINARY TREE A A B C B C
F G E F D G E D J K L M N H J K L M N
O
I H
I Almost Complete
COM PLETE BINARY TREE/ FULL BINARY TREE/
ALM OST COM PLETE BINARY TREE
Bukan Almost Complete A B C D E F J K HI Bukan Almost Complete Binary Tree A B C Almost Complete Binary Tree dan tapi bukan Strictly Binary Tree A B C D E F G H
I L M
POHON BINER SEIM BANG –
BALANCED BINARY TREE (AVL)
POHON BINER SEIM BANG - AVL
- AVL diambil dari nama G.M . Adelson-Velskii dan E.M . Landis, 2 orang ahli mat emat ika Rusia yang pertama
kali (1962) memperkenalkan met ode unt uk membuat
pohon biner selalu seimbang - Pohon Biner Seimbang / Berimbang adalah pohon biner yang ket inggian subpohon kiri dan subpohon kanan unt uk set iap simpul superordinat , paling banyak berselisih 1
CONTOH : BALANCED BINARY TREE UNBALANCED BINARY TREE A B C D E F G J K H
I L M N A B C D E F G J K H
I L M N O
PENOM ORAN SIM PUL POHON BINER
- Berdasarkan konversi dapat disepakat i cara penomoran set iap simpul dalam pohon biner, yait u:
- – Bila sebuah simpul bernomor n, maka subordinat kiri bernomor 2n dan subordiat kanan bernomor 2n+1
- – Simpul akar, diberi nomor 1
A
1 A n
2
3 B C
PENOM ORAN SIM PUL POHON BINER
Level M aksimum jumlah simpul pada M aksimum jumlah seluruh simpul
(k) level sampai dengan level 2^k2^(k+1)-1
1
1
1
2
3
2
4
7
3
8
15
4
5
6
BINARY TREE/ POHON BINER
- Proses Pohon Biner (Binary Tree), adalah
1. M endeklarasikan st rukt ur simpul
2. Inisialisasi
3. Pembuatan sebuah simpul
4. Pembuatan simpul akar
BINARY TREE/ POHON BINER
- Proses Pohon Biner (Binary Tree), adalah
1. Deklarasi st rukt ur simpul
2. Inisialisasi
BINARY TREE/ POHON BINER
- Proses Pohon Biner (Binary Tree), adalah
3. Pembuatan sebuah simpul
BINARY TREE/ POHON BINER
- Proses Pohon Biner (Binary Tree), adalah
4. Pembuatan simpul Akar
BINARY TREE/
POHON BINER- Proses Pohon Biner (Binary Tree), adalah
5. Penambahan / melakukan insert simpul baru kedalam
sebuah
BINARY TREE/ POHON BINER
- Proses Pohon Biner (Binary Tree), adalah
6. Pembacaan/ pene lusuran pohon biner
HEAP & B-TREE
HEAP TREE
Heap adalah t ree yang mempunyai persamaan sebagai berikut :
R[i] < r[2i] dan R[i] < r[2i+1]
Heap Tree disebut juga Complete Binary Tree , jika suat u node mempunyai child, maka jumlah childnya harus selalu dua
, apabila parent nya lebih kecil M inimum Heap
HEAP TREE
Contoh HEAP TREE
9
12
25 M INIM UM HEAP TREE
Contoh HEAP TREE
63
55
25 M AKSIM UM HEAP TREE
1. Penambahan/ melakukan insert simpul
HEAP-TREE
- Operasi dalam Heap Tree)
2. Penghapusan/ melakukan Delete simpul
HEAP-TREE
- Operasi dalam Heap Tree)
1. Penambahan/ melakukan insert simpul
Insertion
- Insert 2 (Percolat e Up)
- -1
1
43
3
8
5
65
2
58
40
42
4
Insertion
- Insert 2 (Percolat e Up)
- -1
1
43
2
8
5
65
3
58
40
42
4
Insertion
- Insert 14
13
21
16
24
31
19
68
Insertion
- Insert 14
13
21
16
24
14
19
68
Insertion
- Insert 14
13
14
16
24
21
19
68
HEAP-TREE
- Operasi dalam Heap Tree)
2. Penghapusan/ melakukan Delete simpul
- Percolat e Dow n
- -1
1
43
3
3
2
65
58
40
42
4 Delete M inimum
4
1
43
3
3
2
65
58
40
42 Delete M inimum
3
1
43
4
3
2
65
58
40
42 Delete M inimum: Completed
13
14
16
19
21
19
68 Delete M in (Alternative)
- Percolat e Dow n
14
16
19
21
19
68 Delete M in (Alternative)
Delete M in (Alternative)
14
16
19
21
19
68
14
19
16
21
19
68 Delete M in (Alternative)
Delete M in (Alternative)
14
19
16
26
21
19
68
Delete M in (Alternative)
14
19
16
26
21
19
68
B-TREE
B-Tree adalah t ree yang set iap nodenya dapat berisi lebih daripada sat u elemen
Jumlah elemen dalam 1 node t ergant ung kepada order B-Tree t ersebut
Jumlah minimum elemen dalam set iap node (kecuali ROOT) adalah d, dan jumlah maksimum elemen di ROOT adalah sat u dan jumlah
1. Penambahan/ melakukan insert simpul
B-TREE
- Operasi dalam Pohon B (B- Tree)
2. Penghapusan/ melakukan Delete simpul
B-TREE
- Operasi dalam Pohon B (B- Tree)
1. Insert
Apabila node/ simpul belum penuh (jumlah elemen < 2d), maka elemen dapat langsung diinsert Jika node/ simpul sudah penuh, maka lakukan
NODE SPLIT dengan langkah sebagai berikut
Split node/ simpul menjadi 2
B-TREE
- Operasi dalam Pohon B (B- Tree)
2. Delete
Jika target node/ simpul yang akan dihapus berisi elemen lebih dari
d, maka target elemen dapat langsung dihapus, tanpa harus di regenerate Contoh : Split node/ simpul
10 Root 5 6 7 15 16 18 delete 6 5 7 15 16 18
Jika target node/ simpul yang akan dihapus berisi d node/ simpul, penghapusan akan menyebabkan underflow, maka regenerate dilakukan dengan meminjam elemen yang berada di node/ sim;ul kiri atau kanan (yang memiliki elemen lebih dari d).
B-TREE
- Operasi dalam Pohon B (B- Tree)
2. Delet e
Jika node/ simpul kiri maupun kanan yang akan dilakukan peminjaman t ernyat a mempunyai elemen kurang dari d, jika dilakukan peminjaman node/ simpul t ersebut akan t erjadi underflow, maka regenerat e akan dilakukan dengan menggabung node/ simpul yang akan dihapus dengan node/ simpul kiri yang akan dihapus dengan node/ simpul di kiri/ kanan
Contoh : Split node/ simpul
B-TREE
B-TREE
B-TREE
B-TREE
Heap Sort Seperti metode struktur organisasi, nilai ditukarkan dari root ke level yang paling rendah
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
2 3 1 7 1 4 6 1 3 1 0
1
5 7 1 2
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
2 3 1 7 1 4 6 1 3 1 0
1
5 7 1 2 i=5 i=5
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
2 3 1 7 1 4 7 1 3 1 0
1
5 6 1 2 i=4 i=4
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
2 3 1 7 1 4 7 1 3 1 0
1
5 6 1 2 i=3 i=3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
2 3 1 7 1 4 7 1 3 1 0
1
5 6 1 2 i=2 i=2
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
2 3 1 7 1 4 7 1 3 1 0
1
5 6 1 2 i=1 i=1
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1 7 1 3 1 4 7 1 2 1 0
1
5 6 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1 4 1 3 1 0 7 1 2
6
1 5 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1 3 1 2 1 0
7
5
6
1 1 4 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1 2 7 1 0
1
5
6 1 3 1 4 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1 0
7
6
1
5 1 2 1 3 1 4 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
7
5
6 1 1 0 1 2 1 3 1 4 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
6
5
1 7 1 0 1 2 1 3 1 4 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1
5
6 7 1 0 1 2 1 3 1 4 1 7 2 3
Heap Sort - M ax/ Descending
A: [ 23,17,14,6,13,10,1,5,7, 12]
1
5
6 7 1 0 1 2 1 3 1 4 1 7 2 3
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8 1 7 1 4 6 1 3 1 0
1
5 7 1 2
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8 1 7 1 4 6 1 3 1 0
1
5 7 1 2 i=5 i=5
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8 1 7 1 4 6 1 2 1 0
1
5 7 1 3 i=4 i=4
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8 1 7 1 4 5 1 2 1 0
1
6 7 1 3 i=3 i=3
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8 1 7
1 5 1 2 1 0 1 4
6 7 1 3 i=2 i=2
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8
5
1 1 7 1 2 1 0 1 4
6 7 1 3 i=1 i=1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
1
5
8 1 7 1 2 1 0 1 4
6 7 1 3
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
5 1 2
8 1 7 1 3 1 0 1 4
6
7
1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
5 1 2
8 1 7 1 3 1 0 1 4
6
7
1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
7 1 2
8 1 7 1 3 1 0 1 4
6
5
1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
7 1 2
8 1 7 1 3 1 0 1 4
6
5
1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
8 1 2 1 4 1 7 1 3 1 0
7
6
5
1
Heap Sort- M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
1 0 1 2 1 4 1 7 1 3
8
7
6
5
1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
1 2 1 3 1 4 1 7 1 0
8
7
6
5
1
Heap Sort- M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
1 3 1 7 1 4 1 2 1 0
8
7
6
5
1
Heap Sort - M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
1 4 1 7 1 3 1 2 1 0
8
7
6
5
1
Heap Sort- M in/ Ascending
A: [ 8,17,14,6,13,10,1,5,7, 12]
1 7 1 4 1 3 1 2 1 0
8
7
6
5
1