ANALISIS ALGORITMA BINARY SEARCH

dokumen-dokumen yang mirip
Algoritme dan Pemrograman

Algoritma dan Struktur Data. Linear & Binary Search Tree

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

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

Struktur Data & Algoritma

Struktur Data dan Algoritma

PERTEMUAN 11 TEHNIK SEARCHING

METODE AVL TREE UNTUK PENYEIMBANGAN TINGGI BINARY TREE

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

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Politeknik Elektronika Negeri Surabaya

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

Struktur Data & Algoritma

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

STRATEGI DIVIDE AND CONQUER

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

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Algoritme dan Pemrograman

12/26/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Sorting. Data untuk sorting. Contoh. Algoritme #1: BUBBLE SORT.

Algoritme dan Pemrograman

IT234 Algoritma dan Struktur Data. Tree

BAB XI Manipulasi Binary Tree

13/12/2013. Binary Tree. Contoh Tree

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

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

Analisis Kecepatan Sorting Dengan Notasi Big O

Design and Analysis Algorithm

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

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

Penger6an struct. Algoritme dan Pemrograman. Cara membuat struct. Deklarasi struct. Pointer pada struct 12/10/14 ILKOM IPB 1

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Kompleksitas Algoritma

JARINGAN UNTUK MERGING

Kompleksitas Algoritma

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Searching [pencarian] Algoritma Pemrograman

Algoritma dan Pemrograman Searching/Pencarian

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.

Tujuan Instruksional

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

Topic Complexity of Hashing Search & Binary Search Tree Algorithm

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Algoritma dan Struktur Data

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

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

Heap Tree dan Kegunaannya dalam Heap Sort

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

HEAP. Heap dan Operasinya. Oleh Andri Heryandi

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Kompleksitas Algoritma (1)

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Pohon dan Pohon Biner

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

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

ALGORITMA DAN STRUKTUR DATA

STRUKTUR POHON & KUNJUNGAN POHON BINER

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Pemrograman Algoritma Dan Struktur Data

ALGORITMA PENGURUTAN & PENCARIAN

Kompleksitas Komputasi

STATEMEN GO TO DAN IF-THEN. Pertemuan IX

Penerapan Struktur Data Pohon dalam Implementasi Algoritma Heapsort dan Tinjauan Kompleksitas Waktunya

Binary Search Tree (BST)

Pengertian Algoritma Pengurutan

Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3 rd Edition, Pearson Education, Inc.

SORTING (BAGIAN II) Proses kelima

Analisis Algoritma Bubble Sort

Preorder Tree Traversal

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Variasi Pohon Pencarian Biner Seimbang

Outline STRUKTUR DATA. VII. Sorting

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

METODE DEVIDE AND CONQUER (DANDC)

BAB VII ALGORITMA DIVIDE AND CONQUER

IKI 20100: Struktur Data & Algoritma

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Struktur Data. PDE - Struktur Data 1

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Algoritma dan Struktur Data. Tree

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

Struktur Data Tree/Pohon dalam Bahasa Java

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

Modul 15 Searching. 1.1 Kompetensi

Algoritma dan Struktur Data. Performansi Algoritma

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Soal Pendahuluan Modul 3

Algoritma Pemrograman & Struktur Data

MODUL PRAKTIKUM STRUKTUR DATA

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Transkripsi:

ANALISIS ALGORITMA BINARY SEARCH Metode Binary search Binary search merupakan salah satu algoritma untuk melalukan pencarian pada array yang sudah terurut. Jika kita tidak mengetahui informasi bagaimana integer dalam array, maka penggunaan binary search akan menjadi tidak efisien, kita harus melakukan sorting terlebih dahulu atau menggunakan metode lain yaitu linear search. Namun jika kita telah mengetahui integer dalam array terorganisasi baik secara menaik atau menurun, maka bisa dengan cepat menggunakan algoritma binary search. Adapun ide dasar binary search yaitu memulai pencarian dengan membagi dua ruang pencarian. Misalnya kita memiliki array A, dan kita ingin menemukan lokasi dari spesifik target integer K dalam array. Ada 3 kemungkinan kondisi pada binary search yaitu: 1. Jika data target K langsung di temukan, maka proses pembagian ruangan berhenti. Kemudian print out data elemen pada array. 2. Jika data target K < A[dle], maka pencarian dapat dibatasi hanya dengan melakukan pencarian pada sisi kiri array dari A[dle]. Seluruh elemen yang berada di sebelah kanan dapat di abaikan. 3. Jika data target K > A[dle], maka akan lebih cepat jika pencarian di batasi hanya pada bagian sebelah kanan saja. 4. Jika seluruh data telah di cari namun tidak ada, maka diberi nilai seperti -1. Dibawah ini merupakan salah satu version program binary search. Kamus Conts N : Type t=array[0 N] of integer val, left, right, : Integer Algoritma int binarysearch(list t[], int n, int val) { int left, right, ; } left = 0; right = n-1; while(left<=right) { =(left+right)/2; if (val<t[].key) right=-1; else if (val>t[].key) left=+1; else return ; /* found */ } return -1; /* not found */ Analisis dan Desain Algoritma (G651120381) 1

Analisis Kompleksitas Contoh data yang sudah terurut : Kasus 1 : cari = 13 Left = 0 Right = 7 Loop (1) : = (left +right) div 2 = (0 + 7) div 2 = 3 t [] = A [3] = 13, pada loop pertama data langsung ditemukan left right Output = 3 Target Kasus 2 : cari = 17 Left = 0 Right = 7 Loop (1) : = (left +right) div 2 = (0 + 7) div 2 = 3 t [] = A [3] = 13 < val = 17, data belum ditemukan, berarti left = + 1 = 3 + 1 = 4 left right Analisis dan Desain Algoritma (G651120381) 2

