Algoritma dan Struktur Data. Tree

dokumen-dokumen yang mirip
Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Tree (Struktur Data) Nisa ul Hafidhoh, MT

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

Pohon dan Pohon Biner

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

MODUL PRAKTIKUM STRUKTUR DATA

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

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

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

IT234 Algoritma dan Struktur Data. Tree

ALGORITMA DAN STRUKTUR DATA

STRUKTUR POHON & KUNJUNGAN POHON BINER

Struktur Data & Algoritma

BAB IX TREE (POHON) ISTILAH DASAR

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

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

TREE STRUCTURE (Struktur Pohon)

Politeknik Elektronika Negeri Surabaya

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

Algoritma dan Struktur Data. Linear & Binary Search Tree

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

13/12/2013. Binary Tree. Contoh Tree

KUM 6 IMPLEMENTASI BINARY TREE

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

A B C E F G K Contoh Tree

Pemrograman Algoritma Dan Struktur Data

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

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

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

Organisasi Berkas Sekuensial Berindeks

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

Struktur Data Tree/Pohon dalam Bahasa Java

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

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

BAB VII POHON BINAR POHON

6. TREE / BINARY TREE

Syarif Abdullah (G )

Buku Ajar Struktur Data

Pohon Biner (Bagian 1)

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

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

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Algoritma Pemrograman & Struktur Data

Binary Search Tree (BST)

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

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

Struktur Data dan Algoritma

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

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

Koleksi Hirarkis Tree

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

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

ANALISIS ALGORITMA BINARY SEARCH

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

Pemodelan dan Pengelolaan Data Klasifikasi Tanaman Menggunakan Pohon

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

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

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

Membuat Binary Search Tree Menggunakan STL Vector C++

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

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

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan

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

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

BAB XI Manipulasi Binary Tree

TREE. Definisi. Istilah-istilah Umum dalam Tree

Politeknik Elektronika Negeri Surabaya

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

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

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

Penerapan Pohon Biner dalam Proses Pengamanan Peer to Peer

Preorder Tree Traversal

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Politeknik Elektronika Negeri Surabaya

Review : Sifat Implementasi Linear List dengan Array

MODUL PRAKTIKUM STRUKTUR DATA

KUNJUNGAN PADA POHON BINER

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

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

Variasi Pohon Pencarian Biner Seimbang

STRUKTUR DATA Pertemuan 1 s.d 8

BAB 2. STRUKTUR DATA

BAB II LANDASAN TEORI

INFIX, POSTFIX, dan PREFIX Bambang Wahyudi

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

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

Red-Black Tree Deletion. Rules for BST Deletion. Tujuan Top-Down Deletion. Terminology. Men-delete X dari BST: Men-delete X dari RB Trees: No problem

STRUKTUR DATA. Literatur

Struktur Data & Algoritma

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Pertemuan 9 STRUKTUR POHON (TREE) Sifat utama Pohon Berakar ISTILAH-ISTILAH DASAR

Transkripsi:

Algoritma dan Struktur Data Tree

Outline 1. Apakah Tree Structure itu? 2. Binary Tree & implementasinya 3. Tree Traversal 4. Implementasi tree (selain binary tree)

Apakah Tree Structure itu? Struktur data yang menunjukkan hubungan bertingkat (memiliki hierarkhi) Contoh: direktori/folder pada windows atau linux My Document My Pictures My Music Struktur data Pointer & Structure Linked list Tree

Nama komponen pada Tree node 1 root node 2 3 leaf 4 5 6 leaf 7 node 8 9 leaf leaf leaf 10

Hubungan antar komponen Hubungan antar elemen: parentchild, father-son, motherdaughter Nama node: nama(angka) yang dipakai untuk membedakan sebuah node dengan node yang lain. Dalam kuliah ini adalah angka yang tertulis dalam lingkaran. Label: nilai yang diingat oleh sebuah node leaf node 1 root node 2 3 4 5 6 8 9 leaf leaf 7 leaf 10 leaf Contoh graph node Tree vs Graph Tree: setiap node kecuali root hanya memiliki sebuah parent Graph: dapat memiliki lebih dari sebuah parent

