9

20
Struktur Data Pohon (Tree) 10/12/2012 Nurdiansah PTIK 09 UNM 1

Transcript of 9

Page 1: 9

Struktur Data Pohon (Tree)

10/12/2012 Nurdiansah PTIK 09 UNM 1

Page 2: 9

Pengertian Struktur pohon (Tree structure) adalah salah satu

bentuk struktur data non-linier.

Pohon adalah susunan dari satu atau lebih simpul (node) yang terdiri dari satu simpul khusus yang disebut akar (root) sedang sisanya membentuk subtree dari akar.

10/12/2012 Nurdiansah PTIK 09 UNM 2

Page 3: 9

10/12/2012 Nurdiansah PTIK 09 UNM 3

Akar (root) dari struktur pohon tersebut adalah A.

Satu simpul akan berisi :- informasi (mis : A, B, dst).- cabang-cabang (link) yang menghubungkan

ke simpul-simpul yang lain.Simpul A sebagai akar mempunyai 3 link yang membentuk SUBTREE B, C, dan D.Jumlah Subtree dari satu simpul disebut Derajat (Degree).Derajat dari simpul : A = 3, B = 2, C = 1, G = 0.Simpul yang mempunyai derajat = 0 disebut SIMPUL TERMINAL atau DAUN (LEAF).

Page 4: 9

10/12/2012 Nurdiansah PTIK 09 UNM 4

Struktur pohon yang terkenal adalah struktur geneologi (silsilah).

Dalam struktur pohon silsilah dikenal istilah simpul anak (children) dan orang tua dari anak (parent).

Anak dari orang tua yang sama disebut SIBLING (saudara).

Dua buah simpul yang mempunyai tingkat yang sama dalam sebuah pohon disebut SEPUPU.

DERAJAT (Degree) suatu pohon adalah derajat maksimum dari suatu simpul dalam pohon.

Page 5: 9

10/12/2012 Nurdiansah PTIK 09 UNM 5

NENEK MOYANG dari suatu simpul adalah seluruh simpul-simpul yang ada sepanjang lintasan dari akar sampai simpul tersebut.

KEDALAMAN (Height atau Depth) dari suatu pohon ditentukan oleh level maksimum dari simpul dalam pohon.

HUTAN (Forest) adalah susunan dari beberapa pohon.

Page 6: 9

Cara Menyatakan Struktur Pohon

Ada 2 cara untuk menyatakan struktur pohon, yaitu :

1. Gambar

10/12/2012 Nurdiansah PTIK 09 UNM 6

2. Daftar (List)Contoh : (A (B(E(K,L),F), C(G),

D(H(M),I,J)))

Page 7: 9

Perhitungan dalam Struktur Pohon

Jika diketahui : n = jumlah simpul/node.

k = derajat pohon

JUMLAH LINK = n . K

JUMLAH NULL – LINK = n (k -1) + 1

JUMLAH NON – ZERO LINK = n – 1

Struktur node k – ary :

10/12/2012 Nurdiansah PTIK 09 UNM 7

Page 8: 9

Pohon 3 - Ary

10/12/2012 Nurdiansah PTIK 09 UNM 8

Page 9: 9

10/12/2012 Nurdiansah PTIK 09 UNM 9

Dari gambar di atas diketahui :

n = 10

k = 3

maka dapat dihitung :

Jumlah Link = n. k = 10 . 3 = 30

Jumlah null –link = n (k-1) + 1

= 10 ( 3 – 1) + 1

= 21

Jumlah non – zero link = n – 1

= 10 – 1 = 9

Page 10: 9

Pohon Biner (Binary Tree)

Pohon Biner memiliki k = 2. Pohon Biner adalah himpunan terbatas yang :

1. Mungkin kosong atau2. Terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah himpunan lain yang tidak berhubungan dan membentuk subtree kiri dan subtree kanan dari pohon biner tersebut.

Simpul dalam pohon biner adalah susunan dari simpul- simpul yang masing-masing bisa kosong atau terdiri dari akar dan dua buah pohon biner yang terpisah (subtree kiri dan kanan).

10/12/2012 Nurdiansah PTIK 09 UNM 10

Page 11: 9

Full Binary Tree Complete Binary Tree

10/12/2012 Nurdiansah PTIK 09 UNM 11

Page 12: 9

10/12/2012 Nurdiansah PTIK 09 UNM 12

Pohon biner penuh (Full Binary Tree) adalah pohon biner yang mempunyai simpul atau node lengkap dari level 1 sampai level i.

Pohon biner lengkap (Complete Binary Tree) adalah pohon biner yang mempunyai simpul dengan nomor urut 1 sampai dengan n.

Kedalaman minimal dari pohon biner adalah :log2 n + 1 , dimana n = jumlah

simpul Jumlah maksimum simpul dari pohon biner

dengan level i, adalah 2i – 1 , dimana i > = 1

Jumlah simpul pada level i adalah 2i – 1

Page 13: 9

Contoh Soal 1

Bila kedalaman suatu pohon = 4 maka jumlah simpul dari pohon tersebut adalah :

24 – 1 = 16 – 1 = 15

Banyak simpul pada :

level 1 : 21-1 = 1

level 2 : 22-1 = 2

level 3 : 23-1 = 4

level 4 : 24-1 = 8

10/12/2012 Nurdiansah PTIK 09 UNM 13

Page 14: 9

Contoh Soal 2

Bila n = 15

maka kedalaman minimal :

log2 15 + 1 = (log 5 / log 2) + 1

= 1,17 / 0,3 + 1

= 3 + 1

= 4

10/12/2012 Nurdiansah PTIK 09 UNM 14

Page 15: 9

Skewed Tree

Skewed Tree adalah struktur pohon biner yang miring ke kiri atau kanan, atau dengan kata lain adalah pohon biner dengan subtree kiri kosong atau kanan kosong.

Bentuk pohon ini apabila disimpan dalam bentuk array akan sangat memboroskan dan tidak efisien

10/12/2012 Nurdiansah PTIK 09 UNM 15

Page 16: 9

Representasi Skewed Tree10/12/2012 Nurdiansah PTIK 09 UNM 16

Page 17: 9

10/12/2012 Nurdiansah PTIK 09 UNM 17

Penyimpanan data dalam memory dari pohon biner hanya menguntungkan kalau pohon binernya penuh sehingga tidak memboroskan tempat.

Untuk menanggulangi ini maka digunakan representasi linked list dimana masing-masing simpul akan mempunyai 3 field, yaitu :

Page 18: 9

Deklarasi :

struct nama simpul

{

tipe data DATA;

struct nama_simpul *RCHILD, *LCHILD;

};

10/12/2012 Nurdiansah PTIK 09 UNM 18

Page 19: 9

Representasi Link

10/12/2012 Nurdiansah PTIK 09 UNM 19

Pohon Biner Biasa Skewed Tree

Page 20: 9

To be continue…10/12/2012 Nurdiansah PTIK 09 UNM 20