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

dokumen-dokumen yang mirip
METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

Organisasi Berkas Sekuensial Berindeks

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

Pemrograman Algoritma Dan Struktur Data

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

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

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

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

STRUKTUR POHON & KUNJUNGAN POHON BINER

MODUL PRAKTIKUM STRUKTUR DATA

ANALISIS ALGORITMA BINARY SEARCH

Pohon dan Pohon Biner

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Variasi Pohon Pencarian Biner Seimbang

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II

Struktur Data & Algoritma

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

IT234 Algoritma dan Struktur Data. Tree

ALGORITMA DAN STRUKTUR DATA

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

Penerapan Teori Pohon Dalam Kajian Struktur Data

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

FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL

Soal Pendahuluan Modul 3

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

BAB VII POHON BINAR POHON

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

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

KUM 6 IMPLEMENTASI BINARY TREE

Politeknik Elektronika Negeri Surabaya

A B C E F G K Contoh Tree

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

POHON CARI BINER (Binary Search Tree)

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

STRUKTUR DATA. Literatur

TREE STRUCTURE (Struktur Pohon)

Buku Ajar Struktur Data

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

13/12/2013. Binary Tree. Contoh Tree

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

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

Binary Search Tree (BST)

Algoritma dan Struktur Data. Tree

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

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

BAB IX TREE (POHON) ISTILAH DASAR

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

Syarif Abdullah (G )

Struktur Data dan Algoritma

BAB 7 POHON BINAR R S U

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

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

Heap Tree dan Kegunaannya dalam Heap Sort

Penerapan Pohon Dalam Heap Sort

Algoritma dan Struktur Data. Linear & Binary Search Tree

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

Struktur Data Tree/Pohon dalam Bahasa Java

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

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB XI Manipulasi Binary Tree

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

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

Koleksi Hirarkis Tree

Algoritma Pemrograman & Struktur Data

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

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

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

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

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

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

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

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

Algoritme dan Pemrograman

Penerapan BFS dan DFS pada Pencarian Solusi

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

Pohon (Tree) Contoh :

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

Politeknik Elektronika Negeri Surabaya

TERAPAN POHON BINER 1

BAB I PENDAHULUAN. 1.1 Latar Belakang

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

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

Pemodelan dan Pengelolaan Data Klasifikasi Tanaman Menggunakan Pohon

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

PEMBAHASAN SOAL FINAL BNPCHS 2014

Penerapan BFS dan DFS pada Pencarian Solusi

STRUKTUR DATA HIRARKIS : TREE

Pemanfaatan Pohon Biner dalam Pencarian Nama Pengguna pada Situs Jejaring Sosial

Fakultas Teknologi Informasi

TREE. Definisi. Istilah-istilah Umum dalam Tree

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

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

Struktur dan Organisasi Data 2 POHON BINAR

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

6. TREE / BINARY TREE

Transkripsi:

Lecture Notes On Algorithms and Data Structures AVL TREE Oleh Thompson Susabda Ngoen Universitas Bina Nusantara Fakultas Ilmu Komputer 2003

Thompson S.N. AVL TREE 1 AVL TREE Binary Search Tree BST dibuat dengan tujuan mempercepat pencarian data. Apabila BST yang terbentuk cukup seimbang (mendekati bentuk complete binary tree) maka waktu pencarian data tidak lebih dari log 2 n langkah. Height-balanced p-tree adalah binary tree yang beda jumlah level left subtree dan right subtree pada setiap node tidak lebih dari p level. Gambar 1. AVL Tree dan Bukan AVL Tree AVL tree adalah height-balanced 1-tree, lebih tepatnya BST yang beda tunggi left subtree dan right subtree pada setiap node tidak lebih dari satu level. Dilihat dari bentuknya maka pohon pada gambar 1 (a) dan (b) adalah AVL tree sedangkan (c) bukan AVL tree karena node B mempunyai selisih left subtree dan right subtree sebanyak 2 level. Penambahan Node Ke AVL Tree Penambahan node ke AVL tree mirip penembahan node pada BST, penelusuran mulai dari root, apabila nilai node yang mau ditambahkan lebih kecil daripada nilai node pembanding maka penelusuran pindah ke anak sebelah kiri (left child). Apabila nilai node yang mau ditambahkan lebih besar daripada nilai node pembanding maka penelusuran pindah ke node sebelah kanan (right child). Setelah node baru dikaitkan pada pohon dilakukan pemeriksaan apakah selisih tinggi pada setiap node tidak lebih dari satu level. Apabila selisih tinggi lebih dari satu level maka dilakukan pembenahan dengan algoritma single rotation atau double rotation. Gambar 2. Menambah Node ke AVL Tree

