Anda di halaman 1dari 19

LAPORAN PRAKTIKUM PEMROGRAMAN

KOMPUTER
“C FUNCTION”

Dosen Pembimbing :
Agariadne Dwinggo Samala S.KOM.,M.Pd.T

Oleh :
Nama : Dio Kurnia Azmi

Nim : 19065031

Grup : 1E2

PRODI PENDIDIKAN TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2020
A. TUJUAN
1. Mampu memahami mengenai C Functions dalam pemrograman C menggunakan
IDE.
2. Mampu mendeskripsikan mengenai C Functions dalam pemrograman C
menggunakan IDE.
3. Mampu mengimplementasikan C Functions dalam pemrograman C menggunakan
IDE.
B. HARDWARE & SOFTWARE
1. Personal Computer
2. Notepad++
3. DevC++ IDE

C. TEORI SINGKAT
1. Functions
Dalam pemrograman, fungsi sering digunakan untuk membungkus program
menjadi bagian-bagian kecil. Logika program yang ada di dalam fungsi dapat
digunakan berulang kali cukup dengan memanggilnya, sehingga tidak perlu
menulis ulang program yang sama.
Fungsi adalah sub-program yang bisa digunakan kembali baik di dalam program
itu sendiri, maupun di program yang lain.

Berikut adalah sifat-sifat fungsi dalam Bahasa C:


 Masing-masing fungsi mempunyai nama, aturan penamaan fungsi sama
seperti penamaan variable.

 Nama fungsi diikuti sepasang tanda kurung untuk membedakan fungsi


dengan variable. Didalam tanda kurung dapat diisi argument-argumen
fungsi tersebut. Kalau tidak perlu argumen tidak perlu diisi apa-apa.
 Bagian tubuh dari fungsi harus memiliki tanda kurung kurawal ( { ) dan
diakhiri tanda kurung kurawal ( } ). Bagian tubuh dari fungsi berisi
deklarasi variabel dan pernyataan.
Berikut adalah manfaat-manfaat fungsi dalam Bahasa C:
 Menghindari penulisan program yang berulang
 Membagi program menjadi modul-modul yang lebih kecil, jadi kesalahan
dalam program akan lebih mudah untuk dilacak.
 Fungsi dalam C ini dapat menghasilkan nilai, data ataupun hasil atau
kegiatan lain yang bukan berupa data maupun nilai.
Jenis fungsi ada dua macam:
a. Build in function adalah fungsi-fungsi yang sudah ada dalam library C itu
sendiri seperti beberapa fungsi string yang ada di string.h (strlen, strcpy,
strcmp, dll).
b. User defined adalah fungsi-fungsi yang dibuat oleh programmer sendiri
dengan fungsi tertentu.
Sintaks:
tipe_data nama_fungsi(parameter){
//statement
}
Sama halnya dengan variabel, setiap fungsi juga ada tipe datanya. Tipe data
sendiri ada yang namanya int, float, double, char dan ada juga void. Void artinya
tidak bertipe data sehingga tidak memerlukan nilai return. Itulah sebabnya
kenapa jika menggunakan int main(){} maka wajib melakukan return 0; di paling
bawah fungsi.
Nama fungsi merupakan nama alias yang akan digunakan saat pemanggilan.
Contoh: tampilkandata();
Percobaan 1:
#include <stdio.h>
void info_program();
main() {
info_program();
}

void info_program() {
puts("==================================");
puts("Program dibuat oleh : ");
puts("Tanggal : ");
puts("==================================");
}

Parameter formal dan aktual


Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi
fungsi. Pada contoh program di atas misalnya, maka dalam fungsi jumlah()
variabel x dan y dinamakan sebagai parameter formal. Adapun parameter aktual
adalah parameter (tidak selalu berupa variabel) yang dipakai saat pemanggilan
fungsi.
Pada pernyataan:
c = jumlah(a, b);
x = jumlah(20.1, 45.6);
a dan b merupakan parameter aktual dari fungsi jumlah() dalam hal ini parameter
berupa variabel. Demikian juga 20.1 dan 45.6 adalah parameter aktual, dalam
hal ini berupa konstanta.
Cara melewatkan parameter ke dalam suatu fungsi dapat dilakukan melalui dua
cara yaitu:
a. Pelewatan parameter melalui nilai (call by value)
Pelewatan parameter ke dalam fungsi dengan menyalin nilai dari suatu
variabel aktualnya. Maksudnya adalah fungsi menerima masukan berupa
nilai, bukan alamat memori letak dari datanya dan nilai tersebut disimpan
di alamat memori yang terpisah dari nilai aslinya yang digunakan oleh
bagian program yang memanggil fungsi.
Percobaan 2:
#include <stdio.h>
#include <conio.h>

int kali(int a,int b, int c) {


int x;
x = a * b * c;
return(x);
}

