Binary Search Tree (BST)

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

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

Penambahan Simpul (Node)

Dinamik Linked List. hari bulan tahun

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

MODUL PRAKTIKUM STRUKTUR DATA

Pemrograman Algoritma Dan Struktur Data

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

ALGORITMA DAN STRUKTUR DATA

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Membuat Binary Search Tree Menggunakan STL Vector C++

Stack. Pointer ke node pertama dari stack. Bagian deklarasi di atas kita asumsikan disimpan menjadi sebuah header file dengan nama stack.

Tree (Struktur Data) Nisa ul Hafidhoh, MT

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

POHON CARI BINER (Binary Search Tree)

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

KUM 6 IMPLEMENTASI BINARY TREE

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

BAB IX TREE (POHON) ISTILAH DASAR

Pernyataan (Statement)

Algoritma dan Struktur Data. Ramos Somya

IT234 Algoritma dan Struktur Data. Tree

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

Politeknik Elektronika Negeri Surabaya

Algoritma dan Struktur Data. Tree

Organisasi Berkas Sekuensial Berindeks

Minggu ke-10 Pointer. Pendahuluan. Objektif. Bahan Bacaan

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

ANALISIS ALGORITMA BINARY SEARCH

Algoritma Pemrograman & Struktur Data

Algoritma dan Struktur Data. Linear & Binary Search Tree

Algoritma Pemrograman & Struktur Data

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

TREE STRUCTURE (Struktur Pohon)

Minggu ke-11 Fungsi (Function)

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

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Gambar 13.1 Ilustrasi proses algoritma sorting

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

Struct dan Fungsi. Pendahuluan. Objektif. Bahan Bacaan

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

SENARAI BERANTAI (LINK LIST)

Algoritme dan Pemrograman

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

Studi Digital Tree dan Aplikasinya pada Kamus

Array (Single Dimension)

DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG)

File. Dalam bahasa pemrograman C, terdapat dua jenis stream: teks (ASCII) dan binari. Minggu ini, FILE dan stream jenis teks akan dibahas.

Pohon dan Pohon Biner

Minggu ke-13 Berkas (File)

Struktur Data dan Algoritma

Pointer. Objektif. Bahan Bacaan

Algoritma dan Struktur Data. Linked List

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

Pohon Biner (Bagian 1)

Array (Single Dimension)

Soal Pendahuluan Modul 3

LIST. Dewi Sartika, M.Kom

Pernyataan (Statement) dan Input/Output

STRUKTUR POHON & KUNJUNGAN POHON BINER

Praktikum Algoritma dan Struktur Data

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

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

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

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

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

A B C E F G K Contoh Tree

Algoritme dan Pemrograman

Tipe Data. Pendahuluan. Objektif. Bahan Bacaan

13/12/2013. Binary Tree. Contoh Tree

SORTING (Pengurutan)

P12 Binary Tree TIF42/SIF42

Minggu ke-14 Typedef, Struct & Command Line Argument

Review : Sifat Implementasi Linear List dengan Array

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR

Penger6an struct. Algoritme dan Pemrograman. Cara membuat struct. Deklarasi struct. Pointer pada struct 12/10/14 ILKOM IPB 1

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Struct Lanjutan: Studi Kasus

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

6. TREE / BINARY TREE

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