Hubungan antar komponen sibling:node-node yang memiliki parent yang sama Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x leaf node 1 root node 2 4 5 6 leaf 3 7 node Descendant dari node x: node yang ditemukan ketika menyusuri tree ke bawah dari node x 8 9 leaf leaf leaf 10

Hubungan antar komponen sibling:node-node yang memiliki parent yang sama node 1 root Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x leaf node 2 4 5 6 leaf 3 7 node Descendant dari node x: node yang ditemukan ketika menyusuri tree ke bawah dari node x 8 9 leaf leaf leaf 10

Hubungan antar komponen sibling:node-node yang memiliki parent yang sama node 1 root Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x leaf node 2 4 5 6 leaf 3 7 node Descendant dari node x : node yang ditemukan ketika menyusuri tree ke bawah dari node x 8 9 leaf leaf 10 leaf

Level 1 0 2 3 1 4 5 6 7 2 8 9 10 3

Definisi TREE Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara recursive oleh kedua rule berikut: 1. Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini berfungsi sebagai root maupun leaf. 2. Dari k buah tree T 1 ~T k, dan masing-masing memiliki root n 1 ~n k.jika node n adalah parent dari noden 1 ~n k, akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T 1 ~T k menjadi sub-tree dari tree T. Root dari sub-tree n 1 ~n k adalah child dari node n. Tree leaf 1 root node

Definisi TREE Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara recursive oleh kedua rule berikut: 1. Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini berfungsi sebagai root maupun leaf. 2. Dari k buah tree T 1 ~T k, dan masing-masing memiliki root n 1 ~n k.jika node n adalah parent dari noden 1 ~n k, akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T 1 ~T k menjadi sub-tree dari tree T. Root dari sub-tree n 1 ~n k adalah child dari node n. 1 1 T1 n1 T2 T3 T4 n2 1 n3 n4 1 2 3 4 2 3 2 5 6 3

Definisi TREE 2. Dari k buah tree T 1 ~T k, dan masing-masing memiliki root n 1 ~n k.jika node n adalah parent dari noden 1 ~n k, akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T 1 ~T k menjadi sub-tree dari tree T. Root dari sub-tree n 1 ~n k adalah child dari node n. T 1 n 2 3 T1 n1 T2 T3 T4 n2 n3 5 4 n4 6 7 8 9 10 11 12 13 14

Ordered vs Unordered tree Ordered tree Antar sibling terdapat urutan usia Node yang paling kiri berusia paling tua (sulung), sedangkan node yang paling kanan berusia paling muda (bungsu) Posisi node diatur atas urutan tertentu Unordered tree Antar sibling tidak terdapat urutan tertentu

Outline 1. Apakah Tree Structure itu? 2. Binary Tree & implementasinya 3. Tree Traversal 4. Implementasi tree (selain binary tree)

Definisi Definisi Binary Tree 1. Sebuah tree yang kosong juga merupakan sebuah binary tree 2. Binary tree harus memenuhi salah satu syarat berikut Tidak memiliki anak Memiliki subtree di sebelah kiri (left subtree) Memiliki subtree di sebelah kanan (right subtree) Memiliki baik left subtree maupun right subtree HATI-HATI DALAM MENGGAMBAR BINARY TREE a a a a a b b b c b Subtree (child) yang dimiliki bukan kiri maupun kanan

Implementasi Binary Tree struct node { struct node *left; struct node *right; mydata label; } left right label a a b c b c

Contoh 10 A 10 14 18 A 14 B 18 H 14 18 26 38 B H 26 38 C D 26 38 C 56 78 D 56 78 E 56 78 F 100 E F G 100 100 G

Latihan 1 Gambarkan implementasi dari binary tree berikut 10 A 20 B 30 E C 40 D 50 F 60 70 H 80 G 90 I 100 J

