IF Pengantar Logika dan Pemrograman Pertemuan ke-12

dokumen-dokumen yang mirip
POHON CARI BINER (Binary Search Tree)

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

TREE STRUCTURE (Struktur Pohon)

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

Pemrograman Algoritma Dan Struktur Data

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.

BAB VII POHON BINAR POHON

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

KUM 6 IMPLEMENTASI BINARY TREE

Organisasi Berkas Sekuensial Berindeks

Buku Ajar Struktur Data

P12 Binary Tree TIF42/SIF42

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

MODUL PRAKTIKUM STRUKTUR DATA

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

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Pohon (Tree) Contoh :

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

STRUKTUR POHON & KUNJUNGAN POHON BINER

ALGORITMA DAN STRUKTUR DATA

Struktur Data & Algoritma

Struktur Data dan Algoritma

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

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

Variasi Pohon Pencarian Biner Seimbang

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

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

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

Politeknik Elektronika Negeri Surabaya

A B C E F G K Contoh Tree

Struktur Data Pohon Untuk Memodelkan Struktur Data Himpunan

Soal Pendahuluan Modul 3

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

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

BAB IX TREE (POHON) ISTILAH DASAR

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

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

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

Binary Search Tree (BST)

Penerapan Pohon Keputusan dalam Pengambilan Keputusan Terbaik dibidang Pemasaran Produk

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

IT234 Algoritma dan Struktur Data. Tree

BAB XI Manipulasi Binary Tree

Pertemuan 15 REVIEW & QUIS

Penerapan Pohon Dalam Heap Sort

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

Pengaplikasian Pohon dalam Sistem Repository Ubuntu Linux

Struktur dan Organisasi Data 2 POHON BINAR

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

Penerapan Pohon Untuk Memanipulasi dan Meritrieve Data

BAB 7 POHON BINAR R S U

Algoritma Pemrograman & Struktur Data

Implementasi Struktur Data Rope menggunakan Binary Tree dan Aplikasinya dalam Pengolahan Teks Sangat Panjang

STRUKTUR DATA. Literatur

Penerapan Teori Pohon Dalam Kajian Struktur Data

3.2 Teorema-Teorema Limit Fungsi

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

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

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

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

Dasar Kerja Pengaplikasian Self-balancing Binary Search Tree untuk Pencarian sebagai Struktur Data yang Lebih Mangkus dan Sangkir

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

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

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

Penyelesaian Five Coins Puzzle dan Penghitungan Worst-case Time dengan Pembuatan Pohon Keputusan

Pemanfaatan Pohon Biner dalam Pencarian Nama Pengguna pada Situs Jejaring Sosial

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

3.2 Teorema-Teorema Limit Fungsi

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

KUNJUNGAN PADA POHON BINER

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi Pohon dalam Pencarian dan Penempatan Buku di Perpustakaan

Struktur Data Tree/Pohon dalam Bahasa Java

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

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

PERSAMAAN GARIS LURUS

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

3. Gabungan Fungsi Linier

Komplemen Boolean dituliskan dengan bar/garis atas dengan aturan sebagai berikut

Data Structure TREE & BINARY TREE. Chapter 5b. Dahlia Widhyaestoeti, S.Kom

BAB 2 LANDASAN TEORI

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

Penerapan Pohon Untuk Menyelesaikan Masalah Labirin

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


Fungsi dan Grafik Diferensial dan Integral

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

Darpublic Nopember 2013

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

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

13/12/2013. Binary Tree. Contoh Tree

Transkripsi:

IF184982 Pengantar Logika dan Pemrograman Pertemuan ke-12 Misbakhul Munir IRFAN SUBAKTI 司馬伊凡 Мисбакхул Мунир Ирфан Субакти

Binar Search Tree Pohon Pencarian Biner Binar Search Tree (BST): Struktur data pohon biner berbasis simpul (node-based binar tree): Cabang pohon kiri dari suatu simpul berisi simpul-simpul dengan nilai ang lebih kecil dari nilai simpul tersebut Cabang pohon kanan dari suatu simpul berisi simpul-simpul dengan nilai ang lebih besar dari nilai simpul tersebut Cabang pohon kiri dan cabang pohon kanan juga harus merupakan pohon pencarian biner Tidak boleh ada simpul ang memiliki nilai ang sama 50 30 70 20 40 60 80 2

