ALGORITMA DAN STRUKTUR DATA

dokumen-dokumen yang mirip
MODUL PRAKTIKUM STRUKTUR DATA

BAB IX TREE (POHON) ISTILAH DASAR

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

BAB 7 POHON BINAR R S U

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

STRUKTUR POHON & KUNJUNGAN POHON BINER

BAB VII POHON BINAR POHON

Struktur dan Organisasi Data 2 POHON BINAR

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

Pemrograman Algoritma Dan Struktur Data

A B C E F G K Contoh Tree

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

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

TREE STRUCTURE (Struktur Pohon)

Syarif Abdullah (G )

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

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

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

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

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

IT234 Algoritma dan Struktur Data. Tree

Struktur Data Tree/Pohon dalam Bahasa Java

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

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

Pemodelan dan Pengelolaan Data Klasifikasi Tanaman Menggunakan Pohon

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

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Soal Pendahuluan Modul 3

Algoritma dan Struktur Data. Tree

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

Pohon dan Pohon Biner

TREE. Definisi. Istilah-istilah Umum dalam Tree

Pohon Biner (Bagian 1)

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

13/12/2013. Binary Tree. Contoh Tree

Buku Ajar Struktur Data

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

Pohon (Tree) Contoh :

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

Tree (Struktur Data) Nisa ul Hafidhoh, MT

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

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

Organisasi Berkas Sekuensial Berindeks

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

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

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

KUM 6 IMPLEMENTASI BINARY TREE

POHON BINAR 7.1 POHON. Gambar 7.1. Contoh pohon berakar

POHON CARI BINER (Binary Search Tree)

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

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

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

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

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

6. TREE / BINARY TREE

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Politeknik Elektronika Negeri Surabaya

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

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

Algoritma dan Struktur Data. Linear & Binary Search Tree

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

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

MODUL PRAKTIKUM STRUKTUR DATA

Struktur Data & Algoritma

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

Binary Search Tree (BST)

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

Variasi Pohon Pencarian Biner Seimbang

BAB XI Manipulasi Binary Tree

P o h o n. Definisi. Oleh: Panca Mudji Rahardjo. Pohon. Adalah graf tak berarah terhubung yang tidak mengandung sirkuit.

Pertemuan 15 REVIEW & QUIS

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

Pohon Biner dan Aplikasinya

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

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

ALGORITMA DAN STRUKTUR DATA

TERAPAN POHON BINER 1

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

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

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

Koleksi Hirarkis Tree

ANALISIS ALGORITMA BINARY SEARCH

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String)

Struktur Data & Algoritma

Aplikasi Pohon pada Pohon Binatang (Animal Tree)

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

Politeknik Elektronika Negeri Surabaya

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

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

Penerapan Pohon Untuk Memanipulasi dan Meritrieve Data

Membuat Binary Search Tree Menggunakan STL Vector C++

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

Struktur Data dan Algoritma

Penerapan Pohon Untuk Menyelesaikan Masalah Labirin

BAB I PENDAHULUAN. himpunan bagian bilangan cacah yang disebut label. Pertama kali diperkenalkan

INFIX, POSTFIX, dan PREFIX Bambang Wahyudi

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

Transkripsi:

Modul ke: 10 Fitrianingsih Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA JENIS-JENIS TREE SKom., MMSI Program Studi Sistem Informasi

JENIS-JENIS TREE

Pohon (Tree) adalah graf terhubung yang tidak mengandung sirkuit. Karena merupakan graf terhubung maka pada pohon selalu terdapat path atau jalur yang menghubungkan kedua simpul di dalam pohon

Sifat utama pohon berakar : Jika pohon mempunyai simpul sebanyak n, maka banyaknya ruas adalah (n- 1). Mempunyai simpul khusus yang disebut Root (Akar), jika simpul tersebut memiliki derajat keluar 0 dan derajat masuk = 0. Mempunyai simpul yang disebut Leaf (Daun), jika simpul tersebut memiliki derajat keluar = 0 dan derajat masuk = 1. Setiap simpul mempunyai tingkatan (level), dimulai dari root dengan level 0 sampai dengan level n pada daun yang paling bawah. Pohon mempunyai ketinggian (kedalaman / height) yaitu level tertinggi +1. Pohon mempunyai berat (bobot / weight) yaitu banyaknya daun pada pohon.

POHON BINAR (BINARY TREE) Pohon binar adalah himpunan simpul yang terdiri dari 2 subpohon (yang disjoint / saling lepas) yaitu subpohon kiri dan subpohon kanan. Setiap simpul dari pohon binar mempunyai derajat keluar maksimum = 2. Pendefinisian pohon binar bersifat rekursif.

