Program C : Searching di Database Sederhana (.txt)

Pencarian atau Searching merupakan proses yang sangat penting dalam pengolahan data. Proses pencarian adalah menemukan nilai(data) tertentu didalam sekumpulan data yang bertipe sama. Algoritma "Searching" yang digunakan pada postingan kali ini adalah "Linier Search" . Linear search merupakan algoritma search yang paling sederhana dan mudah dipahami dibandingkan dengan algoritma search lainnya. Linear search memiliki kelebihan yaitu apabila data yang di cari letaknya di awal maka proses searching akan berjalan cepat. namun linier search mempunyai kelemahan yaitu apabila data yang di cari letaknya pada data terakhir maka penggunaan waktu dalam proses pencarian akan berjalan lama. Jadi, "worst case" pada linier search ini sangat tidak efisien (worst) dibanding algoritma search lainnya seperti "binary search" atau interpolation search. Namun jika searching dilakukan pada database sederhana atau jumlah data yang di cari tidak terlalu banyak, maka Linier Search merupakan algoritma yang paling cocok untuk digunakan. Dibawah ini hasilnya :


background nya vvibu :v

Pada program diatas, saya menggunakan Search[30] yang artinya jumlah karakter yang diinputkan untuk mencari data maksimal 30 karakter. Baris[100] membatasi hasil outputnya yaitu maksimal 100 baris. Kedua nilai tersebut dapat diubah sesuai keperluan. 
Perlu diperhatikan juga bahwa pada program c, huruf kapital dan huruf kecil dibedakan. Pada gambar diatas, jika saya menginputkan string "Song" maka hasil/outputnya akan muncul. Namun Jika diinputkan string "song", maka nantinya hasil pencarian tidak akan keluar karena huruf  "k" yang diinput bukan merupakan huruf kapital. Oleh karena itu, huruf kapital dan huruf kecil harus diperhatikan oleh user. zlangsung saja Source Code nya :

#include <stdio.h>

int main(){

FILE *f,*f2;
char c,baris[100],search1[30],search[30],baris2[100];
int  status=0,status2=0;
int  i,j,k,n;

for (n=0;n<=30;n++){
search1[n]='`';
}
printf("Search : ");
gets(search1);
printf("\nHasil Pencarian : \n");
for (n=0;n<=30;n++){
if(status2==0&&search1[n]=='`'){
search1[n-1]='`';
status2=1;
}
}
n=0;
while(search1[n]!='`'){
search[n]=search1[n];
n++; 
}

f=fopen("Test.txt","r");

//INGAT FILE "Text.txt" DIGANTI DENGAN FILE DATABASE YANG INGIN ANDA SEARCH
i=0;j=1;k=1;
c=getc(f);
while(c!=EOF){
if(c=='\n') j++;
if(c==search[i]){
i<=n-1;
status++;
i++;
}
else{
i=0;
status=0;
}
if(status==n){
baris[k]=j;
k++;
}
c=getc(f);
}
fclose(f);

i=1;n=1;
while (i<=k-1){
if(baris[i]!=baris[i+1]) {baris2[n]=baris[i];n++;}
i++;
}

j=1;n=1;status=0;

f2=fopen("Test.txt","r");
//INGAT FILE "Text.txt" DIGANTI DENGAN FILE DATABASE YANG INGIN ANDA SEARCH
c=getc(f);
while(c!=EOF){
if (baris2[n]==j) printf("%c",c);
if (baris2[n]==j&&c=='\n') n++;
if (c=='\n') j++;
c=getc(f);

fclose(f2);
}


Sekian, Semoga Bermanfaat

0 komentar:

Copyright © 2013 Yanamon