Heartless Background Teknik Informatika: binery search Wavy Tail Heartless Background Heartless Background

Sunday, April 21, 2019

binery search

Pengertian 

Program binary search bahasa c++ 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. Proses pencarian binary search c++ hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu.
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 :
a) 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.
b) Beban komputasi pun lebih kecil karena pencarian dilakukan dari depan, belakang dan tengah.
c) Prinsip dasarnya ialah melakukan proses pembagian ruang searching secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (itu berati ada kemungkinan data tidak ditemukan).
1. Pertama-tama diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah.
2. Kemudian kita cari posisi data tengah dengan rumus posisi tengah yaitu = (posisi awal + posisi akhir ) div 2.
3. Lalu data yang di cari akan dibandingkan dengan data tengah
a. Jika sama, data ditemukan, Proses selesai.


Listing Program  :

 #include<iostream>

using namespace std;
int main () {
 int n, angka[12], kiri, kanan, tengah, temp, key;
 bool ketemu = false;

 cout<<"========================================="<<endl;
 cout<<"=========PROGRAM BINARY SEARCH C++==========="<<endl;
 cout<<"========================================="<<endl<<endl;
 cout<<"Masukan jumlah data : ";
 cin>>n;

 for(int i=0; i<n; i++)
 {
  cout<<"Angka ke - ["<<i<<"] : ";
  cin>>angka[i];
 }
 for (int i=0; i<n; i++)
 {
  for(int j=0; j< n-i-1; j++)
  {
   if(angka [j] > angka [j+1])
   {
    temp=angka[j];
    angka[j]=angka[j+1];
    angka[j+1]=temp;
   }
  }
 }
 cout<<"Data yang telah diurutkan adalah : ";
 for(int i=0; i<n; i++)
 {
  cout<<angka[i]<<" ";
 }
 cout<<"\n Masukan angka yang dicari : ";
 cin>>key;

 kiri=0;
 kanan=n-1;

 while(kiri<=kanan)
 {
  tengah=(kiri + kanan)/2;
  if(key == angka[tengah])
  {
   ketemu=true;
   break;
  }
  else if (key < angka [tengah])
  {
   kanan = tengah -1;
  }
  else
  {
   kiri = tengah +1;
  }
 }
 if (ketemu == true)
  cout<<"Angka ditemukan!";
 else
  cout<<"Angka tidak ditemukan";
  return 0;
 }

Hasil Running :



Referensi: https://www.hardifal.com/2018/10/searching-metode-binary-search-dan-program-cpp.html

No comments:

Post a Comment

KONFIGURASI IP ADDRESS CLEAROS

A ssallamualaikum Wr. Wb. Hay Sobat semua, jumpa kembali dengan saya, disini saya akan berbagi tentang konfigurasi Database Server C...