Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

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

Presentasi serupa


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

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

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

3 Why Tree ?  Ada problem yang secara alamiah memang berhirarki : 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 BendaharaSekretaris Ketua Seksi

4 Modus Penggunaan Tree  Modus Struktur Tetap 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)

5 Terminologi Tree A D B C EFG • 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

6  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 jalur yang sama  Parent (ayah) Node pada hirarki langsung diatas node tersebut (predecessor satu level)  Child Node pada hirarki langsung dibawah node tersebut (successor satu level) Terminologi Tree A D B C EFG

7  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. Terminologi Tree A D B C EFG

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

9  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 Binary Tree

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

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

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

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

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

15  CBT dan PBT dapat diimplementasikan dalam array  Penomoran pada node-nodenya bersifat terurut dan tidak ada yang kosong (melompat). Representasi dengan Array A B I JK C DE F GH Dalam Array ABICFGJKDEH

16 Representasi dengan Array Contoh beberapa hubungan struktural representasi array : 1.Mendapatkan anak dari suatu node : 1.Anak kiri dari node I : I  2I Anak kanan dari node I : I  2I Mendapatkan ayah dari suatu node : 1.Ayah dari node I : I  [(I-1)/2] 3.Sibling dari node ke I : 1.I node genap : I-1 2.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 A B D C EFG A B D C EF G H Preorder : root, kiri, kanan FGBDECA ABDGHCEF

19 A B D C EF G H Inorder : kiri, root, kanan BGDHAECF

20 Postorder : kiri, kanan, root A B D C EF G H GHDBEFCA

21 Try This One ! A B C DEF 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 a.Operasi Penghapusan 1.Penghapusan dilakukan pada root. 2.Move node dengan indeks terbesar ke root. 3.Reheapify dari atas. b.Operasi Penyisipan 1.Penyisipan dilakukan pada indeks terbesar. 2.Reheapify dari bawah.

24 Penghapusan pada Heaptree I II

25 Penghapusan pada Heaptree III IV

26 Penghapusan pada Heaptree V 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

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 !

29 Binary Search Tree Deletion Langkah penghapusan node : 1.Tentukan lokasi node yang mengandung nilai yang akan dihapus. 2.Lihat jumlah child : 0, 1 atau 2

30 Binary Search Tree Deletion Child=0  leaf Hapus : 16 X Jika node yang dihapus adalah leaf, maka langsung hapus XX X

31 Binary Search Tree Deletion Child=1, kiri atau kanan Hapus 14 X Jika node yang dihapus mempunyai satu child kiri atau kanan, maka anak itu akan menempati posisi parentnya X

32 Binary Search Tree Deletion

33 Child=2, kiri dan kanan Hapus X

34  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. Binary Search Tree Deletion

35 Binary Search Tree Deletion

36 Kekurangan Binary Search Tree Input : 10, 15, 25, 17, 9, 7,  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 "Pertemuan 7 TREE Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009."

Presentasi serupa


Iklan oleh Google