BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

dokumen-dokumen yang mirip
Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

MODUL PRAKTIKUM STRUKTUR DATA

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

STRUKTUR POHON & KUNJUNGAN POHON BINER

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.

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

Pohon dan Pohon Biner

Pemrograman Algoritma Dan Struktur Data

Tree (Struktur Data) Nisa ul Hafidhoh, MT

IT234 Algoritma dan Struktur Data. Tree

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

BAB IX TREE (POHON) ISTILAH DASAR

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

ALGORITMA DAN STRUKTUR DATA

Organisasi Berkas Sekuensial Berindeks

KUM 6 IMPLEMENTASI BINARY TREE

BAB XI Manipulasi Binary Tree

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

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

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

Algoritma dan Struktur Data. Linear & Binary Search Tree

Algoritma dan Struktur Data. Tree

Struktur Data & Algoritma

A B C E F G K Contoh Tree

STRUKTUR DATA. Literatur

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

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

ANALISIS ALGORITMA BINARY SEARCH

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

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

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

Algoritma Pemrograman & Struktur Data

Politeknik Elektronika Negeri Surabaya

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Variasi Pohon Pencarian Biner Seimbang

Struktur Data dan Algoritma

Syarif Abdullah (G )

Pemodelan dan Pengelolaan Data Klasifikasi Tanaman Menggunakan Pohon

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

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

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

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

Buku Ajar Struktur Data

TREE STRUCTURE (Struktur Pohon)

BAB VII POHON BINAR POHON

Soal Pendahuluan Modul 3

BAB 2. STRUKTUR DATA

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

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

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

MODUL PRAKTIKUM STRUKTUR DATA

