Sub program (function) adalah bagian dari program atau blok program yang
mempunyai fungsi tertentu dan dapat di panggil jika diperlukan. Setiap program yang
ditulis dalam bahasa C setidaknya memiliki 1 sub program (function) yaitu main( ).
Dengan adanya sub program(function) dapat membantu programer untuk tidak perlu
menulis kembali sederetan baris program untuk melakukan fungsi tertentu, melainkan
cukup dengan memanggil sub program(function) tersebut. Sub program dapat dipanggil
berkali-kali, sehingga program akan lebih efisien.
Sub program (function) ada dua macam, yaitu yang memiliki return value (di bahasa
pemrograman yang lain disebut dengan fungsi/function) dan yang tidak memiliki return
value (di bahasa pemrograman yang lain disebut dengan method). Library standar C pun
memiliki banyak subprogram yang bisa langsung kita gunakan.
Sub program (function) dapat membantu programer untuk mengatur program dengan cara
yang sederhana.
Pendeklarasian sebuah sub program (function) terdiri dari nama sub program, tipe data
untuk return value, dan parameter-parameternya.
Sintaks :
return_type nama_subprogram( parameter-parameter )
{
badan sub program
}
Return type : tipe data dari nilai yang akan dihasilkan (return value). Namun ada beberapa
sub program yang tidak menghasilkan return value. Untuk sub program yang tidak
menghasilkan return value, digunakan keyword void.
Nama sub program : nama dari sub program, nama sub program mengikuti kaidah
penulisan yang sama dengan penulisan nama variabel
Parameter : seperti variabel, saat sebuah sub program dipanggil, nilai akan diberikan pada
parameter. Parameter bersifat opsional, sehingga bisa jadi sub program yang dibuat tidak
memiliki parameter. Parameter dapat berisi tipe data, urutan, dan jumlah parameter yang
dibutuhkan.
Badan sub program : berisi statemen-statemen yang menggambarkan apa yang akan
dilakukan oleh sub program tersebut
Contoh 1 :
int max(int angka1, int angka2)
{
int hasil;
if (angka1 > angka2)
hasil = angka1;
else
hasil = angka2;
return hasil;
}
Pada sub program di atas, nama sub programnya adalah max, return type nya adalah int
(integer=bilangan bulat). Parameternya adalah angka1 dan angka2 yang bertipe data
integer. Badan sub program memperlihatkan bahwa sub program ini dibuat untuk
menghasilkan bilangan yang terbesar diantara dua bilangan.
Sebelum memanggil sub program, sub program harus di deklarasikan, sama seperti
variabel dan konstanta. Pendeklarasian sub program dilakukan di awal program. Untuk lebih
jelasnya perhatikan contoh berikut !
#include <stdio.h>
int main ()
{
/* local variable definition */
int a,b;
int ret;
printf("Masukkan angka a :");
scanf("%d",&a);
printf("Masukkan angka b :");
scanf("%d",&b);
Contoh :
/* sub program untuk menukar nilai */
void tukar(int x, int y)
{
int temp;
temp = x; /* simpan nilai x */
x = y; /* letakkan y di x */
y = temp; /* letakkan x di y */
return;
}
Perhatikan contoh di atas. Sub program di atas bernama tukar adalah sub program yang
dibuat untuk menukar isi dari variabel x dengan variabel y. Perhatikan cara penulisannya
diawali dengan keyword void. Selanjutnya sub program tukar digunakan dalam program
aplikasi sederhana berikut ini :
#include <stdio.h>
int main ()
{
/* deklarasi variabel lokal */
int a = 100;
int b = 200;
printf("Sebelum ditukar, nilai a adalah : %d\n", a );
printf("Sebelum ditukar, nilai b adalah : %d\n", b );
Mengapa hasilnya demikian ? Karena variabel a dan b yang ada di dalam sub program,
berbeda alamat memori dengan variabel yang terdapat di program aplikasi, sehingga
berapapun isi variabel di dalam sub program, tidak akan mempengaruhi isi dari variabel yang
berada di program aplikasi.
Contoh :
#include <stdio.h>
/* deklarasi sub program */
void swap(int *x, int *y);
int main ()
{
/* deklarasi variabel lokal */
int a = 100;
int b = 200;
printf("Sebelum ditukar, nilai a adalah : %d\n", a );
printf("Sebelum ditukar, nilai b adalah : %d\n", b );
return 0;
}
Petunjuk :
Soal :
1. Apakah yang dimaksud dengan sub program/function ?
2. Jelaskan manfaat sub program/function !
3. Sebutkan macam-macam sub program/function dan tuliskan contohnya !
4. Tuliskan cara pendeklarasian sub program/function !
5. Jelaskan cara memanggil sub program/function !