Organisasi File Multi Key y( (Index)

Praktikum Algoritma dan Setruktur Data

Struktur Data II. Single Linked List - Non circular

A. TUJUAN PEMBELAJARAN

Pencarian (Searching)

PERTEMUAN KE 11. Linked List. Apa Itu Linked List?

BAB IV Antrian(Queue)

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

STRUKTUR DATA single linked list non circular

PENCARIAN KITAB BESERTA PASAL PADA ALKITAB BERDASARKAN KATA DENGAN MENGGUNAKAN STRUKTUR DATA TRIE

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

Buku Ajar Struktur Data

Transkripsi:

PROGRAM STUDI INFORMATIKA Universitas Syiah Kuala Struktur Data dan Algoritma Binary Search Tree (BST) Dr. Taufik Fuadi Abidin, M.Tech tfa@informatika.unsyiah.ac.id

Binary Tree Binary Tree adalah struktur data yang mirip dengan Linked List. Bila Linked List dianalogikan sebagai rantai yang linier maka Binary Tree dianalogikan sebagai pohon. Binary Tree dikelompokkan menjadi tree yang tidak berurut (unordered Binary Tree) dan tree yang terurut (ordered Binary Tree). Binary Tree dapat digambarkan berdasarkan kondisinya, yaitu: Binary Tree kosong Pointer ke akar (root) dari tree Binary Tree sebagai root sekaligus sebagai daun (leaf) Gambaran dari Binary Tree yang terdiri dari (tiga) node: Pointer ke root dari tree Root dari tree Leaf dari tree Binary Search Tree Binary Search Tree (BST) merupakan tree yang terurut (ordered Binary Tree) yang memiliki kelebihan bila dibanding dengan struktur data lain. Diantaranya adalah proses pengurutan (sorting) dan pencarian (searching) dapat dilakukan bila data sudah tersusun dalam struktur data BST. Pengurutan dapat dilakukan bila BST ditelusuri (traversed) menggunakan metode in-order. Detail dari proses penelusuran ini akan dibahas pada pertemuan selanjutnya. Data yang telah tersusun dalam Struktur Data dan Algoritma 1

struktur data BST juga dapat dicari dengan mudah dan memiliki rata-rata kompleksitas sebesar O(log n), namun membutuhkan waktu sebesar O(n) pada kondisi terjelek dimana BST tidak berimbang dan membentuk seperti linked list seperti contoh berikut: Aturan Dalam Membangun BST Agar data benar-benar tersusun dalam struktur data BST, dua aturan yang harus dipenuhi pada saat data diatur dalam BST adalah sebagai berikut: 1. Semua data dibagian kiri sub-tree dari node t selalu lebih kecil dari data dalam node t itu sendiri. 2. Semua data dibagian kanan sub-tree dari node t selalu lebih besar atau sama dengan data dalam node t. BST berikut adalah sebuah BST berukuran 9 dengan kedalaman dengan node daun (leaf) adalah 1, 4, dan 1. Struktur Data dan Algoritma 2

Contoh Aplikasi BST 1. Membangun daftar vocabulary yang merupakan bagian dari inverted index (sebuah struktur data yang digunakan oleh banyak mesin pencari seperti Google.com, Yahoo.com dan Ask.com) 2. Banyak digunakan dalam bahasa pemrograman untuk mengelola dan membangun dynamic sets. Pembentukan BST Bila diketahui sederetan data,,, 1, 4, 6, 8, 9 maka pemasukan data tersebut dalam struktur data BST, langkah per langkah, adalah sebagai berikut: Langkah 1: Pemasukan data sebagai root Langkah 2: Pemasukan data disebelah kiri simpul karena <. Struktur Data dan Algoritma

Langkah : Pemasukan data disebelah kanan simpul karena >. Langkah 4: Pemasukan data 1. Karena data 1 lebih kecil dari data di root yaitu maka penelusuran dilanjutkan kesebelah kiri root. Kemudian karena disebelah kiri sudah ada daun dengan nilai dan data 1 lebih kecil dari data maka data 1 disisipkan disebelah kiri simpul. 1 Langkah : Pemasukan data 4. 1 4 Struktur Data dan Algoritma 4

Langkah 6: Pemasukan data 6. Karena data 6 lebih besar dari data di root yaitu maka penelusuran dilanjutkan kesebelah kanan root. Kemudian karena disebelah kanan sudah ada simpul dengan nilai dan data 6 lebih kecil dari data maka data 6 disisipkan disebelah kiri simpul. 1 4 6 Langkah : Pemasukan data 8. Karena data 8 lebih besar dari data di root yaitu maka penelusuran dilanjutkan kesebelah kanan root. Kemudian karena disebelah kanan sudah ada simpul dengan nilai dan karena data 8 lebih besar dari data maka data 8 disisipkan disebelah kanan simpul. 1 4 6 8 Struktur Data dan Algoritma

Langkah 8: Pemasukan data 9. Karena data 9 lebih besar dari data di root yaitu maka penelusuran dilanjutkan kesebelah kanan root. Kemudian karena disebelah kanan bukan merupakan daun yaitu simpul dengan nilai dan karena data 9 lebih besar dari data penelusuran terus dilanjutkan kesebelah kanan. Selanjutnya ditemukan daun dengan nilai 8, karena data 9 lebih besar dari 8 maka data 9 disisipkan disebelah kanan simpul 8. 1 4 6 8 9 Struktur Data dan Algoritma 6

Contoh Implementasi BST Menggunakan Bahasa C Diskusikan secara kelompok implementasi dari algoritma Binary Search Tree berikut ini. /* file bst.h */ typedef struct intbstnode * IntBSTNodePtr; typedef struct intbstnode { int data; IntBSTNodePtr left, right; IntBSTNode; typedef struct root { IntBSTNodePtr root; unsigned size; IntBSTree; Bagian Deklarasi int MakeIntBST(IntBSTree *); int InsertBST(IntBSTree *, int); void freebst(intbstnode *); void inorder(intbstnode *); Bagian deklarasi di atas diasumsikan disimpan dalam sebuah file header dengan nama bst.h. Fungsi-fungsi di bawah ini diasumsikan disimpan dalam file dengan nama bst.c /* file bst.c */ #include "bst.h" #include <stdio.h> #include <stdlib.h> int MakeIntBST(IntBSTree * pbst) { pbst->root = NULL; pbst->size = 0; return EXIT_SUCCESS; Struktur Data dan Algoritma

int InsertBST(IntBSTree * pbst, int data) { IntBSTNodePtr current, previous, new; previous = NULL; current = pbst->root; while(current!= NULL) { previous = current; if (data < current->data) { current = current->left; else { current = current->right; new = malloc(sizeof(intbstnode)); if (new == NULL) { return EXIT_FAILURE; new->data = data; new->left = NULL; new->right = NULL; (pbst->size)++; if (previous == NULL) { pbst->root = new; return EXIT_SUCCESS; if (data < previous->data) { previous->left = new; else { previous->right = new; return EXIT_SUCCESS; Struktur Data dan Algoritma 8

void freebst(intbstnode * pbst) { if(pbst!=null) { freebst(pbst->left); free(pbst); freebst(pbst->right); free(pbst); void inorder(intbstnode * pbst) { if(pbst!=null) { inorder(pbst->left); printf("%d->",pbst->data); inorder(pbst->right); printf("\n"); /* Program utama */ int main(void) { IntBSTree ibst; MakeIntBST(&ibst);,,, 1, 4, 6, 8, 9 InsertBST(&ibst,); InsertBST(&ibst,); InsertBST(&ibst,); InsertBST(&ibst,1); InsertBST(&ibst,4); InsertBST(&ibst,6); InsertBST(&ibst,8); InsertBST(&ibst,9); inorder(ibst.root); freebst(ibst.root); return EXIT_SUCCESS; Struktur Data dan Algoritma 9