Loop (2) : = (left +right) div 2 = (4 + 7) div 2 = 5 t [] = A [5] = 18 > val = 17, data belum ditemukan, berarti right = - 1 = 5-1 = 4 left right Loop (3) : = (left +right) div 2 = (4 + 4) div 2 = 4 t [] = A [4] = 17 = val = 17, data ditemukan setelah loop ketiga Output = 4 Target Kasus 3 : cari = 2 Left = 0 Right = 7 Loop (1) : = (left + right) div 2 = (0 + 7) div 2 = 3 t [] = A [3] = 13 > val = 2, data belum ditemukan, berarti right = - 1 = 3-1 = 2 left right Loop (2) : = (left +right) div 2 = (0 + 2) div 2 =1 Analisis dan Desain Algoritma (G651120381) 3

t [] = A [1] = 3 > val = 2, data belum ditemukan, berarti right = - 1 = 1-1 = 0 left right Loop (3) : = (left +right) div 2 = (0 + 0) div 2 = 0 t [] = A [0] = 1 < val = 2, data belum ditemukan, left = +1 = 0 + 1 = 1 Loop (4) : = (left +right) div 2 = (1 + 0) div 2 = 0 Tidak bisa dijalankan karena 1 lebih dari 0 sehingga loop berhenti di loop ketiga. Sehingga data tidak dapat ditemukan Output = -1 Sekarang mari kita analisis metode binary search untuk menentukan kompleksitasnya. Ketika jumlah elemen dalam array 8: Ketika n=8, Binary Search dijalankan dengan mereduksi ukuran menjadi 4 Ketika n=4, Binary Search dijalankan dengan mereduksi ukuran menjadi 2 Ketika n=2, Binary Search dijalankan dengan mereduksi ukuran menjadi 1 Dapat kita lihat bahwa binary search dipanggil sebanyak tiga kali (3 elemen dalam array yang dieksekusi) untuk n = 8. Sehingga didapat 8 = 2 3 atau secara general kita katakan n = 2 k. ketika kita mengeksekusi x pencarian, while loop juga dieksekusi sebanyak x kali dan n di reduksi ukurannya menjadi Analisis dan Desain Algoritma (G651120381) 4

1. Pada contoh penerapan di atas, dapat disimpulkan jumlah maksimum total operasi yang dilakukan adalah sebanyak 3. Nilai dari k dapat dinotasikan menjadi 2 k = n sehingga k = log 2 n Jumlah operasi yang dilakukan untuk mencari k adalah sebanyak = 3 log n. pada kasus terburuk, yaitu kasus dimana k tidak terdapat dalam array adalah T(n) = log 2 n Misalnya jika kita memiliki array sebanyak 1024 elemen, kasus terburuk menghasilkan pembandingan array sebanyak log 2 1024 = 10 kali. Bandingkan dengan linear search yang pada kasus terburuknya melakukan pembandingan sebanyak 1024. Tentunya algoritma binary search menjadi lebih cepat. Namun jika data yang ada merupakan data yang tidak terurut maka akan jauh lebih cepat jika menggunakan linear search. Jika menggunakan binary search maka akan ada cost tambahan yaitu mengurutkan array terlebih dahulu. Algoritma binary search biasa di gunakan untuk database. Pada database tidak perlu ada algoritma sorting karena pada database sendiri sudah disediakan fungsi sorting baik untuk menaik atau menurun. Binary Search Tree Binary Tree ini memiliki sifat dimana semua left child harus lebih kecil dari pada right child dan parentnya. Semua right child juga harus lebih besar dari left child serta parentnya. Binary search tree dibuat untuk mengatasi kelemahan pada binary tree biasa, yaitu kesulitan dalam searching / pencarian node tertentu dalam binary tree. Algoritma Algorithm searchbst (root, targetkey) If (empty tree) return null *not found End if If (targetkey < root) return searchbst (left subtree, targetkey) else if (targetkey > root) return searchbst (right subtree, targetkey) else return root *found target end if end searchbst Analisis dan Desain Algoritma (G651120381) 5

Contoh Binary Search tree Proses pencarian sukses Search(7) 8 < 15 15 5 8 < 5 23 3 8 18 8 = 8 6 Data yang dicari berhasil ditemukan Proses pencarian gagal Search(9) 9 < 15 15 5 9 < 5 23 3 8 18 6 Data tidak ada Data yang dicari GAGAL ditemukan Analisis Kompleksitas Binary Search Tree Kelemahan yang sangat mendasar pada Binary search tree adalah elemen-elemen pada tree yang harus berurut. Binary Tree yang tidak balance dapat membuat seluruh operasi memiliki kompleksitas running time O(n) pada kondisi worst case. Sedangkan pada kondisi Analisis dan Desain Algoritma (G651120381) 6

Binary Tree yang balanced maka waktu rata-ratanya adalah log n. Proses pencarian pada tree sangat bergantung pada ketinggian suatu tree. Pada contoh kasus diatas ketinggian tree adalah 3. 15 5 23 h 3 8 18 6 Maksimum operasi perbandingan jika data gagal ditemukan adalah sebanyak 3 kali. Jika data yang dicari berada di root (Target=15), best casenya adalah 1 kali pembandingan. Daftar Pustaka Aslam & Fell.Analysis of Algorithms: Running Time. 2005. CSU 2000 discrete Structures Fall 2005. Analisis dan Desain Algoritma (G651120381) 7