ALGORITMA PENCARIAN
1. Tujuan
Setelah mempelajari modul ini, maka anda diharapkan mampu
1. Menjelaskan beberapa algoritma pencarian
2. Meaplikasikan algoritma dalam pemrograman
2. Teori Dasar
Pencarian dalam sebuah program akan sangat menguntungkan bagi pemrogram apabila akan
membuat sebuah program yang mengharuskan adanya pencarian data tertentu. Pencarian data
tertentu yang terkandung di dalam array merupakan hal yang banyak ditemukan dalam kasus-
kasus pemrograman. Metode pencarian data di dalam array dapat dibagi menjadi dua, yaitu
metode pencarian beruntun (sequential search) dan metode pencarian bagi dua/pencarian biner
(binary search). Berikut ini penjelasannya dari kedua metode tersebut.
Keadaan pertama
Nilai yang dicari
10 12 14 1 16 18 19 20 22 24 25 26 28 29
5
k1 = 7
Keadaan kedua
20 22 24 25 26 28 29
k2 = 11
Keadaan ketiga
Hentikan pencarian
20 22 24
Pada gambar di atas, array terdiri dari 14 buah elemen yang sudah terurut secara menaik
dengan indeks 1 sampai 14. Mula-mula (keadaan pertama), array akan dibagi menjadi dua
bagian. Pembatasnya adalah indeks ke-7. Nilai 7 didapat dari (1+14) div 2. Karena nilai pada
indeks ke-7 (nilai 19) lebih kecil dari nilai yang dicari (nilai 22), maka proses pencarian akan
diulang untuk indeks ke-8 sampai ke-14. Pada keadaan kedua ini array tersebut juga akan dibagi
menjadi dua, sehingga pembatasnya adalah indeks ke-11, yang berasal dari (8+4) div 2. Karena
nilai pada indeks ke-11 (nilai 25) lebih besar dari nilai yang dicari (niali 22), maka proses
pencarian akan dilakukan lagi untuk indeks ke-8 sampai ke-10. Pada keadaan ini (keadaan
ketiga), array akan dibagi menjadi dua pada indeks ke-9, yang berasal dari (8+10) div 2. Karena
nilai pada indeks ke-9 sama dengan nilai yang dicari, maka proses pencarian pun dihentikan.
5. Langkah Kerja
1. Program mencari sebuah data dalam array
#include <stdio.h>
main()
{
int array[6]={10, 45, 21, 8, 48, 20};
int x, cari, y=0;
printf("Urutan angkanya adalah: 10 45 21 8 48 20");
printf("\nMasukkan bilangan yang ingin dicari: ");
scanf("%i", &cari);
for (x=0; x<6; x++)
{
if(array[x]==cari)
{
y=1;
break;
}
}
if(y==0)
printf("\nBilangan yang anda cari tidak ada\n\n");
else
printf("\nBilangan yang anda cari terdapat pada indeks
ke-%i\n\n", x);
}
Hasil Program :
2. Program mencari jumlah huruf vocal dalam array
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
for(x=0;x<strlen(Kalimat);x++)
{
if(Kalimat[x]=='a'||Kalimat[x]=='A'||Kalimat[x]=='i'||
Kalimat[x]=='I'||Kalimat[x]=='u'||Kalimat[x]=='U'||
Kalimat[x]=='e'||Kalimat[x]=='E'||Kalimat[x]=='o'||
Kalimat[x]=='O')
{
vocal++;
}
}
return (vocal);
}
int main()
{
char Kalimat[50];
printf("Masukkan kata = ");
gets(Kalimat);
int vocal= Hitung_vocal(Kalimat);
printf("Terdapat %d huruf vokal\n", vocal);
return 0;
}
Hasil Program :