Anda di halaman 1dari 5

Analisis Algoritma ​Binary Search

Alif Azhar​1​,Fadhil Mulia Abdilah​2​,Reza Agung Pambudi​3


Jurusan Teknik Informatika Universitas Telkom, Jalan Telekomunikasi No. 1, Sukapura, Bojongsoang,
Bandung, Jawa Barat 40257
email : ​ alifazharf@gmail.com, ​ fadhilabdillah88@gmail.com,​3​rezaagungpambudi@gmail.com
1​ 2​

makalah ini akan dibandingkan tentang


Abstrak - Dalam ilmu komputer, algoritma performa ​binary ​ serarch dengan l​inear​ search.
pencarian secara luas diartikan sebagai
sebuah algoritma yang menerima masukan
berupa sebuah masalah dan menghasilkan
sebuah solusi untuk masalah tersebut, yang kemudian mencari setengah sisanya dengan
biasanya didapat dari evaluasi beberapa cara yang sama.
kemungkinan solusi. Salah satu contoh 2.METODE
algoritma pencarian yang memiliki Algoritma ​divide and conquer adalah strategi
kompleksitas cukup baik adalah ​binary pemecahan masalah yang besar dengan cara
​ search.​Binary search merupakan algoritma melakukan pembagian masalah yang besar
pencarian data terurut yang tersebut menjadi beberapa bagian yang lebih
mengimplementasikan metode ​divide and kecil secara rekursif hingga masalah tersebut
​ conquer, dimana data yang terurut tersebut dapat dipecahkan secara langsung. Penerapan
akan dibagi menjadi dua bagian. Dalam algoritma tersebut dapat memudahkan dalam
melakukan pencariannya teknik binary permasalahan yang memiliki jumlah data yang
search mempertimbangkan empat besar​.
kemungkinan yaitu 2.1. ​Kompleksitas algoritma Binary
1. jika elemen yang dicari langsung
​ Search​ dengan Sequential Search
ditemukan maka ​binary search akan
A. Analisis pencarian ​Binary Search
dihentikan
berikut ini adalah algoritma dari binary
2. jika elemen yang dicari kurang dari
search dengan menggunakan interasi
nilai element tengahnya maka
Kamus
pencarian hanya akan dilakukan pada
Conts N : Type t=array[0 … N] of integer
sisi kiri saja
val, left, right, mid : Integer
3. jika element yang dicari lebih dari nilai
Algoritma
element tengahnya maka pencarian
int binarySearch(LIST t[], int n, int val) {
hanya akan dilakukan pada sisi
int left, right, mid; left = 0;
kanannya saja.
right = n-1;
4. jika element yang dicari tidak
while(left<=right) {
ditemukan maka maka boolean hasi
mid=(left+right)/2;
​ akan memberikan nilai f​ alse.
if (val < t[mid].key)
left=mid+1;
​ Kata kunci : ​binary search, algoritma
else
pencarian
return mid; /* ditemukan */
1.PENDAHULUAN
}
Algoritma pencarian biner (Binary search)
return -1; /* tidak ditemukan*/
adalah sebuah teknik yang mengaplikasikan
}
metode ​Divide and Conquer untuk menemukan
Dengan mengamati algoritma tersebut kita
nilai tertentu dalam sebuah array yang sudah
bisa mendapatkan prforma algoritma ​binary
terurut dengan mengabaikan setengah data
​ search sebagai berikut
pada setiap langkah. Sebuah pencarian biner
● Best case algoritma ​binary search adalah
mencari nilai tengah (median), melakukan
ketika element yang dicari tepat berada
pembandingan untuk menentukan apakah nilai
pada ditengah larik tersebut sehingga kita
yang dicari ada sebelum atau sesudahnya.Pada
bisa mengmbil kesimpulan ​best case nya return -1; /* tidak ditemukan*/
sebagai berikut }
○ T(n) = T(1)
sehingga ​big O notasinya untuk ​best case
adalah O(1) Dengan mengamati algoritma tersebut kita
● Average case algoritma ​binary search bisa mendapatkan prforma algoritma ​binary

adalah O(log n) berikut ini penjelasannya search sebagai berikut
misalkan kita mempunyai array dengan ● Best case pada algoritma linear search
panjang delapan dan ketika binary search adalah ketika elemnt yang dicari berada
dijalankan prosesya adalah seperti ini pada awal larik sehingga ehingga kita bisa
➔ ketika n = 10 binary search akan mengmbil kesimpulan ​best case nya
mereduksi ukuran menjadi 5 sebagai berikut
➔ ketika n = 5 binary search akan ○ T(n) = 1
mereduksi ukuran menjadi 2 sehingga ​big O notasinya untuk ​best case
➔ ketika n = 2 binary search akan adalah O(1)
​ mereduksi ukuran menjadi 1 ● Average case untuk algoritma ​linear
Secara matematis dapat dituliskan sebagai search adalah O(n) berikut ini adalah
berikut. penjelasaannya secara matematis
T(n) = T( n2 ) +1 T(n) = 1+2+3+...+ nn
T( n2 ) = T( n4 ) +1 +1...T( 2nk )+1+1+1...+1 T(n) = (n+1)
2
k
T(n) = T( 22k ) +1 +1+1 hingga k Sehingga dapat disimpulkan kompleksitas
T(n) = T(1) + k ​ dari Algoritma ​Sequential Search adalah
misalkan kita mengambil 2​k​ = n O(n)
k = log n ● Berdasarkan agoritma diatas jika nilai
sehingga kita memperoleh ​average yang dicari tidak ditemukan maka
kompleksitas algoritma ​binary search lagoritma ini harus mennelusuri semua
adalah O(log n) element yang ada sepanjang panjang larik
● Berdasrkan algoritma diatas jika nilai tersebut sehingga algoritma sehingga
yang dicari tidak ditemukan maka binary algoritma ​linear search bisa kita ambil

