artikel binary search
Post on 04-Dec-2015
13 Views
Preview:
DESCRIPTION
TRANSCRIPT
ARTIKEL TENTANG BINARY SEARCH
NIM : 140030244
NAMA : I Putu Eka Wahyudi
KELAS : AI143
SEKOLAH TINGGI MANAJEMEN INFORMATIKA
DAN TEKNIK KOMPUTER
(STMIK) STIKOM BALI
2014
1. Pengertian
Binary search 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.
Pencarian Biner (Binary Search) dilakukan untuk :
Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data
yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data
yang sangat besar ukurannya.
Beban komputasi juga lebih kecil karena pencarian dilakukan dari depan,
belakang, dan tengah.
Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara
berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat
dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut.
Adapun Kelebihan dari Searching dengan metode Binary Sort adalah Untuk Pencarian
data yang jumlahnya banyak, waktu pencarian relatif cepat. selain itu beban komputasi
juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan tengah. Sehingga
metode pencarian dengan menggunakan binary sort banyak digunakan.
Kekurangan binary search yaitu data harus disorting dahulu dan Algoritma lebih
rumit. Berikut ilustrasi pencarian menggunakan binary search dengan bantuan tabel.
Misalkan kita mempunyai data sebagai berikut : {-5, -3, -1, 0, 1, 3, 5, 7}. Data yang kita
cari adalah 5. Untuk menyelesaikan soal diatas, maka diselesaikan dengan cara berikut :
2. Algoritma
Proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut :
1. Input seluruh data kedalam array
2. Input data yang dicari
3. Tentukan nilai kiri, kanan, dan tengah dengan rumus :
a. Kiri sama dengan nol
b. Kanan lebih kecil dari jumlah data
c. Tengah sama dengan hasil kanan dikurangi hasil kiri dibagi dua.
4. Jika elemen tengah tidak sama dengan data yang dicari, maka :
a. Jika elemen tengah lebih besar dari data yang dicari, maka pencarian
dilakukan pada setengah array pertama. Caranya dengan menggunakan
perintah kiri sama dengan tengah ditambah satu.
b. Jika elemen tengah lebih kecil dari data yang dicari, maka pencarian
dilakukan pada setengah array berikutnya. Caranya dengan menggunakan
perintah kanan sama dengan tengah dikurangi satu.
c. Tengah sama dengan kiri ditambah (kanan - kiri) dibagi dua.
5. Jika elemen tengah sama dengan data yang dicari, maka data ditemukan.
Sedangkan jika elemen tengah tidak sama dengan data yang dicari, maka data
tidak ditemukan.
3. Source code
Berikut source code pada Binary search :
#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];
printf("Enter number of elements\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d",&array[c]);
printf("Enter value to find\n");
scanf("%d", &search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while (first <= last) {
if (array[middle] < search)
first = middle + 1;
else if (array[middle] == search) {
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
last = middle - 1;
middle = (first + last)/2;
}
if (first > last)
printf("Not found! %d is not present in the list.\n", search);
return 0;
}
4. Tampilan Output
top related