Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009

Presentasi serupa


Presentasi berjudul: "Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009"— Transcript presentasi:

1 Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Pertemuan 7 TREE Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009

2 Tree : Struktur data berhirarkhi
Vs Pohon Bener Pohon Biner Akar Cabang Daun Tree : Struktur data berhirarkhi

3 Why Tree ? Ada problem yang secara alamiah memang berhirarki : Ketua
silsilah, kepengurusan organisasi, taksonomi, dsb Pengorganisasian informasi atau data : data / informasi global dibagi-bagi berdasarkan tingkatannya Memudahkan pengambilan dan penyusunan informasi (proses retrieve data) : secara linier  ketua, bendahara, sekretaris1, ketua seksi, anggota seksi, dll……. secara hirarkhi Ketua Bendahara Sekretaris Ketua Seksi

4 Modus Penggunaan Tree Modus Struktur Tetap Modus Struktur Dinamis
Sejak awal sampai akhir program tetap (hampir tidak mengalami perubahan jika mengalami tidak terlalu penting karena tidak merubah susunan). Contoh : Pohon Silsilah Modus Struktur Dinamis Senantiasa berubah dari awal sampai akhir program (perlu dilengkapi dengan fasilitas untuk menangani perubahan susunan) Modus Penggunaan Tree

5 Terminologi Tree A D B C E F G Tree
Sejumlah node yang berhubungan secara hirarkis dimana node-node pada hirarki lebih rendah merupakan cabang dari node dengan hirarki yang lebih tinggi Root Node dari suatu tree yang memiliki hirarki paling tinggi Leaf Node yang tidak mempunyai cabang Inner Node yang bukan leaf Edge Penghubung antara dua buah node A D B C E F G

6 Terminologi Tree A D B C E F G Predecessor
Node yang berada di atas node tertentu Successor Node yang berada di bawah node tertentu Ancestor/nenek moyang Seluruh node yang terletak sebelum node tertentu pada jalur yang sama Descendant/Keturunan Seluruh node yang terletak sesudah node tertentu pada Parent (ayah) Node pada hirarki langsung diatas node tersebut (predecessor satu level) Child Node pada hirarki langsung dibawah node tersebut (successor satu level) A D B C E F G

7 Terminologi Tree A D B C E F G Sibling
Node-node yang satu ayah, sehingga berlevel sama. Dikenal juga istilah sibling yang tepat di kanan dan sibling yang tepat di kiri Subtree Bagian dari tree berupa suatu node beserta descendantnya Size Banyaknya node dalam suatu tree Level (Depth) Hirarki suatu node. Root berhirarki 0, node dibawahnya berhirarki 1 dan seterusnya. Height Selisih hirarki dari level terendah ke level tertinggi/nomor level leaf terbawah. A D B C E F G

8 Terminologi Tree A D B C E F G Depth/Kedalaman
Jumlah edge dari root sampai dengan node tersebut Degree Banyaknya child dari suatu node Forest Himpunan dari sejumlah tree

9 Binary Tree Tree dengan cabang tidak lebih dari dua (hanya 0, 1, atau 2). Tree dengan seluruh innernya paling banyak berderajat 2. Cabang-cabang binary tree dibedakan menjadi cabang kiri dan cabang kanan. Jika hanya dijumpai satu cabang, harus ditentukan, cabang kiri atau kanan. Complete binary tree, full binary tree, perfect binary tree, skewed binary tree

10 Full Binary Tree Binary tree yang :
Setiap node memiliki tepat 0 atau 2 child

11 X √ √ Complete Binary Tree Binary tree yang :
Setiap leaf memiliki depth n or n-1 Setiap leaf pada depth n / pada level terendah merapat ke kiri X

12 Perfect Binary Tree Binary tree yang :
Setiap inner memiliki tepat dua child Setiap leaf terletak pada depth yang sama

13 Skewed Binary Tree Binary tree yang semua nodenya kecuali leaf hanya memiliki satu child

14 Representasi Binary Tree
Menggunakan pointer Data Bentuk paling sederhana (one-way) Data Bentuk 2-way Data Bentuk yang lebih lengkap

15 Representasi dengan Array
CBT dan PBT dapat diimplementasikan dalam array Penomoran pada node-nodenya bersifat terurut dan tidak ada yang kosong (melompat). A B I J K C D E F G H 5 4 3 2 1 6 7 8 9 10 Dalam Array A B I C F G J K D E H 1 2 3 4 5 6 7 8 9 10

16 Representasi dengan Array
Contoh beberapa hubungan struktural representasi array : Mendapatkan anak dari suatu node : Anak kiri dari node I : I  2I + 1 Anak kanan dari node I : I  2I + 2 Mendapatkan ayah dari suatu node : Ayah dari node I : I  [(I-1)/2] Sibling dari node ke I : I node genap : I-1 I node ganjil : I+1

17 Traversal / Kunjungan Traversal : Mengunjungi setiap node pada tree
Ada tiga cara mengunjungi node-node pada suatu tree : Preorder : root, kiri, kanan Inorder : kiri, root, kanan Postorder : kiri, kanan, root Note : You may ``pass through'' a node as many times as you like but you must only process the node once.