Thompson S.N. AVL TREE 2 Pada setiap node AVL tree pada gambar 2(a) dilengkapi tanda keseimbangan tinggi (height balance). Tanda = menyatakan left subtree dan right tree dari node ini mempunyai height yang sama. Tanda menyatakan left subtree dari node ini mempunyai height lebih besar dari right subtree-nya. Node yang mempunyai height balance disebut tallleft. Tanda + menyatakan right subtree dari node ini mempunyai height lebih besar daripada left subtree-nya. Node yang mempunyai height balance + disebut tallright. Tehadap AVL tree pada gambar 2(a) akan ditambahkan node dengan nilai kunci 60. Penelusuran dimulai dari root, node 40, dan node 50. Jalur ini disebut search path. Node baru dengan nilai kunci 60 akan ditambahkan sebagai right child dari node 50. Penambahan node baru ini menyebabkan pohon tidak lagi bersifat AVL karena node 20 mempunyai selisih height 2 pada right subtree. Pivot Node Pivot node adalah node pada search path yang keseimbangannya tallleft atau tallright dan paling dekat ke posisi node baru yang akan ditambahkan. Pada AVL tree gambar 2(b) pivot node adalah node dengan nilai kunci 20. Pada gambar 3(a) akan ditambahkan node baru dengan nilai kunci 15, maka yang menjadi pivot node adalah node dengan nilai kunci 20. Pada gambar 3(b) akan ditambahkan node baru dengan nilai kunci 25, maka yang menjadi pivot node adalah node dengan nilai kunci 30. Pada gambar 3(c) tidak ada pivot node karena semua node dalam keadaan seimbang. Gambar 3 Pivot Node Terdapat tiga kasus yang dapat terjadi waktu penambahan node baru ke dalam sebuah AVL tree. Kasus 1: Tidak ada pivot node pada AVL tree karena semua node dalam keadaan seimbang. Penambahan node dapat langsung dilakukan dan kemudian semua node pada search path dihitung kembali height balance-nya. Gambar 4. Tambah Node Pada AVL Tree yang Balance Kasus 2: Pada AVL tree terdapat pivot node dan subtree tempat node baru akan ditambahkan mempunyai height balance yang lebih kecil, artinya pivot node menyatakan tallleft dan node baru akan ditambahkan

Thompson S.N. AVL TREE 3 pada posisi right subtree atau pivot node menyatakan tallright dan node baru akan ditambahkan pada posisi left subtree. Penambahan node dapat langsung dilakukan dan kemudian semua node pada search path mulai dari pivot node dihitung kembali height balance-nya. Gambar 4. Tambah Node 15 Pada AVL Tree Kasus 3: Pada AVL tree terdapat pivot node dan subtree tempat node baru akan ditambahkan mempunyai height balance yang lebih besar, sehingga penambahan node baru membuat subtree semakin tidak seimbang. Pemecahan dilakukan dengan rotasi tunggal (single rotation) atau rotasi ganda (double rotation). Single Rotation Single rotation dilakukan bila kondisi AVL tree waktu akan ditambahkan node baru dan posisi node baru seperti pada gambar 5. T1, T2, dan T3 adalah subtree yang urutannya harus seperti demikian serta heightnya harus sama ( 0). Hal ini juga berlaku untuk AVL tree yang merupakan citra cermin (mirror image) gambar 5. Gambar 5. Pola Single Rotation

