Koleksi Hirarkis Tree

dokumen-dokumen yang mirip
Pohon dan Pohon Biner

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Algoritma dan Struktur Data. Click to edit Master subtitle style Konsep Tree

Tree (Struktur Data) Nisa ul Hafidhoh, MT

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

TREE ALGORITMA & STRUKTUR DATA. Materi ASD Fakultas Teknik Elektro & Komputer UKSW ( Download Dari :

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER

Soal Pendahuluan Modul 3

BAB VII POHON BINAR POHON

STRUKTUR POHON & KUNJUNGAN POHON BINER

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Tenia Wahyuningrum, S.Kom. MT Sisilia Thya Safitri, S.T.,M.T.

Struktur Data & Algoritma

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

TREE STRUCTURE (Struktur Pohon)

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

ALGORITMA DAN STRUKTUR DATA

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Tree. Perhatikan pula contoh tree di bawah ini : Level. Level 2. Level 3. Level 4. Level 5

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

MODUL PRAKTIKUM STRUKTUR DATA

IT234 Algoritma dan Struktur Data. Tree

13/12/2013. Binary Tree. Contoh Tree

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan. B.1 Pohon Biner (Binary Tree)

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon

Politeknik Elektronika Negeri Surabaya

JAWABAN TUGAS MATRIKULASI STRUKTUR DATA. DOSEN Bpk. Krisna Adiyarta, M.Sc

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

BAB 7 POHON BINAR R S U

Pemrograman Algoritma Dan Struktur Data

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

POHON CARI BINER (Binary Search Tree)

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

Buku Ajar Struktur Data

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

BAB IX TREE (POHON) ISTILAH DASAR

Pohon (TREE) Matematika Deskrit. Hasanuddin Sirait, MT 1

TUGAS MAKALAH INDIVIDUAL. Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM :

Matematika Diskret (Pohon) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung)

Algoritma dan Struktur Data. Linear & Binary Search Tree

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

Pohon Biner (Bagian 1)

A B C E F G K Contoh Tree

6. TREE / BINARY TREE

Organisasi Berkas Sekuensial Berindeks

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

KUM 6 IMPLEMENTASI BINARY TREE

INFIX, POSTFIX, dan PREFIX Bambang Wahyudi

Struktur dan Organisasi Data 2 POHON BINAR

Struktur Data Tree/Pohon dalam Bahasa Java

Variasi Pohon Pencarian Biner Seimbang

ANALISIS ALGORITMA BINARY SEARCH

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

8/29/2014. Kode MK/ Nama MK. Matematika Diskrit 2 8/29/2014

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

Tujuan Instruksional

Bab 1 Pengantar Struktur Data

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

Pohon Biner dan Aplikasinya

BAB 7 POHON BINAR. Contoh : Pohon berakar T R S U

Algoritma dan Struktur Data. Tree

Struktur Data & Algoritma

Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.

Pemodelan dan Pengelolaan Data Klasifikasi Tanaman Menggunakan Pohon

UJIAN AKHIR SEMESTER GANJIL 2005/2006 ALGORITMA & STRUKTUR DATA / CS2014

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

BAB 2 LANDASAN TEORI

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Tree (Pohon)

Penerapan Pohon Biner dalam Proses Pengamanan Peer to Peer

ABSTRACT. Keyword: Algorithm, Depth First Search, Breadth First Search, backtracking, Maze, Rat Race, Web Peta. Universitas Kristen Maranatha

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 10 & 11

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Penerapan Pohon Dalam Heap Sort

Syarif Abdullah (G )

ALGORITMA PENCARIAN (1)

Penerapan BFS dan DFS dalam Garbage Collection

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

Penerapan Pohon Untuk Memanipulasi dan Meritrieve Data

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

Studi Digital Tree dan Aplikasinya pada Kamus

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

Preorder Tree Traversal

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

TREE. Definisi. Istilah-istilah Umum dalam Tree

Penerapan Search Tree pada Penyelesaian Masalah Penentuan Jalur Kota Terpendek.

BAB XI Manipulasi Binary Tree

Struktur Data dan Algoritma

Transkripsi:

Koleksi Hirarkis Tree Husni Didasarkan pada buku: Fundamentals of Python: From First Programs Through Data Structures

