Algoritma dan Struktur Data. Linear & Binary Search Tree

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

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

IT234 Algoritma dan Struktur Data. Tree

ANALISIS ALGORITMA BINARY SEARCH

Struktur Data dan Algoritma

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

Algoritma dan Struktur Data. Tree

KUM 6 IMPLEMENTASI BINARY TREE

MODUL PRAKTIKUM STRUKTUR DATA

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Tree (Struktur Data) Nisa ul Hafidhoh, MT

BAB XI Manipulasi Binary Tree

Politeknik Elektronika Negeri Surabaya

ALGORITMA DAN STRUKTUR DATA

Pohon dan Pohon Biner

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

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

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

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

Syarif Abdullah (G )

BAB IX TREE (POHON) ISTILAH DASAR

13/12/2013. Binary Tree. Contoh Tree

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

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Struktur Data & Algoritma

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

Algoritme dan Pemrograman

ALGORITMA PENGURUTAN & PENCARIAN

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

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

Struktur Data & Algoritma

A B C E F G K Contoh Tree

Koleksi Hirarkis Tree

6. TREE / BINARY TREE

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

Politeknik Elektronika Negeri Surabaya

TREE. Definisi. Istilah-istilah Umum dalam Tree

Pohon Biner (Bagian 1)

Struktur Data Tree/Pohon dalam Bahasa Java

Soal Pendahuluan Modul 3

Bab 1 Pengantar Struktur Data

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

Binary Search Tree (BST)

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

PENCARIAN (SEARCHING)

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

BAB VIII Pencarian(Searching)

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

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

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

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

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

Pohon Biner dan Aplikasinya

Membuat Binary Search Tree Menggunakan STL Vector C++

Politeknik Elektronika Negeri Surabaya

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

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

IKI 20100: Struktur Data & Algoritma

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

Praktikum Algoritma dan Setruktur Data

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

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. Click to edit Master subtitle style Konsep Tree

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

PERTEMUAN 11 TEHNIK SEARCHING

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 08

BUANA. Distribusi 01 September 2017

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

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

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

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

Buku Ajar Struktur Data

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

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Praktikum Algoritma dan Struktur Data 2010

MAKALAH STRUKTUR DATA HEAP SORT. Disusun Oleh :

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Penerapan Pohon Untuk Memanipulasi dan Meritrieve Data

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

Data Structure STRUKTUR DATA QUEUE. Chapter 3. Dahlia Widhyaestoeti, S.Kom

Algoritma Pemrograman & Struktur Data

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

Gambar 13.1 Ilustrasi proses algoritma sorting

Modul 4: Iteratif & Rekursif, Binary Tree

TREE STRUCTURE (Struktur Pohon)

Struktur Data & Algoritme (Data Structures & Algorithms)

POHON CARI BINER (Binary Search Tree)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-7 Pencarian (Searching) 2

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

Review : Sifat Implementasi Linear List dengan Array

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

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

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

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

Transkripsi:

Algoritma dan Struktur Data Linear & Binary Search Tree

Linear Search (1) (2) (3) (4) (5) (6) struct { int key; int data; } table[100]; int n; int search(int key) { int i; i=0; while (i < n){ if(table[i].key==key) return(table[i].data); i++; } return -1; } statement

Cara kerja Linear Search key data 1 10 3 12 4 14 8 16 13 18 14 20 18 22 20 24 21 26 130 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=0 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=1 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=2 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=3 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=4 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=5 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=6 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 99

Cara kerja Linear Search key data search(18) i=6 1 3 4 8 13 14 18 20 21 130 10 12 14 16 18 20 22 24 26 26 return(table[6].data) = 22

Binary Search (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) int binary_search(int key) { int low, high, middle; low = 0; high = n-1; while (low <= high){ middle = (low+high) / 2; if (key == table[middle].key) return(table[middle].data) else if(key < table[middle].key) high = middle 1; else low = middle + 1; } return -1; }

Cara kerja Binary Search key data binary_search(14) n=10 low=0 middle=4 high=9 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 low=5 high=9 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data binary_search(14) n=10 low=5 middle=7 high=9 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data n=10 binary_search(14) low high 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data n=10 binary_search(14) low middle high 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 Syarat Binary Search: Data harus sudah terurut (sorted)

