You are on page 1of 2

Algoritma dan Pemrograman 2C

ALGORITMA PENCARIAN BINER (BINARY SEARCH)


Pencarian Biner (Binary Search) pada array yang sudah terurut
Pencarian Biner (Binary Search) dilakukan untuk :

memperkecil jumlah pera!i pem"a#$i#%a# &a#% haru! $ilakuka# a#'ara $a'a &a#% $icari $e#%a# $a'a &a#% a$a $i $alam 'a"el( khu!u!#&a u#'uk jumlah $a'a &a#% !a#%a' "e!ar ukura##&a) Pri#!ip $a!ar#&a a$alah melakuka# pr !e! pem"a%ia# rua#% pe#caria# !ecara "erula#%* ula#% !ampai $a'a $i'emuka# a'au !ampai rua#% pe#caria# 'i$ak $apa' $i"a%i la%i ("erar'i a$a kemu#%ki#a# $a'a 'i$ak $i'emuka#)) S&ara' u'ama u#'uk pe#caria# "i#er a$alah $a'a $i $alam 'a"el haru! !u$ah 'eruru'( mi!alka# 'eruru' me#aik)

ALGORITMA
+amu! C #!' N , i#'e%er - . / mi!alka# jumlah eleme# arra& mak!imum - . 0 T&pe A - arra& 1 2 ))))) N 3 4 i#'e%er Cari( Ba'a!A'a!( Ba'a!Ba5ah( Te#%ah , I#'e%er +e'emu , " lea# ALGORITMA I#pu' (cari) / memi#'a #ilai $a'a &a#% aka# $icari0 Ba'a!A'a! 2 / i#$ek! arra& $imulai $ari 2 0 Ba'a!Ba5ah N +e'emu 6al!e 7hile (Ba'a!A'a! 8 Ba'a!Ba5ah) a#$ (# ' ke'emu) $ Te#%ah (Ba'a!A'a! 9 Ba'a!Ba5ah) $i: ; I4 A 1Te#%ah3 - cari 'he# +e'emu 'rue El!e I4 ( A 1Te#%ah3 8 cari ) 'he# / cari $i "a%ia# ka#a# 0 Ba'a!A'a! Te#%ah 9 2 El!e Ba'a!Ba5ah Te#%ah < 2 / cari $i "a%ia# kiri 0 E#$i4 E#$i4 E#$7hile I4 (ke'emu) 'he# Ou'pu' ( =>a'a "era$a $i i#$e? # m r@( Te#%ah ) El!e Ou'pu' ( =>a'a 'i$ak $i'emuka#@ ) E#$i4

Algoritma Pencarian Biner ( Binary Search ) 1

halaman

Algoritma dan Pemrograman 2C

C #' h Nilai*Nilai $a'a &a#% !u$ah 'eruru' : A 2


1

5
2

8
3

12
3

15
5

25
6

37
7

57
8

Kasus 1 : cari = 12
L p per'ama : Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (1 ! 8) di# 2 = $ A %Tengah& = A %$& = 12' (erarti l))* *erta+a data lang ung dite+ukan

Kasus 2 : cari = 15
L L L p per'ama : Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (1 ! 8) di# 2 = $ A %Tengah& = A %$& = 12 , cari = 15' (erarti Bata Ata = Tengah ! 1 = $ ! 1 = 5 p ke$ua : p ke'i%a : Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (5 ! 8) di# 2 = 6 A %Tengah& = A %6& = 25 - cari = 15' (erarti Bata Ba"ah = Tengah . 1 = 6 . 1 = 5 Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (5 ! 5) di# 2 = 5 A %Tengah& = A %5& = 15' (erarti etelah l))* ketiga' data dite+ukan

Kasus 3 : cari = 10
L L L p per'ama : Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (1 ! 8) di# 2 = $ A %Tengah& = A %$& = 12 - cari = 1/' (erarti Bata Ba"ah = Tengah . 1 = $ . 1 = 3 p ke$ua : p ke'i%a : Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (1 ! 3) di# 2 = 2 A %Tengah& = A %2& = 5 , cari = 1/' (erarti Bata Ata = Tengah ! 1 = 2 ! 1 = 3 Tengah = (Bata Ata ! Bata Ba"ah) di# 2 = (3 ! 3) di# 2 = 3 A %Tengah& = A %3& = 8' (erarti etelah l))* ketiga' data tidak dite+ukan

0ntuk 1u+lah data e(anyak n' +aka *r) e *e+(andingan +ak i+al e(anyak ( l % # ) kali2 0ntuk c)nt)h di ata ' 1u+lah data 8' +aka *r) e *e+(andingan +ak i+al e(anyak 3 kali2

Algoritma Pencarian Biner ( Binary Search ) 2

halaman

You might also like