Root adalah A Simpul yang mempunyai 2 anak adalah simpul A, B, C dan H. Simpul yang mempunyai 1 anak adalah simpul E dan J. Simpul yang tidak mempunyai anak disebut daun (terminal) adalah D, F, G, K dan L.

TERMINOLOGI PADA POHON BINAR Terminologi hubungan keluarga banyak digunakan dalam terminologi pada pohon binar. Misalnya istilah anak kiri dan anak kanan, untuk menggantikan suksesor kiri dan suksesor kanan, serta istilah ayah untuk pengganti predesesor.

K misalnya adalah keturunan kanan dari D, tetapi bukan keturunan dari F, E ataupun M. Simpul G adalah ayah dari K dan L. Di sini K dan L adalah bersaudara, masing-masing anak kiri dan anak kanan dari G. Garis yang ditarik dari Simpul N ke suksesor disebut Ruas dan sederetan ruas yang berturutan disebut Jalur atau path. Sebuah jalur yang berakhir pada daun (terminal) disebut Cabang. Garis AD maupun GL adalah contoh ruas. Barisan ruas (AD, DG, GL) adalah jalur dari simpul A ke simpul L, jalur tersebut merupakan cabang, karena berakhir di simpul terminal (daun ) L.

Dari contoh pohon binar : Root : A Simpul Daun adalah : F, K, L dan M Level 0 adalah simpul A Level 1 adalah simpul D dan E Level 2 adalah simpul F, G dan M Level 3 adalah simpul K dan L Ketinggian (kedalaman) = 3 + 1 = 4 Berat (bobot) = 4 Cabang (AD, DG, GK) ataupun (AD, DG, GL) mengandung simpul dengan jumlah maksimum, yakni = 4, sedangkan cabang (AE, EM) serta (AD, DF) hanya mengandung 3 simpul.

POHON BINAR LENGKAP Suatu pohon binar T dikatakan lengkap atau complete, bila setiap tingkatnya kecuali mungkin tingkat yang terakhir, mempunyai semua simpul yang mungkin, yakni 2 r simpul untuk tingkat ke-r, dan bila semua simpul pada tingkat terakhir muncul di bagian kiri pohon. Kita dapat memberi label pohon binar lengkap menggunakan integer 1, 2,, n dari kiri ke kanan generasi demi generasi. Hal ini untuk mempermudah kita untuk mengetahui ayah serta anak dari suatu simpul pada pohon binar lengkap. Dalam hal ini anak kiri dari simpul K adalah 2 * K dan anak kanan dari simpul K adalah 2*K+1. Sedangkan ayah dari K adalah INT(K/2). Notasi INT(P) adalah integer terbesar yang lebih kecil atau sama dengan P. Jadi INT(3 2/3) = 3, INT(15/2) = 7, INT(4) = 4, dan sebagainya.

POHON-2 Pohon Binar T dikatakan Pohon-2 atau pohon binar yang dikembangkan bila setiap simpul mempunyai 0 atau 2 anak. Dalam kasus ini, simpul dengan 2 anak disebut simpul internal, sedangkan simpul tanpa anak disebut simpul eksternal. Dalam diagram, seringkali diadakan pembedaan antara simpul internal dan eksternal. Simpul internal digambarkan sebagai lingkaran, sedangkan simpul eksternal sebagai bujursangkar.

Istilah-istilah umum dalam tree Predecessor : node yang berada di atas node tertentu Successor : node yang dibawah node tertentu Ancestor : seluruh node yang terletak sebelum node tertentu dan terletak sesudah pada jalur yang sama Descendant : seluruh node yang terletak sesudah node tertentu dan terletak sesudah pada jalur yang sama Parent : predecessor satu level diatas suatu node Child : successor satu level dibawah suatu node Sibling : node-node yang memiliki parent yang sama dengan suatu node Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut Size : banyaknya node dalam suatu tree Height : banyaknya tingkatan/level dalam suatu tree Root : satu-satunya node khusus dalam tree yang tidak mempunyai predecessor Leaf : node-node dalam tree yang tidak memiliki successor Degree : banyaknya child yang dimiliki suatu node

Contoh: Ancestor : C, A Descendant : C, G Parent : B Child : B, C Sibling : F, G Size : 7 Height : 3 Root : A Leaf : D, E, F, G Degree : 2

JENIS TREE

1. Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan kedua subtree tersebut harus terpisah. Maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.

Jenis Binary Tree 1. Full Binary Tree Binary Tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap sub tree harus mempunyai panjang path yang sama.

2. Complete Binary Tree Mirip dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang path yang berbeda. Node kecuali leaf memiliki 0 atau 2 child.

3. Skewed Binary Tree Binary Tree yang semua nodenya (kecuali leaf) hanya memiliki satu child.

