13/12/2013. Binary Tree. Contoh Tree

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

Politeknik Elektronika Negeri Surabaya

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Pohon dan Pohon Biner

IT234 Algoritma dan Struktur Data. Tree

Struktur Data & Algoritma

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

Soal Pendahuluan Modul 3

TREE STRUCTURE (Struktur Pohon)

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

ALGORITMA DAN STRUKTUR DATA

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

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

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

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

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

MODUL PRAKTIKUM STRUKTUR DATA

KUM 6 IMPLEMENTASI BINARY TREE

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

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

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

STRUKTUR POHON & KUNJUNGAN POHON BINER

Buku Ajar Struktur Data

Algoritma dan Struktur Data. Tree

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

Politeknik Elektronika Negeri Surabaya

Struktur Data & Algoritma

ANALISIS ALGORITMA BINARY SEARCH

BAB IX TREE (POHON) ISTILAH DASAR

Algoritma dan Struktur Data. Linear & Binary Search Tree

Struktur Data Tree/Pohon dalam Bahasa Java

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

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

Pemrograman Algoritma Dan Struktur Data

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

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

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

Membuat Binary Search Tree Menggunakan STL Vector C++

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

A B C E F G K Contoh Tree

Pohon Biner (Bagian 1)

Syarif Abdullah (G )

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

Organisasi Berkas Sekuensial Berindeks

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

Koleksi Hirarkis Tree

6. TREE / BINARY TREE

Struktur Data dan Algoritma

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

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

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

BAB XI Manipulasi Binary Tree

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

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

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

BAB VII POHON BINAR POHON

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

Praktikum Algoritma dan Setruktur Data

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

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

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

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

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

TREE. Definisi. Istilah-istilah Umum dalam Tree

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Struktur dan Organisasi Data 2 POHON BINAR

BAB 7 POHON BINAR R S U

Data Structure TREE & BINARY TREE. Chapter 5b. Dahlia Widhyaestoeti, S.Kom

Pohon (Tree) Contoh :

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

IKI 20100: Struktur Data & Algoritma

IKI 20100: Struktur Data & Algoritma

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Politeknik Elektronika Negeri Surabaya

Binary Search Tree (BST)

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

MAKALAH DESAIN DAN ANALISIS ALGORITMA BINARY TREE DISUSUN OLEH : 1. Nadim Achmad ( ) 2. Dzurratul Ulya ( )

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

STRUKTUR DATA Pertemuan 1 s.d 8

Outline STRUKTUR DATA. VII. Sorting

Penerapan Pohon Dalam Heap Sort

Preorder Tree Traversal

Everybody in this country should learn how to program a computer because it teaches you how to think. Steve Jobs

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

ALGORITMA DAN STRUKTUR DATA

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

(Binary) Heap. Binary tree yang menyimpan pasangan prioritas (atau prioritas elemen) pada node Property Heap :

Penerapan BFS dan DFS dalam Garbage Collection

Konsep Pohon (Tree) Binary Tree Penyajian Tree dengan Array Penyajian Tree dengan Linked List Metode Traversal (Kunjungan Node pada Tree)

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

POHON BINAR 7.1 POHON. Gambar 7.1. Contoh pohon berakar

B. DASAR TEORI AlGORITMA TRAVERSAL GRAPH Terdapat beberapa perbedaan Tree dan Graph dijelaskan pada tabel Tabel 31.1 Perbedaan Tree dan Graph