search akan terus berjalan hingga nilai kesimpulan ​worst casenya adalah O(n)
rightnya kurang dari nilai leftnya,
sehingga algoritma binary search bisa kita C. Analisis performa ​Binary Search
​ ambil kesimpulan ​worst casenya adalah dengan ​Linear Search (Brute Force)
O(log n). Dengan meihat meihat hasi averga case
B. Analisis pencarian ​Linear Search anta linear search dengan kompleksitasnya
(Brute Force) adalah O(n) dengan binary search yang
Linear search adalah algoritma pencarian kompleksitasnya dalah O(log n) kita bisa
yang bersifat ​brute force dimana algoritma ini membuat grafik perbandingan performa seperti
akan mencari dari depan kebelakang dengan dibawah ini
membandingkan nilai yang dicari jika nilai
yang dicari ditemukan maka algoritama ini
akan berhenti. Berikut ini adalah algoritmanya
Kamus
Conts N : Type t=array[0 … N] of integer
i : Integer
Algoritma
int linearSearch (LIST t[], int n, int val) {
for i = 0 to n do{
if(t[i] = val) Dengan begitu kita bisa mengetahu bahwa
return i performa binary search memiliki performa
}
pencarian lebih baik dibanding dengan linear
search.

2.2. ​Korelasi/kesesuaian
kompleksitas
algoritma terhadap running time (saat
program dieksekusi).

Untuk mendapatkan hasil yang mengukur


kesesuaian kami menggunakan set data
sebanyak 15,000,000 dan kami meletakkan
data yang akan di cari pada bagian paling
belakang,bagian paling depan dan bagian
tengah.

Running Time Sequential Search (Data


Awal - Tengah - Belakang)

Running Time Binary Search (Data Awal -


Tengah - Belakang)
Dari tabel diatas, maka algoritma dengan
binary search menemukan hasil optimal pada saat
pencarian data di posisi tengah dan di akhir,
sedangkan algoritma ​linear search menemukan
hasil optimal pada saat pencarian data di posisi
awal.

3. KESIMPULAN
Algoritama ​binary search memiliki kompleksitas
lebih baik dibanding dengan ​linear search sihingga
performa ​binary search lebih baik dibanding ​linear
search. Pada ​binary search hanya akan mencari
satu salah satu sisi saja jika nilai tengahya sudah
ditemukan. Namun ada kondisi dimana
masing-masing algoritma ini memiliki kelebihan
● jika data yang dicari pada awal element
maka ​linear Search akan lebih dahulu
menemukan hasil yang dicari dibanding
dengan ​binary search.
● jika data yang dicari tepat berada pada
saat element itu dibagi dua pada binary
search maka ​binary search lebih dahulu
menemukan dibanding dengan ​linear
Search.
Daftar Pustaka
1. wikipedia. (2015) . ​Pencarian biner.
Disini kita bisa lihat bahwa waktu running time Dipetik Desember 4, 2016 .dari
dari ​Binary Search lebih cepat dibandingkan https://id.wikipedia.org/wiki/Pencarian_bi
linearSearch ini membuktikan bahwa benar ner
kompleksitas Binary Search yaitu O(log n) < dari 2. University of Alberta. ​Structural
pada kompleksitas ​Linear Search yaitu O(n) Programming and data structure. Dipetik
dengan bukti seperti diatas Desember 4, 2016.dari
https://webdocs.cs.ualberta.ca/~zaiane/cou
Note : Running time kemungkinan meleset 0 - 1 rses/cmput102/slides/Topic13/sld017.htm
s karena pengguna memory yang berganti 3. Stack Exchange.(2014).​Proving that the
average case complexity of binary search
2.3 Analisis optimalitas is O(log n). DIpetik Desember 4, 2016.
Dari
Berdasarkan running time program saat
https://cs.stackexchange.com/questions/32
dieksekusi, maka didapatkan data sebagai berikut:
090/proving-that-the-average-case-comple
Posisi data yang dicari xity-of-binary-search-is-olog-n
4. StackOverflow. (2012) . ​Binary search
Awal Tengah akhir
algorithm in python. Dipetik Desember 4,
Binary-S 30 s 29,8 s 29,2 s 2016.Dari
earch http://stackoverflow.com/questions/95013
37/binary-search-algorithm-in-python
Linear 29,7 s 30,6 s 31,3 s 5. University Of Houston. ​Average Case
Search Analysis of Binary Search. Dipetik
Desember 4, 2016 dari
http://sce.uhcl.edu/yang/teaching/csci3333
spring2011/Average%20case%20analysis
%20of%20binary%20search.pdf
6. Stoimen. (2012) .​Computer Algorithms:
Balanceing Binary Search Tree. Dipetik
Desember 4, 2016. dari
http://www.stoimen.com/blog/2012/07/03/
computer-algorithms-balancing-a-binary-s
earch-tree/.
7. wikipedia. (2016) . ​LInear Search. Dipetik
Desember 4, 2016 .dari
https://en.wikipedia.org/wiki/Linear_searc
h
8. StackOverflow. (2016) . ​How to calculate
binary search complexcity. Dipetik
Desember 4, 2016.Dari
http://stackoverflow.com/questions/81850
79/how-to-calculate-binary-search-comple
xity

Anda mungkin juga menyukai