Outline 1. Apakah Tree Structure itu? 2. Binary Tree & implementasinya 3. Tree Traversal 4. Implementasi tree (selain binary tree)

Definisi Tree Traversal Teknik menyusuri tiap node dalam sebuah tree secara sistematis, sehingga semua node dapat dan hanya satu kali saja dikunjungi Ada tiga cara traversal preorder inorder postorder Untuk tree yang kosong, traversal tidak perlu dilakukan

Preorder 1. Visit the root 2. Traverse the left subtree 3. Traverse the right subtree B A H C D E F G A B C D E G F H

Implementasi dalam bahasa C struct node { struct node *left; struct node *right; char label; } void preorder(struct node *p) { if (p==null) return; jika empty-tree, tidak perlu lakukan apa-apa printf( visit %c, p->label); tampilkan label node yang dikunjungi preorder(p->left); traverse the left subtree preorder(p->right); traverse the right subtree }

Inorder 1. Traverse the left subtree 2. Visit the root 3. Traverse the right subtree B A H C D E F G C B G E D F A H

Implementasi dalam bahasa C struct node { struct node *left; struct node *right; char label; } void inorder(struct node *p) { if (p==null) return; jika empty-tree, tidak perlu lakukan apa-apa inorder(p->left); traverse the left subtree printf( visit %c, p->label); tampilkan label node yang dikunjungi inorder(p->right); traverse the right subtree }

Postorder 1. Traverse the left subtree 2. Traverse the right subtree 3. Visit the root C B A D H E F G C G E F D B H A

Implementasi dalam bahasa C struct node { struct node *left; struct node *right; char label; } void postorder(struct node *p) { if (p==null) return; jika empty-tree, tidak perlu lakukan apa-apa postorder(p->left); traverse the left subtree postorder(p->right); traverse the right subtree printf( visit %c, p->label); tampilkan label node yang dikunjungi }

1. Print 2. Traverse the left subtree 3. Traverse the right subtree 1. Traverse the left subtree 2. Print 3. Traverse the right subtree 1. Traverse the left subtree 2. Traverse the right subtree 3. Print

Latihan-2 Tuliskan hasil preorder, inorder dan postorder traversal untuk binary tree berikut. 1. Print A 2. Traverse the left subtree B I 3. Traverse the right subtree C D J 1. Traverse the left subtree E G K L 2. Print F H 3. Traverse the right subtree 1. Traverse the left subtree 2. Traverse the right subtree 3. Print

Outline 1. Apakah Tree Structure itu? 2. Binary Tree & implementasinya 3. Tree Traversal 4. Implementasi tree (selain binary tree)

Teknik implementasi tree Binary tree hanya memiliki dua anak: kiri dan kanan. Karena itu implementasinya hanya memerlukan dua buah pointer untuk masing-masing subtree. Untuk implementasi tree yang memiliki sebarang anak, dapat dilakukan dengan dua cara memakai linked-list memakai binary tree

Contoh 1 2 6 3 4 5

Implementasi memakai linked-list 1 2 6 3 4 5 label child 3 1 23 5 2 77 10 3 15 4 25 5 35 6 23 37 5 37 35 77 87 95 10 87 15 95 25 struktur yang Merepresentasikan node struktur yang merepresentasikan koneksi antar node

Implementasi memakai binary-tree 1 1000 1 1001 2 6 3 4 5 1001 1002 2 1003 1002 6 label child sibling 1003 3 1004 1004 4 1005 1005 5

Implementasi memakai binary-tree 1 1000 1 1001 2 6 1001 1002 2 1003 1002 6 3 4 5 1003 3 1004 1004 4 1005 1005 5

Implementasi memakai binary-tree Rotasi ke kanan 45 1000 1 1001 1001 1002 2 1003 1002 6 1003 3 1004 1004 4 1005 1005 5

Latihan-3 Jelaskan implementasi tree berikut a) memakai linked-list b) memakai binary tree 10 A 50 B 250 F 300 G C 100 D 150 E 200 H 350 400 I 450 J 500 K