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 H

  I 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^k

  2^(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