18 Preorder : root, kiri, kanan
B D C E F G A B D C E F G H A B D E C F G A B D G H C E F

19 Inorder : kiri, root, kanan
B D C E F G H B G D H A E C F

20 Postorder : kiri, kanan, root
B D C E F G H G H D B E F C A

21 Pre-Order: A-B-D-C-E-F In-Order: B-D-A-E-C-F Post-Order: D-B-E-F-C-A
Try This One ! A B C D E F Pre-Order: A-B-D-C-E-F In-Order: B-D-A-E-C-F Post-Order: D-B-E-F-C-A

22 HEAPTREE Suatu node dikatakan heapordered jika :
Nilai pada node tersebut lebih besar sama dengan atau lebih kecil sama dengan nilai child dibawahnya. Lebih kecil sama dengan dan lebih besar sama dengan tergantung dari definisi prioritas. (yang kecil atau yang besar yang diprioritaskan). Suatu tree dikatakan Heaptree Jika tree tersebut binary, complete dan seluruh nodenya heapordered. Binary: Setiap node paling banyak memiliki dua child. Complete: Setiap leaf memiliki depth n or n-1, dan setiap leaf pada depth n / pada level terendah merapat ke kiri. Tidak ada penomoran yang melompat. Heapordered: Setiap node terorganisasi berdasarkan suatu ketentuan prioritas

23 OPERASI HEAPTREE 10 9 8 5 2 7 1 4 6 3 Operasi Penghapusan
Operasi Penghapusan Penghapusan dilakukan pada root. Move node dengan indeks terbesar ke root. Reheapify dari atas. Operasi Penyisipan Penyisipan dilakukan pada indeks terbesar. Reheapify dari bawah.

24 Penghapusan pada Heaptree
I 1 9 2 8 3 4 6 7 5 5 2 6 1 4 8 3 9 7 3 9 8 5 2 7 1 4 6 II

25 Penghapusan pada Heaptree
9 3 8 5 2 7 1 4 6 III 9 7 8 5 2 3 1 4 6 IV

26 Penghapusan pada Heaptree
9 V 1 7 2 8 3 4 4 6 5 5 2 6 7 1 3 8 Bentuklah sebuah heap tree dari masukan berikut : 2, 4, 5, 7, 3, 10, 8, 1, 9, 6 dengan prioritas pada nilai yang lebih besar !

27 Binary Search Tree Binary Search Tree adalah binary tree dimana node-node dari tree berisi nilai yang sudah terurut sebagai berikut : Key node subtree kiri < key dari root < key node subtree kanan 18 10 5 23 14 21 33

28 Binary Search Tree Insertion
Key node subtree kiri < key dari root < key node subtree kanan Insert ke dalam BST yang masih kosong masukan berikut : 12, 15, 13, 9, 5, 11, 20 ! 12 9 15 13 20 5 11 1 6 4 3 2 7

29 Binary Search Tree Deletion
10 6 13 2 8 12 19 1 7 14 15 16 Langkah penghapusan node : Tentukan lokasi node yang mengandung nilai yang akan dihapus. Lihat jumlah child : 0, 1 atau 2

30 Binary Search Tree Deletion
10 6 13 2 8 12 19 1 7 14 15 16 Child=0  leaf Hapus : 16 X X X Jika node yang dihapus adalah leaf, maka langsung hapus X

31 Binary Search Tree Deletion
Child=1, kiri atau kanan 10 6 13 2 8 12 19 1 7 14 15 16 Hapus 14 X X Jika node yang dihapus mempunyai satu child kiri atau kanan, maka anak itu akan menempati posisi parentnya

32 Binary Search Tree Deletion
10 13 6 2 7 12 19 15 1 16

33 Binary Search Tree Deletion
X Child=2, kiri dan kanan Hapus 10 10 6 13 2 8 12 19 1 7 14 15 16

34 Binary Search Tree Deletion
Jika node yang dihapus punya dua child, gantikan posisinya dengan node terbesar yang ada pada subtree kiri. How to find the biggest element in left subtree? Go to the root of the left sub-tree and keep following right pointers until there are no more right pointers to be followed Atau gantikan posisi node yang dihapus itu dengan predecessor inordernya.

35 Binary Search Tree Deletion
8 6 13 2 7 12 19 1 14 15 16

36 Kekurangan Binary Search Tree
Input : 10, 15, 25, 17, 9, 7, 8 10 9 15 7 8 25 17 10 7 15 8 9 25 17 Bentuk binary tree yang paling ideal adalah perfect binary tree minimal complete binary tree Pada BST terdapat kemungkinan ada node yang terletak jauh dari root Waktu yang dibutuhkan untuk searching menjadi lebih banyak

37 LATIHAN: Input : ORY, JFK, BRU, DUS, ZRH, MEX, ORD, NRT, ARN, GLA dan GCM

38 Wassalamu’alaikum … Terima Kasih
Departemen Ilmu Komputer FMIPA-IPB 2009


Download ppt "Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009"

Presentasi serupa


Iklan oleh Google