Pohon AVL Pohon AVL = AVL Trees AVL = Adelson-Velsk and Landis Jenis pohon pencarian biner (BST, Binar Search Tree) ang bisa meneimbangkan diri sendiri Setiap simpul (node), cabang kiri dan cabang kananna mempunai perbedaan tinggi paling banak 1 Penisipan (insertion)/penghapusan (delete) dalam AVL dimungkinkan, secara umum, merusak keseimbangan properti/sifat keseimbangan-tinggi di atas perlu dilakukan rotasi untuk meneimbangkan kembali pohon dan mendapatkan kembali sifat keseimbangan-tinggina Kebanakan operasi di BST, aitu: cari, maks, min, sisipkan, hapus, dll.; memerlukan waktu O(t) di mana t adalah tinggi dari BST bisa lebih cepat menjadi O(n) untuk pohon biner ang miring (skewed binar tree), dengan n adalah jumlah dari simpul (node) Jika tinggi dari pohon bisa dijaga selalu O(log n) setelah penisipan dan penghapusan batas atas bisa dijaga pada O(log n) untuk semua operasi tadi, dengan n adalah jumlah dari simpul Tinggi dari Pohon AVL adalah selalu O(log n) batas atas semua operasi adalah O(log n) 3

Pohon AVL & Bukan Pohon AVL 13 13 9 19 9 19 6 12 18 6 12 18 5 Pohon AVL 3 5 8 Bukan Pohon AVL 4

Penisipan pada BST Penisipan suatu elemen (nilai) baru dalam standar BST adalah sbb: Elemen baru selalu disisipkan pada simpul ujung pohon (simpul daun) Pencarian dari simpul ang akan disisipi dimulai dari akar pohon teratas sampai ditemukan sebuah simpul daun Sekali simpul daun ditemukan, maka simpul baru akan ditambahkan sebagai anak dari simpul daun Properti/sifat dari BST: elemen(kiri) < elemen(akar) < elemen(kanan) 100 100 20 120 10 30 Sisipkan 50 20 120 10 30 50 5

Penisipan pada AVL Untuk menjaga agar pohon selalu dalam kondisi AVL setelah penisipan, penisipan standar BST di atas harus dimodifikasi untuk mendapatkan keseimbangan kembali. 2 operasi dasar untuk meneimbangkan kembali BST tanpa melanggar properti/sifat dari BST (elemen(kiri) < elemen(akar) < elemen(kanan): Rotasi kiri Rotasi kanan 6

Rotasi Kiri dan Rotasi Kanan P 1, P 2 dan P 3 adalah cabang dari pohon dengan akar (sisi kiri) dan akar (sisi kanan) P 1 P 2 P 3 Rotasi Kanan P 1 Rotasi Kiri P 2 P 3 Elemen-elemen dari pohon-pohon di atas mengikuti aturan: elemen-elemen(p 1 ) < elemen() < elemen-elemen(p 2 ) < elemen() < elemen-elemen(p 3 ) Sehingga tetap memenuhi sarat properti/sifat BST 7

AVL: Penisipan Simpul ang akan disisipkan adalah s. 1. Lakukan penisipan standar BST untuk s. 2. Dimulai dari s, bergeraklah ke atas dan temukan simpul pertama ang tidak seimbang. Diasumsikan adalah simpul pertama ang tidak seimbang, adalah anak dari ang datang melalui jalur dari s to, dan adalah cucu dari ang datang melalui jalur dari s to. 3. Seimbangkan kembali pohon dengan melakukan rotasi ang diperlukan pada cabang pohon ang berakar di. Terdapat 4 kemungkinan kasus, karena, dan dapat diatur dalam 4 posisi, aitu: a) adalah cabang kiri dari dan adalah cabang kiri dari (Kasus Kiri-Kiri) b) adalah cabang kiri dari dan adalah cabang kanan dari (Kasus Kiri-Kanan) c) adalah cabang kanan dari dan adalah cabang kanan dari (Kasus Kanan- Kanan) d) adalah cabang kanan dari dan adalah cabang kiri dari (Kasus Kanan-Kiri) 8

Penisipan: Kasus Kiri-Kiri P 1, P 2, P 3 dan P 4 adalah cabang pohon P 4 P 3 Rotasi Kanan () P 1 P 2 P 3 P 4 P 1 P 2 Kasus Kiri-Kiri 9

Penisipan: Kasus Kiri-Kanan P 1, P 2, P 3 dan P 4 adalah cabang pohon P 4 P 4 P 1 Rotasi Kiri () P 3 Rotasi Kanan () P 1 P 2 P 3 P 4 P 2 P 3 Kasus Kiri-Kanan P 1 P 2 10

