tugas algoritma pencarian bagi dua.docx
TRANSCRIPT
-
8/16/2019 tugas ALGORITMA PENCARIAN BAGI DUA.docx
1/5
BAB II
PEMBAHASAN
1. Algoritma pencarian Bagi Dua
Pengertian
Pencarian bagi dua adalah sebuah algoritma pencarian dengan cara membagi data
menjadi dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu dalam
sebuah larik (array) linear . Sebuah pencarian biner mencari nilai tengah (median),
melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum
atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Pada intinya,
algoritma ini menggunakan prinsip divide and conquer, dimana sebuah masalah atau tujuan
diselesaikan dengan cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini
membagi sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu saja.Algoritma
ini bekerja dengan cara memilih record dengan indeks tengah dari tabel dan
membandingkannya dengan record yang hendak dicari. Jika record tersebut lebih rendah atau
lebih tinggi, maka tabel tersebut dibagi dua dan bagian tabel yang bersesuaian akan diproses
kembali secara rekursi.
Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu
dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah
permainan tebak!tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari datar (list )
nilai.
Pencarian dia"ali dengan memeriksa nilai yang ada pada posisi tengah list# oleh
karena nilai!nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai
yang di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian
dengan cara yang sama.
Metoda Pencarian Bagi Dua ( Binary Search) hanya i!a diterap"an #i"a data
array !udah terurut. Pengurutan Array bisa menggunakan jenis sorting descending atau
asscending.
-
8/16/2019 tugas ALGORITMA PENCARIAN BAGI DUA.docx
2/5
$. Itera!i
$isalkan kita mempunyai data sebagai berikut % &', , , *, *, +, +, -. /ata yang kita
cari adalah*.0api sebelum itu kita harus mengurutkan data tersebut
Itera!i Data
+ ' % * * + + -
' 11 * * + + -
' 1& * + + -
1 ' * & + + -
- * ' * 1' + -
* * ' + * $' -
* ' + * + 1
2 * ' + - * +
Pada iterasi 2, data sudah terurut.
Setelah memperoleh data yang sudah terurut, maka diselesaikan dengan cara berikut %
3ilai 0engah /ata
4terasi + 1 - * 2
4terasi - * ' + - * +4terasi * ' + - * +
-
8/16/2019 tugas ALGORITMA PENCARIAN BAGI DUA.docx
3/5
4terasi 2 * ' + - * +
/itemukan 15
/iketahui nilai kiri5+ (nilai a"al array) dan nilai kanan 5 '. 6umus posisi tengah adalah
(kanan 7 kiri)8. Jadi 3ilai tengah pada langkah pertama yaitu ('7+)85-. Jika dimasukkankedalam tabel akan menunjuk nilai + (ber"arna kuning). 9emudian dibandingkan dengan
nilai yang dicari (*), karena nilai yang dicari lebih besar dari data ditengah maka pencarian
di alihkan ke sebelah kanan dengan batas kiri (a"al pencarian) merupakan nilai tengah yakni
-.
3ilai tengah pada langkah kedua yaitu ('7-)85. Jika dimasukkan ke dalam tabel maka akan
menunjuk nilai - (ber"arna kuning). 9emudian dibandingkan lagi dengan nilai yang dicari
(*), karena nilai yang dicari masih lebih besar dari nilai tengah, maka pencarian dialihkan
lagi ke kanan dengan batas kiri (a"al pencarian) merupakan nilai tengah yakni .
3ilai tengah pada langkah ketiga yaitu ('7)852. Jika dimasukkan ke dalam tabel maka akan
menunjuk nilai * (ber"arna orange). 9emudian dibandingkan lagi dengan nilai yang dicari
(*), setelah dibandingkan nilainya sama, maka pencarian selesai dengan keterangan data
ditemukan
. *lo+chart
-
8/16/2019 tugas ALGORITMA PENCARIAN BAGI DUA.docx
4/5
. ,i!ting Program
-
8/16/2019 tugas ALGORITMA PENCARIAN BAGI DUA.docx
5/5
#include #include
int binary_s(int array[], int size, int elemen);
int main(){ int size=; int data[]={, !, "", ", , "$, %$, "&,' ; cout