Wednesday, November 7, 2012

Searching Menggunakan Pemrograman C

Berikut ini Contoh konsep sederhana dalam penggunaan Searching

#include <stdio.h>
int main (void) {
       int kumpul_angka[6], angka, n, info, Y=1;
       char yesno[2];
       int pencarian1 (int data[6],int dicari);
       printf("Masukkan 6 angka sebarang: \n");
           for (n=0;n<6;n++) {
                     printf("Indeks ke-%d = \n", n);
                     scanf("%d", &kumpul_angka[n]);
              }
           while(Y) {
              printf("Masukan angka yang posisinya ingin dicari> ");
              scanf("%d", &angka);
              info = pencarian1(kumpul_angka, angka);
              if (info==-1) printf("Angka %d tidak ada pada array kumpul_angka\n", angka);
              else printf("Angka %d yang pertama ada di array kumpul_angka pada indeks ke- %d\n", angka, info);
                    
              printf("\nIngin mencari angka yang lain? <y/n> ");
              scanf("%s",&yesno[0]);

              if (yesno[0]=='Y'||yesno[0]=='y') Y=1;
              else if(yesno[0]=='N'||yesno[0]=='n'||yesno[0]!='Y'||yesno[0]!='y') Y=0;
            }
 return(0);
}

int pencarian1 (int data[6], int dicari) {
       int m=0, indeks, ada=0;
       while(m<5 && !ada) {
              if (data[m]==dicari) {
                     ada=1; indeks=m;
              } else m++;
       }
       if (ada==0) indeks=-1;
       return indeks;
}


Penjelasan:
       int kumpul_angka[6], angka, n, info, Y=1;
       char yesno[2];
       int pencarian1 (int data[6],int dicari);

Deklarasi awal variabel dimana variabel n,info, Y bertype integer sedangkan fungsi pencarian1 dengan parameter variabel array data [6] dan dicari bertype integer.
Untuk memasukkan data inputan variabel m digunakan baris perintah perulangan sebanyak jumlah masukan angkanya
       printf("Masukkan 6 angka sebarang: \n");
           for (n=0;n<6;n++) {
                     printf("Indeks ke-%d = \n", n);
                     scanf("%d", &kumpul_angka[n]);
              }
Sedangkan baris perintah while(Y) digunakan untuk perulangan masukkan angka yang dicari selama kondisi bernilai y didalam perulangan tersebut terdapat baris perintah
              printf("Masukan angka yang posisinya ingin dicari> ");
              scanf("%d", &angka);
yang berfungsi untuk masukan angka yang dicari. Untuk mencari angka yang dicari apakah terdapat dalam variabel kumpul angka maka digunakan fungsi pencarian info = pencarian1(kumpul_angka, angka); dimana fungsi tersebut berisikan baris perintah
    int pencarian1 (int data[6], int dicari) {
       int m=0, indeks, ada=0;
       while(m<5 && !ada) {
              if (data[m]==dicari) {
                     ada=1; indeks=m;
              } else m++;
       }
       if (ada==0) indeks=-1;
       return indeks;
    }
Fungsi tersebut mempunyai parameter masukan array data[6] dan dicari yang bertype integer didalamnya terdapat proses pengecekan apakah inputan tersebut ada atau tidak ada. while(m<5 && !ada) baris tersebut digunakan untuk perulangan selama m bernilai kurang dari 5 dan ada bernilai 1. Untuk mengecek apakah angka tersebut ada atau tidak menggunakan baris perintah
if (data[m]==dicari) jika nilai array data[m] sama dengan variabel yang dicari maka variabel indeks sama dengan perulangan m
untuk mengeset nilai awal variabel kembali mengunakan pengecekan if (ada==0) jika ada indeks=-1
Untuk menampilkan hasil pencarian maka digunakan pengecekan nilai kembalian dari fungsi pencarian1 dalam variabel info dimana jika info=-1 maka angka tersebut tidak ditemukan jika tidak maka akan tampil indeks dari angka yang ditemukan dengan baris perintah
if (info==-1) printf("Angka %d tidak ada pada array kumpul_angka\n", angka);
else printf("Angka %d yang pertama ada di array kumpul_angka pada indeks ke- %d\n", angka, info);
Untuk menampilkan inputan pencarian kembali digunakan baris perintah
       printf("\nIngin mencari angka yang lain? <y/n> ");
       scanf("%s",&yesno[0]);

       if (yesno[0]=='Y'||yesno[0]=='y') Y=1;
       else if(yesno[0]=='N'||yesno[0]=='n'||yesno[0]!='Y'||yesno[0]!='y') Y=0;
Jika kita ketikkan karakter y/Y maka perulangan akan dilakukan kembali jika diketikkan n/N maka berhenti mengulang dan program berhenti

Untuk lebih jelasnya silahkan lihat video tutorial dibawah ini:


No comments:

Post a Comment