int main(){
int a,b,c;

printf("Masukkan angka 1 : ");


scanf("%d",&a);

printf("Masukkan angka 2 : ");


scanf("%d",&b);

printf("Masukkan angka 3 : ");


scanf("%d",&c);

printf("\nHasil perkalian ketiga bilangan adalah %d",


kali(a,b,c));

getch();
return(0);
}
Percobaan 3:
#include<stdio.h>
void change(int num) {
printf("Before adding value inside function num=%d
\n",num);
num=num+100;
printf("After adding value inside function num=%d \n",
num);
}
int main() {
int x=100;
printf("Before function call x=%d \n", x);
change(x);//passing value in function
printf("After function call x=%d \n", x);
return 0;
}
Percobaan 4:
#include <stdio.h>
void swap(int , int); //prototype of the function
int main()
{
int a = 10;
int b = 20;
printf("Before swapping the values in main a = %d, b =
%d\n",a,b); // printing the value of a and b in main
swap(a,b);
printf("After swapping values in main a = %d, b =
%d\n",a,b); // The value of actual parameters do not change
by changing the formal parameters in call by value, a = 10,
b = 20
}
void swap (int a, int b)
{
int temp;
temp = a;
a=b;
b=temp;
printf("After swapping values in function a = %d, b =
%d\n",a,b); // Formal parameters, a = 20, b = 10
}

b. Pelewatan parameter melalui referensi (call by reference)


Pelewatan parameter ke dalam fungsi dengan menyalin alamat dari
suatu variabel aktualnya. Fungsi yang menerima kiriman alamat ini akan
menggunakan alamat yang sama untuk mendapatkan nilai datanya. Hal
ini dilakukan dengan menggunakan pointer. Pointer adalah variabel yang
merujuk pada alamat lokasi suatu memori tertentu, variable pointer dapat
dideklarasikan dengan menuliskan nama variabelnya diawali dengan
asterisk (‘*’). Perubahan yang terjadi pada variabel asal akan
mengakibatkan perubahan pada variabel pointernya dan sebaliknya.
Percobaan 5:
#include<stdio.h>
void change(int *num) {
printf("Before adding value inside function num=%d
\n",*num);
(*num) += 100;
printf("After adding value inside function num=%d \n",
*num);
}
int main() {
int x=100;
prisntf("Before function call x=%d \n",
x); change(&x);//passing reference in
function printf("After function call x=
%d \n", x);
return 0;
}
Percobaan 6:
#include <stdio.h>
void swap(int *, int *); //prototype of the function
int main()
{
int a = 10;
int b = 20;
printf("Before swapping the values in main a = %d, b =
%d\n",a,b); // printing the value of a and b in main
swap(&a,&b);
printf("After swapping values in main a = %d, b =
%d\n",a,b); // The values of actual parameters do change in
call by reference, a = 10, b = 20
}
void swap (int *a, int *b)
{
int temp;
temp = *a;
*a=*b;
*b=temp;
printf("After swapping values in function a = %d, b =
%d\n",*a,*b); // Formal parameters, a = 20, b = 10
}

B. PERCOBAAN
Percobaan 7:
#include <stdio.h>
int main()
{
int a, b, hasil, menu;
float c, d, hasilbagi;
printf("====================================\n");
printf("Program Kalkulator Sederhana \n");
printf("====================================\n\n");
printf("\tMenu :\n");
printf("\t1. Penjumlahan\n");
printf("\t2. Pengurangan\n");
printf("\t3. Perkalian\n");
printf("\t4. Pembagian\n");
printf("Pilih menu : ");
scanf("%d",&menu);
printf("-------------------------------\n");
switch (menu){
case 1:
printf("\n1. Penjumlahan :\n");
printf("Masukan bilangan pertama : ");
scanf("%d", &a);
printf("Masukan bilangan kedua : ");
scanf("%d", &b);
hasil = a + b;
printf("--------------------------------+\n");
printf("Hasil:\t\t\t %d\n", hasil);
break;
case 2:
printf("\n1. Pengurangan :\n");
printf("Masukan bilangan pertama : ")
scanf("%d", &a);
printf("Masukan bilangan kedua : ");
scanf("%d", &b);
hasil = a - b;
printf("---------------------------------\n");
printf("Hasil:\t\t\t %d\n", hasil);
break;
case 3:
printf("\n1. Perkalian :\n");
printf("Masukan bilangan pertama : ");
scanf("%d", &a);
printf("Masukan bilangan kedua : ");
scanf("%d", &b);
hasil = a * b;
printf("--------------------------------x\n");
printf("Hasil:\t\t\t %d\n", hasil);
break;
case 4:
printf("\n1. Pembagian :\n");
printf("Masukan bilangan pertama : ");
scanf("%f", &c);
printf("Masukan bilangan kedua : ");
scanf("%f", &d);
hasilbagi = c / d;
printf("---------------------------------\n");
printf("Hasil:\t\t\t %.2f\n", hasilbagi);
break;
default:
printf("Anda salah memilih menu.");
break;
}
return 0;
}

Percobaan 8:
#include <stdio.h>
int evenodd(int); //FUNCTION DECLARATION

int main(){

int num, flag;


printf("\n Enter the number : ");
scanf("%d", &num);

flag = evenodd(num); //FUNCTION CALL


if (flag == 1){
printf("\n %d is EVEN", num);
}
else{
printf("\n %d is ODD", num);
}
return
0;
}

int evenodd(int a) // FUNCTION HEADER


{
// FUNCTION BODY

if(a%2 == 0){
return 1;
}
else {
return 0;
}
}

C. TUGAS
1. Berikan penjelasan mengenai call by value dan call by reference sesuai dengan
pemahaman anda. Berikan contoh masing masing, jelaskan perbedaan dari kedua
hal tersebut.

*call by reference :
* call by value :
2. Buatlah sebuah fungsi biodata nama, nim, program studi dan lakukan
pemanggilan fungsi tersebut!
3. Buatlah sebuah kalkulator sederhana menggunakan fungsi C!
4. Buatlah fungsi untuk menghitung luas segitiga!
5. Buatlah sebuah program mesin ATM yang terdiri dari beberapa fungsi sebagai
berikut:
a. Fungsi menuATM()
b. Fungsi halaman awal()
c. Fungsi login()
d. Fungsi saldo()
e. Fungsi isisaldo()
f. Fungsi tariksaldo()

g. Fungsi transfer()
h. Fungsi ceksaldo()
i. Fungsi exit()

Anda mungkin juga menyukai