Organisasi File Multi Key y( (Index)

Transkripsi:

Binary Tree Contoh Tree 1

Struktur Tree Tree adalah struktur hirarki yang menempatkan elemen pada simpul pada cabang2nya yang dimulai dari root. Node (simpul) dalam tree dibagi dalam level dari tertinggi yaitu node root Sembarang node dalam tree dapat mempunyai banyak successor pada level di bawahnya. Sehingga tree adalah struktur non linier Struktur Tree (lanj) Sistem operasi menggunakan tree untuk pengelolaan struktur file 2

Struktur Tree (lanj) Pada binary tree, setiap node paling banyak mempunyai 2 cabang. Terminologi Tree Struktur tree adalah kumpulan node yang dimulai dari node unik yang disebut root. Setiap node terdiri dari sebuah nilai dan beberapa link ke node di bawahnya Istilah parent dan child menggambarkan relasi antar node dan succesor nya 3

Terminologi Tree (lanj) Terminologi Tree (lanj) A root child sibling parent B C D interior (internal) node E F G H leaf node I J subtree 4

Terminologi Tree (lanj) Jalur antara parent node P dan sebuah node N dalam subtree adalah deretan node P=X 0, X 1,..., X k = N dimana k adalah panjang jalur. Setiap node X i dalam deretan tsb adalah parent dari X i +1 untuk 0 i k-1. Level dari sebuah node adalah panjang jalur dari root ke node. Bayangkan node sebagai root dari subtree, tinggi (height) node adalah panjang dari jalur terpanjang dari node ke leaf dalam subtree Tinggi tree adalah level maksimum dalam tree. Terminologi Tree (lanj) 5

Binary Tree Pada binary tree, setiap parent tidak mempunyai anak lebih dari 2 Binary tree mempunyai struktur seragam yang menggambarkan struktur node yang sederhana dan pengembangan untuk beberapa algoritma tree Binary Tree (lanj) Setiap node pada binary tree mempunyai subtree left dan right. Setiap subtree merupakan tree Left child of T Right child of T 6

Binary Tree (lanj) Alternatif definisi rekursif dari binary tree: T adalah binary tree jika T Tidak mempunyai node (T adalah tree kosong) atau Mempunyai paling banyak two subtree. Binary Tree (lanj) 7

Tinggi (Height) Binary Tree Tinggi binary tree adalah panjang dari jalur terpanjang dari rott ke node leaf. Misalnya T N adalah subtree dengan root N dan T L dan T R adalah root dari subree kiri dan kanan dari N. height(n) = height(t N ) = { -1 if T N is empty 1+max( height(t L ), height(t R )) if T N not empty Tinggi (Height) Binary Tree (Hasil) Degenerate binary tree 8

Density (Kepadatan) Binary Tree Dalam binary tree, jumlah node setiap node berada pada jangkauan nilai tertentu Pada level 0, terdapat 1 node yaitu root; pada level 1 terdapat 1 atau 2 node. Pada sembarang level k, jumlah node dalam jangkauan dari 1 ke 2 k. Jumlah node per level merupakan kepadatan tree. Density adalah ukuran tree (jumlah node) relatif terhadap tinggi tree Density (Kepadatan) Binary Tree 9

Density (Kepadatan) Binary Tree (lanj) complete binary tree dari tinggi h mempunyai semua kemungkinan node melalui level h-1, dan node pada kedalaman h terdapat cabang kiri dan kanan yang penuh. Density (Kepadatan) Binary Tree (lanj) 10

Density (Kepadatan) Binary Tree (lanj) Tentukan tinggi minimum dari complete tree yang mempunyai n elemen Melalui level h - 1 pertama, jumlah node adalah 1 + 2 + 4 +... + 2 h-1 = 2 h - 1 Pada kepadatan h, jumlah node tambahan dalam jangkauan dari minimum 1 sampai maksimum 2 h. Sehingga jumlah node dalam complete binary tree dengan tinggi h berada pada jangkauan 2 h - 1 + 1 = 2 h n 2 h - 1 + 2 h = 2 h+1-1 < 2 h +1 Density (Kepadatan) Binary Tree (lanj) Sehingga didapatkan h log 2 n < h+1 dan menghasilkan complete binary tree dengan n node harus mempunyai tinggi h = int(log 2 n) 11

Density (Kepadatan) Binary Tree (hasil) Number of elements (n) Calculation (log 2 n) Height (h = int(log 2 n)) 10 log 2 10 = 3.321 int(3.321) = 3 5000 log 2 5000 = 12.287 int(12.287) = 12 1000000 log 2 1000000 = 19.931 int(19.931) = 19 Node Binary Tree Buat node binary tree sebagai anggota dari class generic TNode class. Sebuah node terdiri dari 3 field. data value, dinamakan nodevalue. Variabel referensi, left dan right yang menyatakan left child dan right child 12

Node Binary Tree (lanj) Class TNode public class TNode<T> { // node's value public T nodevalue; // subtree references public TNode<T> left, right; } // create instance with a value and null subtrees public TNode(T item) { nodevalue = item; left = right = null; } // initialize the value and the subtrees public TNode (T item, TNode<T> left, TNode<T> right) { nodevalue = item; this.left = left; this.right = right; } 13

Membangun Binary Tree Binary tree terdiri dari collection obyek TNode objects yang mereferensi nilai ke link anak tertentu. Membangun binary tree per satu node TNode<Integer> p, q; // references to TNode objects with // Integer data // p is a leaf node with value 8; p = new TNode<Integer>(8); // q is a node with value 4 and p as a right child q = new TNode<Integer>(4, null, p); Membangun Binary Tree (lanj) Menggunakan class TNode untuk membangun binary tree dari bawah ke atas. // references to Integer tree nodes TNode<Integer> root, p, q, r; // create leaf node p with value 20 // and leaf node q with value 40 p = new TNode<Integer>(20); q = new TNode<Integer>(40); // create internal node r with value 30, // left child q, and a null right child r = new TNode<Integer>(30, q, null); // create root node with value 10, // left child p, and right child r root = new TNode<Integer>(10, p, r); 14

Membangun Binary Tree (lanj) // n is in the range 0 to 2 public static TNode<Character> buildtree(int n) {... } Algoritma Penelusuran Binary Tree dengan Rekursif Untuk menelusuri tree secara rekursif, kita harus mengunjungi node (N), menelusuri subtree kiri (L), dan menelusuri subtree kanan (R). Urutan N, L, R menentukan algoritma penelusuran 15

Penelusuran Inorder Penelusuran inorder dari tree mengujungi subree kiri L, mengunjungi node N, kemudian mengunjungi subtree kanan R. Penelusuran dimulai dari root Scan order: B D A E C Contoh Penelusuran Rekursif Preorder (NLR): Inorder (LNR): Postorder (LRN): A B D G C E H I F D G B A H E I C F G D B H I E F C A 16

Metode Penelusuran Rekursif public static <T> ReturnType scanmethod(tnode<t> t) { // check for empty tree (stopping condition) if (t == null) < return information for an empty tree > else { // descend to left subtree and record return information valueleft = scanmethod(t.left); // visit the node and record information < evaluate t.nodevalue > // descend to right subtree and record return information valueright = scanmethod(t.right); } return <information from valueleft, valueright, and t.nodevalue > } Metode Penelusuran Rekursif (lanj) Preorder Design Pattern: <evaluate t.nodevalue> // visit node first valueleft = scanmethod(t.left); // go left valueright = scanmethod(t.right); // go right Postorder Design Pattern: valueleft = scanmethod(t.left); // go left valueright = scanmethod(t.right); // go right <evaluate t.nodevalue> // visit node last 17

Metode Penelusuran Rekursif (lanj) // list the nodes of a binary tree using an LNR scan public static <T> void inorderoutput(tnode<t> t) { // the recursive scan terminates on an empty subtree if (t!= null) { inorderoutput(t.left); // descend left System.out.print(t.nodeValue + " "); inorderoutput(t.right); // descend right } } Metode Penelusuran Rekursif (lanj) // list the nodes of a binary tree using an LNR scan public static <T> String inorderdisplay(tnode<t> t) { // return value String s = ""; // the recursive scan terminates on a empty subtree if (t!= null) { s += inorderdisplay(t.left); // descend left s += t.nodevalue + " "; // display the node s += inorderdisplay(t.right); // descend right } } return s; 18

Latihan 1 Bagaimana urutan preorder, inorder dan postorder dari binary tree di bawah ini? Latihan 2 Bagaimana urutan preorder, inorder dan postorder dari binary tree di bawah ini? 19