Minggu, 07 Juni 2015

MARI MENGENAL APA ITU SEARCHING DALAM C++



SEARCHING


Definisi Searching

Searching atau pencarian merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data. Dalam kehidupan sehari-hari kita sering mengimplementasikannya misalnya kita hendak mencari arti kata pada kamus, mencari kontak rekan pada buku telepon, dan masih banyak lagi. Selain itu pencarian juga sering kita temukan pada aplikasi komputer misalkan pencarian file pada folder yang tidak kita ketahui dengan pasti lokasinya. Pada struktur data kita mengenal dua metode searching antara lain:


1.    Sequensial Search
 
Sequensial search atau pencarian beruntun  merupakan model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan data. Pencarian beruntun dilakukan dengan melakukan penelusuran data satu persatu kemudian dicocokkan dengan data yang dicari, jika tidak sama maka penelusuran dilanjutkan, jika sama maka penelusuran dihentikan, berarti data telah ditemukan.



2.    Binary Search


Binary search atau Pencarian bagi dua hanya dapat dilakukan pada data yang sudah terurut, dengan kata lain, apabila data belum dalam keadaan terurut maka pencarian tidak dapat dilakukan.  

Berikut contoh dari Sequensial Search dan Binary Search dalam C++ :
  

//CONTOH Sequensial Search 

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
void main()
{
//deklarasi variabel
    int A[10], index[10], i, j, k, n;

//proses input data
    cout<<"Inputkan Jumlah Data [Max 10] : ";
    cin>>n;
    cout<<endl;

    for(i=0;i<n;i++)
    {
        cout<<"Inputkan Data ke - "<<(i+1)<<" = ";
        cin>>A[i];
    }

//proses input data yang hendak dicari
    cout<<"Input Data Yang Ingin Anda Temukan : ";
    cin>>k;
    cout<<endl;

//proses pencarian data
    j=0;
   for (i=0;i<n;i++)
   {
       if(A[i]==k)
       {
           index[j]=i;
           j++;
       }
   }

//hasil pencarian
    if (j>0)
    {
         cout<<"Data " <<k<< " Ditemukan Sebanyak " <<j<< " Buah "<<endl;
         cout<<"Data Terdapat Pada Index ke : ";
         for(i=0;i<j;i++)
        {
            cout<<index[i]<<" ";
        }
        cout<<endl;
    }
    else
    {
         cout<<"Data Tidak Ditemukan!! "<<endl;;
    }
     getch();
}



//CONTOH Binary Search
  
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{
    //deklarasi variabel
    int A[10], n, i, j, k, tkr, right, left, middle, tm;

    //proses penginputan data
    cout<<"Inputkan Jumlah Data = ";
    cin>>n;
    cout<<endl;
 
    for(i=0;i<n;i++)
    {
            cout<<"Inputkan Data ke - "<<(i+1)<<" = ";
            cin>>A[i];
    }
     cout<<endl;
     cout<<"Input Data Yang Ingin Anda Temukan : ";
     cin>>k;
     cout<<endl;

    //proses pengurutan data
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
             if (A[i]>A[j])
            {
                  tkr=A[i];
                 A[i]=A[j];
                 A[j]=tkr;
            }
        }
    }

    //proses pencarian data
    tm=0;
    right=n;
    left=0;
    while(right>=left)
    {
        middle=(right+left)/2;
        if(A[middle]==k)
        {
             tm++;
        }
        if(A[middle]<k)
        {
              left=middle+1;
        }
        else
        {
              right=middle-1;
        }
    }

    if (tm>0)
    {
         cout<<"Data " << k << " Ditemukan!! "<<endl;
    }

    //jika tidak ditemukan
    else
    {
          cout<<"Data Tidak Ditemukan!! "<<endl;
    }
    getch();
}

Tidak ada komentar:

Posting Komentar