• Tidak ada hasil yang ditemukan

09 Struktur Data Hirarki SDH - Binary - Heap Tree

N/A
N/A
Protected

Academic year: 2018

Membagikan "09 Struktur Data Hirarki SDH - Binary - Heap Tree"

Copied!
108
0
0

Teks penuh

(1)

Algoritma Struktur Data

3 sks

(2)

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)

Struktur Data Hirarki (Tree, Graph, Hash Tables)

(3)

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 Yogyakar t a, 2001

9. Wir t h, Niklaus, Algorit hmic + Dat a St ruct ures Programs, Pr ent ice-Hall, 1976

10. Thompson Susabda Ngoen , Algorit ma dan St rukt ur Dat a

Bahasa C, Mit r a Wacana Media, 2009

ALGORI TMA

(4)

TREE - POHON

(5)

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

node yang lainnya t erbagi menjadi

(6)

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

pohon

(7)

1. Tree/ Pohon & Graph/ Graf

Tree (pohon)

merupakan bagian

dari graph

Dengan simbol

matemat ik

pernyataan Tree

dapat dit uliskan

sebagai berikut :

(8)

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

dapat dit uliskan sbb:

T = (V, E)

(9)

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 v0 s.d. v13

V = {v0, v1, v2... , v13)

Busur/ Edge

Tree t erdiri dari 13 buah busur (m=12)

e0 s.d. e12

(10)

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

superordinat yait u simpul E (left child) dan F (right child)

• Parent : predecessor sat u level di atas suat u node

(11)

4. Root/ Akar & Leaf/ Daun

• Root (akar) adalah simpul yang t idak mempunyai superordinat .

– Unt uk pohon yang dicont ohkan

disamping, maka akar adalah simpul A

– Root : Sat u-sat unya node khusus dalam t ree yang tak punya

predecessor

• Leaf/ daun adalah simpul yang t idak mempunyai subordinat

– Unt uk pohon yang dicont ohkan

disamping, maka daun adalah simpul C, E, G, I, J, K, L, M , N

(12)

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

dicontohkan disamping,

karena level tert inggi adalah 3 maka dept h =3

• Height : Banyaknya

(13)

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

• Sim pul C : degree = 0

(14)

istilah-istilah umum dalam tree

Predecessor: node yang berada di atas node

tertent u

(15)

istilah-istilah umum dalam tree

Ancestor

: seluruh node yang terletak

sebelum node tertent u dan terletak pada

jalur yang sama

Descendant

: seluruh node yang terletak

sesudah node tertent u dan terletak pada

jalur yang sama

Sibling

: node-node yang memiliki parent

yang sama dengan suat u node

(16)
(17)
(18)

Root / Akar = …..

Superordinat / Parent = ….

(19)

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

(20)

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

(21)

Contoh Pohon Biner

A

B C

D E F G

(22)

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

Link yang menunjuk simpul subordinat at au link yang

(23)

Contoh Soal : M -ary

Sebuah pohon M -ary dengan 10 buah

simpul. Apabila M =3, Hit ung berapa jumlah

Null-Link nya?

Pohon dengan M = 3 Jumlah simpul 10,

(24)

Contoh Soal : Pohon Biner

Sebuah pohon biner dengan 10 buah simpul.

Apabila M =2, Hit ung berapa jumlah Null-Link

nya?

Pohon dengan M = 2 Jumlah simpul 10,

(25)
(26)

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 )

(27)

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

INFO

(28)

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

B C

D E F G

H I

Jumlah daun/ leaf = 5

(29)

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 :

Pada leve k jumlah simpul

n=2^ k

Unt uk pohon dengan kedalaman d, maka jumlah seluruh simpul

n = 2^ (d+1)-1

(30)

COM PLETE BINARY TREE/ FULL BINARY TREE/

ALM OST COM PLETE 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 = log2(n+1)-1

Set iap simpul yang berada dibaw ah level d-1, mempunyai dua subordinat

Bila pada level d-1 sub pohon kanan ada simpul yang

(31)

COM PLETE BINARY TREE/ FULL BINARY TREE/

ALM OST COM PLETE BINARY TREE

Almost Complete Binary Tree dan Bukan Strictly Binary Tree karena simpul G hanya punya sat u anak

A

B C

D E F G

J K

H I L M N

Almost Complete

(32)

COM PLETE BINARY TREE/ FULL BINARY TREE/

ALM OST COM PLETE BINARY TREE

Bukan Almost Complete Binary Tree

karena simpul Chanya punya sat u anak

A

B C

D E F

J K

H I

Bukan Almost Complete Binary Tree

A

B C

D E F G

H

Almost Complete Binary Tree dan tapi bukan Strictly Binary Tree

A

B C

D E F G

(33)
(34)

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

Jadi pohon biner complet e dan almost complet e adalah

pohon biner berimbang

(35)

CONTOH : BALANCED BINARY TREE

UNBALANCED BINARY TREE

Unbalanced Binary Tree

A

B C

D E F G

J K

H I L M N

Balanced Binary Tree

A

B C

D E F G

J K

(36)

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

(37)

PENOM ORAN SIM PUL POHON BINER

Level (k)

M aksimum jumlah simpul pada level

2^k

M aksimum jumlah seluruh simpul sampai dengan level

2^(k+1)-1

(38)

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

5.

Penambahan/ melakukan insert simpul

baru kedalam sebuah pohon

(39)

BINARY TREE/ POHON BINER

