MODUL 4
Array Dalam Fungsi
Disusun Oleh:
Agung Trianggoro
20180910015
UNIVERSITAS KUNINGAN
TAHUN 2018
D. Praktikum
1. Praktikum 1
Studi kasus 4.1
Melakukan pencarian berdasarkan input yang dilakukan dalam bentuk string
dengan demikian pencarian berdasarkan data string yang telah dimasukan.
Proses coding:
Line Syntax
1 #include <stdio.h> //file header i/o printf/scanf
2 #include <stdlib.h> //file header untuk pencarian
3 #include <conio.h> //untuk getch(); menahan program
4 struct maha //struktur data
5 {
6 char nama[30]; //deklarasi variabel
7 char search[30]; //deklarasi variabel
8 }
9 siswa[20];
10 enum jawab
11 {
12 benar,salah
13 }
14 ketemu;
15 int searching(int a, maha siswa[20]) //nama fungsi
16 {
17 int i,j; //deklarasi variable
18 ketemu = salah;
19 for(i=0;i<a;i++){ //perulangan
20 j=0;
21 while(j<30){
22 if(siswa[i].nama[j] == siswa[20].search[j])
23 {
24 if(j==29 && siswa[i].nama[29]==siswa[20].search[29])
25 {
26 ketemu=benar;
27 break; //mengentikan looping
28 }
29 j++;
30 }
31 else if(siswa[i].nama[j]!=siswa[20].search[29])
32 {
33 break; //menghentikan program
34 }
35 }
36 }
37 return ketemu; //pengembalian nilai
38 }
39 void main()
40 {
41 int x,i; //deklarasi variabel
42 char input[10],plh[1];
43 printf("masukan jumlah peserta: "); //input
44 gets(input);
45 x=atoi(input);
46 printf(" masukan nama: \n"); //input
47 for (i=0;i<x;i++) //perulangan
48 {
49 gets(siswa[i].nama);
50 }
51 pilih:
52 for(i=0;i<31;i++) //perulangan
53 {
54 siswa[20].search[i]=NULL;
55 }
56 printf("\nMasukan nama yang dicari: "); //input nama
57 gets(siswa[20].search);
58 printf("\n yang anda cari: ");
59 if(searching(x,siswa)==benar)
60 {
61 printf("ditemukan \n\n"); //output jika ditemukan
62 }
63 else {
64 printf("tidak ditemukan\n\n"); //outpu tdk ditemukan
65 }
66 yakin:
67 printf("ingin cari lagi [y/n]: ");
68 gets(plh);
69 if (plh[0]=='y') //mengecek kondisi
70 {
71 goto pilih;
72 }
73 else if(plh[0]=='n'){
74 printf("\n Terima kasih");
75 getch(); //menahan program agar tak tutup otomatis
76 exit(0);
77 }
78 else
79 {
80 printf("anda salah pilihan\n");
81 goto yakin;
82 }
83 }
Pada praktikum 1 studi kasus 4.1 adalah sebuah program pencarian nama,
program memerintahkan user untuk menginput jumlah peserta dan
memasukan nama peserta sesuai dengan jumlah peserta, misalnya seperti
program diatas dengan jumlah peserta 2 nama agung & trianggoro.
Line 43-50
printf("masukan jumlah peserta:
");
gets(input);
x=atoi(input);
printf(" masukan nama: \n");
for (i=0;i<x;i++)
{
gets(siswa[i].nama);
}
Apabila user memilih Tidak/n maka program otomatis akan berhenti dan tidak
melakukan perulangan, akan muncul pesan “Terima Kasih”.
else if(plh[0]=='n'){
printf("\n Terima kasih");
getch();
exit(0);
2. Praktikum 2
Proses coding:
Line Syntax
1 #include<stdio.h> //file header i/o printf/scanf
2 #include<conio.h> //untuk getch(); menahan program
3 void judul(char kota[11])//parameter menampikan tabel penjualan
4 {
5 char merek[3][7] ={"Toyota","Honda","Suzuki"};
6 char bulan [13]
7 [4]={"Jan","Feb","Mar","Apr","Mei","Jun","jul","Ags","Sep","Okt
8 ","Nop","Des","JML"};
62 jual[3][12][3] +=jual[i_m][i_b][3];
63 //tambah ke grand total
64 }
65 judul("semua");
66 for(i_m =0; i_m<4; i_m++)
67 {
68 i_m == 3?gotoxy (11,i_m +7):gotoxy(11,i_m +6);
69 for(i_b=0; i_b<13; i_b++)
70 printf("%-4d",jual[i_m][i_b][3]);
71 }
72 }
73 int main()
74 {
75 int jual[4][13][4]={0};
//pemanggilan fungsi merek,bulan,kota
76 isi_data(jual); //pemanggilan fungsi pengisian data
77 total_jual(jual); //pemanggilan fungsi hasil data
78 getch();
79 return 0;
80 }
Untuk merk mobil bekas yang dijual yaitu Toyota,Honda dan Suzuki
dengan array 2 dimensi tipe data char.
fungsi isi_data untuk melakukan pengisian data merk mobil yang terjual
pada tiap bulan sesuai merk yang disediakan terlebih dahulu.
Dan pada main() program ini memanggil fungsi-fungsi yang tersedia yaitu
jual, isi_data dan total_jual, lalu menampilkan data yang sudah diinput
pada fungsi sebelumnya.
int main()
{
int jual[4][13][4]={0};
//pemanggilan fungsi
merek,bulan,kota
isi_data(jual);
total_jual(jual);
getch();
return 0;
}
Hasil running program studi kasus 4.2: (sudah diisi oleh user)
a. Kota Jakarta, total penjualan semua mobil selama 1 tahun = 62 unit
b. Kota Surabaya, total penjualan semua mobil selama 1 tahun =95 unit
c. Kota Medan, total penjualan semua mobil selama 1 tahun =129 unit
d.Total penjualan semua mobil pada seluruh kota selama 1 tahun =286 unit
jual[3][i_b][3] +=jual[i_m][i_b][3];
//tambah ke bawah
jual[3][12][3] +=jual[i_m][i_b][3];
//tambah ke grand total
}
E. Post Test
1. Studi kasus 1
Dalam suatu kumpulan angka yang tidak beraturan kita diminta untuk mengurutkan dari
mulai angka yang terkecil hingga yang terbesar, tipe data yang dapat menangani kasus ini
yang effisien adalah tipe data array.
Line Syntax
1 #include<stdio.h> //file headen o/i printf/scanf
2 #include<conio.h> //file header u/ getch();
2. Studi Kasus 2
Terdapat beberapa nilai masukan yang akan diolah semua nilai bertipe data
integer dari semua nilai yang di masukan terdapat nilai terbesar dan nilai terkecil,
setiap data yang diinput disimpan dalam variable array, perbaikilah program
dibawah ini agar dapat menyelesaikan kasus di atas.
Line Syntax
1 #include <iostream.h>
2 #include <conio.h>
3 int main()
4 {
5 int max, i, n, min;
6 float A[100];
7 cout<<".::| MENCARI NILAI TERBESAR DAN TERKECIL
|::. \n\n";
8 cout<<"Masukan Jumlah Data : ";
9 cin>>n;
10 for(i=1; i<=n; i++)
11 {
12 cout<<" Masukan Bilangan Ke ["<<i<<"] : ";
13 cin>>A[i];
14 }
15 for(i=1; i<=n; i++)
16 {
17 if(i==1)
18 {
19 min = A[i];
20 max = A[i];
21 }
22 else if (min > A[i])
23 {
24 min = A [i];
25 }
26 else if(max < A[i])
27 {
28 max = A[i];
29 }
30 }
31 cout<<"\nNilai Terbesar Adalah : "<<max<<endl;
32 cout<<"Nilai Terkecil Adalah : "<<min<<endl;
33 getch();
34 return 0;
35 }
F. Tugas
1. Buatlah program dengan bahasa C/C++ untuk mengurutkan 100 buah data
masukan dengan fungsi array!!
2. Buatlah array berdimensi 3 dan multidimensi
3. pada studi kasus 4.2 menambahkan 5 kota yaitu, Semarang, Pekanbaru,
Aceh, Lampung, dan Timika.
Jawaban :
6 int i, j, k;
7 printf ("\n||| Array 3 Dimensi ||| \n\n");
8 for (i = 0; i < 3; i++)
9 {
10 for (j = 0; j < 3; j++)
11 {
12 for (k = 0; k < 3; k++)
13 {
14 printf ("Baris %d | Kolom %d = %d\n", j+1, k+1,a[i][j]
[k]);
15 }
16 printf ("\n");
17 }
18 }
19 printf("==============================\n");
20 printf("\n\n");
21 printf("Matriksnya:\n\n");
22 for (i = 0; i < 3; i++)
23 {
24 for (j = 0; j < 3; j++)
25 {
26 for (k = 0; k < 3; k++)
27 {
28 printf ("%d\t",a[i][j][k]);
29 }
30 printf ("\n\n");}
31 }
32 getch();
33 }
10 };
24 getch();
25
26 }
8 int i;
9 clrscr();
10 printf("PENJUALAN MOBIL BEKAS\n\n");
11 printf("Kota :%s\n\n\t",kota);
12 for(i=0; i<13; i++)
13 printf(" %s",bulan[i]);
14 for(i =0; i<3; i++)
15 printf("\n %s",merek[i]);
16 }
53 jual[3][12][8] +=jual[i_m][i_b][8];
//tambah ke grand total
54 }
55 judul("semua");
56 for(i_m =0; i_m<4; i_m++)
57 {
58 i_m == 3?gotoxy (11,i_m +7):gotoxy(11,i_m +6);
59 for(i_b=0; i_b<13; i_b++)
60 printf("%-4d",jual[i_m][i_b][8]);
61 }
62 }
63 int main()
64 {
65 int jual[4][13][9]={0};
//merek,bulan,kota
66 isi_data(jual);
67 total_jual(jual);
68 getch();
69 return 0;
70 }
Hasil running tugas No.3: (sudah diisi oleh user)
a. Kota Jakarta, total penjualan semua mobil selama 1 tahun = 65 unit
i.Total penjualan semua mobil pada seluruh kota selama 1 tahun = 555 unit