Politeknik Elektronika Negeri Surabaya

dokumen-dokumen yang mirip
A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

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

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

KUM 6 IMPLEMENTASI BINARY TREE

Politeknik Elektronika Negeri Surabaya

Politeknik Elektronika Negeri Surabaya

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

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Struktur Data dan Algoritma

B. DASAR TEORI AlGORITMA TRAVERSAL GRAPH Terdapat beberapa perbedaan Tree dan Graph dijelaskan pada tabel Tabel 31.1 Perbedaan Tree dan Graph

Praktikum Algoritma dan Setruktur Data

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

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Gambar 1. Single Linked List

ANALISIS ALGORITMA BINARY SEARCH

Algoritma dan Struktur Data. Linear & Binary Search Tree

Politeknik Elektronika Negeri Surabaya

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

13/12/2013. Binary Tree. Contoh Tree

Soal Pendahuluan Modul 3

Struktur Data Tree/Pohon dalam Bahasa Java

A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java

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

TREE STRUCTURE (Struktur Pohon)

Politeknik Elektronika Negeri Surabaya

Membuat Binary Search Tree Menggunakan STL Vector C++

Gambar 1. Single Linked List

Politeknik Elektronika Negeri Surabaya

Gambar 1. Single Linked List

IT234 Algoritma dan Struktur Data. Tree

Gambar 17.1Representasi Sebuah Node di Double Linked List. Gambar 17.2 Double Linked List

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

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

Operator, Statement kondisional, dan Iterasi pada Java

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

Politeknik Elektronika Negeri Surabaya

Struktur Data & Algoritma

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

STRUKTUR POHON & KUNJUNGAN POHON BINER

POHON CARI BINER (Binary Search Tree)

LAPORAN PRAKTIKUM STRUKTUR DATA

Gambar 1. Ilustrasi Stack

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

Binary Search Tree (BST)

Modul 4: Iteratif & Rekursif, Binary Tree

BINARY SEARCH TREE. TUJUAN UMUM Mahasiswa memahami binary search Tree

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

Struktur Data & Algoritma

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Dasar Pemrograman Java

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

MODUL PRAKTIKUM STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA

BAB XI Manipulasi Binary Tree

Penerapan Divide and Conquer dalam Membandingkan Alur Proses 2 Source Code

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

A. TUJUAN PEMBELAJARAN

Percabangan & Perulangan

Double Linked List mempunyai reference front untuk menandai awal node dan reference back untuk menandai akhir list

ARRAY. 7 th week Estu Sinduningrum ST,MT

Pemrograman Algoritma Dan Struktur Data

MODUL III ARRAYLIST TUGAS PENDAHULUAN

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

Pohon (Tree) Universitas Gunadarma Sistem Informasi 2012/2013

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

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

A. TUJUAN PEMBELAJARAN

C. TUGAS PENDAHULUAN Buatlah resume 1 halaman mengenai Priority Queue dan berikan penjelasannya.!

Politeknik Elektronika Negeri Surabaya

1 Bagian 1: Mencetak isi binary tree

Fungsi Rekursif PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

ANALISIS ALGORITMA PEMBANGUN POHON EKSPRESI DARI NOTASI PREFIKS DAN POSTFIKS

Aplikasi Pohon dalam Pencarian dan Penempatan Buku di Perpustakaan

Algoritma Pemrograman & Struktur Data

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Struktur Kontrol Pemrograman Java : PERCABANGAN

Praktikum 6. Konsep Rekursi Perbandingan Perulangan biasa dan Rekursi Implementasi Rekursi dalam Bahasa C

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

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Belajar Rekursif di Java

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

