Struktur Data Binary Search Tree (BST)

Slides:



Advertisements
Presentasi serupa
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Advertisements

STRUKTUR DATA (10) tree manipulation
By : Fitroh Amaluddin & Galih Wasis W.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Implementasi Binary Tree
Tree.
Tree Yuliana S.
Binary Tree Rangga Juniansyah.
Pertemuan 6 TREE & BINARY TREE
Penelusuran Bab 7 Pohon Biner 219.
Algoritma dan Struktur Data
Z Bekti - Rita - Sevenhot Struktur Data & Algoritma 2009.
ADT Tree 2007/2008 – Ganjil – Minggu 8.
Dasar Struktur Data.
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Tenia Wahyuningrum, S.Kom. MT
4. Pohon (Tree) 4.1. Definisi Rekurens Dari Pohon
STRUKTUR DATA tree manipulation
BINARY TREE Universitas Ahmad Dahlan
1 Pertemuan Tree Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Pertemuan 13 Graph + Tree jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Pertemuan 7 PRIORITY QUEUE & HEAP
Algoritma dan Struktur Data
Pertemuan 21 BASIC SEARCH AND TRAVERSAL
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
Binary Tree.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Menggambar Tree wijanarto.
Defri Kurniawan POHON DAN POHON BINER Defri Kurniawan
STRUKTUR DATA Chapt 6 : TREE Oleh : Yuli Praptomo PHS, S.Kom.
Pohon dan Pohon Biner Anifuddin Azis.
Manipulasi Tree.
TREE KELOMPOK 7 HUSNATUL WILDA ( ) MISRIANA ( )
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
STRUKTUR DATA Tree (Struktur Pohon).
Tree (POHON).
NAMA : SITI HAJAR NIM : UNIT : B NO.HP :0852 –
STRUKTUR DATA 2014 M. Bayu Wibisono.
Manipulasi Tree.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Parts of a Tree.
Algoritma dan Struktur Data
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Penelusuran Binary Tree
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
LINKED LIST GANDA Linked list ganda (doubly linked list) adalah linked list yang setiap simpul-nya (node) memiliki dua buah pointer, masing-masing berada.
Tree (Pohon).
POHON Pohon (Tree) merupakan graph terhubung tidak berarah dan tidak mengandung circuit. Contoh: (Bukan) (Bukan) (Bukan)
Oleh Shoffin Nahwa Utama, S.Kom
BINARY SEARCH TREE (BST)
IT234 Algoritma dan Struktur Data
Binary Search Tree (BST)
IT234 Algoritma dan Struktur Data
AVL - Tree Defenisi : avl Tree adalah Binary Search Tree yang mempunyai ketentuan bahwa “Maksimum perbedaan height antara subtree kiri dan subtree kanan.
Pohon Biner.
Algoritma dan Struktur Data
Binary Search Tree (BST)
HEAP Bella Wulan N. | Ester Prenatalia A. Mutiara Fitri T. | Risang Nihapsari Purwaning M.S KOMSI 2018 DEFINISI HEAP ALGORITMA HEAP.
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
Binary Search Tree (BST)
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

Struktur Data Binary Search Tree (BST) Universitas Muslim Indonesia Oleh Lutfi Budi Ilmawan

Introduction BST merupakan jenis khusus dari binary tree yang mengorganisasikan data secara efisien untuk proses search/pencarian, update/pengubahan, dan remove/penghapusan sehingga prosesnya bisa lebih cepat. Struktur data apa yang cocok untuk menympan sekumpulan data yang dapat dimodivikasi? Array bisa, linked list bisa.

Introduction Struktur data yang dapat digunakan untuk menyimpan sekumpulan data yang isinya dapat dimodifikasi secara cepat. Search(x) Insert(x) Remove(x) Kita dapat menggunakan array atau linked list. Berapa running time yang dibutuhkan?

Kompleksitas waktu Array 1 2 3 4 5 6 7

Kompleksitas waktu 2 4 1 6 Array 1 2 3 4 5 6 7

Kompleksitas waktu Array Search(x) O(n) 2 4 1 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Search(x) O(n) Untuk mencari nilai x, kita harus memeriksa terlebih dahulu nilai dari semua data pada array. Jika n adalah jumlah elemen dalam sebuah array. Maka dalam worst case, kompleksitas waktu untuk proses pencarian pada array adalah O(n).

Kompleksitas waktu Array Search(x) O(n) Insert(5) Insert(x) 2 4 1 6 1 1 2 3 4 5 6 7 Search(x) O(n) Insert(5) Insert(x) Jika masih ada cell yang kosong, maka proses penambahan data dapat dilakukan. Untuk panambahan data, kita dapat dengan mudah menambahkan 1 pada counter dari array tersebut, kemudian datanya dimasukkan.

