Thursday, January 14, 2016

Searching

1. Pengertian Searching 
Pencarian (Searching) merupakan proses yang fundamental dalam pemrograman, guna menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi (mencocokkan) data. 

2. Metode pencarian dibagi menjadi 2, yaitu: 
1. Metode Pencarian Beruntun 
Konsep yang digunakan dalam metode ini adalah membandingkan data-data yang ada dalam kumpulan tersebut, mulai dari elemen pertama sampai elemen ditemukan, atau sampai elemen terakhir. 
2. Metode Pencarian Bagi Dua (Binary Search) 
Metode ini diterapkan pada sekumpulan data yang sudah terurut (menaik atau menurun). Metode ini lebih cepat dibandingkan metode pencarian beruntun. Data yang sudah terurut menjadi syarat mutlak untuk menggunakan metode ini. 
Konsep dasar metode ini adalah membagi 2 jumlah elemennya, dan menentukan apakah data yang berada pada elemen paling tengah bernilai sama, lebih dari atau kurang dari nilai data yang akan dicari. Jika bernilai sama, maka langsung data yang dicari ditemukan. Jika data di elemen terurut naik, maka jika data yang berada di tengah kurang dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan sebaliknya untuk nilai data yang berada di tengah lebih dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke kiri, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan demikian sebaliknya untuk data yang terurut menurun. Dalam hal ini tentukan indeks paling awal dan indeks paling akhir, untuk membagi 2 elemen tersebut. 
Indeks awal = i, dimana nilai i, pada awalnya bernilai 0; 
Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah elemen. 


Contoh implementasi searching 

#include
 

void main() 
{ 
clrscr(); 

int bil[5]; 
int jml_bil,nilai_max; 
int i; 

/* input data */ 
cout<<"masukkan jumlah bilangan kurang dari 5 : ";cin>>jml_bil; 
for(i=0;i
{ 
cout<<"bilangan ke"<<i+1<<":";cin>>bil[i]; 
} 

/* menentukan nilai max */ 
nilai_max=bil[0]; 
for(i=0;i
{ 
if (bil[i]>nilai_max) 
{ 
nilai_max=bil[i]; 
} 
} 

/* mencetak nilai max */ 
cout<<"nilai maksimum : "<<nilai_max<
cout<
 
getch(); 

} 

Algoritma dari 

Proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut : 

1. Membaca Array data 
2. Apabila Array belum terurut maka array diurutkan terlebih dahulu. 
3. Menentukan data yang akan dicari 
4. Menentukan elemen tengah dari array 
5. Jika nilai elemen tengah sama dengan data yang dicari, maka pencarian berhenti. 
6. Jika elemen tengah tidak sama dengan data yang dicari maka : 
1. Jika nilai elemen tengah > data yang dicari maka pencarian dilakukan pada setengah array pertama. 
2. Jika nilai elemen tengah lebih kecil dari pada data yang dicari maka pencarian dilakukan pada setengah array berikutnya. 

</nilai_max<</i+1<<":";cin>

No comments:

Post a Comment