Cara kerja Binary Search key data n=10 binary_search(14) middle 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 table 0 1 2 3 4 5 6 7 8 9 return(table[5].data) = 20 Syarat Binary Search: Data harus sudah terurut (sorted)

Penambahan Data pada Linear Search 17 Data yang ingin ditambahkan 31 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 Ditaruh di paling belakang 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 17 31

Penambahan Data pada Binary Search 17 31 Data yang ingin ditambahkan Mencari tempat menaruh data 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 Menggeser data dengan nilai lebih besar ke belakang

Penambahan Data pada Linear Search 17 31 Data yang ingin ditambahkan Mencari tempat menaruh data 1 3 4 8 13 14 18 20 21 25 10 12 14 16 18 20 22 24 26 26 1 3 4 8 13 14 17 18 20 21 25 10 12 14 16 18 20 31 22 24 26 26

Apakah Binary Search Tree itu? Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, elemen yang berada di LEFT sub-tree selalu lebih KECIL daripada x elemen yang berada di RIGHT sub-tree selalu lebih BESAR Atau SAMA DENGAN daripada x Binary Search Tree: proses pencarian (SEARCHING) berbasis binary tree

Operasi pada BST Traversals Searches Insertion Deletion

Example of a binary search tree

Traversals Preorder traversal 23 18 12 20 44 35 52 Postorder traversal 12 20 18 35 52 44 23 Inorder traversal 12 18 20 23 35 44 52 Inorder traversal pada BST menghasilkan nilai yang terurut dari kecil ke besar 25

Proses Pencarian (contoh SUKSES) search(7) 7<13 13 5 7>5 21 2 7 15 6 7==7 Data yang dicari BERHASIL ditemukan 13 5 7

Proses Pencarian (contoh GAGAL) search(8) 8<13 13 5 8>5 21 2 7 8>7 15 6 Data tidak ada Data yang dicari GAGAL ditemukan

Proses Pencarian 6 search(7) 5 21 2 13 15 6 21 15 13 7 7 8

Find the smallest node

Find the smallest node

Find the largest node right subtree not empty right subtree not empty right subtree empty return

Proses Penambahan (INSERTION) insert(8) 8<13 13 5 8>5 21 2 7 8>7 15 6 Data tidak ada Data yang dicari GAGAL ditemukan = disitulah data ditambahkan (insertion)

Penambahan Data pada Binary Search Tree 13 6 5 21 5 21 2 7 15 2 15 13 6 7 Tambahkan node: 8

Penambahan Data pada Binary Search Tree 13 6 5 21 5 21 2 7 15 2 15 13 6 8 7 (a) (b) Perhatikan: (b) lebih bercabang/panjang daripada (a), akibatnya proses pencarian pada (b) lebih lama daripada (a) 8

Penghapusan Data pada Binary Search Tree Proses penghapusan data pada binary search tree lebih rumit daripada proses searching maupun proses insertion Tahapan: 1. Carilah node yang akan dihapus 2. Apabila node tersebut leaf (tidak mempunyai anak), hapuslah node tersebut 3. Bila node tersebut memiliki 1 anak, setelah node dihapus, anaknya menggantikan posisi orangtuanya (node yang dihapus) 9 hapus 1 9 5 5 1 7 7

Penghapusan Data pada Binary Search Tree 9 5 14 hapus 5 9 3 14 3 1 4 1 4

Penghapusan Data pada Binary Search Tree Proses penghapusan data pada binary search tree lebih rumit daripada proses searching maupun proses insertion Tahapan: 1. Carilah node yang akan dihapus 2. Apabila node tersebut leaf (tidak mempunyai anak), hapuslah node tersebut 3. Bila node tersebut memiliki 1 anak, setelah node dihapus, anaknya menggantikan posisi orangtuanya (node yang dihapus) 4. Bila node tersebut memiliki 2 anak, setelah node dihapus, gantikan node tersebut dengan elemen terkecil dari right sub-tree elemen terbesar dari left sub-tree ATAU

Penghapusan Data pada Binary Search Tree 20 7 23 hapus 7 20 10 23 4 18 29 4 18 29 2 5 10 2 5 15 15

node yang dihapus leaf (tidak mempunyai anak) Menghapus node dengan nilai terkecil 13 5 20 hapus 2 13 5 20 2 7 7

node yang mempunyai 1 anak Menghapus node dengan nilai terkecil 13 5 20 hapus 5 10 13 20 10 7 11 7 11

/* dltkey = root */

(continued)