Okyektif Menjelaskan perbedaan antara pohon dan tipe koleksi lain menggunakan terminologi yang relevan Mengetahui penerapan pendekatan pohon umum dan pohon biner Mendeskripsikan perilaku & pemanfaatan pohon khusus seperti heap, BST dan pohon ekspresi Membandingkan kinerja operasi pohon pencarian biner dan heap Memanfaatkan algoritma rekursif untuk memroses pohon 2

Sekilas Tree (Pohon) Dalam suatu pohon, ide dari predecessor dan successor diganti dengan parent (induk) dan child (anak) Pohon mempunyai dua ciri utama: Setiap item dapat mempunyai banyak anak Semua item, kecuali item khusus bernama root (akar), mempunyai dengan pasti satu induk 3

Terminologi Pohon Istilah Node Root = Akar Child = Anak Parent = Induk Sibling = Saudara Leaf = Daun Bersambung... Definisi Item yang disimpan di dalam pohon Node paling atas di dalam pohon. Hanya ini node tanpa induk Node tepat di bawah dan terhubung langsung ke suatu node yang diberikan. Node dapat mempunyai lebih dari satu anak dan anak-anaknya ditampilkan teratur dalam urutan kiri-ke-kanan. Anak paling kiri disebut anak pertama, anak paling kanan disebut anak terakhir. Node tepat di atas dan terhubung langsung ke node yang diberikan. Node hanya dapat mempunyai satu induk. Anak-anak dari induk yang sama. Node yang tidak mempunyai anak. 4

Istilah Node Interior Definisi Tree Terminology (continued) Node yang mempunyai setidaknya satu anak Edge/Cabang/Link Descendant = Keturunan Ancestor = Moyang Path = Jalur/Jalan Panjang Path Kedalalam/Level Tinggi Sub-Pohon Garis yang menghubungkan induk ke anaknya Anak-anak dari node, cucu-cucunya dst kebawah s.d daundaunnya Induk dari node, kakeknya, dst ke atas s.d Rootnya. Rangkaian garis yang menghubungkan suatu node ke salah satu dari keturunannya. Jumlah dari garis dalam suatu path Kedalaman dari node sama dengan panjang path yang menghubungkannya ke Root. Jadi level dari root = 0. Anaknya ada pada level 1 dst. Panjang path terpanjang dalam suatu pohon; berbeda dengan jumlah level maksimum antar daun di dalam pohon Pohon yang dibentuk dari suatu node dan semua keturunannya 5

Terminologi Pohon Properti Nilai Jumlah node 10 Tinggi 3 Node root Daun-daun Node-node Interior Node pada Level 2 Ancestor dari E Keturunan dari F Node dalam sub-pohon paling kanan dari F H A, C, J, L, M, N A, B, F, E A, C, J, E F, H J, E, L, M, N E, L M, N Catatan: Tinggi suatu pohon yang mengandung satu node adalah 0 maka tinggi pohon yang kosong adalah 1 6

Pohon Umum & Pohon Biner Pada pohon biner, setiap node mempunyai paling banyak dua anak: Anak kiri dan anak kanan 7

Definisi Rekursif dari Pohon Pohon umum dapat kosong atau terdiri dari sehimpunan terbatas node T Node r dinamakan root Himpunan T {r} dipartisi ke dalam subhimpunan, masing-masing juga pohon umum Pohon biner dapat kosong atau terdiri dari root ditambah sub-pohon kiri dan sub-pohon kanan, masing-masing juga pohon biner. 8

Mengapa Menggunakan Pohon Pohon uraian (parse) mendeskripsikan struktur sintaktis dari suatu kalimat, sesuai dengan aturan (tata bahasa) tertentu 9

Contoh Pohon Parsing 10

Contoh Pohon Parsing 11

Contoh Pohon Parsing 12

Contoh Pohon Parsing 13

Mengapa Menggunakan Pohon Struktur sistem file juga mirip pohon 14

Mengapa Menggunakan Pohon Koleksi terurut dapat pula direpresentasikan sebagai struktur mirip-pohon Dinamakan binary search tree (pohon pencarian biner), disingkat BST Mendukung pencarian & penyisipan logarithmic. 15

