Rabu, 03 Juni 2015

BINARY SEARCH & SEQUENSIAL SEARCH

SEARCHING
Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat pencarian data dapat berupa array dalam memori, bisa juga pada file pada External Storage.
Pada umumnya dikenal dua metode Searching antara lain
1.    Sequensial Search
2.    Binary Search

1.    SEQUENSIAL SEARCH
Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling mudah. Suatu teknik pencarian data dalam arry (1 dimensi) yang akan menelusuri smua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu.

Ada 2 Kemungkinan dalam SEQUENSIAL SEARCH
  • Kemungkinan terbaik (Best Case) Adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (Minimal).
  •  Kemungkinan terburuk (Worst Case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (Maksimal).


2.    BINARY SEARCH
Proses pencarian Binary Search hanya satu dapat dilakukan pada kumpulan data yang sudah di urutkan terlebih dahulu.
 Prinsip dari BINARY SEARCH
  1.  Mula-mula diambil posisi awal 0 dan posisi akhir = N-1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah.
  2. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1.
  3. Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1.
  4. Jika data sama, berarti data ditemukan
CONTOH PROGRAM SEQUENSIAL SEARCH
#include <iostream.h>
#include <conio.h>
void main()
{
    int i;
    int cari,ketemu;
    int A[100];
   cout<<"PROGRAM SEARCHING\n";
   cout<<"masukkan 7 buah data : \n\n";
   for (i=1;i<=7;i++)
   {
   cout<<"masukkan data ke-"<<i<<endl;
   cin>>A[i] ;
   }
   cout<<endl;
    cout<<"Input bilangan yang dicari : ";
    cin>>cari;
    ketemu=0;
    for(i=0;i<=7;i++)
    {
        if (A[i]==cari)
        {
            ketemu=1;
            cout<<"Data ditemukan pada indeks ke-"<<i;
        }
    }
   if (ketemu==0){
       cout<<"Data tidak ditemukan";
    }
 getch();
}
HASIL

      CONTOH PROGRAM BINARY SEARCH  
#include <iostream.h>
#include <conio.h>
int binary_search(int array[],int size, int elemen);
void main()
{
  const int size = 10;
  int array[size]={0,6,9,12,20,23,29,32,47,79};
  cout<<"Isi dari array: "<<endl;
  for(int i=0;i<size;i++)
  cout<<" "<<array[i];
int elemen;
  int tanda;
  cout<<"\n\n";
  cout<<"Masukkan data yang dicari: ";
  cin>>elemen;
  cout<<"\n\n";
  tanda= binary_search(array,size,elemen);
  if (tanda!=-1)
  cout<<"Data "<<elemen<<" ditemukan pada posisi : array["<<
  tanda<<"],"<<" atau deret ke-"<<(tanda+1);
  else
  cout<<"\n data tersebut tidak ditemukan ";
  getch();
}
int binary_search(int array[],int size,int elemen)
{
  int start=0;
  int end=size - 1;
  int middle;
  int posisi=-1;
  middle=(start + end ) / 2;
  do
  {
   if(elemen<array[middle])
   end=middle-1;
   else if (elemen>array[middle])
   start=middle+1;
   middle=(start+end)/2;
  }
  while(start<=end && array[middle]!=elemen);
  if(array[middle]==elemen)
  posisi=middle;
  return posisi;
  }
 HASIL




Referensi : SearchingMenjelaskan tentang searching dan algoritmanya keteranganI KOMANG SETIA BUANA, S.Kom., MT

Tidak ada komentar:

Posting Komentar