Jumat, 03 Mei 2019

SEARCHING BINARY DALAM PEMROGRAMAN C++

Posted by angel's note on Mei 03, 2019 with No comments



[ Tugas Kuliah ] Algoritma dan Pemrograman 2 | Searching - Binary
Tugas TI POLITALA Alpro 2C
Nama               : Prima Angelia Rehulina Barus
Kelas               : 2C
Jurusan            : Teknik Informatika
NIM                : 1801301109
Matkul             : Alpro 2 Tugas 2
Semester          : II  

SEARCHING
Pada pembahasan kali ini, saya akan menjelaskan tentang materi searching khususnya materi searching dengan metode binary.
Pengertian Searching (pencarian)
Proses searching (pencarian) adalah proses untuk menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar atau bertipe bentukan). Tempat pencarian data dapat berupa array dalam memori, bisa juga pada file pada external storage.
Ada 2 metode seacrching (pencarian) yaitu
1.      Metode pencarian sekuensial ( sequential search )
2.      Metode pencarian biner ( binary search )
Tetapi pada kali ini saya akan membahas tentang salah satu materi yaitu metode pencarian biner( binary search )
a.       Metode pencarian biner ( binary search )
Suatu teknik pencarian data dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pengurutan. Data yang disimpan harus sudah terurut.  Pencarian dilakukan dengan cara menentukan apakah data yang dicari ada berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang berada ditengah. Bila data yang ditengah sama dengan data yang dicari, berarti data tersebut ditemukan. Namun, bila data yang ditengah lebih besar daripada data yang dicari, maka dapat data yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat diabai.
b.      Algoritma dari metode biner
Adapun Proses Algoritma Sequential Searching adalah sebagai berikut:
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.

Algoritma pencarian sekuensial dapat dituliskan sebagai berikut :
awal=0 ,akhir=n-1;
    do
    {
        tengah = (awal+akhir)/2;
        if(x < data[tengah])
            akhir=tengah-1;
        else
            awal=tengah+1;
    }
    while ((akhir>=awal)&&(data[tengah]!=x));
        if(data[tengah]==x)
            cout<<"Data\t"<<x<<"\tditemukan"<<"\tpada posisi "<<tengah+1;
       else
        cout<<"Data tidak ditemukan "<<endl;

c.     Data    6          4          8          9          5
Carilah data angka 8
Penyelesaian :
Data yang dicari adalah 8
-          n = 5 , awal = 0, akhir = 5 – 1 = 4 → akhir > awal
tengah = ( awal + akhir ) / 2 = ( 0 + 4 )/2 = 2
x .... Data [tengah] → x ... Data [2]
                              8  = 8
Data 8 pada posisi 3. 

Sekian penjelasan dari saya tentang materi searching yaitu searching dengan metode biner (binary search). Semoga bermanfaat.


Daftar pustaka