Anda di halaman 1dari 6

SUB PROGRAM

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.

 Mendeklarasikan dan Memanggil Sub Program

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>

/* deklarasi sub program */


int max(int angka1, int angka2);

int main ()
{
/* local variable definition */
int a,b;
int ret;
printf("Masukkan angka a :");
scanf("%d",&a);
printf("Masukkan angka b :");
scanf("%d",&b);

/*memanggil sub program max*/


ret = max(a, b);
printf( "Max value is : %d\n", ret );
return 0;
}

/* sub program max */


int max(int angka1, int angka2)
{
/* deklarasi variabel lokal */
int hasil;
if (angka1 > angka2)
hasil = angka1;
else
hasil = angka2;
return hasil;
}
Contoh di atas adalah sub program yang menghasilkan return value. Namun ada kalanya sub
program tidak menghasilkan return value, melainkan melakukan aksi/tugas tertentu seperti
perintah mencetak data, menyimpan data, menggeser data, dan lain sebagainya.
Ada dua cara agar aksi/tugas ini dapat diberlakukan sebagai sub program
1. Sub program/Function call by value
2. Sub program/Function call by reference

 Sub program/Function call by value


Function call by value untuk melewatkan parameter ke dalam sub program yaitu
dengan menyalin nilai sebenarnya ke parameter formal sub program. Dalam kasus ini,
perubahan yang dilakukan pada parameter di dalam sub program tidak berpengaruh pada
parameter di luar sub program. Alamat memori tempat penyimpanan variabel di dalam sub
program berbeda dengan variabel yang ada di luar sub program.

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>

/* deklarasi sub program */


void tukar(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 );

/* memanggil sub program untuk menukar nilai yang ada di a dengan di b


*/
tukar(a, b);
printf("Setelah ditukar, nilai a adalah: %d\n", a );
printf("Setelah ditukar, nilai b adalah: %d\n", b );
return 0;
}
Jika program tersebut dijalankan, hasilnya adalah :
Sebelum ditukar, nilai a adalah : 100
Sebelum ditukar, nilai b adalah : 200

Setelah ditukar, nilai a adalah : 100


Setelah ditukar, nilai b adalah : 200

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.

 Sub program/Function call by reference


Sub program call by reference untuk melewatkan parameter ke dalam sub program yaitu
dengan menyalin (copy) alamat memori ke dalam parameter formal. Dalam sub program,
alamat memori tersebut digunakan untuk mengakses isi parameter aktual. Artinya perubahan
isi parameter di luar sub program akan berpengaruh pada parameter di dalam sub program.

Contoh :

/* sub program untuk menukar nilai */


void swap(int *x, int *y)
{
int temp;
temp = *x; /* simpan nilai di alamat x */
*x = *y; /* letakkan y ke dalam x */
*y = temp; /* letakkan x ke dalam y */
return;
}
Perhatikan contoh di atas. Sub program di atas bernama swap adalah sub program yang
dibuat untuk menukar isi dari variabel x dengan variabel y. Perhatikan cara penulisannya
diawali dengan keyword void. Selanjutnya sub program swap digunakan dalam program
aplikasi sederhana berikut ini :

#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 );

/* memanggil sub program*/


swap(&a, &b);

printf("Setelah ditukar, nilai a adalah: %d\n", a );


printf("Setelah ditukar, nilai b adalah: %d\n", b );

return 0;
}

Jika program tersebut dijalankan, hasilnya adalah :


Sebelum ditukar, nilai a adalah : 100
Sebelum ditukar, nilai b adalah : 200

Setelah ditukar, nilai a adalah : 200


Setelah ditukar, nilai b adalah : 100
TUGAS INDIVIDU :

Petunjuk :

 Jawablah pertanyaan-pertanyaan berikut di buku tulis


 Jangan lupa menuliskan nama

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 !

Anda mungkin juga menyukai