Prakarsa Perubahan ATAP (Awal - Tantangan - Aksi - Perubahan)
4. pemrograman fungsi
1. BAB VI PEMROGRAMAN FUNGSI
Pertemuan Minggu VII dan VIII
Alokasi Waktu
:
4 Jam Pertemuan
Standar Kompetensi
:
Mahasiswa dapat membuat program komputer sederhana dengan menggunakan bahasa
C
Kompetensi Dasar
:
Memahami program komputer yang mengandung unsur procedure dan fungsi
Indikator
:
Mahasiswa dapat memahami struktur program bahasa C yang mengandung unsur
procedure dan fungsi
:
Mahasiswa dapat membuat program dengan melibatkan struktur procedure dan fungsi
Dalam topic-topik sebelumnya kita telah memanfaatkan fungsi yang telah didefinisikan oleh C didalam
Pustaka (library) C itu sendiri, seprti sqrt (), pow (), dsb. Salah satu keunngulan pemrograman bahasa C
adalah bahwa seorang programmer dapat membuat Fungsi sendiri sesuai dengan kebutuhan program
aplikasi yang akan dikebangkan. Analogi fungsi adalah seperti halya kita ……
Suatu fungsi dapat diakses atau dipanggil dengan menuliskan nama fungsinya pada main program (fungsi
main ( ) ). Gambar dibawah ini mengilustrasikan program yang terdiri dari beberapa fungsi yang terkait
antara satu dengan yang lain.
Gambar 6.1
Diagram
fungsi
Struktur
pemanggilan
main()
{
function1();
……
fungtion2();
function1()
{
……
return;
}
function3()
{
function3();
……
function4();
……….
return;
}
}
function2()
{
}
……
return;
function4()
{
……
return;
}
Di beberapa literature ada yang membedakan antara pengertian fungsi dan procedure. Procedure diartikan
sebagai suatu bagian program yang menjalankan tugas tertentu yang kemudian dipanggil oleh fungsi
utama. Fungsi juga merupakan bagian dari program yang menjalankan tugas tertentu akan tetapi fungsi
mempunyai nilai yang akan di kembalikan ke fungsi utama ketika di panggil. Secara umum struktur
penamaan sebuah procedure dan fungsi adalah sebagai berikut:
void Nama_prosedure (void)
: struktur umum penamaan prosedure
int nama_fungsi (tipe_data parameter) : struktur umum penamaan fungsi
1
2. proses pendeklarasian fungsi ini biasanya terletak setelah penulisan library program, dibawah ini
merupakan salah satu cara pendeklarasian fungsi atau procedure
#include <conio.h>
#include <math.h>
#include <stdio.h>
………
int fungsi1 (int a, int b)
Void prosedure1 (void)
……..
Main()
{
………………..
………………..
}
6.1. PROSEDURE
Procedure lebih merupakan sebuah fungsi yang tidak memiliki parameter keluaran. Procedure
hanya digunakan untuk memecah program sehingga lebih mudah dalam pengelolaan dan
pengembangan selanjutnya. Procedure lebih ditekankan pada pemecahan tugas yang lebih spesifik
untuk menyederhanakan program dan mempermudah penanganan saat terjadi kesalahan. Contoh dibawah
ini akan menjelaskan penerapan procedure dalam suatu program yang bertujuan untuk mempermudah
pengelolaan program.
Contoh 6.1
#include <stdio.h>
#include <conio.h>
void luas(void);
void keliling(void);
main()
{
printf("Program Bangun Persegi Panjang");
luas();
keliling();
getch();
}
void luas(void)
{
int luasan, lebar, panjang;
lebar = 3;
panjang = 4;
luasan = panjang * lebar;
printf("nLuas nya adalah : %d",luasan);
}
void keliling(void)
{
int kelilingan, lebar, panjang;
2
3. lebar = 3;
panjang = 4;
kelilingan = (2*panjang) + (2*lebar);
printf("nKelilingnya adalah : %d",kelilingan);
}
Pada contoh 1.6 diatas bahwa program perhitungan persegi panjang yang menentukan luas dan keliling
dibagi menjadi tiga bagian program, bagian pertama adalah fungsi utama yaitu fungsi main(), bagian kedua
adalah procedure luas yang didefinisikan sebagai void luas (void), bagian ketiga adalah prosudure
keliling yang didefinisikan sebagai void keliling (void).
Pada contoh 6.1 jika kita akan menambahkan suatu proses perhitungan lain terkait dengan
persegi panjang semisal menghitung sisi diagonal persegi panjang, kita hanya perlu
menambahkan deklarasi baru dibawah deklarasi procedure yang sudah ada, selanjutnya tinggal
mendeskripsikan prosedure tersebut seperti pada deskripsi procedure luas dan keliling yang
sudah ada.
Contoh 6.2
#include <stdio.h>
#include <conio.h>
void luas(void);
void keliling(void);
void diagonal(void);
main()
{
printf("Program Bangun Persegi Panjang");
luas();
keliling();
diagonal();
getch();
}
void luas(void)
{
int luasan, lebar, panjang;
lebar = 3;
panjang = 4;
luasan = panjang * lebar;
printf("nLuas nya adalah : %d",luasan);
}
void keliling(void)
{
int kelilingan, lebar, panjang;
lebar = 3;
panjang = 4;
kelilingan = (2*panjang) + (2*lebar);
3
4. printf("nKelilingnya adalah : %d",kelilingan);
}
void diagonal(void)
{
int lebar, panjang, diagonal
lebar = 3;
panjang = 4;
diagonal = sqrt( (lebar*lebar) + (panjang*panjang) );
printf(“nPanjang diagonal adalah : %d”,diagonal);
}
6.2. FUNGSI
Procedure yang kita dipelajari di atas adalah bentuk paling sederhana dari sebuah fungsi. Fungsi biasanya
mempunyai parameter masukan atau keluaran yang nantinya akan dikeluarkan pada saat fungsi tersebut di
panggil, masih dengan program yang telah dikembangkan pada contoh 6.1, pada contoh dibawah ini
program tersebut akan dimodifikasi dengan menggunakan fungsi.
Contoh 6.2
#include <stdio.h>
#include <conio.h>
int luas(int x, int y);
main()
{
int panjang, lebar, luasan;
printf("Program Bangun Persegi Panjang");
printf("nMasukan Panjangnya : ");
scanf("%d",&panjang);
printf("nMasukan Lebarnya : ");
scanf("%d",&lebar);
luasan = luas(panjang,lebar);
printf("nLuas Persegi Panjang : %d",luasan);
getch();
}
int luas(int x, int y)
{
int hit_luas;
hit_luas = x * y;
return(hit_luas);
}
Pada program contoh 6.2 jika diperhatikan ada penulisan tipe data dan parameter yang digunakan dalam
pendeklarasian fungsinya. Fungsi dideklarasikan didahului dengan tipe data yang akan dikembalikan
kemudian didalam tanda kurung juga berisi variable dan tipe data yang akan diproses pada saat
pemanggilan fungsi : int luas(int x, int y).
4
5. Pada pendeskrisian fungsi luas diatas lebih ditekankan pada proses bagaimana menghitung luas dengan
melibatkan parameter yang ada, pada contoh diatas juga didapatkan keyword return yang menyatakan
pengembalian dari suatu proses ketika fungsi tersebut di panggil pada fungsi yang lain. Jika ingin
menambahkan suatu fungsi lagi terkait dengan perhitungan persegi panjang adalah sebagai berikut
Contoh 6.3
#include <stdio.h>
#include <conio.h>
int luas(int x, int y);
int keliling(int x, int y);
main()
{
int panjang, lebar, luasan, kel;
printf("Program Bangun Persegi Panjang");
printf("nMasukan Panjangnya : ");
scanf("%d",&panjang);
printf("nMasukan Lebarnya : ");
scanf("%d",&lebar);
luasan = luas(panjang,lebar);
kel = keliling(panjang,lebar);
printf("nLuas Persegi Panjang : %d",luasan);
printf("nKeliling Persegi Panjang : %d",kel);
getch();
}
int luas(int x, int y)
{
int hit_luas;
hit_luas = x * y;
return(hit_luas);
}
int keliling(int x, int y)
{
int hit_keliling;
hit_keliling = (2*x) + (2*y);
return(hit_keliling);
}
Pada contoh 6.3 terlihat ketika ingin menambahkan suatu fungsi, kita tinggal nenambahkan deklarasi
fungsi dibawah deklarasi fungsi yang terdahulu, selanjutnya dideskripsikan dibawah deskripsi fungsi
yang sudah ada dalam hal ini deskripsi fungsi untuk menghitung luas.
Pengayaan
Latihan 6.1
5
6. #include <stdio.h>
#include <conio.h>
int kabisat(int th);
main()
{
int tahun;
printf("Masukan Tahun : ");
scanf("%d",&tahun);
kabisat(tahun);
getch();
}
int kabisat(int th)
{
if(th%4==0)
printf("Kabisat");
else
printf("Bukan Kabisat");
return(th);
}
Latihan 6.2
#include <stdio.h>
#include <conio.h>
int fak(int fk);
main()
{
int nilai,ft;
printf("Masukan Nilai: ");
scanf("%d",&nilai)
printf("Nilai Faktorial dari %d adalah %d",nilai,fak(nilai));
getch();
}
int fak(int fk)
{
int i,f;
if(fk==0)
{
f=1;
}
if(fk > 0)
{
f=1;
for (i=1; i<=fk; i++)
{
f=f*i;
6