Proses Pohon Biner (Binary Tree), adalah

1.

Deklarasi st rukt ur simpul

2.

Inisialisasi

(40)

BINARY TREE/ POHON BINER

Proses Pohon Biner (Binary Tree), adalah

(41)

BINARY TREE/ POHON BINER

Proses Pohon Biner (Binary Tree), adalah

(42)

BINARY TREE/

POHON BINER

Proses Pohon

Biner (Binary

Tree), adalah

5.

Penambahan

/ melakukan

insert simpul

baru kedalam

sebuah

(43)

BINARY TREE/ POHON BINER

Proses Pohon Biner

(Binary Tree),

adalah

6.

Pembacaan/ pene

(44)

HEAP & B-TREE

(45)

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

M inimum Heap

, apabila parent nya lebih kecil

daripada kedua childnya

(46)
(47)

Contoh HEAP TREE

9

12 25

22 55

(48)

Contoh HEAP TREE

63

55 25

22 9

(49)

HEAP-TREE

Operasi dalam Heap Tree)

1.

Penambahan/ melakukan insert simpul

(50)

HEAP-TREE

Operasi dalam Heap Tree)

(51)
(52)
(53)

Insertion

Insert 14

14

13

21 16

24 31 19 68

(54)

Insertion

Insert 14

31 13

21 16

24 14 19 68

(55)

Insertion

Insert 14

31 13

14 16

24 21 19 68

(56)

HEAP-TREE

Operasi dalam Heap Tree)

(57)

0 1 43 3 3 2 65 58 40

-1

42 4

0 1 2 3 4 5 6 7 8 9 10 11 12 13

-1

0 1

43 3 3 2

65 58 40 42 4

14

Delete M inimum

(58)

0 1 43 3 3 2 65 58 40

4

42

0 1 2 3 4 5 6 7 8 9 10 11 12 13

4

0 1

43 3 3 2

65 58 40 42

14

(59)

3 1 43 4 3 2 65 58 40

0

42

0 1 2 3 4 5 6 7 8 9 10 11 12 13

0

3 1

43 4 3 2

65 58 40 42

14

(60)

13

14 16

19 21 19 68

65 26 32 31

(61)

14 16

19 21 19 68

65 26 32 31

Delete M in (Alternative)

(62)

Delete M in (Alternative)

14

16

19 21 19 68

(63)

14

19 16

21 19 68

65 26 32 31

(64)

Delete M in (Alternative)

14

19 16

26 21 19 68

(65)

Delete M in (Alternative)

14

19 16

26 21 19 68

(66)

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

maksimumnya adalah 2d

Jumlah minimum child suat u node di dalam

(67)

B-TREE

Operasi dalam Pohon B (B- Tree)

1.

Penambahan/ melakukan insert simpul

(68)

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

25 37 40

Akan menginsert elemen 27

Let akkan d elemen t erkecil di node/ simpul kiri

Let akkan d elemen t erkecil di node/ simpul kanan

(69)

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).

Parent / separator akan berubah

 Contoh : Split node/ simpul

 10 20  Root

 5 7 9 15 16 25 26  delete 15

 9 20  Root

(70)

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

 9 20  Root

 5 7 15 16 25 27  delete 15

 20  Root

(71)
(72)
(73)
(74)
(75)

Heap Sort

Seperti metode struktur

organisasi,

(76)

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

(77)

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

(78)

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

(79)

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

(80)

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

(81)

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

(82)

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

(83)

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

(84)

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

(85)

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

(86)

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

(87)

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

(88)

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

(89)

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

(90)

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

(91)

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

(92)

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

(93)

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

(94)

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

(95)

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

(96)

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

(97)

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

(98)

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

(99)

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

(100)

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

(101)

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

(102)

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

(103)

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

(104)

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

(105)

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

(106)

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

(107)

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

(108)

Referensi

Dokumen terkait

Rantai yang sebelah tepi dari residu-residu histidin (asam amino E7 dan F8 di dalam rantai α dan β) terletak pada tiap tepi bidang datar dari kelompok heme yang berinteraksi

Melihat fakta yang ada di wilayah kerja Puskesmas Tareran seperti tingkat pendidikan dan pengetahuan ibu tentang gizi, serta upaya-upaya yang sudah dilakukan untuk

from pre-research that previously described, the temporary conclusion is: Department of Chemistry Education students feel difficulty and less interested on General

Keuntungan yang didapat bagi pasien dari segi biaya yang lebih murah karena proses penyembuhan luka yang cepat, sedangkan dampak bagi perawat adalah

Etika moral berkenaan dengan kebiasaan berperilaku yang baik dan benar berdasarkan kodrat manusia. Apabila etika ini dilanggar timbullah kejahatan, yaitu perbuatan yang tidak baik

Hocamız Mehmed Efendi (ks) Hazretleri o kadar büyük bir tevazu sahibi ve kendisini gizlemekte o kadar mahir idi- ler ki; en iyi bildikleri bir mevzuyu dahi, muhatapları, Ho-

Di Indonesia, penelitian mengenai hubungan antara rentang tangan dan fungsi paru pada anak yang menderita penyakit asma belum pernah dilakukan Melalui penelitian

(4) Ketentuan lebih lanjut mengenai ujian kompetensi keahlian kejuruan sebagaimana dimaksud pada ayat (1) diatur dalam POS UN yang ditetapkan oleh BSNP. Kepala Sekolah