artikel binary search

4
ARTIKEL TENTANG BINARY SEARCH NIM : 140030244 NAMA : I Putu Eka Wahyudi KELAS : AI143 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER (STMIK) STIKOM BALI 2014

Upload: putu-eka-wahyudi

Post on 04-Dec-2015

13 views

Category:

Documents


5 download

DESCRIPTION

metode pencarian data dengan mengurutkan data tersebut terlebih dahulu

TRANSCRIPT

Page 1: Artikel Binary Search

ARTIKEL TENTANG BINARY SEARCH

NIM : 140030244

NAMA : I Putu Eka Wahyudi

KELAS : AI143

SEKOLAH TINGGI MANAJEMEN INFORMATIKA

DAN TEKNIK KOMPUTER

(STMIK) STIKOM BALI

2014

Page 2: Artikel Binary Search

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 :

Page 3: Artikel Binary Search

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");

Page 4: Artikel Binary Search

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