Langsung ke konten utama

Pencarian (Searching) - Algoritma Pemrograman 2


Searching pada C++

1). Definisi Searching
Pencarian(searhing) merupakan proses yang sangat penting dalam pengolahan data. Proses pencarian adalah menemukan nilai(data) tertentu didalam sekumpulan data yang bertipe sama.
Sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah Kata kunci dan dengan  langkah-langkah tertentu akan mencari rekaman dengan kata kunci tersebut.  Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan atau tidak ditemukan.
2). Macam – Macam Metode Searching
a). Sequential searching
Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian beruntun adalah proses yang membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.
Proses yang terjadi pada metode in adalah :
ü Membaca array data
ü Menetukan data yang di cari
ü Mulai dari data pertama sampai dengan data terakhir, data yang di cari dibandingkan masing-masing data dalam array.
ü Jika data dicari tidak ditemukan, maka semua data atau elemen array di bandingkan sampai selesai .
ü Jika data yang di cari di temukan maka perbandingan akan dihentikan.
b). Binary searching
Terdapat metode pencarian pada data terurut yang paling efficient, yaitu metode pencarian bagi dua atau pencarian biner (binary searching). Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang cepat. Prinsip pencarian dengan membagi data atas dua bagian mendasari metode ini. Data yang disimpan di dalam larik harus sudah terurut. Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan urut. Proses pencarian biner dapat dijelaskan sebagai berikut :
ü Mula-mula diambil dari posisi awal=1 dan posisi akhir =n, kemudian di cari posisi tengah rumus: ( posisi awal + posisi akhir )/2.
ü Setelah itu data yang dicari dibandingakan dengan data yang berada ditengah.
ü  Jika hasilnya lebih kecil , maka ulangi proses diatas dalam hal ini posisi akhir=posisi tengah-1.
ü Jika lebih besar hasilnya maka lakukan proses diatas tetapi dalam hal ini posisi akhir =posisi tengah +1.
3). Contoh Program Searching
a). Sequential Searching
Dibawah ini merupakan contoh program sequential searching
#include <iostream>
#include <conio.h>
using namespace std;
main()
{
    int data[10], index[10],a,b,c,d;

    cout<<"Masukkan jumlah data : ";cin>>a;
    for(b=0;b<a;b++)
    {
        cout<<"Masukkan data ke– "<<b<<" : ";
        cin>>data[b];
    }

    cout<<"Masukkan data yang akan anda cari : "; cin>>c;
    d=0;

  for(b=0;b<a;b++)
   {
        if (data[b]==c)
        {
            index[d]=b;
            d++;
        }
    }
    if (d>0)
    {
        cout<<"Data "<<c<<" yang dicari, terdapat "<<d<<" buah"<<endl;
     }
    else
    {
        cout<<"Data tidak ditemukan"<<endl;
    }
}
Output :
Pertama memasukkan jumlah data yang ingin dimasukkan, kemudian memasukkan data secara random. Kemudian memasukkan data yang akan dicari, program akan melakukan pencarian data yang dicari tadi dengan metode sequential search.

b). Binary Search
Dibawah ini merupakan contoh program binary search
#include <iostream>
#include <conio.h>
using namespace std;
main()
{
    int data[10],n,i,j,x,t,low,high,mid,flag;
    cout<<"Masukkan Jumlah data : ";cin>>n;
    for(i=0;i<n;i++)
    {
        cout<<"Masukkan data ke - "<<i<<" : ";cin>>data[i];
    }
    cout<<"Masukkan data yang akan anda cari : ";cin>>x;
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if (data[i]>data[j])
            {
                t=data[i];
                data[i]=data[j];
                data[j]=t;
            }
        }
    }
   
    flag=0; high=n;low=0;
    while (low<=high)
    {
        mid=(low+high)/2;
        if(data[mid]==x)
        {
            flag++;
        }
        if (data[mid]<x)
        {
            low=mid+1;
        }
        else
        {
            high=mid-1;
        }
    }
    if (flag>0)
    {
        cout<<"Data "<<x<<" yang dicari terdapat dalam aray"<<endl;
    }
    else
    {
        cout<<"Data tidak ditemukan dalam array"<<endl;
    }
}
Output :
Pertama memasukkan jumlah data yang ingin dimasukkan, kemudian memasukkan data secara random. Kemudian memasukkan data yang akan dicari, program akan melakukan pencarian data yang dicari tadi dengan metode binary search.



