Anda di halaman 1dari 8

Fungsi (Function): Lanjutan

Pendahuluan
Dalam realita, program terdiri dari beberapa sub program atau fungsi. Penulisan program dalam bentuk fungsi
dilakukan agar program bersifat modular dan, dalam skala besar, bisanya ditulis oleh tim (beberapa orang). Oleh
karena itu, penulisan program dalam satu file saja, terutama bila program sangat kompleks dan panjang sangat
tidak dianjurkan.

Untuk membuat program menjadi modular, pemecahan program dalam beberapa fungsi merupakan pilihan yang
tepat. Salah satu cara membuat program menjadi modular adalah dengan menulis prototipe fungsi dalam file
header, kemudian implementasi dari prototipe fungsi dilakukan pada file yang lain. Pada saat kompilasi, file-file
tersebut kemudian disatukan (linked) menjadi sebuah file binary yang dapat dieksekusi.

Objektif

 Memperkenalkan cara menulis prototipe fungsi (function prototipe) dalam sebuah file header
 Menjelaskan cara mengimplementasi fungsi dalam file yang berbeda
 Memahami cara melakukan integerasi (linking) menggunakan gcc

Bahan Bacaan

Buku pegangan atau bahan-bahan lain yang menjelaskan tentang fungsi dan protofipe fungsi.

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 1
Pemanggilan Fungsi (Call) & Return

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 2
Prototipe Fungsi dan Fungsi Rekursif
Contoh:

#include <stdio.h>

int fac(int); /* Prototipe fungsi */

int main(void) {
int n;
printf("Menghitung factorial\n");
printf("Masukkan sebuah bilangan bulat positif: ");
scanf("%d", &n);
printf("%d\n", fac(n));
return 0;
}

int fac(int n) { /* implementasi dari fungsi factorial */


if (n == 0)
return 1;
else
return n * fac(n - 1); /* fungsi rekursif */
}

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 3
Prototipe Fungsi dalam File Header

Kumpulkan semua prototipe terkait dalam sebuah file header, dengan nama misal: hitungan.h

float akar(float);

#include <math.h>
double sqrt( double num );

float rata_rata(int [], int);

float mak(float, float);

float min(float, float);

float phytagoras(float, float);

int fac(int);

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 4
Implementasi Fungsi pada File yang Lain

Implementasikan semua prototipe fungsi yang ada dalam header file hitungan.h dalam file
tersendiri, misalnya: implementasi_hitungan.c

#include "hitungan.h"
#include <math.h>

float akar(float x){

return ...
}

float rata_rata(int arr[], int ukuran){

return ...
}

float mak(float a, float b) {

return ...
}

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 5
float min(float a, float b) {

return ...
}

float phytagoras(float a, float b){

return ...
}

int fac(int n) {
if (n == 0)
return 1;
else
return n * fac(n - 1);
}

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 6
Program Utama dan Pemanggilan Fungsi
#include "hitungan.h"
#include <math.h>
#include <stdio.h>

#define N 10

int main(void) {
int a,b,c;
int arr[N] = {4, 5, 7, 3, 1, 2, 4, 1, 3, 10}
float rata ;

printf("Masukkan sebuah bilangan bulat positif: ");


scanf("%d", &n);
printf("Faktorial %d: %d\n", n, fac(n));

rata = rata_rata(arr, N);


printf("Nilai rata-rata %f\n", rata);

printf("Masukkan nilai a: "); scanf("%f", &a);


printf("Masukkan nilai b: "); scanf("%f", &b);
printf("Maksimum dari a dan b: %f\n", mak(a, b);
printf("Minimum dari a dan b: %f\n", min(a, b);

return 0;
}

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 7
Linking dan Integrasi

Menggunakan compiler gcc:

gcc -Wall –o demo implementasi_hitungan.c demo_hitungan.c

Source code

Binary file (output)

Taufik Fuadi Abidin - Irvanizam, Jurusan Informatika, FMIPA Universitas Syiah Kuala – http://www.informatika.unsyiah.ac.id 8

Anda mungkin juga menyukai