Top Banner
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.
44

P5 - C2 - B.15

Apr 06, 2018

Download

Documents

Yusuf Dewantoro
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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: P5 - C2 - B.15

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.