if (ekspresi_boolean) {

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

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

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

PERTEMUAN 2 ARRAY, PERCABANGAN, DAN PERULANGAN

Organisasi Berkas Sekuensial Berindeks

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

Jobsheet 09. Overloading and Overriding Method

BAB VII POHON BINAR POHON

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

Percabangan dan Perulangan

Politeknik Elektronika Negeri Surabaya

A. TEORI ARRAY 1 DIMENSI

Transkripsi:

Politeknik Elektronika Negeri Surabaya PRAKTIKUM 28 BINARY SEARCH TREE 2 A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami konsep menghapus node pada Binary Search Tree. Node yang dihapus adalah node root, node leaf, node yang mempunyai satu anak dan node yang mempunyai dua anak. 2. Mengimplementasikan menghapus node pada Binary Search Tree dengan menggunakan bahasa java B. DASAR TEORI Binary Search Tree (BST) Binary search tree adalah salah satu bentuk dari pohon. Di mana masing-masing pohon tersebut hanya memiliki dua buah upapohon, yakni upapohon kiri dan upapohon kanan.ciri khas yang melekat pada binary search tree ini yang bisa juga dibilang sebagai keunggulan dari binary search tree adalah peletakan isi dari nodenya yang terurut berdasarkan besarnya dari isinya tersebut. Isinya bisa saja berupa integer, karakter, atau apapun sesuai dengan spesifikasi binary search tree yang ada. Operasi dasar dari binary search tree(bst) ini sendiri sangatlah sederhana, yakni hanya fungsi perbandingan dan fungsi rekursif. Di mana anak pohon sebelah kiri node adalah anak pohon yang lebih kecil dari node, sedangkan anak pohon sebelah kanan node memiliki isi yang lebih besar daripada isi node. Biasanya penyimpanan data di dalam binary search tree ini bisa juga berupa record di mana pengurutannya hanya tinggal melihat key dari record tersebut, missal nomor absen, NIM, tanggal, dll. Menghapus Node pada Binary Search Tree Aturan dalam menghapus node pada Binary Search Tree Root pada BST tidak dapat dihapus, karena terdapat dua subtree pada node root. Tapi dapat diganti dengan node yang tepat yang terdapat pada BST. 198

Politeknik Elektronika Negeri Surabaya Sebagai contoh pada gambar 1, akan menghapus node root 25. Pada gambar 2(a), jika node 25 diganti dengan node 10, bukan merupakan solusi yang tepat, karena ada node yang tidak sesuai yaitu node 15. Pada gambar 2(b), jika node 25 diganti dengan node 37, bukan merupakan solusi yang tepat, karena ada node yang tidak sesuai yaitu node 30 dan 33. Pada gambar 2(c), jika node 25 diganti dengan node 30, merupakan solusi yang tepat, karena semua node mengikuti aturan dari BST. Gambar 1. Menghapus Node Root 25 Gambar 2. Mencari Pengganti dengan Nilai yang Tepat Menghapus sebuah node yang memiliki satu anak. Pada gambar 3 node 35 bukan node leaf, node 35 mempunyai subtree kosong. Node 35 diberi tanda dengan D, Parent dari node 35 yaitu node 30 adalah P dan anak dari node 35 yaitu node 33 ditandai dengan R. Selanjutnya hapus node 35, dan kaitkan R(node 33) sebagai anak dari P(node 30). Pada gambar 4 node 25 bukan node leaf, node 25 mempunyai subtree kosong. Node 25 diberi tanda dengan D, Parent dari node 25 yaitu node 30 adalah P dan anak dari node 25 yaitu node 26 ditandai dengan R. Selanjutnya hapus node 25, dan kaitkan R(node 26) sebagai anak dari P(node 30). 199

Politeknik Elektronika Negeri Surabaya Gambar 3. Contoh 1, menghapus node yang memiliki 1 anak Gambar 4. Contoh 2, menghapus node yang memiliki 1 anak Menghapus node leaf, menggunakan cara yang sama dengan menghapus node yang bukan leaf memiliki 1 anak. Pada gambar 5, node yang akan dihapus node 50 ditandai dengan D, parent dari node 50 yaitu node 65 ditandai dengan P, dan anak dari node 50 ditandai dengan R. R bernilai null, karena node yang akan dihapus adalah node leaf. Hapus node 50(D), kaitkan R(null) menjadi anak dari node P(65). 200

Politeknik Elektronika Negeri Surabaya Gambar 5. Menghapus node leaf Menghapus node yang memiliki dua anak. Pilih R (node yang berada di subtree dari node 30) sebagai node dengan nilai terkecil, tapi lebih besar dari nilai node yang dihapus. Pada gambar 6, node 30 sebagai node yang akan dihapus, cari node R yang terkecil, tapi lebih besar dari nilai node yang dihapus (node 30) yaitu node 33. Hapus node 30 dan kaitkan R ke parent dari node yang dihapus. Gambar 6. Menghapus node yang memiliki dua anak C. TUGAS PENDAHULUAN Jelaskan langkah-langkah menghapus node pada gambar 1 dan 2! D. PERCOBAAN Pada percobaan ini tambahkan pada class Binary Search Tree seperti tabel 1. Tabel 1. Variabel dan Method pada Class Binary Search Tree Class Binary Search Tree<T> 201

Politeknik Elektronika Negeri Surabaya public void removenode(stnode<t> dnode) Method yang digunakan untuk menghapus node pada Binary Search Tree Percobaan 1. Method untuk menghapus sebuah Node public class BinarySearchTree<T> { private STNode<T> root; private int treesize; public void removenode(stnode<t> dnode) { if (dnode == null) { return; STNode<T> pnode, rnode; pnode = dnode.parent; // node yang dihapus mempunyai satu anak if (dnode.left == null dnode.right == null) { if (dnode.right == null) { rnode = dnode.left; else { rnode = dnode.right; if (rnode!= null) { System.out.println("Ngeset Parent"); rnode.parent = pnode; // menghapus node root if (pnode == null) { root = rnode; else if (((Comparable<T>) dnode.nodevalue).compareto(pnode.nodevalue) < 0) { pnode.left = rnode; else { pnode.right = rnode; // node yang dihapus mempunyai dua anak else { STNode<T> pofrnode = dnode; rnode = dnode.right; pofrnode = dnode; while (rnode.left!= null) { pofrnode = rnode; rnode = rnode.left; dnode.nodevalue = rnode.nodevalue; if (pofrnode == dnode) { dnode.right = rnode.right; 202

Politeknik Elektronika Negeri Surabaya else { pofrnode.left = rnode.right; if (rnode.right!= null) { rnode.right.parent = pofrnode; Selanjutnya ujilah program diatas dengan Class Main sebagai berikut: public class Main { public static void main(string[] args) { BinarySearchTree<Integer> bst = new BinarySearchTree<Integer>(); bst.add(40); bst.add(30); bst.add(25); bst.add(35); bst.add(26); bst.add(33); bst.add(29); bst.add(34); bst.add(65); bst.add(50); System.out.println(BinaryTree.inorderDisplay(bst.getRoot())); bst.removenode(new STNode<Integer>(35)); System.out.println(BinaryTree.inorderDisplay(bst.getRoot())); Output program adalah sebagai berikut: 25 26 29 30 33 34 35 40 50 65 25 26 29 30 34 35 40 50 65 E. LATIHAN Latihan 1 : Kerjakan studi kasus yang terdapat pada gambar 1 sampai dengan gambar 6. Latihan 2 : Dari studi kasus latihan 1, jelaskan langkah-langkahnya berdasarkan program! F. LAPORAN RESMI Kerjakan hasil percobaan(d) dan latihan(e) di atas dan tambahkan analisa. 203