Penisipan: Kasus Kanan-Kanan P 1, P 2, P 3 dan P 4 adalah cabang pohon P 1 P 2 Rotasi Kiri () P 1 P 2 P 3 P 4 P 3 P 4 Kasus Kanan-Kanan 11

Penisipan: Kasus Kanan-Kiri P 1, P 2, P 3 dan P 4 adalah cabang pohon P 1 P 1 P 4 Rotasi Kanan () P 2 Rotasi Kiri () P 1 P 2 P 3 P 4 P 2 P 3 Kasus Kanan-Kiri P 3 P 4 12

Penisipan: Contoh 13

Penisipan: Contoh (lanjutan) 14

Penisipan: Contoh (lanjutan) 15

Penisipan: Contoh (lanjutan) 16

Penisipan: Contoh (lanjutan) 17

Penisipan: Implementasi 1. Lakukan penisipan standar BST 2. Simpul saat ini haruslah salah satu moang/leluhur (ancestors) dari simpul baru ang disisipkan. Update tinggi dari simpul saat ini. 3. Dapatkan faktor keseimbangan (tinggi cabang pohon kiri tinggi cabang pohon kanan) dari simpul saat ini. 4. Jika faktor keseimbangan lebih dari 1, maka simpul saat ini tidak seimbang dan kita berada pada kasus Kiri-Kiri atau Kiri-Kanan. Untuk mengecek apakah ini kasus Kiri-Kiri atau tidak, bandingkan elemen (nilai) baru ang disisipkan dengan elemen (nilai) pada akar cabang pohon kiri 5. Jika faktor keseimbangan kurang dari -1, maka simpul saat ini tidak seimbang dan kita berada pada kasus Kanan-Kanan atau Kanan-Kiri. Untuk mengecek apakah ini kasus Kanan-Kanan atau tidak, bandingkan elemen (nilai) baru ang disisipkan dengan elemen (nilai) pada akar cabang pohon kanan 18

Penghapusan pada BST 3 kemungkinan kasus pada penghapusan suatu elemen (nilai) dalam standar BST adalah: 1. Simpul ang akan dihapus adalah simpul daun (simpul ujung pohon) tinggal hapus saja simpul tersebut dari pohon 50 50 30 70 Hapus(20) 30 70 20 40 60 80 40 60 80 19

Penghapusan pada BST (lanjutan) 2. Simpul ang akan dihapus hana mempunai 1 anak salinkan (cop) anak tadi ke simpul ang akan dihapus, lalu hapus anak 50 50 30 70 Hapus(30) 40 70 40 60 80 60 80 20

Penghapusan pada BST (lanjutan) 3. Simpul ang akan dihapus mempunai 2 anak temukan simpul berikutna dari simpul ang akan dihapus dengan cara inorder (inorder successor) min(cabang kanan). Salinkan inorder successor ke simpul ang akan dihapus, lalu hapus inorder successor 50 60 40 70 Hapus(50) 40 70 60 80 Alternatif lainna, simpul sebelumna dari simpul ang akan dihapus dengan cara inorder (inorder predessor) juga dapat digunakan sebagai salinan sebelum penghapusan simpul maks(cabang kiri) Hal penting ang perlu dicatat adalah, inorder successor diperluan hana jika anak di cabang kanan tidaklah kosong. Dalam kasus ini, inorder successor dapat diperoleh dengan menemukan nilai minimum pada anak di cabang kanan (min(cabang kanan)) dari simpul ang akan dihapus. 80 21

Inorder Successor pada BST Pada BST, inorder successor dari suatu simpul (node) adalah simpul berikutna ang didapat dengan penelusuran secara inorder dalam BST Inorder successor bernilai null (kosong) untuk simpul terakhir dalam penelusuran inorder Dalam BST, inorder successor dari suatu masukan simpul (input node) didefinisikan sebagai simpul dengan nilai terkecil, ang lebih besar dari nilai pada input node terkadang penting untuk menemukan simpul berikutna dalam pohon terurut 22

Inorder Successor pada BST (lanjutan) Inorder successor dari 8 adalah 10 Inorder successor dari 10 adalah 12 Inorder successor dari 14 adalah 20 20 8 22 4 12 10 14 23

