Rabu, 03 Juni 2015

Contoh Program Binary Search Dalam C++


Assalamu'alaikum.wr.wb - Selamat Siang Mahasiswa/i pemrograman II yang ibu banggakan, pada postingan sebelumnya ibu telah membahas tentang program Sequential Search dalam Pemrograman C++. Binary Search merupakan metode pencarian dimana data harus diurutkan terlebih dahulu sebelum dilakukan proses pencarian. Pada metode pencarian ini, data dibagi menjadi dua bagian untuk setiap tahap pencarian.

Algoritma binary search :
  1. Data diambil dari posisi 1 sampai posisi akhir n
  2. Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
  3. Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
  4. Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
  5. Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
  6. Jika data sama, berarti ketemu.
. Berikut ini contoh program binary search yang sangat sederhana dan semoga Bermanfaat bagi  Mahasiswa/i ibu semua. Aamiin.

SYNTAX PROGRAM

#include <iostream>

using namespace std;

int main()
{
    cout<<" \n ================ PROGRAM BINARY SEARCH ================ "<<endl;

    int i,j,n, angka[12], kiri, kanan, tengah, temp, key;
    bool ketemu = false;

    cout<<"\n Masukan jumlah data : "; cin>>n;
    cout<<endl;
    for(i=0; i<n; i++)
    {
        cout<<" Elemen Araay ke - ["<<i<<"] : ";cin>>angka[i];
    }
    for (i=0; i<n; i++)
    {
        for(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<<"\n 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 == 1)
    cout<<"\n Data ada dalam larik!!! "<<endl;
else
    cout<<"\n Data tidak ada dalam larik!!!"<<endl;
}

SCREENSHOOT PROGRAM


Jika angka yang dicari tidak ada dalam urutan elemen data Array maka Tampilan Programnya adalah sebagai berikut :



========= SEMOGA BERMANFAAT =========







1 komentar:

TERIMA KASIH ATAS KUNJUNGAN ANDA :)
Monggo isi Komentar nya :

||SALAM BLOGGER INDONESIA|| +++>Di sini Tempatnya Belajar & Berbagi ILMU<+++ Buat Sobat-Sobat Blogger semua,Teruslah Berkarya!!! Terima Kasih Buat Sahabat-Sahabat yang telah Mampir DiBlog Nadym::.Dan Jangan Lupa Tinggalkan Kesan & Pesan untuk Membangun Blog iNi.::
 

I-YES INDONESIA

Indonesian Youth Educate And Social

ALMAMATERKU

Universitas Muhammadiyah Riau