Binary Search (Maksudi Indra Rukmana - 1134040 -D4TI3A)

19:50 Pemrograman Web 9 Comments



Binary Search
Algoritma Struktur Data

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.
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.

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.

Disini saya akan membuat program pencarian dengan Binary Search dengan menggunakan tools DevC++ dengan Bahasa Pemrograman C++. Untuk proses ascending saya akan menuliskan 11 array yang nantinya akan di cari dan ditampilkan nilai tengahnya. Berikut Scriptnya mengenai Pencarian Binary Search :

Script
#include <iostream> //Library
#include <conio.h>
using namespace std;
int main(){
 const int Ar[11] = {1,2,12,4,5,6,7,8,9,10,11}; // untuk proses ascending
 int tar;

cout<<"MASUKAN DATA YANG AKAN DICARI : "; //Output yang nantinya akan tampil
 cin>>tar;
int awal=0, akhir=11, tengah;


 while (awal <= akhir)
  { tengah = (awal + akhir)/2;
  if (tar > Ar[tengah] )      // descending ubah tanda > menjadi <
     { awal = tengah + 1; }
  else if (tar < Ar[tengah])  // descending ubah tanda < menjadi >
  {akhir= tengah - 1;}
  else {awal = akhir +1;
  }
   }
   if (tar == Ar[tengah])
   {cout<<" Data ditemukan, Ke- "<<tengah+1<<endl; //Output Data
   }
   else {
    cout<<"Data Tidak Ditemukan... "<<endl; //Output Data yang tidak ditemukan...
   }
getch();

}

Hasil Plagiarisme :

Screenshot Compile :





9 komentar:

  1. Membantu sekali tutor nya.makasih

    BalasHapus
  2. Wah terimakasih banget gan tutorialnya sangat membantu saya memahami dasar-dasar pemograman hehehe

    BalasHapus
  3. Tutornya mudah dimengerti nih bagi yg baru belajar kaya anak akuntansi hehe

    BalasHapus
  4. Thanks gan tutor nya. Sering sering upload ya hehehe.

    BalasHapus