Pages

Minggu, 03 November 2013

Searching Array


Sesuai dengan judulnya, saya akan membahas proses pencarian / searching data pada suatu array / barisan data. Jika diketahui ada sebuah array / barisan data bernama A yang menampung 10 data yang bertipe integer sbb A={3,5,1,7,4,2,8,6,9,0} dan kita diberi tugas untuk mencari beberapa data misal:
·         Jika data yang akan dicari dalam array A adalah 7, maka dengan cepat dapat kita ketahui bahwa data 7 ada dalam array A pada index ke-4 (index pada array dimulai dari 0)
·         Sedangkan jika data yang akan dicari dalam array A adalah 10, maka dapat disimpulkan bahwa array A tidak memiliki data 10 tersebut.
Nah, kita sudah memahami proses pencarian data yang sederhana tersebut dalam pikiran kita, sekarang permasalahannya adalah bagaimana mengimplementasikannya kedalam program ?.
Pada umumnya dikenal dua metode searching antara lain : Sequensial search dan binary search, Untuk lebih memahami kedua metode ini lebih baik kita mulai dari metode yang paling sederhana terlebih dahulu yaitu sequensial search.

A. Sequensial Search

Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling mudah. Bayangkan saja jika anda dihadapkan pada sebuah rak buku, dan anda diberi tugas untuk mencari sebuah buku dari rak tersebut. Sudah tentu anda akan mulai mencarinya satu – persatu entah itu dari atas atau dari bawah sampai buku yang dimaksud ketemu.
Contoh Programnya :
#include<stdio.h>
#include<conio.h>
void main()
{
    int A[5],index[5], i,j,k;
    for(i=0;i<5;i++)
    {
        printf("Data ke-%d:",i+1);
        scanf("%d",&A[i]);
    }
    printf("Masukkan Data Yang Anda Cari:");
    scanf("%d",&k);
    j=0;
    for (i=0;i<5;i++)
    {
        if(A[i]==k)
        {
            index[j]=i;
            j++;
        }
    }
    if (j>0)
    {
        printf("Data %d yang dicari ada %d buah\n",k,j);
        printf("Data tersebut terdapat dalam index ke- :");
        for(i=0;i<j;i++)
        {
            printf(" %d ",index[i]);
        }
        printf("\n");
    }
    else
    {
        printf("Data tidak ditemukan dalam searching array\n");
    }
   getch();
}

B. Binary Search 

Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu. Jika terdapat N buah data yang akan dolah, data yang dicari akan dibandingkan dengan data ke-N jika data ke-N lebih besar dari data yang dicari maka akan dilakukan pembagian data menjadi dua bagian. Kemudian ujung data pada setiap bagian dibandingkan lagi dengan nilai yang akan dicari. 
Contoh Programnya :

#include<stdio.h>
#include<conio.h>
void main()
{
    int A[10], i,j,k,tkr,top,bottom,middle,tm;
    for(i=0;i<10;i++)
    {
        printf("Data ke-%d:",i+1);
        scanf("%d",&A[i]);
    }
    printf("Masukkan data yang akan anda cari:");
    scanf("%d",&k);
    for(i=0;i<10;i++)
    {
        for(j=i+1;j<10;j++)
        {
            if (A[i]>A[j])
            {
                tkr=A[i];
                A[i]=A[j];
                A[j]=tkr;
            }
        }
    }
    tm=0;
    top=9;
    bottom=0;
    while(top>=bottom)
    {
        middle=(top+bottom)/2;
        if(A[middle]==k)
        {
            tm++;
        }
        if(A[middle]<k)
        {
            bottom=middle+1;
        }
        else
        {
            top=middle-1;
        }
    }
    if (tm>0)
    {
      printf("Data %d yang dicari ada dalam array\n",k);
    }
    else
    {
      printf("Data tidak ditemukan dalam array\n");
    }
   getch();
}

Sumber : Dari Modul Praktek Pemrograman C++
 

0 komentar:

Posting Komentar

 

Terima Kasih Telah Berkunjung Ke Blog ini, Follow :TwitterdanFacebook