Kompleksitas waktu Array Search(x) O(n) Insert(5) Insert(x) O(1) 2 4 1 6 5 Array 1 2 3 4 5 6 7 Search(x) O(n) Insert(5) Insert(x) O(1) Untuk panambahan data, kita dapat dengan mudah menambahkan 1 pada counter dari array tersebut, kemudian datanya dimasukkan pada index = counter+1

Kompleksitas waktu Array Search(x) O(n) Insert(5) Insert(x) O(1) 2 4 1 6 5 Array 1 2 3 4 5 6 7 Search(x) O(n) Insert(5) Insert(x) O(1) Remove(1) Remove(x) Untuk penghapusan data, terlebih dahulu kita mencari posisi dari nilai 1, kemudian menggeser nilai disebelah kanannya ke kiri, kemudian counternya dikurangi 1.

Kompleksitas waktu Array Search(x) O(n) Insert(5) Insert(x) O(1) 2 4 6 5 Array 1 2 3 4 5 6 7 Search(x) O(n) Insert(5) Insert(x) O(1) Remove(1) Remove(x) O(n) Proses insert cukup cepat, namun untuk proses pencarian waktu yang dibutuhkan bisa cukup lama, sebab pengecekan data dilakukan satu persatu. Misalkan waktu yang dibutuhkan untuk 1 pengecekan = 10^(-6). Misal n=10^(8) makan waktu yang dibutuhkan adalah 100 sec. Untuk mempercepat proses pencarian terlebih dahulu kita harus mengurutkan data yang ada

Introduction Proses insert cukup cepat, namun untuk proses pencarian waktu yang dibutuhkan bisa cukup lama, sebab pengecekan data dilakukan satu persatu. Misalkan waktu yang dibutuhkan untuk 1 pengecekan = 10-6 sec. Jika dilakukan pencarian pada array yang jumlah datanya 108 (100 juta) maka waktu yang dibutuhkan = 100 sec. Untuk mempercepat proses kita dapat melakukan pencarian dengan binary search dengan syarat nilai dalam array telah terurut. Kompleksitas waktunya = 0(log n).

Introduction Operasi Array (unsorted) Linked List Array (sorted) Search(x) O(n) O(log2 n) Insert(x) O(1) Remove(x) Pada binary search, untuk n jumlah data, jumlah pengecekan yang dilakukan adalah log2 n. dan untuk melakukan 1 pengecekan = 10^(-6) Maka jika terdapat data 2^(11) maka waktu yang dibutuhkan adalah 11*10^(-6) atau 11 microsecond.

Introduction Operasi Array (unsorted) Linked List Array (sorted) BST (balanced) Search(x) O(n) O(log2 n) Insert(x) O(1) Remove(x) Pada binary search, untuk n jumlah data, jumlah pengecekan yang dilakukan adalah log2 n. dan untuk melakukan 1 pengecekan = 10^(-6) Maka jika terdapat data 2^(11) maka waktu yang dibutuhkan adalah 11*10^(-6) atau 11 microsecond.

Binary Search Tree (BST) BST adalah suatu tree di mana untuk setiap node-nya, nilai dari left subtree-nya(cabang sebelah kiri) lebih kecil atau sama dengan, dan nilai dari right subtree-nya (cabang sebelah kanan) lebih besar. root BST BST Left subtree (lebih kecil) Right subtree (lebih besar)

Contoh BST 15 10 20 8 12 17 25

Contoh BST 15 10 20 8 16 17 25

Implementasi BST BST dapat diimplementasikan pada c++, strukturnya sama dengan linked list, tiap node terhubung melalui pointer.

Deklarasi struct BstNode{ int data; BstNode *left; BstNode *right; }; BstNode *root=NULL;

Binary Tree Traversal Definisi: Proses mengunjungi (visiting) setiap node pada sebuah tree tepat satu kali dengan menggunakan urutan tertentu. Visiting  membaca atau memproses data dalam sebuah node.

Binary Tree Traversal Breadth-first Level order Depth-first Preorder  <root><left><right> Inorder  <left><root><right> Postorder  <left><right><root>

Hapus Node pada BST Kasus I  Jika node tidak memiliki child Kasus II  Jika node memiliki 1 child Kasus III  Jika node memiliki 2 child Kasus I: referencenya dipotong, nodenya dihapus. Kasus II: reference berubah menunjuk pada childnya. Kasus III: Temukan nilai min pada right sub-tree Copy nilai min tersebut pada lokasi node yang ingin dihapus Hapus nilai yang terduplikasi.