sd c 11 - reezeki2011 | tutorial & bahan pengembangan diri ... file• sjukani moh., (2007),...

Post on 01-Apr-2019

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

STRUKTUR DATA

By : Sri Rezeki Candra Nursari

2 SKS

Literatur

• Sjukani Moh., (2007), “Struktur Data (Algoritma & Struktur Data 2) dengan C, C++”, Mitra Wacana Media

• Utami Ema. dkk, (2007),”Struktur Data (Konsep & Implementasinya Dalam Bahasa C & Free Pascal di GNU/Linux)”, Graha Ilmu

• Hubbard Jhon, R., Ph.D, (2000), “Schaum’s Outline Of Theory and Problems of Data Structures With C++” McGraw-Hill

• Bambangworawan Paulus., (2004), “Struktur Data Dengan C”, Andi Yogyakarta

Materi1. Data dan Struktur Data2. Array3. Struktur dan Record4. Pointer5. Linked List6. Stack (Tumpukan)7. Queue (Antrian)8. Tree (Pohon)9. AVL Tree10. Heap dan B-Tree11. Sorting12. Search13. Hashing14. Graph

HEAP & B-TREE

Pertemuan 11

2 SKS

Heap SortSeperti metode struktur organisasi,nilai ditukarkan dari root ke level yang paling rendah

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

6 13 10 1

5 7 12

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

6 13 10 1

5 7 12

i=5

i=5

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=4

i=4

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=3

i=3

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=2

i=2

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

23

17 14

7 13 10 1

5 6 12

i=1i=1

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

17

13 14

7 12 10 1

5 6 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

14

13 10

7 12 6 1

5 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

13

12 10

7 5 6 1

14 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

12

7 10

1 5 6 13

14 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

10

7 6

1 5 12 13

14 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

7

5 6

1 10 12 13

14 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

6

5 1

7 10 12 13

14 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

1

5 6

7 10 12 13

14 17 23

Heap Sort -Max/DescendingA: [ 23,17,14,6,13,10,1,5,7, 12]

1

5 6

7 10 12 13

14 17 23

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

6 13 10 1

5 7 12

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

6 13 10 1

5 7 12

i=5

i=5

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

6 12 10 1

5 7 13

i=4

i=4

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 14

5 12 10 1

6 7 13

i=3i=3

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

17 1

5 12 10 14

6 7 13

i=2i=2

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

5 1

17 12 10 14

6 7 13

i=1i=1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

1

5 8

17 12 10 14

6 7 13

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

5

12 8

17 13 10 14

6 7 1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

5

12 8

17 13 10 14

6 7 1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

7

12 8

17 13 10 14

6 5 1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

7

12 8

17 13 10 14

6 5 1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

8

12 14

17 13 10 7

6 5 1

Heap Sort-Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

10

12 14

17 13 8 7

6 5 1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

12

13 14

17 10 8 7

6 5 1

Heap Sort-Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

13

17 14

12 10 8 7

6 5 1

Heap Sort -Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

14

17 13

12 10 8 7

6 5 1

Heap Sort-Min/AscendingA: [ 8,17,14,6,13,10,1,5,7, 12]

17

14 13

12 10 8 7

6 5 1

HEAP TREE

Heap adalah tree yang mempunyai persamaan sebagai berikut:

R[i] < r[2i] dan R[i] < r[2i+1] Heap Tree disebut juga Complete Binary Tree,

jika suatu node mempunyai child, maka jumlah childnya harus selalu dua

Minimum Heap, apabila parentnya lebih kecil daripada kedua childnya

Maksimum Heap, apabila parentnya lebih besar daripada kedua childnya

HEAP TREE

Contoh HEAP TREE

9

12 25

22 55

MINIMUM HEAP TREE

Contoh HEAP TREE

9

63 25

22 55

MAKSIMUM HEAP TREE

HEAP-TREE

• Operasi dalam Heap Tree) 1. Penambahan/melakukan insert simpul2. Penghapusan/melakukan Delete simpul

HEAP-TREE

• Operasi dalam Heap Tree) 1. Penambahan/melakukan insert simpul

Insertion

• Insert 2 (Percolate Up)

40 42

-1

0 1

43 5 3 8

65 58 4 2

0 1 43 5 3 8 65 58 40-1 42 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14

231-1

Insertion

• Insert 2 (Percolate Up)

40 42

-1

0 1

43 5 2 8

65 58 4 3

0 1 43 5 3 8 65 58 40-1 42 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14

321-1

Insertion

• Insert 14

14

13

21 16

24 31 19 68

65 26 32

Insertion

• Insert 14

31

13

21 16

24 14 19 68

65 26 32

Insertion

• Insert 14

31

13

14 16

24 21 19 68

65 26 32

HEAP-TREE

• Operasi dalam Heap Tree) 2. Penghapusan/melakukan Delete simpul

0 1 43 3 3 2 65 58 40-1 42 40 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 Minimum

• Percolate Down

0 1 43 3 3 2 65 58 404 420 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

Delete Minimum

3 1 43 4 3 2 65 58 400 420 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

Delete Minimum: Completed

13

14 16

19 21 19 68

65 26 32 31

Delete Min (Alternative)

14 16

19 21 19 68

65 26 32 31

Delete Min (Alternative)

• Percolate Down

Delete Min (Alternative)

14

16

19 21 19 68

65 26 32 31

14

19 16

21 19 68

65 26 32 31

Delete Min (Alternative)

Delete Min (Alternative)

14

19 16

26 21 19 68

65 32 31

Delete Min (Alternative)

14

19 16

26 21 19 68

65 31 32

B-TREE

B-Tree adalah tree yang setiap nodenya dapat berisi lebih daripada satu elemen

Jumlah elemen dalam 1 node tergantung kepada order B-Tree tersebut

Jumlah minimum elemen dalam setiap node (kecuali ROOT) adalah d, dan jumlah maksimum elemen di ROOT adalah satu dan jumlah maksimumnya adalah 2d

Jumlah minimum child suatu node di dalam B-Tree adalah 0, dan jumlah maksimumnya adalah jumlah elemen +1

B-TREE

• Operasi dalam Pohon B (B- Tree) 1. Penambahan/melakukan insert simpul2. 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 25 37 40 Akan menginsert elemen 27

Letakkan d elemen terkecil di node/simpul kiri Letakkan d elemen terkecil di node/simpul kanan Letakkan elemen tengah ke node/simpul parentnya

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 5 7 10 15 16 25 26

B-TREE• Operasi dalam Pohon B (B- Tree)

2. Delete Jika node/simpul kiri maupun kanan yang akan

dilakukan peminjaman ternyata mempunyai elemen kurang dari d, jika dilakukan peminjaman node/simpul tersebut akan terjadi underflow, maka regenerate 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 715 16 25 27 delete 15 20 Root 5 7 9 16 25 27

B-TREE

B-TREE

B-TREE

B-TREE

top related