Rabu, 12 Oktober 2016

Sequential Search Dan Binary Search

A.    Sequential Search
Sequential Search adalah metode pencarian sebuah data dimana data dicari dari depan ke belakang atau dari awal sampai akhir tanpa harus mengurutkan data tersebut. Konsepnya yaitu dengan melakukan perbandingan data satu persatu secara berurut sampai data tersebut ditemukan atau tidak ditemukan.
 Proses dalam sequential search
Ø  Pertama data melakukan perbandingan saut persatu secara berurutan dalam kumpulan data dengan data yang dicari sampai data tersebut ditemukan atau tidak ditemukan
Ø  Pada dasarnya, pencarian ini hanya melakukan pengulangan data dari satu sampai dengan jumlah data (n)
Ø  Setiap penglangan ,dibandingkan data ke –i dengan data yang sedang dicari
Ø  Apabila data sama dengan data yang dicari ,berarti data telah berhasil ditemukan. Sebaliknya apabila sampai akhir melakukan pegulangan tidak ada data yang sama dengan yang dicari, berarti tidak ada yang ditemukan.
Contoh Program Sequential Search
#include <conio.h>
#include <iostream>
using namespace std ;
main()
{
int X,i,indeks;
int A[100];
cout<<"                                    *** SEQUENTIAL SEARCH ***"<<endl;
cout<<"                                    ========================="<<endl<<endl;
cout<<"Jumlah Data yang ingin diinputkan : ";
            cin>>X;
            for(i=0;i<X;i++)
                        {
                        cout<<"Input data ke- "<<i+1<<"=";
                        cin>>A[i];
                        }
cout<<"\nData yang ingin dicari : ";
cin>>X;
i=0;
indeks=0;
            while(i<100 && A[i]!=X)       
                        {
                        i++;
                        }
            if (A[i]!=X)
                        {
                        cout<<"\nMaaf data yang anda masukan tidak ditemukan !!!";
                        }
            else if(indeks=i)          
                        cout<<"Data terletak pada indeks ke : "<<indeks;
getch();
}

Kelebihan Program Sequential Search
   Ø  Relatif lebih cepat dan efesien untuk data yang memiliki jumlah terbatas
   Ø  Algoritma pemrogramanya lebih sederhana
  Kekurangan Program Sequential Search
   Ø  Kurang cepat untuk melakukan pencarian datadalam jumlah yang besar 

   B.     Binary Search
Binary Search adalah metode pencarian seluruh data dari suatu kumpulan data, dimana kumpulan data tersebut harus berurutan dengan benar agar proses pencarian data bisa dilakukan. Dalam proses pencarian data pada metode ini data akan dibagi dua bagian setiap tahap pencarianya.
            Proses dalam Binary search
Ø  Pertama pengambilan data dimulai dari posisi satu sampai dengan posisi akhir
Ø  Selanjutnya mencari posis data yang tengah dengan menggunakan rumus : (posisi awal + posisi akhir )/2
Ø   Setelah itu data yang akan dicari dibandingakan dengan data yang berada di tengah, apakah data tersebut sama atau lebih kecil, atau lebih besar ?
Ø  Seandainya data tersebut lebih besar, maka proses pencarian yang dicari dengan posisi awal adalah posisi tengah +1
Ø  Apabila data lebih kecil, maka proses pencarian yang dicari dengan posisi akhir adalah posisi tengah -1
Ø  Jika data sama dengan data yang dicari, berarti data tersebut telah ketemu.
Contoh Program Binary Search
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
void selection_sort( int data[])
{
      int temp;
      for(int i=0; i<5;i++){
            for(int j = i+1; j<5; j++)
            {
                  if(data[i]>data[j])
                  {
              temp = data[i];
              data[i]  = data[j];
              data[j] = temp;
                  }
            }
      }
}
int main()
{
            int data[5];
            int cari;
            cout<<"\t                                 'BINARY SEARCH'"<<endl;
            cout<<"\t                                 =============="<<endl;
      
            cout<<"\nMasukkan Data : "<<endl;
            for(int x = 0; x<5; x++)
                        cin>>data[x];     
                        cout<<"\nMasukkan data yang ingin Anda cari : ";
                        cin>>cari;
                        cout<<"\nData diurutkan : ";
                        selection_sort(data);    
                        for(int x = 0; x<5;x++)
                        cout<<setw(3)<<data[x];
                        cout<<endl;
                        int awal, akhir, tengah, b_flag = 0;
                        awal = 0
            akhir = 5;       
   while (b_flag == 0 && awal<=akhir)
      {
            tengah = (awal + akhir)/2;
   if(data[tengah] == cari)
            {
                  b_flag = 1;
                  break;
            }
            else if(data[tengah]<cari)
      awal = tengah + 1;
            else
                  akhir = tengah -1;
      }
      if(b_flag == 1)
            cout<<"\nData ditemukan pada index ke-"<<tengah<<endl;
   else
            cout<<"\nData tidak ditemukan\n";
      _getche();
      return 0;
  }

Kelebihan Program Binary Search
  Ø  Untuk pencarian data dalam jumlah yang besar, waktu searching / pencarian lebih cepat karena data telah terurut
Kekurangan Program Binary Search
  Ø  Data harus di Sorting terlebih dahulu (dalam keadaan urut ) agar lebi mudah dalam pencarian data yang diinginkan

   Ø  Algoritma pemrogramanya lebih rumit dari sequential search
Share:

Translate

Labels