Home

Get cash from your website. Sign up as affiliate

28 Juni 2009

searching

MySpace

>> apa itu searching???
Searching adalah pencarian informasi dalam suatu aplikasi, dengan suatu kunci( key )

>>metode searching
:: Metode Pencarian Beruntun (Sequential Search)
:: Metode Pencarian Bagi dua (Binary Search)

>>metode pencarian beruntun (sequential search)
- merupakan pencarian sederhana, dari awal sampai akhir
- pencarian dilakukan mulai dari elemen pertama sampai elemen ditemukan, atau sampai elemen terakhir
- kemungkinan terburuknya adalah jika data yang dicariterletak di indeks array terakhir sehingga waktu yang dibutuhkan untuk pencarian data sangat lama

contoh program :
void main()
{
clrscr();
int data[7] = {7,17,27,77,57,78,47}
int cari, index;
int ketemu=0;
cout<<"masukkan data yang ingin dicari = ";
cin>>cari;
for( int i=0; i<7; i++)
{
if( data[i] == cari )
{
ketemu=1;
index=i;
break;
}
}
if( ketemu == 1)
{
cout<<"data ada!!!"<cout<<"data ada di index ke-"<}
else cout<<"data tidak ada!!!"<getch();
}

>>Metode Pencarian Bagi dua (Binary Search)
- data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yaang dijadiktan kunci pencarian
- aadalah tekndik pencarian data dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pengurutan
- prinsip pencarian biner adalah :
:: data diambil dari posisi 1 sampai posisi akhir n
:: kemudian cari posisi data tengah dengan rumus ( posisi awal + posisi akhir) / 2
:: data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau
lebih kecil atau lebih besar
:: jika lebi besar, maka proses pencarian dicari dengan posisi awal adalah posisi
tengah + 1
:: jika posisi lebih kecil, maka proses pencarian dicari dengan posisi akhir
adalah posisi tengah - 1
:: jika data sama, berarti ketemu
- Metode ini lebih cepat dibandingkan metode pencarian beruntun.

contoh program :

int data[7] = {7,17,27,77,57,78,47}

int binary_search(int cari)
{
int index;
int l,r,m;
int n = 7;
l = 0;
r = n-1;
int ketemu = 0;
while(l<=r && ketemu==0)
{
m = (l+r)/2;
if(data[m] == cari)
{
ketemu = 1;
index = m;
cout<<"Data terletak di index ke- "< cout< break;
}
else
if (cari < data[m])
r = m-1;
else l = m+1;
}
if(ketemu == 1) return 1; else return 0;
}

void main()
{
clrscr();
int cari, hasil,index;
cout<<"masukkan data yang ingin dicari =";
cin>>cari;
hasil = binary_search(cari);
if(hasil == 1)
{
cout<<"Data ada!"<
}
else
if(hasil == 0)
cout<<"Data tidak ada!"< getch();
}

1 komentar:

  1. weee~ ngga nyangka lho si rushie bisa bikin beginian... *kirain cuma bisa bikin sebel doank*

    wkakakaka :ngacir:

    BalasHapus