Thompson S.N. AVL TREE 4 Misalkan terhadap AVL tree pada gambar 6 akan ditambahkan node bernilai kunci 5. Search path melalui node 60, 40, 20, 10 dan pivot node adalah node dengan nilai 40. Pohon ini sesuai dengan pola pohon untuk single rotation. T1 adalah subtree dengan node 20, T2 adalah subtree dengan node 30, dan T3 adalah subtree dengan node 50. Ketiga subtree ini tingginya satu level. Node baru yang ditambahkan akan menjadi leftchild dari T1. Lihat gambar 7 kiri. Maka rotasi membentuk AVL tree seperti gambar 7 kanan. Gambar 6 Gambar 7. Contoh Single Rotation Misalkan terhadap AVL tree pada gambar 8 akan ditambahkan node bernilai kunci 50. Search path melalui node 20, 30, 40 dan pivot node adalah node dengan nilai 30. Pohon ini sesuai dengan pola pohon untuk single rotation. T1 adalah subtree kosong rightchild dari node 40, T2 adalah subtree kosong leftchild dari node 40, dan T3 adalah subtree kosong leftchild dari node 30. Ketiga subtree ini tingginya sama yaitu kosong. Node baru yang ditambahkan akan menjadi rightchild dari T1. Lihat gambar 9 kiri. Maka rotasi membentuk AVL tree seperti pada gambar 9 kanan. Gambar 8

Thompson S.N. AVL TREE 5 Gambar 9. Contoh Single Rotation Double Rotation Double rotation dilakukan bila kondisi AVL tree waktu akan ditambahkan node baru dan posisi node baru seperti pada gambar 10. T1, T2, T3, dan T4 adalah subtree yang urutannya harus seperti demikian. Tinggi subtree T1 harus sama dengan T4 ( 0), tinggi subtree T2 harus sama dengan T3 ( 0). Node yang ditambahkan akan menjadi child dari subtree T2 atau T3. Hal ini juga berlaku untuk AVL tree yang merupakan citra cermin (mirror image) gambar 10. Gambar 10. Pola Double Rotation

Thompson S.N. AVL TREE 6 Misalkan terhadap AVL tree pada gambar 11 akan ditambahkan node bernilai kunci 25. Search path melalui node 60, 20, 40, 30 dan pivot node adalah node dengan nilai 60. Pohon ini sesuai dengan pola pohon untuk double rotation. T1 adalah subtree dengan node 10 dan 5 (tingginya 2 level), T2 adalah subtree dengan node 30 (tingginya 1 level), T3 adalah subtree dengan node 50 (tingginya 1 level). Dan T4 adalah subtree dengan node 80 dan 100 (tingginya 2 level). T1 dan T4 mempunyai tinggi yang sama, demikian pula denan T2 dan T3. Node baru yang ditambahkan akan menjadi leftchild dari T2. Lihat gambar 12 kiri. Maka rotasi membentuk AVL tree seperti gambar 12 kanan. Gambar 11. AVL Tree Gambar 12. Contoh Double Rotation Misalkan terhadap AVL tree pada gambar 13 akan ditambahkan node bernilai kunci 35. Search path melalui node 60, 40, 20, 30 dan pivot node adalah node dengan nilai 40. Pohon ini sesuai dengan pola pohon untuk double rotation. T1 adalah subtree dengan node 10 (tingginya 1 level), T2 adalah left subtree dari node 30, subtree ini kosong, T3 adalah right subtree dari node 30, subtree ini kosong, dan T4 adalah subtree dengan node 50 (tingginya 1 level). T1 dan T4 mempunyai tinggi yang sama, demikian pula dengan T2 dan T3. Node baru yang ditambahkan menempati posisi sebagai child dari T3, lihat gambar 14 kiri. Maka rotasi membentuk AVL tree seperti gambar 14 kanan. Gambar 13. AVL Tree

Thompson S.N. AVL TREE 7 Gambar 14. Contoh Double Rotation

Thompson S.N. AVL TREE 8 Rotasi menurut cara buku Robert L. Kruse SINGLE ROTATION DOUBLE ROTATION