Sumber :
Saputri, S. (2016). Modul Alpro 2-1. Searching, 113-117.

Komentar

Postingan populer dari blog ini

Graf (Graph) dan Pohon (Tree) - Algoritma Pemrograman 2

Graf ( Graph ) dan Pohon (Tree) pada C++ 1). Definisi Graph Graf adalah kumpulan noktah (simpul) di dalam bidang dua dimensi yang dihubungkan dengan sekumpulan garis (sisi). Graph dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Representasi visual dari graph adalah dengan menyatakan objek sebagai noktah, bulatan atau titik ( Vertex ), sedangkan hubungan antara objek dinyatakan dengan garis ( Edge ). G = (V, E) Dimana : G = Graph V = Simpul atau Vertex , atau Node, atau Titik E = Busur atau Edge , atau arc Graf merupakan suatu cabang ilmu yang memiliki banyak terapan. Banyak sekali struktur yang bisa direpresentasikan dengan graf, dan banyak masalah yang bisa diselesaikan dengan bantuan graf. Seringkali graf digunakan untuk merepresentasikan suaru jaringan. Misalkan jaringan jalan raya dimodelkan graf dengan kota sebagai simpul ( vertex/node ) dan jalan yang menghubungkan setiap kotanya sebagai sisi ( edge ) y...

Akses File - Algoritma Pemrograman

AKSES FILE PADA C++ KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT. Karena dengan Rahmat dan Karunia-Nya, penulis dapat menyelesaikan pembuatan artikel dengan judul Akses File hingga selesai . Dengan diberikannya tugas pembuatan artikel di sebuah blog, mahasiswa diharapkan mampu mempelajari lebih banyak lagi materi mengenai Akses File dan mampu menyelesaikan tugas mata kuliah algoritma pemrograman yang diberikan oleh dosen . Semoga dengan pembuatan artikel ini dapat bermanfaat khususnya bagi penulis selaku mahasiswa dan umumnya bagi kita semua. Selanjutnya penulis, merasa bahwa artikel Akses File ini jauh dari kesempurnaan. Oleh sebab itu, penulis mohon maaf sebesar-besarnya apabila dalam penyusunan artikel ini terdapat banyak kesalahan, baik dalam segi penulisan, pembahasan, dan penyusunannya yang kurang rapi. Maka dari itu besar harapan penulis semoga artikel ini dapat bermanfaat bagi penulis dan orang lain. 8 Desember 2018 BAB...

RELASI - MATEMATIKA DISKRIT

TI Politala Matdis 1B KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT. Karena dengan Rahmat dan Karunia-Nya, penulis dapat menyelesaikan pembuatan artikel dengan judul “Relasi” hingga selesai . Dengan diberikannya tugas pembuatan artikel di sebuah blog, mahasiswa diharapkan mampu mempelajari lebih banyak lagi materi mengenai relasi, dan mampu menyelesaikan tugas mata kuliah matematika diskrit yang diberikan oleh dosen . Semoga dengan pembuatan artikel ini dapat bermanfaat khususnya bagi penulis selaku mahasiswa dan umumnya bagi kita semua. Selanjutnya penulis, merasa bahwa artikel relasi ini jauh dari kesempurnaan. Oleh sebab itu, penulis mohon maaf sebesar-besarnya apabila dalam penyusunan artikel ini terdapat banyak kesalahan, baik dalam segi penulisan, pembahasan, dan penyusunannya yang kurang rapi. Maka dari itu besar harapan penulis semoga artikel ini dapat bermanfaat bagi penulis dan orang lain. 13 Oktober 2018     ...