Bentuk Pohon Biner Dapat dideskripsikan secara lebih formal dengan penetapan relasi antara tingginya dan jumlah node yang dikandungnya N node Tinggi: N 1 Pohon biner penuh berisi jumlah maksimum node dari node dengan tinggi H 16

Bentuk Pohon Biner Tinggi Pohon Jumlah Node 0 1 1 3 2 7 3 15 Jumlah node, N, dari pohon biner lengkap dengan tinggi H adalah 2 H + 1 1 Tinggi, H, dari suatu pohon biner lengkap dengan N node adalah log 2 (N + 1) 1 Banyaknya kerja maksimum yang diperlukan untuk mengakses suatu node yang diberikan dalam pohon biner penuh adalah O(log N) 17

Bentuk Pohon Biner 18

Aplikasi Pohon Biner Akan didiskusikan 3 penggunaan khusus dari pohon biner yang berbeda dalam hal penempatan node atau data di dalamnya: Heaps (Susunan, bukan Stack) Binary search trees (Pohon pencarian biner) Expression trees (Pohon ekspresi) 19

Heaps min-heap: nilai dari node lebih kecil atau sama dengan anakanaknya max-heap: nilai node lebih besar dari anak-anaknya, berarti menempatkan node lebih besar lebih dekat ke root Heap property: constraint pada penempatan node-node Heap sort membangun suatu heap dari data dan secara berulang menghapus item root dan menambahkannya ke ujung dari list Heaps juga digunakan untuk implementasi antrian berprioritas 20

Min-Heap Max-Heap 21

Operasi Heap: Sisip Menyisipkan nilai 15 Letakkan 15 pada X. Melanggar properti heap, tukar dengan 8. diperoleh: Masih melanggar aturan, tugas lagi. Diperoleh valid max-heap. 22

Operasi Heap: Hapus Menghapus 11 Hapus 11 dan ganti dengan 4. Melanggar? Tukar lagi! 23

Pohon Pencarian Biner (BST) BST mengharuskan penempatan terurut nodenodenya Semua keturunan pada sub-pohon kiri lebih kecil dari nilai yang dipegang oleh node Semua keturunan pada sub-pohon kanan lebih besar dari nilai yang dipegang oleh node Ketika pendekatan membentuk pohon biber seimbang sempurna, pencarian dan penyisipan adalah O(log n) dalam kasus terburuk Tidak semua BST seimbang sempurna Dalam kasus terburuk, menjadi linier dan mendukung pencarian linier 24

Pohon Pencarian Biner 1 2 3 4 5 7 8 9 Path pencarian yang mungkin untuk pencarian biner dari list terurut 25

Pohon Pencarian Biner 26

Pohon Ekspresi Cara lain untuk memroses ekspresi adalah membangun pohon uraian selama penguraian Expression tree Pohon ekspresi tidak pernah kosong Node interior merepresentasikan suatu ekspresi gabungan, yang terdiri dari operator dan operannya Setiap daun merepresentasikan operan numerik Operator yang presedennya lebih tinggi biasanya hadir di dekat bawah pohon, kecuali diubah di dalam ekspresi sumber dengan tanda kurung 27

Pohon Ekspresi 28

Pohon Ekspresi 29

Penjelahan Pohon Ada 2 prinsip dasarnya: Breath first search (BFS): melebar terlebih dahulu Depth first search (DFS): mendalam terlebih dahulu 30

Ilustrasi BFS dan DFS 31

Penjelajahan Pohon Biner 4 tipe standard penjelajahan pohon biner: Preorder traversal: Kunjungi node root, kemudian jelajah sub-pohon kiri dan sub-pohon kanan dengan cara serupa Inorder traversal: Mengunjungi sub-pohon kiri, menghampiri node root dan menjelajahi sub-pohon kanan Cocok untuk pengunjungan item-item dalam suatu BST yang sudah terurut Postorder traversal: Menjelajah sub-pohon kiri, mendatangi sub-pohon kanan, dan mengunjungi node root Level order traversal: Dimulai dengan level 0, mengunjungi node-node pada setiap level dari urutan kiri-ke-kanan 32