Organisasi File Multi Key y( (Index)

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

Penerapan Pohon Dalam Heap Sort

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB IX LINKED LIST (SENARAI BERANTAI)

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

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

Struktur Data Tree/Pohon dalam Bahasa Java

Binary Search Tree (BST)

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

Struktur Data. PDE - Struktur Data 1

Penerapan Teori Pohon Dalam Kajian Struktur Data

IKI 20100: Struktur Data & Algoritma

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

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Struktur Data & Algoritma

Koleksi Hirarkis Tree

SORTING (Pengurutan)

Politeknik Elektronika Negeri Surabaya

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

TREE. Definisi. Istilah-istilah Umum dalam Tree

BAB 7 POHON BINAR R S U

Struktur. Bab 4: Linked LIst 4/8/2015

BAB 3 SEARCHING A. TUJUAN

ANALISIS KECEPATAN STRUKTUR DATA LINKED LIST DAN TREE

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

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

Laporan Praktikum 14 (5) ( ) Metode Komputasi Matematika. Penyelesaian Soal UAS Metode Komputasi Syarif Abdullah (G )

Modul Praktikum Algoritma dan Struktur Data

6. TREE / BINARY TREE

Politeknik Elektronika Negeri Surabaya

13/12/2013. Binary Tree. Contoh Tree

KKKF33110 STRUKTUR DATA

Struktur. Bab 4: Linked LIst 4/8/2015

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

Penerapan Pohon Untuk Memanipulasi dan Meritrieve Data

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

MODUL PRAKTIKUM STRUKTUR DATA

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

Ujian Akhir Semester Ganjil 2013/2014

Tampilan layar menu login

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

Transkripsi:

BINARY SEARCH TREE TUJUAN UMUM Mahasiswa memahami binary search Tree

Tujuan Khusus Bentuk Khusus Binary Tree Rekursive pada Binary Tree Tree Traversal Operasi pada Binary Tree Implementasi Binary Tree pada Array Implementasi dengan double Linked List Implementasi dengan Multi Linked List Expression Tree

2. Binary Search Tree Adalah binary tree dengan sifat bahwa 1. semua left child harus lebih kecil daripada right child dan parentnya. 2. Juga semua right child harus lebih besar dari left child serta parentnya. 3. Parent harus lebih besar dari left subtreedan harus lebih kecil dari right subtree. 4. Tidak boleh ada node yang mempunyai nilai yang sama, dengan kata lain tidak boleh terjadi duplikasi data. Target Node Karena ketentuan di atas, maka Binary Seacrh tree dapat digunakan untuk tempat penyimpanan data secata terurut, sehingga pencarian data (searching) bisa lebih efisien. Untuk itu dapat ditentukan suatu target node yaitu node yang berisi data yang akan dicari.

Contoh Binary Search Tree Gita Edi Kemal Bejo Farid Halim Silvi Operasi-operasi pada binary search tree Semua operasi pada binary search tree dapat digunakan pada Binary Search Tree, kecuali: Insert Update Delete Perlu perubahan pada operasi Insert dan Delete sehingga urutan data di dalam tree dapat dipertahankan. Insert(elemen_type e) Insert selalu dimuali dari Root node a. Bila tree kosong, maka node baru sebagai Root node b. Bila tidak kosong nilai e dibandingkan dengan nilai root c. Bila lebih kecil insert ke subtree kiri, bila lebih besat inser ke subtree kanan.

Insert(); CONTOH Memasukkan sebuah node yang berisi angka. Karena tree masih kosong, maka secara otomatis node tersebutmenjadi root Insert(15); Karena 15 lebih besar, maka sesuai dengan peraturan harus berada disebelah kanan parent (right child) Insert(13); Karena 13 lebih besar, maka sesuai dengan peraturan harus berada disebelah kanan parent (right child), lalu dibandingkan lagi dengan 15. Karena lebih kecil maka 13 menempati left child dari 15. 15 15 Insert(9); Insert(5); Insert(11); Insert(); 13

Delete( ) Semua proses delete akan dimulai dari binary search tree berikut: 5 4 6 Jika yang didelete adalah leaf node, maka tidak perlu perubahan posisi pada tree. Delete(4); 5 6 Jika yang didelete adalah node yang memiliki satu anak, maka anak tersebut menggantikan posisi parent. Delete(5);

5 6 6 Jika yang didelete adalah node yang memiliki dua anak, maka pengganti posisi parent dapat dipilih: a. Node terbesar dari subtree kiri atau b. Node terkecil dari subtree kanan Delete(); 19 6

6 Dari subtree Kiri 6 Dari subtree Kanan 6

Update Seperti pada binary tree biasa, namun di sini akan berpengaruh pada posisi node tersebut selanjutnya. Bila setelah diupdate mengakibatkan tree tersebut bukan binary search tree lagi, maka harus dilakukan perubahan pada tree dengan melakukan rotasi supaya tetap menjadi Binary search tree. Pada dasarnya operasi ini merupakan gabungan dari operasi Delete dan Insert. Contoh: Update(34); Delete node yang ditunjuk oleh current kemudian insert 34.

LATIHAN: Bila tanda + menunjukkan Insert dan tanda menunjukkan delete, gambarkan Binary search tree untuk data berikut: +45 +56 + +30-45 +54 +34 +55 - +67-54 2. Untuk Binary Search tree berikut, buat perintah-perintah dengan Find( ), Insert( ) dan Delete( ), untuk mengubah menjadi 53. Gambar Binary Search tree yang terjadi. 6

AVL TREE Kelemahan yang dialami oleh binary search tree adalah kemungkinan bentuk tree yang didapat adalah bentuk skewed (binary tree miring) sehingga pencarian menjadi sekuensial. Untuk menghindari hal tersebut, digunakan AVL tree, di mana karakteristik dari tree tersebut adalah: Perbedaan tinggi/level antara subtree kiri dan subtree kanan maksimal adalah 1. Keseimbangan subtree kiri dan kanan, dijaga dengan suatu mekanisme rotasi, untuk itu perlu diterapkan beberapa kerentuan sebagai berikut: 1. Tanda Keseimbangan subtree: a. Node parent diberi tanda 0, bila ketinggian subtree kiri = subtree kanan. b. Node parent diberi tanda +, bila ketinggian subtree kiri < subtree kanan c. Node parent diberi tanda -, bila ketinggian subtree kiri > subtree kanan

+ 0 + 5 0-0 - 16 4 6 0 14 30 46 61 76 54 63 2. Search Path Path dimana node baru akan melalui untuk sampai pada posisi insert. Contoh: Insert(17); Search Path untuk data 17 5

3. Pivot Node Pivot Node adalah node yang: a. Berada di search-path b. Bertanda + atau c. Paling dekat dengan node baru Pivot node merupakan sumbu putar, bila regenarasi tree diperlukan. 0 + + 5 0-0 - 16 4 6 0 14 30 46 61 76 54 63 Node 16 adalah pivot node, bila node baru = Node adalah pivot node, bila node baru = Node adalah pivot node, bila node baru = Node adalah pivot node, bila node baru =

Operasi INSERT Kasus 1 Tidak terdapat pivot node, maka node baru langsung masuk tanpa harus melihat keseimbangan subtree Kasus 2 Terdapat pivot node, periksa keseimbangan subtree, bila node baru tidak menyebabkan perbedaan ketinggian subtree > 1 maka node dapat masuk tanpa regenarasi tree Keseimbangan subtree dilihat dari pivot node. Kasus 3 Terdapat pivot node, periksa keseimbangan subtree, bila node baru menyebabkan perbedaan ketinggian subtree > 1 maka node masuk dengan melakukan regenerasi tree. Regenarasi Tree 1. Rotasi Tungggal(single Rotasion) Rotasi Kiri atau Kanan 2. Rotasi Ganda( Double Rotation) Rotasi Kiri kemudian Rotasi kanan atau Rotasi kanan kemudian rotasi kiri

Contoh Kasus 1 0 Insert dengan nilai node berapapun, langsung masuk, misalkan: Insert(54); + - Contoh Kasus 2 + - Insert(70), pivot node adalah node

+ 0 70 Contoh Kasus 3 Insert(72), pivot node adalah node P + Menjadi anak Kiri 0 Menjadi Parent 70 Menadi Anak Kanan 72 Gambar parent, anak kiri dan kanan 70

Tambahkan node sebagai anak dan node 72 sebagai anak 70. Diman posisi posisi 54? LATIHAN: 1. Lakukan operasi Insert untuk data: 3 2 56 15 13 30 60 70 75 55 45 35 25 15 2. Cari informasi tentang singkatan AVL, ia merupakan nama dua orang yang pertama kali membangun heightbalance tree.

Rotasi Ganda Insert();Insert(30) dan Insert(); akan menghasilkan tree. P + Menjadi anak Kiri 30 Menjadi Parent Menadi Anak Kanan Seandainya dilakukan rotasi tunggal menurut langkah-langkah yang telah dijelaskan pada pertemuan yang lalu, maka didapat hasil sebagai berikut: 30 Hasil tersebut tentu bukan yang diharapkan, oleh karena itu kasus seperti di atas harus diselesaikan dengan rotasi ganda.

P + Rotasi Kedua 30 Rotasi Pertama Hasil dari rotasi pertama: P + Hasil dari rotasi kedua: 30 30 Sesuai dengan yang diharapkan.

Contoh lain: Insert(53); + Rotasi Kedua 54 53 0 70 Rotasi Pertama Hasil dari Rotasi Pertama: Hasil dari Rotasi Kedua: + 54 Rotasi Kedua 54 53 53 70 70

Rotasi Ganda Rotasi kiri kemudian Rotasi kanan. Insert(21) 29 0 0-5 16 0 4 6 14 22 Latihan: 1. Lakukan operasi Insert untuk data: a. 3,, 2,, 56, 8, 15, 18 b., 16, 14, 8, 9, 13,, 11, 15,, 18, 22, 17 Pada AVL tree.

OPERASI DELETE Pada operasi delete, tidak ada pivot node, karena tidak ada node baru yang akan masuk. Sebagai acuan bila operasi delete menyebabkan tree harus regenerasi, digunakan pemeriksaan secara berjenjang mulai dari anak node yang dihapus di mana node pengganti berada, dilanjutkan ke posisi node yang dihapus, kemudian terus naik hingga Root node. Selama pemeriksanaan dapat terjadi beberapa rotasi baik rotasi tunggal maupun rotasi ganda, dengan demikian operasi delete merupakan operasi yang sangat kompleks, lebih sulit dari operasi insert.