Page 1
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 1/44
BAB VI
BAHASA C II
6.1 Tujuan Percobaan
1. Mengenal dan memahami fungsi (function) dan kegunaanya serta
aplikasinya dalam program sederhana.
2. Mengenal dan memahami fungsi array-larik dan kegunaanya serta aplikasi
dalam program sederhana.
3. Mengenal dan memahami struktur (struct) dan kegunaanya serta aplikasi
dalam program sederhana.
4. Mengenal dan memahami operasi file dan aplikasinya dalam program
sederhana.
6.2 Metode praktikum
1. Membuka Program MinGw
2. Membuat project dan file source code
3. Mengetikkan source code program yang akan dibuat
4. Meng-compile program
5. Melihat hasil compile program
6. Memperbaiki source code apabila terjadi kesalahan pada program
7. Jika tidak terjadi kesalahan maka execute program.
Page 2
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 2/44
6.3 Data percobaan
6.3.1 Fungsi
6.3.1.1 Fungsi Tanpa Nilai Balik
6.1 Screenshot fungsi tanpa nilai balik
6.2 Screenshot running fungsi tanpa nilai balik
Page 3
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 3/44
6.3.1.2 Fungsi dengan nilai balik
Gambar 6.3 Fungsi dengan nilai balik
Gambar 6.4 Running fungsi dengan nilai balik
Page 4
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 4/44
6.3.2 Array
Gambar 6.5 Array satu dimensi
Gambar 6.6 Running Array satu dimensi
Page 5
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 5/44
Gambar 6.7 Screenshot Array dua dimensi
Gambar 6.8 Screenshot running array dua dimensi
Page 6
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 6/44
Gambar 6.9 Screenshot Array multi dimensi
Gambar 6.10 Screenshot running Array multi dimensi
Page 7
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 7/44
6.3.3 Structure
Gambar 6.11 Screenshoot compile program saat praktikum
Gambar 6.12 Screenshoot compile program saat praktikum
Page 8
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 8/44
6.4 Analisa dan pembahasan
6.4.1 Fungsi
6.4.1.1 Fungsi tanpa nilai balik
Fungsi tanpa nilai balik adalah fungsi ini tidak memberikan hasil yang
berupa nilai melainkan berupa sebuah proses. Fungsi ini bertipe void.
Source code fungsi tanpa nilai balik
#include <stdio.h>
#include <conio.h>
void iseng(char x, int y);
int main (){
char a; int b;
printf("masukkan karakter:"); scanf("%c",&a);
printf("masukkan jumlah:"); scanf("%i",&b);
getch();
iseng(a,b);
}
void iseng (char x,int y){
for (int i=0;i<y;i++){
for(int j=0;j<=i;j++){
printf("%c",x);
}
printf("\n");
}}
Page 9
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 9/44
Gambar 6.1 Screenshoot source code fungsi tanpa nilai balik
Gambar 6.2 Screenshoot running fungsi tanpa nilai balik
Page 10
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 10/44
6.4.1.2 Fungsi dengan nilai balik
Fungsi dengan nilai balik adalah fungsi yang akan memberikan nilai
umpan balik berupa nilai, jika dipanggil (return value).
Source code fungsi dengan nilai balik
#include <stdio.h>
#include <conio.h>
int faktorial(int n);
int main (){
int n,hasil;
printf("masukkan nilai yang akan difaktorialkan n = ");
scanf("%d", &n);
hasil=faktorial(n);
printf("hasil pemfaktorial adalah %d! = %d", n, hasil);
getch();
}
int faktorial(int n){
int nilai_fak=1;
for(int i=1;i<=n;i++)
nilai_fak=nilai_fak*i;
return(nilai_fak);
}
Page 11
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 11/44
Gambar 6.3 Screenshoot source code fungsi dengan nilai balik
Gambar 6.4 Screenshoot running fungsi dengan nilai balik
6.4.2 Array
6.4.2.1 Array satu Dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data yang
memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks atau
subskrip.
Bentuk umum pendeklarasian:
nama_array[jumlah_eleman];
Page 12
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 12/44
Source code Array satu Dimensi
#include <stdio.h>
#include <conio.h>
int main (){
int jml,temp;
int data [10];
printf("masukkan jumlah nilai:"); scanf("%i",&jml);
for (int i=0;i<jml;i++){
printf("\n data ke-%i :",i+1); scanf("%i",&data[i]);
}
//menampilkan data awal
// ——– Algoritma Bubble Sort
for(int j=0;j<jml;j++)
{
for (int k=0;k<jml;k++){
if(data[j]<data[k])
{
//Algo Tukar…
temp=data[j];
data[j]=data[k];
data[k]=temp;
} }}
printf("\n setelah diurutkan");
for (int l=0;l<jml;l++){
printf("\n data ke-%i : %i",l+1,data[l]);
}
}
Page 13
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 13/44
Gambar 6.1 Screenshoot source code array satu dimensi
Gambar 6.2 Screenshoot running array satu dimensi
Page 14
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 14/44
6.4.2.2 Array dua Dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data yang
memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip
yaitu indeks baris dan indeks kolom.
Bentuk umum pendeklarasian:
nama_array[jumlah_eleman_baris][jumah_eleme_kolom];
Source code Array dua Dimensi
#include <stdio.h>
#include <conio.h>
int main (){
int jml,temp;
int data [10];
printf("masukkan jumlah nilai:"); scanf("%i",&jml);
for (int i=0;i<jml;i++){
printf("\n data ke-%i :",i+1); scanf("%i",&data[i]);
}
//menampilkan data awal
// ——– Algoritma Bubble Sort
for(int j=0;j<jml;j++)
{
for (int k=0;k<jml;k++){
if(data[j]<data[k])
{
//Algo Tukar… temp=data[j];
data[j]=data[k];
data[k]=temp;
} }}
printf("\n setelah diurutkan");
for (int l=0;l<jml;l++){
Page 15
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 15/44
printf("\n data ke-%i : %i",l+1,data[l]);
}
}
Gambar 6.1 Screenshoot source code array dua dimensi
Gambar 6.2 Screenshoot running array dua dimensi
Page 16
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 16/44
6.4.2.3 Array multi Dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data yang
memiliki tipe sama dan elemen yang akan diakses melalui banyak indeks atau
subskrip. Array seperti ini biasa digunakan untuk matik, array 2 dimensi juga
termasuk kedalam array multidimensi.
Source code Array multi Dimensi
#include <stdio.h>
#include <conio.h>
int main()
{ int i, j, k;
static int data[2][8][8] =
{ { { 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 0, 0, 1, 1},
{ 1, 1, 0, 0, 0, 0, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1 }
},
{ { 1, 1, 1, 0, 0, 0, 1, 1 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 0, 1, 1, 0, 0 },
{ 1, 1, 1, 1, 1, 0, 0, 0 },{ 1, 1, 1, 1, 1, 0, 0, 0 },
{ 1, 1, 1, 0, 1, 1, 0, 0 },
{ 1, 1, 1, 0, 0, 1, 1, 0 },
{ 1, 1, 1, 0, 0, 0, 1, 1 }
}
};
/* menampilkan Huruf */
Page 17
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 17/44
for(i=0; i<2; i++)
{ for(j=0; j<8; j++)
{ for(k=0;k<8; k++)
if(data[i][j][k])
putchar('\x59');
else
printf(" ");
puts(" ");
}
puts(" ");
}
getch();
}
Gambar 6.1 Screenshoot source code array multi dimensi
Page 18
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 18/44
Gambar 6.2 Screenshoot running array satu dimensi
Source code saat praktikum
#include <stdio.h> /* file header pada stdio.h*/
#include <conio.h> /* file header pada conio.h*/
void tukar(int *px, int *py);
/*fungsi tukar variabel *px dan *py dengan tipe data integer*/
void main()
{ /*awal dari program*/
int a,b; /*mendeklarasikan variabel a dan b dengan tipe data integer*/
a = 15; /*mendeklarasikan nilai a=15*/
b = 10; /*mendeklarasikan nilai b=10*/
printf("Nilai sebelum pemanggilan fungsi\n");
/*menampilkan tulisan "Nilai sebelum pemanggilan fungsi" pada screen
hasil execute*/
printf("a = %i b = %i\n\n", a, b);
/*menampilkan masukan nilai a dan nilai b*/
tukar(&a,&b);
/*fungsi tukar variabel a dan b*/
printf("Nilai setelah pemanggilan fungsi\n");
printf("a = %i b = %i\n\n", a, b);
Page 19
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 19/44
/*menampilkan hasil nilai a dan nilai b*/
getch();
} /*akhir dari program*/
void tukar(int *px, int *py)
/*fungsi tukar variabel *px dan *py dengan tipe data integer*/
{ /*awal dari program*/
int z; /*mendeklarasikan variabel z dengan tipe data integer*/
z = *px; /*mendeklarasikan z=*px */
*px = *py; /*mendeklarasikan *px=*py */
*py = z; /*mendeklarasikan *py=z */
printf("Nilai di akhir fungsi tukar()\n");
/*menampilkan tulisan "Nilai di akhir fungsi tukar" pada screen hasilexcute*/
printf("*px = %i *py = %i\n\n", *px, *py);
/*menampilkan hasil nilai *px dan nilai *py*/
} /*mengakhiri program */
Page 20
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 20/44
Gambar 6.2 Screenshoot compile program saat praktikum
Pada saat praktikum masih terdapat kesalahan. Hal ini bisa terlihat pada
gambar 6.2, masih terdapat 2 errors pada baris ke lima. Hal ini dikarenakan
prototype fungsi masih belum tercantum.
Source code setelah dikoreksi
#include <stdio.h>
/* file header pada stdio.h*/
int main()
/*kepala fungsi integer utama*/
{
/*awal dari program*/ int a,b;
/*mendeklarasikan variabel a dan b dengan tipe data integer*/
void tukar(int *px,int *py);
/*fungsi tukar variabel *px dan *py dengan tipe data integer*/
a = 15;
/*mendeklarasikan nilai a=15*/
b = 10;
/*mendeklarasikan nilai b=10*/
printf("Nilai sebelum pemanggilan fungsi\n");
/*menampilkan tulisan "Nilai sebelum pemanggilan fungsi" pada screen
hasil excute*/
printf("a = %i,b = %i\n\n", a, b);
/*menampilkan masukan nilai a dan nilai b*/
tukar(&a,&b);
/*fungsi tukar variabel a dan b*/
printf("a = %i,b = %i\n\n", a, b);
/*menampilkan hasil nilai a dan nilai b*/ }
/*akhir dari program*/
void tukar(int *px, int *py)
/*fungsi tukar variabel *px dan *py dengan tipe data integer*/
{
/*awal dari program*/
int z ;
/*mendeklarasikan variabel z dengan tipe data integer*/
z = *px;
Page 21
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 21/44
/*mendeklarasikan z=*px */
*px = *py;
/*mendeklarasikan *px=*py */
*py = z;
/*mendeklarasikan *py=z */
printf("Nilai di akhir fungsi tukar()\n");
/*menampilkan tulisan "Nilai di akhir fungsi tukar" pada screen hasil
excute*/
printf("*px = %i *py = %i\n\n", *px, *py);
/*menampilkan hasil nilai *px dan nilai *py*/
}
/*mengakhiri program */
Gambar 6.3 Screenshoot compile program sesudah dikoreksi
Pada gambar 6.3 merupakan source code program yang sudah benar. Hal ini
dapat terlihat pada tulisan 0 error dan 0 warning pada saat di compile. Kesalahan
pada saat praktikum sudah diperbaiki dengan mengganti char tukar; pada baris ke
empat dengan void tukar (int *px,*py). Sehingga program bisa diexecute.
Page 22
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 22/44
Gambar 6.4 Screenshoot hasil execute program
Pada gambar 6.4 merupakan running program dari source code yang sudah
diperbaiki. Program pada gambar tersebut adalah program yang menggunakan
fungsi pass by reference. Pada fungsi pass by reference, parameter yang
dilewatkan kedalam fungsi bukanlah berupa nilai, melainkan suatu alamat
memori. Pada saat kita melewatkan parameter berdasarkan alamat, terjadi proses
referensial antara variabel yang terdapat pada parameter formal dengan variabel
yang terdapat pada parameter aktual. Hal tersebut menyebabkan kedua variabel
tersebut akan berada pada satu alamat dimemori yang sama sehingga apabila
terdapat perubahan nilai terhadap salah satu variabel tersebut maka nilai variabel
satunya juga akan ikut berubah.
6.4.1.2 Program Konversi Celcius ke Fahrenheit dengan Fungsi
Program yang dikerjakan saat praktikum
a. Algoritma1. Memulai program
2. Memasukkan nilai celcius
3. Merumuskan Fahrenheit dengan cara mengalikan celcius dengan 1,8
kemudian menjumlahkan dengan 32
4. Menampilkan nilai fahrenheit yang telah diproses
b. Listing Program
#include <stdio.h>
Page 23
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 23/44
/* file header pada stdio.h untuk operasi input dan output standar*/
int main() /* kepala fungsi utama*/
{ /*memulai program*/
float Celcius, Fahrenheit;
/* deklarasi variable celcius dan fahrenheit*/
printf ("masukan nilai celcius: ");
/*menampilkan tulisan dalam tanda petik*/
scanf ("%f",&Celcius);
/* masukan data dengan tipe data pecahan*/
Fahrenheit = Celcius*1.8+32;
/*memasukan rumus untuk menghitung fahrenheit*/
printf("maka nilai dari %f celcius adalah %f fahrenheit",Celcius,
Fahrenheit);
/*menampilkan hasil perhitungan celcius ke fahrenheit*/
return 0;
/*menterminate program setelah menjalankan program*/
}
/* mengakhiri program*/
Gambar 6.5 Screenshoot hasil compile program saat praktikum
Page 24
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 24/44
Gambar 6.6 Screenshot hasil Execute program
Meskipun program konversi dari celcius ke fahrenheit pada
gambar 6.6 ini bisa di execute namun program ini masih dianggap salah
karena program ini dibuat dengan cara yang biasa dan tidak menggunakan
fungsi seperti yang diperintahkan pada soal.
Program yang benar
a. Algoritma
1. Memulai program
2. Memasukan nilai celcius
3. Merumuskan Fahrenheit dengan cara mengalikan celcius dengan 1,8
kemudian menjumlahkan dengan 32
4. Menampilkan nilai fahrenheit yang telah diproses
5. Mengakhiri program
b. Listing Program
#include <stdio.h>
/* file header pada stdio.h untuk operasi input dan output standar*/
#include <conio.h>
/*file header pada conio.h untuk suatu operasi */
float rmf(float x)
/*deklarasi fungsi*/
Page 25
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 25/44
{ /*memulai program*/
return (x*1.8+32); /*rumus untuk fungsi rmf*/
} /*mengakhiri fungsi*/
int main () /* kepala fungsi utama*/
{ /* untuk membuka program*/
float Celcius, Fahrenheit;
/* deklarasi variable celcius dan fahrenheit*/
printf ("masukan nilai celcius: ");
/*menampilkan tulisan dalam tanda petik*/
scanf("%f",&Celcius);
/* masukan data dengan tipe data pecahan*/
Fahrenheit=rmf(Celcius);
/*menghitung konversi menggunakan fungsi rmf*/
printf("maka nilai dari %.2f celcius adalah %.2f fahrenheit \n",Celcius,
Fahrenheit);
/*menampilkan hasil perhitungan celcius ke fahrenheit*/
return 0; /*menterminate program setelah menjalankan program*/
} /* mengakhiri program*/
Gambar 6.7 Screenshot compile program konversi desimal ke biner
Pada gambar 6.7 dapat di lihat bahwa source code yang dituliskan sudah
benar. Hal ini, dapat dilihat tidak adanya kesalahan saat source code di compile.
Page 26
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 26/44
Sehingga program dapat di execute. Program ini juga sudah menggunakan fungsi
dengan nama rmf. Fungsi ini digunakan pada baris ke 12.
Gambar 6.8 Screenshot Execute program konversi desimal ke biner
Gambar 6.8 merupakan screenshot dari hasil execute program
pengkonversian celcius ke fahrenheit. Sehingga jika kita ingin mengkonversikan
celcius ke fahrenheit, kita tinggal memasukkan nilai celcius maka program akan
otomatis mengkonversikannya ke bilangan fahrenheit.
6.4.2 Array
6.4.2.1 Koreksi Array
Source code sebelum dikoreksi
#include <stdio.h>
/* file header dengan menggunakan stdio.h*/
#define MAX = 5
/*mendeklarasikan konstanta global yaitu nilai maximum = 5*/
int main () /*kepala fungsi utama pada integer */ { /*membuka program*/
int A [MAX];
/*fungsi array dengan tipe data int dengan nama A dan dengan range
MAX yaitu sebanyak 5*/
int j; /*memasukkan nilai ke dalam array*/
printf ("Masukan nilai array!\n");/*menampilkan perintah ―masukkan nilai array!‖ pada hasil execute*/
for (j=0; j<MAX; j++)
/* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat
tetapi kurang dari nilai max*/
{ /* membuka program*/
Page 27
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 27/44
printf ("A[%d] = ", j); scanf("%d", &A[j]);
/*memasukan elemen array ke A(A1,A2,…,A5), dengan j sebagai
pembatas atau alamat ke-*/
} /*menutup program */
printf ("Tampilkan nilai array!\n");/*menampilkan perintah ―Tampilkan nilai array‖ pada hasil execute*/
for (j=0; j<MAX; j++)
/* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat
tetapi kurang dari nilai max*/
{ /*membuka program*/
printf ("A[%d] = %d\n", j, A[j]); scanf("%d", &A[j]);
/*memasukan elemen array ke A(A1,A2,…,A5), dengan j sebagai
pembatas atau alamat ke-*/
} /*menutup suatu program*/ } /*menutup program*/
Gambar 6.9 Screenshoot compile program sebelum dikoreksi
Terlihat pada gambar 6.9, source code ini masih terdapat 4 errors. Errors ini
terletak pada penggunaan karakter ―=‖ pada define hal ini merupakan hal yang
tidak perlu bahkan penggunaaannya dapat mengakibatkan error pada program.
Page 28
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 28/44
Source code setelah dikoreksi
#include <stdio.h>
/* file header dengan menggunakan stdio.h*/
#define MAX 5
/*mendeklarasikan konstanta global yaitu nilai maximum = 5*/
int main ()
/*kepala fungsi utama pada integer */
{
/*membuka program*/
int A [MAX];
/*fungsi array dengan tipe data int dengan nama A dan dengan range MAX
yaitu sebanyak 5*/
int j;
/*memasukkan nilai ke dalam array*/
printf ("Masukan nilai array!\n");
/*menampilkan perintah ―masukkan nilai array!‖ pada hasil execute*/
for (j=0; j<MAX; j++)
/* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat tetapi
kurang dari nilai max*/
{
/* membuka program*/
printf ("A[%d] = ", j);
/*memasukan elemen array ke A(A1,A2,…,A5), dengan j sebagai
pembatas atau alamat ke-*/
scanf("%d", &A[j]);
/*memasukan nilai dari printf ke memori j*/ }
/*menutup program */
printf ("Tampilkan nilai array!\n");
/*menampilkan perintah ―Tampilkan nilai array‖ pada hasil execute*/
for (j=0; j<MAX; j++)
/* fungsi untuk nilai pembatas =0 dengan nilai array naik bertingkat tetapi
kurang dari nilai max*/
Page 29
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 29/44
{
/*membuka program*/
printf ("A[%d] = %d\n", j, A[j]);
/*memasukan elemen array ke A(A1,A2,…,A5), dengan j sebagai pembatas
atau alamat ke-*/
}
/*menutup suatu program*/
}
/*menutup program*/
Gambar 6.10 Screenshoot compile program setelah dikoreksi
Pada gambar 6.10 dapat dilihat bahwa source code yang ditulis berhasil. Hal
ini dapat dilihat tidak adanya kesalahan pada saat listing program dicompile.
Sehingga program dapat berhasil di execute.
Page 30
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 30/44
Gambar 6.11 Screenshoot Execute program setelah dikoreksi
Pada gambar 6.11 merupakan hasil execute dari listing program yang
berhasil. Sehingga kita dapat menjalankan program array seperti gambar di atas.
Program di atas adalah program yang menggunakan array yang merupakan suatu
variable yang merepresentasikan daftar (list) atau kumpulan data yang memiliki
tipe data yang sama. Pada data ke 0 nilainya 87 kemudian data ke 1 = 52,
data 2 = 50, data 3 = 51, dan terakhir data ke 4 nilainya 89.
6.4.2.2 Program Menghitung jumlah 15 bilangan dengan Array
Program yang dikerjakan saat praktikum
a. Algoritma
1. Mulai
2. deklarasi jumlah maksimal bilangan yang akan dimasukan adalah 15
3. buat variabel kontrol untuk bentuk array
4. masukan bilangan yang akan dijumlahkan
5. loading...
6. selesai
b. Listing program
#include <stdio.h>
/* file header pada stdio.h*/
int main ()
/* kepala fungsi utama pada integer */
{
Page 31
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 31/44
/* membuka program*/
int i;
/*mendeklarasikan variable i dan variable jumlah(bernilai 0)*/
int bil[15];
/*bentuk array dengan tipe data integer dan dengan jumlah makasimal
15*/
printf("masukan sejumlah angka sampai 15:\n");
for (i=1;i<=15;i++){
printf("angka ke-%d ",i);
/*memasukan elemen array mulai dari 1 sampai 15 dengan i sebagai
alamat ke-*/
scanf("%d",&bil[i]);
}
printf("jumlah seluruh nilai adalah: loading....");
/*Melakukan proses perhitungan*/
} /*menutup program*/
Gambar 6.12 Screnshot compile program saat praktikum
Page 32
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 32/44
Gambar 6.13 Screenshot hasil execute percobaan
Pada gambar 6.12 terlihat saat menampilkan hasih penjumlahan
seluruh nilai array yang dimasukan terlihat tulisan ―loading....‖. itu
bukanlah karena kesalahan, kami sengaja menampilkan tulisan tersebut
karena saat itu kami masih bingung rumus untuk menjumlahkan seluruh
elemen array.
Program yang benar
a. Algoritma
1. Mulai
2. deklarasi jumlah maksimal bilangan yang akan dimasukan adalah 15
3. buat variabel kontrol untuk bentuk array
4. masukkan bilangan yang akan dijumlahkan
5. jumlahkan seluruh bilangan yang di masukan
6. selesai
b. Listing program
#include <stdio.h>
/* file header pada stdio.h*/
int main ()
/* kepala fungsi utama pada integer */
Page 33
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 33/44
{
/* membuka program*/
int i,jumlah=0;
/*mendeklarasikan variable i dan variable jumlah(bernilai 0)*/
int bil[15];
/*bentuk array dengan tipe data integer dan dengan jumlah makasimal
15*/
printf("masukan sejumlah angka sampai 15:\n");
for (i=1;i<=15;i++){
printf("angka ke-%d ",i);
/*memasukan elemen array mulai dari 1 sampai 15 dengan i sebagai
alamat ke-*/
scanf("%d",&bil[i]);
jumlah = jumlah + bil[i];
/*menjumlahkan seluruh elemen array yang akan dimasukan*/
} /*menutup suatu program*/
printf("jumlah seluruh nilai adalah:%d",jumlah);
/*Melakukan proses perhitungan*/
} /*menutup program*/
Gambar 6.14 Screenshoot compile Program mencari rata-rata dengan Array
Page 34
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 34/44
Pada gambar 6.12 dapat terlihat source code yang dibuat sudah benar, hal
ini dapat dilihat tidak terdapat kesalahan saat program dicompile. Sehingga
program dapat dijalankan.
Gambar 6.15 Screenshoot Execute Program mencari rata-rata dengan Array
Gambar 6.13 merupakan running program dari source code yang berhasil
dibuat. Pada screenshot di atas, kita diperintah untuk memasukkan lima bilangan
yang akan kita cari jumlahnya. Setelah memasukkan lima belas angka, program
akan secara otomatis mencari jumlah dari kelimabelas angka yang kita masukkan.
Pada gambar tresebut terlihat jumlah seluruh nilai yang dimasukan adalah 677.
6.4.3 Struct
6.4.3.1 Koreksi Structure
Source code sebelum dikoreksi
#include <stdio.h>
/* file header dengan stdio.h*/
struct TANGGAL /*Mendefinisikan struktur TANGGAL pada program*/
{ /*membuka program */
char *tanggal; /* merupakan variabel dari TANGGAL*/
char *bulan; /* merupakan variabel dari TANGGAL*/
char *tahun; /* merupakan variabel dari TANGGAL*/
} tgl_lahirr = {"21","04","1988"};
int main (void) /*kepala fungsi utama*/
Page 35
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 35/44
{ /*membuka program*/
printf ("Tanggal lahir : %d-%d-%d",
tgl_lahir,tanggal,
tgl_lahir,bulan,
tgl_lahir,tahun);
/* menampilkan perintah tanggal lahir dalam fungsi string pada hasil
execute*/
return 0;
} /*menutup program*/
Gambar 6.16 Screenshoot compile program sebelum dikoreksi
Pada gambar 6.16 terlihat bahwa source code memiliki 5 errors. Yang
antara lain terdapat pada :
a) pada baris no 7 tertulis ―tgl_lahirr‖ sedangkan di bawahnya
tertulis ―tgl_lahir‖
Page 36
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 36/44
b) pada baris 11-13 seharusnya menggunakan tanda titik (.) bukan
tanda koma (,)
c) format tanggalnya seharusnya adalah string (%s) bukan
desimal (%d)
Source code saat praktikum
Gambar 6.17 Screenshoot compile program saat praktikum
Pada saat praktikum, kami belum berhasil untuk mengkoreksi
program,terlihat pada gambar 6.17 masih terdapat empat error dan 3 warning,
Page 37
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 37/44
kesalahan tersebut dikarenakan masih kurang lengkapnya karakter-karakter
penting yang harus dimasukkan ke dalam fungsi. Dan lagi ketika praktikum
strcopy tanggal dan bulan yang sudah betul menggunakan tanda koma(,) justru
diganti titik koma(;) hal ini justru membuat kesalahan yang baru.
Source code setelah dikoreksi
#include <stdio.h>
/* file header dengan stdio.h*/
struct TANGGAL
/*Mendefinisikan struktur TANGGAL pada program*/
{
/*membuka program */
char *tanggal;
/* merupakan variabel dari TANGGAL*/
char *bulan;
/* merupakan variabel dari TANGGAL*/
char *tahun; /* merupakan variabel dari TANGGAL*/
} tgl_lahir = {"21","04","1988"};
int main (void) /*kepala fungsi utama*/
{
/*membuka program*/
printf ("Tanggal lahir : %s-%s-%s",
Page 38
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 38/44
tgl_lahir.tanggal,
tgl_lahir.bulan,
tgl_lahir.tahun);
/* menampilkan perintah tanggal lahir dalam fungsi string pada hasil
execute*/
return 0;
}
/*menutup program*/
Gambar 6.18 Screenshoot compile program setelah dikoreksi
Gambar 6.18 menunjukan bahwa setelah dicompile source code yang
sebelumnya masih terdapat error kini telah menunjukan 0 error dan 0 warning
artinya bahwa program tersebut sudah siap di runing.
Page 39
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 39/44
Gambar 6.19 Screenshoot Execute program setelah dikoreksi
Pada execute program gambar 6.19 terlihat struktur tanggal yang
ditampilkan sesuai dengan struktur tanggal pada compiler. Yaitu tanggal-bulan-
tahun. Yaitu tanggal 21 bulan 04 tahun 1988.
6.4.3.2 Program Memasukkan dan Menampilkan Data Mahasiswa dengan
Struct
Program saat Praktikum
a. Algoritma
1. mulai
2. Mendeklarasikan struktur yang akan dimasukan
3. Membuat tampilan dan masukan data
4. selesai
b. Listing program
#include <stdio.h> /* file header dengan stdio.h*/
#include <string.h> /* file header dengan conio.h*/
typedef struct {
char Nama [25]; /*mendeklarasikan nama*/
char NIM [20]; /*mendeklarasikan NIM*/
char Alamat [30]; /*mendeklarasikan Alamat*/
}M;
int main(void) /*kepala fungsi utama*/
{
float Nama,NIM,Alamat; /*mendeklarasikan varible*/
printf("Mahasiswa1:\n");
/*menampilkan tampilan yang diinginkan pada hasil execute*/
printf("Nama="); /*menampilkan ―nama=‖ pada hasil execute*/
scanf("%s",&Nama); /*memasukan elemen nama */
Page 40
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 40/44
printf("\n");
printf("NIM="); /*menampilkan ―NIM:‖ pada hasil execute*/
scanf("%s",&NIM); /*memasukan elemen NIM */
printf("\n");
printf("Alamat="); /*menampilkan ―alamat:‖ pada hasil execute*/ scanf("%s",&Alamat); /*memasukan elemen alamat */
printf("\n");
printf("Mahasiswa2:\n");
/*menampilkan tampilan yang diinginkan pada hasil execute*/
printf("Nama="); /*menampilkan ―nama=‖ pada hasil execute*/
scanf("%s",&Nama); /*memasukan elemen nama */
printf("\n");
/*untuk memberi jarak satu baris pada identitas berikutnya*/
printf("NIM="); /*menampilkan ―NIM:‖ pada hasil execute*/
scanf("%s",&NIM); /*memasukan elemen NIM */
printf("\n"); /*untuk memberi jarak satu baris pada identitas berikutnya*/
printf("Alamat="); /*menampilkan ―alamat:‖ pada hasil execute*/
scanf("%s",&Alamat); /*memasukan elemen alamat */
printf("\n");
/*untuk memberi jarak satu baris pada identitas berikutnya*/
printf("Mahasiswa3:\n");
printf("Nama="); /*menampilkan ―nama=‖ pada hasil execute*/
scanf("%s",&Nama);
printf("\n");
/*untuk memberi jarak satu baris pada identitas berikutnya*/
printf("NIM="); /*menampilkan ―NIM:‖ pada hasil execute*/
scanf("%s",&NIM); /*memasukan elemen NIM */
printf("\n");
printf("Alamat="); /*menampilkan ―alamat:‖ pada hasil execute*/
scanf("%s",&Alamat); /*memasukan elemen alamat */
printf("\n");
/*untuk memberi jarak satu baris pada identitas berikutnya*/
return 0;
}
Page 41
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 41/44
Gambar 6.20 Screenshot compile program saat praktikum
Terlihat pada saat praktikum yaitu pada gambar 6.20 struktur yang
digunakan terlihat tidak teratur dan dibuat sekenanya saja. Dan lagi pada
saat praktikum tidak didefinisikan variable globalnya.
Program saat yang benar
a. Algoritma
1. Definisikan struktur identitas
2. Mendeklarasikan variable global
3. Mendeklarasikan struktur variable lokal
4. Membuat tampilan dan masukan data
b. Listing program
#include<stdio.h> /* file header dengan stdio.h*/
/*Mendefinisikan struktur identitas sekaligus mendeklarasikan variable
M1*/
struct identitas
{
char nama, NIM, alamat; /*mendeklarasikan nama, NIM, alamat*/
} M1; /*Merupakan variable global*/
int main(void)
{
/*Mendeklarasikan struktur M2 dan M3*/
struct identitas M2,M3;
/*membaca identitas mahasiswa untuk struktur M1*/
Page 42
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 42/44
printf("identitas mahasiswa 1 : \n");
/*menampilkan tampilan yang diinginkan pada hasil execute*/
printf("nama : "); /*menampilkan ―nama:‖ pada hasil execute*/
scanf("%s",&M1.nama); /*memasukan elemen nama */
printf("NIM : "); /*menampilkan ―NIM:‖ pada hasil execute*/ scanf("%s",&M1.NIM); /*memasukan elemen NIM */
printf("alamat : "); /*menampilkan ―alamat:‖ pada hasil execute*/
scanf("%s",&M1.alamat); /*memasukan elemen alamat */
printf("\n"); /*untuk memberi jarak satu baris pada identitas
berikutnya*/
/*membaca identitas mahasiswa untuk struktur 2*/
printf("identitas mahasiswa 2 : \n");
/*menampilkan tampilan yang diinginkan pada hasil execute*/
printf("nama : "); /*menampilkan ―nama:‖ pada hasil execute*/
scanf("%s",&M2.nama); /*memasukan elemen nama */
printf("NIM : "); /*menampilkan ―NIM:‖ pada hasil execute*/ scanf("%s",&M2.NIM); /*memasukan elemen NIM */
printf("alamat : "); /*menampilkan ―alamat:‖ pada hasil execute*/
scanf("%s",&M2.alamat); /*memasukan elemen alamat */
printf("\n"); /*untuk memberi jarak satu baris pada identitas
berikutnya*/
/*membaca identitas mahasiswa untuk struktur 2*/
printf("identitas mahasiswa 3 : \n");
/*menampilkan tampilan yang diinginkan pada hasil execute*/
printf("nama : "); /*menampilkan ―nama:‖ pada hasil execute*/
scanf("%s",&M3.nama); /*memasukan elemen nama */
printf("NIM : "); /*menampilkan ―NIM:‖ pada hasil execute*/
scanf("%s",&M3.NIM); /*memasukan elemen NIM */
printf("alamat : "); /*menampilkan ―alamat:‖ pada hasil execute*/
scanf("%s",&M3.alamat); /*memasukan elemen alamat */
return 0;
/*untuk terminate program*/
} /*menutup program*/
Page 43
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 43/44
Gambar 6.21 Screenshoot compile Program Data Tiga Mahasiswa
Gambar 6.21 adalah screenshoot compile source code dari program data
tiga mahasiswa. Terlihat 0 error yang artinya program sudah siap di execute.
Gambar 6.22 Screenshoot Execute Program Data Tiga Mahasiswa
Pada gambar 2.22 pada execute program menunjukan bahwa data dari tiga
mahasiswa telah berhasil dimasukan. Tiga mahasiswa yaitu masing – masing
mahasiswa 1 nama Agung dengan NIM L2F009052 dan alamat Cilacap,
mahasiswa 2 nama Ahmad dengan NIM L2F009050 dan alamat Pemalang,
mahasiswa 3 nama Heri dengan NIM L2F009051 dengan alamat Pekalongan.
Page 44
8/2/2019 P5 - C2 - B.15
http://slidepdf.com/reader/full/p5-c2-b15 44/44
6.6. Kesimpulan
1. Bahasa C terdiri dari satu fungsi utama yaitu main ( ) dan beberapa fungsi
tambahan yang dapat dipanggil untuk mempermudah proses eksekusi.
2. Pendeklarasian Fungsi adalah sebagai berikut : tipe_data NamaFungsi
(parameter1, parameter2, ….) { statemen_yang_akan_dieksekusi;
…return nilai_balik }
3. Parameter di dalam fungsi merupakan suatu variable untuk menampung
nilai yang akan dikirimkan, parameter itu ada dua yaitu, parameter formal
( parameter yang terdapat di dalam pendefinisian fungsi ) dan parameter
aktual (parameter yang terdapat saat pemanggilan fungsi).
4. Terdapat dua cara untuk melewatkan parameter ke dalam fungsi, yaitu
dengan pass by value dan pass by references. Bedanya pass by value
mengopykan nilai variabel dari parameter formal ke parameter aktual
sedangkan yang pass by reference mengopykan nilai alamat memory dari
parameter formal ke parameter aktual.
5. Prototipe fungsi adalah fungsi yang sudah didefinisikan (judulnya)
sebelum fungsi main ditulis.
6. Array adalah suatu variabel yang merepresentasikan daftar (list) atau
kumpulan data yang memiliki tipe data sama. Setiap data yang terdapat
dalam array tersebut menempati alamat memori yang berbeda yang disebut
dengan elemen array. Bentuk umumnya adalah : tipe_data nama_array
[banyak elemen]
7. Kegunaan array antara lain untuk mengurangi proses pengulangan tanpa
harus menuliskan semua kode untuk menjalankan program.
8.
Struktur merupakan sekumpulan variable yang mungkin terdiri daribeberapa tipe data berbeda dan dikelompokan dalam satu nama untuk
kemudian diakses oleh program.