Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

STRUKTUR DATA 2014 M. Bayu Wibisono.

Presentasi serupa


Presentasi berjudul: "STRUKTUR DATA 2014 M. Bayu Wibisono."— Transcript presentasi:

1 STRUKTUR DATA 2014 M. Bayu Wibisono

2 Struktur Data ...1 Pengenalan STD EDT Algorithma Algorithma Review
Array Structure Stack Queue UTS Pengenalan Struktur Data ALGORITHMA Algorithma UTS EDT Struktur Data Queue Alg Stack Array Struct

3 Struktur Data ...2 Pembahasan UTS Pointer Algorithma LinkList Tree
Graph Sorting Searching UAS Pembahasan UTS ALGORITHMA Algorithma UAS Pointer Struktur Data Searching LinkList Sorting Tree Graph

4 Pembahasan Tree Contoh Penerapan Terminologi Tree Traversal
Binary Tree Search Binary Tree

5 Structur Data : TREE PENDAHULUAN
Dalam struktur data, pohon (TREE) memegang peranan yang cukup penting. Struktur ini biasanya digunakan untuk menyajikan data yang mengandung hubungan hierarkykal antara elemen-elemen mereka. banyak aplikasi menggunakan informasi dan data yang secara alami memiliki struktur hirarkis berguna dalam membantu memecahkan banyak masalah algoritmis Contoh struktur pohon (Tree) yang biasa digunakan dalam kehidupan sehari-hari adalah :  Silsilah keluarga  Daftar isi buku  Struktur organisasi  Pohon keputusan

6 Structur Data : TREE PARENT (ayah) CHILD TERMINOLOGI TREE TREE
Sejumlah node yang berhubungan secara hirarkis dimana node pada suatu hirarki merupakan cabang dari node dengan hirarki yang lebih tinggi dan juga memiliki cabang ke beberapa node lainnya pada hirarki yang lebih rendah. ROOT: Node dari suatu tree yang memiliki hirarki paling tinggi LEAF Node yang tidak mempunyai cabang PARENT (ayah) Node pada hirarki langsung diatas node tersebut (predecessor satu level) CHILD Node pada hirarki langsung dibawah node tersebut (successor satu level)

7 Structur Data : TREE TERMINOLOGI TREE 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 Inner Node yang bukan leaf Edge Penghubung antara dua buah node

8 Structur Data : TREE Sibling Subtree
TERMINOLOGI TREE 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 ertinggi/nomor level leaf terbawah.

9 Structur Data : TREE Depth/Kedalaman
TERMINOLOGI TREE Depth/Kedalaman Jumlah edge dari root sampai dengan node tersebut Degree Banyaknya child dari suatu node Forest Himpunan dari sejumlah tree

10 CONTOH PENERAPAN TERMINOLOGI TREE
B C D F G H I J M K L N O

