Minggu, 20 Desember 2015

Program Cari Data Dengan Bahasa C

Pencarian data tidak lepas dengan looping & array. Search juga ada beberapa jenis yaitu pencarian dengan variable logika, tanpa variable logika, & sentinel. Lalu bagaimana membuat itu semua? Saya akan menunjukan beberapa contoh project search dengan 3 jenis itu. Langsung aja!

1. Program pencarian nilai dengan variable logika, dengan menerima masukan data dari user maksimal 100 (banyaknya array) data integer lalu menentukan nilai yang akan dicari dari array tersebut.

Bahasa C :
#include <stdio.h>
int main ()
{
int a [100];
int x;
int s;
int i;
int n;
bool found;

printf ("masukan banyak data: "); scanf("%d",&n);
for (i=0;i<n;i++){
printf("masukan nilai array:");scanf("%d",&a[i]);
}
printf ("masukan nilai yang dicari: "); scanf ("%d",&x);
i=0;
found=false;
while(i<n && !found){
if(x==a[i]){
found=true;
}
else {
i++;
}
}
if (found==true){
printf("ditemukan di elemen ke- %d",i+1);
}
else{
printf("tidak ditemukan");
}
}
*karena ini menggunakan variable logika, maka di kamus terdapat type data boolean dengan variable bernama found. Lalu search juga tidak lepas dengan while.
Output/keluaran :

2. Program cari nilai tanpa variable logika, dengan menerima masukan data dari user maksimal 100 (banyaknya array) data integer lalu menentukan nilai yang akan dicari dari array tersebut.

Bahasa C :
#include<stdio.h>
int main()
{
int a [100];
int x;
int i;
int n;

printf ("masukan banyak data: "); scanf("%d",&n);
for (i=0;i<n;i++){
printf("masukan nilai array:");scanf("%d",&a[i]);
}
printf ("masukan nilai yang dicari: "); scanf ("%d",&x);
i=0;
while(i<n && a[i] != x){
i++;
}
if (a[i]==x){
printf("ditemukan di elemen ke- %d",i+1);
}
else{
printf("tidak ditemukan");
}
return 0;
}
*Perbedaannya jelas terlihat dari pemakaian variable logika saja, disini tidak di pakai jadi langsung saja setalah looping lalu ke kondisi If, lalu menampilkan hasilnya. Output/keluarannya sama saja seperti di soal pertama.

3. Program cari data dengan sentinel, dengan menerima masukan data dari user maksimal 100 (banyaknya array) data integer lalu menentukan nilai yang akan dicari dari array tersebut.

Bahasa C :
#include <stdio.h>
int main ()
{
int a [100];
int x;
int i;
int n;

printf ("masukan banyak data: "); scanf("%d",&n);
for (i=1;i<=n;i++){
printf("masukan nilai array:");scanf("%d",&a[i]);
}
printf ("masukan nilai yang dicari: "); scanf ("%d",&x);
a[n+1]=x;
i=1;
while(a[i] != x ){
i=i+1;
}

if (i != 0){
printf("ditemukan di elemen ke- %d",i);
}
else {
printf("tidak ditemukan");
}
}
*Perbedaannya jelas terletak pada array yang ditambahkan angka 1, & while.
Output/keluaran sama dengan yang diatas.

Di soal yang terakhir ini saya akan membuat program bernama Mata Kulaih, program ini meminta masukan data dari user berupa kode mata kuliah, nama mata kuliah, & jumlah sks. Jumlah data yang dimasukan maksimal 100 (banyak array), lalu meminta cari data berdasarkan kode mata kuliah, & jumlah sks. setelah itu menampilkan hasil cari itu. Saya akan menggunakan pencarian dengan menggunakan variable logika.
Contoh :
Masukan banyaknya data yang akan di input : 2
Data 1:
Kode mata kuliah : 123
Nama mata kuliah : Kalkulus
Jumlah SKS : 3

Data 2:
Kode mata kuliah : 124
Nama mata kuliah : Algoritma dan pemrograman I
Jumlah SKS : 4

Cari data berdasarkan kode : 124
Kode mata kuliah : 124
Nama mata kuliah : Algoritma dan pemrograman I
Jumlah SKS : 4

Cari berdasarkan jumlah SKS : 3
Kode mata kuliah : 123
Nama mata kuliah : Kalkulus
Jumlah SKS : 3

Bahasa C :
#include<stdio.h>
#include<iostream>

using namespace std;

int main()
{
typedef struct {
int kd_mk;
char nama_mk[50];
int jml_sks;
}mk;
mk a[100];
int x;
int i;
int n;
int s;
int d;
bool found;

printf("masukan jumlah data n:");scanf("%d",&n);
for(i=0; i<n; i++){
printf("masukan kode matkul: \n");scanf("%d",&a[i].kd_mk);
printf("masukan nama matkul: \n");scanf("%s",&a[i].nama_mk);
printf("masukan jumlah sks: \n");scanf("%d",&a[i].jml_sks);
}
printf("Cari data berdasarkan kode: \n");scanf("%d",&x);
i=0;
found=false;
while(i<n && !found){
if(a[i].kd_mk==x){
found=true;
}
else{
i=i+1;
}
}
if(a[i].kd_mk==x && found){
printf("nama matkul: %s\n",a[i].nama_mk);
printf("jumlah sks: %d\n",a[i].jml_sks);
}
else{
printf("tidak ditemukan \n");
}
printf("Cari data berdasarkan jumlah sks: \n");scanf("%d",&s);
d=0;
found=false;
while(d<n){
if(s==a[d].jml_sks){
printf("Kode matkul: %d\n",a[d].kd_mk);
printf("nama matkul: %s\n",a[d].nama_mk);
found=true;
}
d++;
}
if(found==false){
printf("tidak ditemukan \n");
}

return 0;
}
*Saya menggunakan typedef struct di programnya, typedef struct adalah type struktur di bahasa C.
Output/keluaran :

Tidak ada komentar:

Posting Komentar