Penghapusan pada AVL Untuk menjaga agar pohon selalu dalam kondisi AVL setelah penghapusan, penghapusan standar BST di atas harus dimodifikasi untuk mendapatkan keseimbangan kembali. 2 operasi dasar untuk meneimbangkan kembali BST tanpa melanggar properti/sifat dari BST (elemen(kiri) < elemen(akar) < elemen(kanan): Rotasi kiri Rotasi kanan 24

Rotasi Kiri dan Rotasi Kanan P 1, P 2 dan P 3 adalah cabang dari pohon dengan akar (sisi kiri) dan akar (sisi kanan) P 1 P 2 P 3 Rotasi Kanan P 1 Rotasi Kiri P 2 P 3 Elemen-elemen dari pohon-pohon di atas mengikuti aturan: elemen-elemen(p 1 ) < elemen() < elemen-elemen(p 2 ) < elemen() < elemen-elemen(p 3 ) Sehingga tetap memenuhi sarat properti/sifat BST 25

AVL: Penghapusan Simpul ang akan dihapus adalah s. 1. Lakukan penghapusan standar BST untuk s. 2. Dimulai dari s, bergeraklah ke atas dan temukan simpul pertama ang tidak seimbang. Diasumsikan adalah simpul pertama ang tidak seimbang, adalah anak cabang tertinggi dari, dan adalah anak cabang tertinggi dari. (Catatan: definisi dari dan di sini berbeda dengan dan pada penisipan AVL sebelumna) 3. Seimbangkan kembali pohon dengan melakukan rotasi ang sesuai pada cabang pohon ang berakar di. Terdapat 4 kemungkinan kasus, karena, dan dapat diatur dalam 4 posisi, aitu: a) adalah cabang kiri dari dan adalah cabang kiri dari (Kasus Kiri-Kiri) b) adalah cabang kiri dari dan adalah cabang kanan dari (Kasus Kiri-Kanan) c) adalah cabang kanan dari dan adalah cabang kanan dari (Kasus Kanan-Kanan) d) adalah cabang kanan dari dan adalah cabang kiri dari (Kasus Kanan-Kiri) Seperti halna penisipan, di bawah akan dijelaskan tiap-tiap kasus. Sebagai catatan, tidak seperti penisipan, perbaikan pada simpul tidak memperbaiki Pohon AVL secara keseluruhan. Setelah perbaikan, maka dimungkinkan moang/leluhur (ancestors) dari juga harus diperbaiki. 26

Penghapusan: Kasus Kiri-Kiri P 1, P 2, P 3 dan P 4 adalah cabang pohon P 4 P 3 Rotasi Kanan () P 1 P 2 P 3 P 4 P 1 P 2 Kasus Kiri-Kiri 27

Penghapusan: Kasus Kiri-Kanan P 1, P 2, P 3 dan P 4 adalah cabang pohon P 4 P 4 P 1 Rotasi Kiri () P 3 Rotasi Kanan () P 1 P 2 P 3 P 4 P 2 P 3 Kasus Kiri-Kanan P 1 P 2 28

Penghapusan: Kasus Kanan-Kanan P 1, P 2, P 3 dan P 4 adalah cabang pohon P 1 P 2 Rotasi Kiri () P 1 P 2 P 3 P 4 P 3 P 4 Kasus Kanan-Kanan 29

Penghapusan: Kasus Kanan-Kiri P 1, P 2, P 3 dan P 4 adalah cabang pohon P 1 P 1 P 4 Rotasi Kanan () P 2 Rotasi Kiri () P 1 P 2 P 3 P 4 P 2 P 3 Kasus Kanan-Kiri P 3 P 4 30

AVL: Penghapusan (lanjutan) Tidak seperti halna pada penisipan, dalam penghapusan setelah kita lakukan rotasi pada, maka kita mungkin juga harus melakukan rotasi pada moang/leluhur (ancestors) dari. Maka dari itu, kita harus meneruskan penelusuran sampai ke akar paling atas. 31

Penghapusan: Contoh Simpul dengan nilai 32 akan dihapus Setelah menghapus 32, maka kita bergerak ke atas dan mencari simpul pertama ang tidak seimbang, aitu 44 Kita tandai 44 ini dengan, lalu anakna ang memiliki tinggi lebih besar sebagai aitu 62, dan anakna ang memiliki tinggi lebih besar sebagai aitu bisa 78 atau pun 50 karena keduana memiliki tinggi ang sama. Kita pilih 78. Sekarang kasusna adalah Kanan- Kanan, maka kita lakukan rotasi kiri. 32

Penghapusan: Contoh (lanjutan) 33

Penghapusan: Contoh (lanjutan) 34

PohonAVL.java 35

PohonAVL.java (lanjutan) 36