11 CONTOH PENERAPAN TERMINOLOGI TREE
Parent B, C, D dan E adalah A, sehingga B, C, D, E adalah saudara (siblings) Semua node di bawah suatu node induk hanya dapat diakses melalui induknya Lintasan (path) sebuah node X adalah urutan akses untuk mendapatkan X yang dimulai dari Akar. Contoh : Path(M) = [A – B – G – M] Panjang lintasan (path length) X adalah jumlah node yang harus diakses untuk mendapatkan X; sehingga |Path(M)| = 4. (Ada juga yang menyatakan panjang lintasan sebuah node adalah jumlah garis dari akar sampai node tersebut Tinggi (height) dari sebuah pohon adalah panjang lintasan terpanjang , jadi tinggi pohon di disamping adalah = 4 Jika ada sebuah lintasan dari node a ke node b, maka a adalah pendahulu (ancestor) dari b dan b disebut keturunan (descendent) dari a Kedalaman (depth) dari sebuah node adalah panjang lintasan dari akar ke node tersebut. Depth (G) = 3 B C D E F G H I J M K L N O

12 CONTOH PENERAPAN TERMINOLOGI TREE

13 Bagian-bagian Tree nodes

14 Bagian-bagian Tree parent node

15 Bagian-bagian Tree child nodes parent node

16 Bagian-bagian Tree child nodes parent node

17 Bagian-bagian Tree leaf nodes root node

18 Bagian-bagian Tree sub-tree

19 Bagian-bagian Tree sub-tree

20 Bagian-bagian Tree sub-tree

21 Karakteristik Khusus Terdapat 1 node yang unik, yang tidak memiliki predecessor, yang disebut dengan root (akar) Terdapat satu atau beberapa node yang tidak memiliki successor yang disebut dengan leaf (daun) Setiap node kecuali root pasti memiliki satu predecessor Setiap node kecuali leaf pasti memiliki 1 atau lebih successor

22 Binary TREE Bentuk struktur data Tree memiliki bentuk yang umum. Tetapi untuk dapat digunakan dalam proses komputer yang efisien, maka dibentuklah Binary Tree atau atau biasa disebut sebagai B-Tree Sifat-sifat Khusus yang dimiliki B-Tree adalah 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. Bentuk-bentuk B-Tree : Complete binary tree, full binary tree, perfect binary tree, skewed binary tree

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

24 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

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

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

27 Representasi Tree

28 Representasi Tree Notasi Tingkat Notasi Kurung
(A(B(D,E(I,J)),C(F,G,H)))

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

30 Operasi-operasi Tree Insert: menambah node ke dalam Tree secara rekursif. Jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadi elemen root. Find: mencari node di dalam Tree secara rekursif sampai node tersebut ditemukan dengan menggunakan variable bantuan ketemu. Syaratnya adalah tree tidak boleh kosong. Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akan dikunjungi sekali Count: menghitung jumlah node dalam Tree Height : mengetahui kedalaman sebuah Tree Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree Child : mengetahui anak dari sebuah node (jika punya)

31 Tree Traversal (Tree Search)
Dalam ilmu komputer , tree traversal  (juga dikenal sebagai pencarian pohon – tree search ) adalah suatu proses untuk mengunjungi (memeriksa dan / atau memperbarui) setiap node dalam sebuah struktur data pohon , tepat sekali, dengan cara yang sistematis.  Traversals tersebut diklasifikasikan berdasarkan urutan node yang dikunjungi. Algoritma ini digunakan untuk pohon biner dan dapat juga digeneralisasi untuk pohon lain. Nama metode traversal berkaitan dengan cara kunjungan terhadap node. Untuk semua traverse berlaku kunjungan “the left subtree before the right subtree”.

32 Metode TRAVERSAL Tree Search DFS IN-ORDER -INFIX PRE-ORDER - PREFIX POST-ORDER - POSTFIX BFS Nama yang diberikan untuk Metode Traversal berasal dari urutan node yang dikunjungi.  Pencarian ke Dalam (Depth- first-search/DFS) - mudah dilaksanakan melalui stack Preorder, Inorder, Postorder Pencarian Melebar (Breadth-first-Search/BFS) - mudah dilaksanakan melalui antrian

33 Example: Preorder 43 43 31 64 31 64 20 20 40 56 89 40 56 89 28 33 47 59 28 33 47 59

34 Inorder Traversal Traverse the left subtree. Visit the node.
Traverse the right subtree.

35 Example: Inorder 43 43 31 64 31 64 20 20 40 56 89 40 56 89 28 33 47 59 28 33 47 59

36 Postorder Traversal Traverse the left subtree.
Traverse the right subtree. Visit the node.

37 Example: Postorder 43 43 31 64 31 64 20 20 40 56 89 40 56 89 28 33 47 59 28 33 47 59

38 Expression Tree A Binary Tree built with operands and operators.
Also known as a parse tree. Used in compilers.

39 Example: Expression Tree
+ / / 1 3 * 4 6 7 1/ *7 / 4

40 Notation Preorder Inorder Postorder Prefix Notation Infix Notation
Postfix Notation

41 Example: Infix + + / / / / 1 1 3 * 4 3 * 4 6 7 6 7

42 Example: Postfix 1 Recall: Reverse Polish Notation + + / / / / 1 3 * 4
6 7 6 7 Recall: Reverse Polish Notation

43 Example: Prefix + / / 1 3 * 4 6 7 + / 1 3 / * 6 7 4

44 Binary Search Tree A Binary Tree such that:
Every node entry has a unique key. All the keys in the left subtree of a node are less than the key of the node. All the keys in the right subtree of a node are greater than the key of the node.

45 Example 1: key is an integer 43 31 64 20 40 56 89 28 33 47 59

46 Insert Create new node for the item. Find a parent node.
Attach new node as a leaf.

47 Insert 57 Example: 43 31 64 20 40 56 89 28 33 47 59

48 Insert 57 Example: 43 31 64 20 40 56 89 28 33 47 59 57

49 Search: Checklist if target key is less than current node’s key, search the left sub-tree. else, if target key is greater than current node’s key, search the right sub-tree. returns: if found, pointer to node containing target key. otherwise, NULL pointer.

50 Search Example: 59 43 31 64 20 40 56 89 28 33 47 59 57 found 50

51 Search Example: 61 43 31 64 20 40 56 89 28 33 47 59 57 failed 51

52 Sumber : Dr. Ir. Fahren Bukhari, M.Sc.   Kymberly Fergusson


Download ppt "STRUKTUR DATA 2014 M. Bayu Wibisono."

Presentasi serupa


Iklan oleh Google