Operasi Binary Tree Create : membentuk binary tree baru yang masih kosong Clear : mengosongkan binary tree yang sudah ada Empty : function untuk memeriksa apakah binary tree masih kosong Insert : memasukkan sebuah node ke dalam tree. Ada 3 pilihan insert, yaitu : root, left child, atau right child. Khusus insert sebagai root, tree harus dalam keadaan kosong. Find : mencari root, parent, left child, atau right child dari suatu node. Tree tidak boleh kosong. Update : mengubah isi dari node yang ditunjuk oleh pointer current. Tree tidak boleh kosong. Retrive : mengetahui isi dari node yang ditunjuk oleh pointer current. Tree tidak boleh kosong. DeleteSub : menghapus sebuah subtree (node beserta seluruh descedantnya) yang ditunjuk current. Tree tidak boleh kosong. Setelah itu pointer current akan berpindah ke parent dari node yang dihapus. Characteristic: mengetahui karakteristik dari suatu tree, yakni : size, height, serta average lengthnya. Tree tidak boleh kosong. Traverse : mengunjungi seluruh node pada tree, masing-masing sekali. Hasilnya adalah urutan informasi secara linear yang tersimpan dalam tree. Ada tiga cara traverse : Pre Order, InOrder, dan PostOrder.

Contoh-contoh operasi Binary tree

Langkah Traverse PreOrder : cetak isi node yang dikunjungi, kunjungi Left Child, kunjungi Right Child. InOrder : kunjungi Left Child, cetak isi node yang dikunjungi, kunjungi Right Child. PostOrder : kunjungi Left Child, kunjungi Right Child, cetak isi node yang dikunjungi.

2. Binary Search Tree Adalah binary tree dengan sifat bahwa semua left child harus lebih kecil daripada right child dan parentnya. Semua right child harus lebih besar dari left child serta parentnya. Binary Search Tree dibuat untuk mengatasi kelemahan pada binary tree biasa, yaitu kesulitan dalam searching/pencarian node tertentu dalam binary tree.

3. AVL Tree Adalah binary search tree yang memiliki perbedaan tingkat tinggi/level antara subtree kiri dan subtree kanan maksimal adalah 1. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan. Selain AVL Tree terdapat juga Height Balanced n tree, yaitu binary search tree yang memiliki perbedaan level antara subtree kiri dan subtree kanan maksimal adalah n. Sehingga AVL Tree adalah Height Balanced 1 Tree.

Contoh Program //Program :tree.cpp #include <stdio.h> #include <malloc.h> struct nod { struct nod *left; char data; struct nod *right; }; typedef struct nod NOD; typedef NOD POKOK; NOD *NodBaru(char item) { NOD *n; n = (NOD*) malloc(sizeof(nod)); if(n!= NULL) { n->data = item; n->left = NULL; n->right = NULL; } return n; }

void BinaPokok(POKOK **T) { *T = NULL; } typedef enum { FALSE = 0, TRUE = 1} BOOL; BOOL PokokKosong(POKOK *T) { return((bool)(t == NULL)); } void TambahNod(NOD **p, char item) { NOD *n; n = NodBaru(item); *p = n; } void preorder(pokok *T) { if(!pokokkosong(t)) { printf("%c ", T->data); preorder(t->left); preorder(t->right); } }

void inorder(pokok *T) { if(!pokokkosong(t)) { inorder(t->left); printf("%c ", T->data); inorder(t->right); } } void postorder(pokok *T) { if(!pokokkosong(t)) { postorder(t->left); postorder(t->right); printf("%c ", T->data); } }

int main() { POKOK *kelapa; char buah; BinaPokok(&kelapa); TambahNod(&kelapa, buah = 'M'); TambahNod(&kelapa->left, buah = 'E'); TambahNod(&kelapa->left->right, buah = 'I'); TambahNod(&kelapa->right, buah = 'L'); TambahNod(&kelapa->right->right, buah = 'O'); TambahNod(&kelapa->right->right->left, buah = 'D'); printf("tampilan secara PreOrder: "); preorder(kelapa); printf("\ntampilan secara InOrder: "); inorder(kelapa); printf("\ntampilan secara PreOrder: "); postorder(kelapa); printf("\n\n"); return 0; }

SOAL LATIHAN : Buatlah program untuk menampilkan node baru ke dalam pohon dengan menggunakan prosedur preorder, inorder, dan postorder. Sehingga akan didapatkan hasil : Tampilan secara PreOrder : R A S I T E Tampilan secara InOrder : I S T A R E Tampilan secara PostOrder : I T S A E R

Terima Kasih Fitrianingsih, SKom., MMSI