Penjelajahan Pohon Biner: Preorder 33

Penjelajahan Pohon Biner: Inorder 34

Penjelajahan Pohon Biner: Postorder 35

Penjelajahan Pohon Biner: Urut Level 36

Tipe Data Abstrak (ADT) Pohon Biner: Class BinaryTree Menyediakan banyak operasi umum yang diperlukan untuk membangun jenis pohon khusus Mendukung operasi dasar untuk membuat pohon, menentukan jika suatu pohon kosong dan menjelajah pohon Membiarkan operasi yang fokus pada pengaksesan, penggantian atau penghapusan bagian-bagian komponen dari pohon biner yang tak-kosong: root, sub-pohon kiri dan sub-pohon kanan-nya 37

Operasi Pada ADT Pohon Biner 38

Operasi Pada ADT Pohon Biner 39

Pemrosesan Pohon Biner Banyak algoritma pemrosesan pohon biner mengikuti struktur rekursif pohon def size(tree): if tree.isempty(): return 0 else: return 1 + size(tree.getleft()) + size(tree.getright()) >>> size(d) 7 Programmer kadang tertarik pada frontier, yaitu himpunan node daun dari suatu tree Contoh: Frontier dari pohon uraian untuk kalimat English (seperti diperlihatkan sebelumnya) 40

Pemrosesan Pohon Biner frontier meminta parameter pohon biner dan mengembalikan suatu list Dua kasus basis: Pohon kosong kembalikan list kosong Pohon suatu node daun kembalikan list yang mengandung item root 41

Implementasi Pohon Biner 42

Implementasi Pohon Biner 43

Implementasi Pohon Biner 44

Implementasi Pohon Biner 45

Representasi String dari Pohon str dapat diimplementasikan dengan penjelajahan tertentu 46

Pengembangan Pohon Pencarian Biner BST mengharuskan penempatan khusus node-node dalam pohon biner untuk mendukung pencarian & penyisipan logaritmik Pohon biner dapat digunakan utuk mengembangkan suatu pohon pencarian biner. 47

Antarmuka Pohon Pencarian Biner Antarmuka bagi BST sebaiknya menyertakan konstruktor dan metode dasar untuk menguji kekosongan pohon, mengetahui jumlah item, menambahkan, menghapus dan mencari suatu item Metode lain yang berguna adalah iter yang mengijinkan pengguna untuk menjelajah item-item di dalam BST dengan perulangan for. 48

Metode dalam BST 49

Struktur Data untuk Implementasi BST 50

Pencarian Dalam BST find mengembalikan item pertama yang cocok jika item target ditemukan di dalam pohon; jika tidak mengembalikan None. Strategi rekursif dapat digunakan Algoritma pseudocode: if tree is empty return None else if the target item equals the root item return the root item else if the target item is less than the root item return the result of searching the left subtree else return the result of searching the right subtree 51

Pencarian Dalam BST 52

Penyisipan Item Ke dalam BST add menyisipkan suatu item dalam tempat yang tepat di dalam BST Tempat tepat bagi item adalah salah satu dari tiga posisi berikut 1. Node root, jika pohon sudah kosong 2. Node dalam sub-pohon kiri dari node aktif, jika item baru kurang dari item dalam node aktif 3. Node dalam sub-pohon kanan dari node aktif, jika item baru lebih besar atau sama dengan item dalam node aktif Untuk opsi 2 dan 3, add menggunakan fungsi bantuan rekursif bernama addhelper Pada semua kasus, suatu item ditambahkan sebagai node daun 53

Penyisipan Item Ke dalam BST 54

Menghapus Item dari BST Simpan referensi ke node root Cari node yang akan dihapus, induknya dan referensi induknya ke node ini Jika item tidak ada di dalam pohon, kembalikan None Jika tidak, jika node mempunyai anak kiri atau kanan, ganti nilai node dengan nilai terbesar dalam sub-pohon kiri dan hapus node nilai itu dari sub-pohon kiri Jika tidak, set referensi induk ke node ke hanya anak node Reset node root ke referensi tersimpan Turunkan ukuran (size) dan kembalikan item 55

