Senin, 22 April 2019

Binary Search C++

Pengertian Binary Search C++

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).
d) Dan Syarat utamanya untuk pencarian biner dalam program bahasa C++ sederhana ini adalah data di dalam tabel harus sudah terurut.

Algoritma Binary Search C++

        awal=0;
        akhir=d-1;
        do
        {
            tengah=(awal+akhir)/2;
            if(bin<data[tengah])
                akhir=tengah-1;
            else
                awal=tengah+1;
        }
        while ((akhir>=awal)&&(data[tengah]!=bin));
        if(data[tengah]==bin)
        {
            cout << "Data "<<bin<<" Pada Posisi "<<tengah+1;
        }
penjelsan :
1. awal=0 ini berarti index array berawal dari 0
2. akhir=d-1 jumlah data dikurang 1 untuk membaca data dari angka 1 karena array diawali dengan 0.
3. jadi tengah adalah data yang terletak di tengah dari kumpulan data jadi untuk mencari data tengah     program akan melakukan perhitungan (awal+akhir)/2 jika data tengah telah ditemukan maka jika         data yang dicari (bin) lebih kecil dari (data[tengah]) maka akhir =tengah-1 jika (bin) lebih besar         dari (data[tengah]) maka awal=tengah+1 
4. program yang ada di penjelasan ke 3 akan dijalankan dengan persyaratan akhir>=awal dan data         [tengah]!=bin.
5. jika data[tengah]==bin maka data ditemukan.

Contoh Program Binary Search C++


#include <iostream>

using namespace std;
int main ()
{
    int d,i,awal,akhir,tengah,bin;
    int data[10];

    cout << "Masukkan Jumlah Data = "; cin >>d;
    for (i=0; i<d;i++)
    {
        cout << "Data Ke- "<<i+1<<" = "; cin >>data[i];
    }
    cout << "Mencari data dengan binary = "; cin >>bin;
        awal=0;
        akhir=d-1;
        do
        {
            tengah=(awal+akhir)/2;
            if(bin<data[tengah])
                akhir=tengah-1;
            else
                awal=tengah+1;
        }
        while ((akhir>=awal)&&(data[tengah]!=bin));
        if(data[tengah]==bin)
        {
            cout << "Data "<<bin<<" Pada Posisi "<<tengah+1;
        }
        else
            cout << "Data Tidak Ditemukan"<<endl;
            cout<<endl;

}

Hasil Running




Sumber Materi




Minggu, 21 April 2019

Sequential Search C++

Pengertian Sequential Search C++

Program sequential search c++ adalah mencari data-data yang dibutuhkan dalam bahasa pemrograman, program sequential search c++ bisa dilakukan untuk mencari data yang ada dalam memori komputer. Kita dapat menggunakan searching.Pencarian sequensial atau disebut juga (pencarian linear) merupakan model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan data. Teknik pencarian data dalam array (satu dimensi) yang akan menelusuri semua elemen array dari awal sampai akhir, dimana data-data yang tidak perlu akan diurutkan terlebih dahulu.


Algoritma Sequential Search

i=0;
    ulang: if(i!=n)
    {
        if(D[i]==x)
            cout<<"data ditemukan pada baris "<<i+1;
        else
        {
            i++;
            goto ulang;
        }
    }
    else
        cout<<"Data tidak ditemukan";
penjelasan : 
a. i=0 ialah index array yang diawali dari 0, jadi program akan dijalankan dari index ke 0
b. ulang: berfungsi untuk perulangan jika data belum ditemukan pada index yang belum            terdapat angka yang dicari.
c. n adalah jumlah data jika (i!=n) i tidak sama dengan n maka program akan dijalankan.
d. pada saat program dijalankan jika D[i]==x  (D[i] adalah data dan index) dan (x adalah            data yang dicari) maka data ditemukan pada baris i+1, tetapi jika D[i] != x maka akan            dijalankan i++ dan program akan memeriksa index yang selanjutnya, sampai data                ditemukan di index yang terdapat angka yang sama dengan x(data yang dicari).
e. jika data tidak terdapat didalam D maka program akan mengeluarkan output data tidak          ditemukan.

Contoh program Sequential Search

Berikut adalah contoh program Sequential Search C++.
#include <iostream>

using namespace std;
int main ()
{
    int n,x,i;
    int D[10];

    cout<<"masukkan jumlah data = " ; cin>>n;
    for ( i=0; i<n ; i++)
    {
        cout<<"data ke - "<<i+1<<" : " ; cin >>D[i];
    }
    cout<<endl;
    cout<<"Cari Data : ";cin>>x;
    i=0;
    ulang: if(i!=n)
    {
        if(D[i]==x)
            cout<<"data ditemukan pada baris "<<i+1;
        else
        {
            i++;
            goto ulang;
        }
    }
    else
        cout<<"Data tidak ditemukan";
    return 0;

}

Hasil Running

Berikut adalah hasil running dari program Sequential Search C++.


Sumber Materi


Modul Debian 2