Menghapus Item dari BST Langkah ke-4 sangat kompleks: dapat difaktorkan ke dalam fungsi bantuan yang mengambil node untuk dihapus sebagai parameter (node yang mengandung item untuk dihapus dirujuk sebagai node puncak): Search top node s left subtree for node containing the largest item (rightmost node of the subtree) Replace top node s value with the item If top node s left child contained the largest item, set top node s left child to its left child s left child Otherwise, set parent node s right child to that right child s left child 56

Analisa Kompleksitas dari BST BSTs are set up with intent of replicating O(log n) behavior for the binary search of a sorted list A BST can also provide fast insertions Optimal behavior depends on height of tree A perfectly balanced tree supports logarithmic searches Worst case (items are inserted in sorted order): tree s height is linear, as is its search behavior Insertions in random order result in a tree with closeto-optimal search behavior 57

Studi Kasus: Pohon Parsing & Ekspresi Request: Write a program that uses an expression tree to evaluate expressions or convert them to alternative forms Analysis: Like the parser developed in Chapter 17, current program parses an input expression and prints syntax error messages if errors occur If expression is syntactically correct, program prints its value and its prefix, infix, and postfix representations 58

Studi Kasus: Pohon Parsing & Ekspresi 59

Studi Kasus: Pohon Parsing & Ekspresi Kelas-kelas untuk Sistem Parsing 60

Studi Kasus: Pohon Parsing & Ekspresi Rancangan dan implementasi dari kelas Node 61

Studi Kasus: Pohon Parsing & Ekspresi 62

Studi Kasus: Pohon Parsing & Ekspresi 63

Studi Kasus: Pohon Parsing & Ekspresi Rancangan & implementasi dari kelas Parser: Paling mudah untuk membangun pohon ekspresi dengan suatu parser yang menggunakan strategi recursive descent Borrow parser from Chapter 17 and modify it parse akan mengembalikan suatu pohon ekspresi ke pemanggilnya, yang menggunakan pohon itu untuk memperoleh informasi mengenai ekspresi tersebut factor memproses bilangan atau ekspresi bersarang di dalam tanda kurung Panggil expression untuk mengurai ekspresi bersarang 64

Studi Kasus: Pohon Parsing & Ekspresi 65

Studi Kasus: Pohon Parsing & Ekspresi 66

Implementasi Array dari Pohon Biner An array-based implementation of a binary tree is difficult to define and practical only in some cases For complete binary trees, there is an elegant and efficient array-based representation Elemen-elemen disimpan berdasarkan level The array representation of a binary tree is pretty rare and is used mainly to implement a heap 67

Implementasi Array dari Pohon Biner Pohon Biner Lengkap Representasi array dari pohon biner lengkap: 68

Implementasi Array dari Pohon Biner Lokasi dari item yang diberikan dalam representasi array dari pohon biner lengkap: 69

Implementasi Array dari Pohon Biner Relatif dari item d di dalam representasi array dari suatu pohon biner lengkap 70

Impementasi Heaps Metode dalam antarmuka Heaps: 71

Impementasi Heaps At most, log 2 n comparisons must be made to walk up the tree from the bottom, so add is O(log n) Method may trigger a doubling in the array size O(n), but amortized over all additions, it is O(1) 72

Heap untuk Implementasi Antrian Prioritas Antrian prioritas dapat diimplementasikan dengan linked list terurut; dapat pula menggunakan heap 73

Rangkuman Pohon merupakan koleksi hirarkis The topmost node in a tree is called its root In a general tree, each node below the root has at most one parent node, and zero child nodes Nodes without children are called leaves Nodes that have children are called interior nodes The root of a tree is at level 0 Dalam pohon biner, node mempunyai paling banyak 2 anak A complete binary tree fills each level of nodes before moving to next level; a full binary tree includes all the possible nodes at each level 74

Rangkuman 4 penjelajahan pohon standar: Preorder, inorder, postorder dan level order Pohon ekspresi: Type of binary tree in which the interior nodes contain operators and the successor nodes contain their operands Pohon pencarian biner: Nonempty left subtree has data < datum in its parent node and a nonempty right subtree has data > datum in its parent node Logarithmic searches/insertions if close to complete Heap: Binary tree in which smaller data items are located near root 75