Fungsi, atau dalam beberapa literatur ada yang mengistilahkan
subrutin, subprogram maupun prosedur, adalah salah satu teknik
pemrograman untuk meningkatkan modularitas program yang akan dibuat.
Semakin besar tingkat modularitasnya, maka kecenderungannya adalah
program itu akan relatif semakin baik. Mengapa? Karena program yang
size-nya besar, banyak baris kode, akan dipecah menjadi modul-modul yang
ukurannya lebih kecil. Beberapa keuntungannya adalah dalam hal
efisiensi dan kemudahan dalam debugging. Dikatakan efisien karena konsep
fungsi akan merangkum bagian tugas-tugas yang sama cukup dengan
menuliskan kode program satu kali saja tetapi bisa dipanggil/ dijalankan
berulang kali sepanjang program. Di sisi lain, jumlah baris kode
program yang semakin sedikit akan memudahkan dalam menelusuri kesalahan
yang ditemukan. Penggunaan konsep fungsi juga akan mengakibatkan isi
dari void main() akan menjadi semakin ringkas.
Hampir sama dengan konsep fungsi dalam bahasa pemrograman lain,
fungsi dalam bahasa C++ juga terdiri dari komponen yang disebut dengan
HEADER fungsi dan BADAN fungsi. Header fungsi berisi informasi tentang
TIPE NILAI KELUARAN (return value), NAMA FUNGSI, dan PARAMETER/ ARGUMEN
FUNGSI. Return value akan berisi informasi tentang tipe data hasil
keluaran dari fungsi (misal: void, int, char, float, dsb). Nama fungsi
merupakan identifier untuk digunakan sebagai pemanggil fungsi (misal:
hitung, proses, dsb). Sedangkan parameter, umumnya digunakan sebagai
variabel untuk “jalan” masuknya input ke dalam fungsi (misal: int alas,
float jari_jari, dsb). Untuk badan (BODY) fungsi akan berisikan
baris-baris kode program yang akan dikerjakan jika fungsi tersebut
dijalankan/ dipanggil. Sebagai tambahan, void main() yang biasa kita
tulis pada saat membuat program itu juga termasuk dalam keluarga besar
fungsi. Yang khusus, fungsi main() adalah fungsi utama, artinya fungsi
tersebut HARUS ada setiap kali kita membuat program dalam bahasa C++.
Fungsi main() hanya boleh diketikkan satu kali saja di sepanjang source
code program yang kita buat.
Kombinasi nilai di bagian RETURN VALUE (RV) dan PARAMETER (P) fungsi,
sedikitnya akan menghasilkan 4 bentuk kombinasi, yaitu: 1. RV void, P
juga void. 2. RV void, tapi P ada isinya. 3. RV bukan void, tapi P void.
4. RV dan P keduanya bukan void. Apa itu void? Keyword void pada
dasarnya akan memberitahukan kepada compiler bahwa pada bagian yang
bersangkutan tidak mempunyai nilai/ value yang perlu ditangani secara
khusus. Berikut penjelasan detailnya satu persatu.
1. RV dan P void.
Fungsi jenis ini biasanya disebut dengan istilah prosedur dalam bahasa
Pascal/ Delphi atau juga dengan istilah subrutin dalam bahasa basic/ VB.
Fungsi ini sama sekali mandiri, tidak membutuhkan input dan juga tidak
menghasilkan output dari bagian lain program. Murni hanya berisi
urut-urutan langkah saja. Ciri fungsi ini adalah jika ia melakukan
proses pengolahan data maka komponen perintah input dan menampilkan
output pasti akan dituliskan di dalam badan fungsi yang bersangkutan.
2. RV void, P berisi.
Fungsi ini berarti tidak akan menghasilkan keluaran bagi bagian lain
program. Namun ia membutuhkan data sebagai input ke dalam fungsi. Dengan
demikian fungsi jenis ini mensyaratkan terlebih dulu harus ada bagian
lain program yang melakukan input data yang akan dikirimkan ke dalam
fungsi sebelum menjalankan/ memanggil fungsi.
3. RV berisi, P void.
Tidak ada data input yang akan dibutuhkan oleh fungsi jenis ini. Tetapi,
fungsi justru menghasilkan output. Kok bisa? Berarti bagian input data
untuk fungsi ini akan ditulis langsung berada di dalam badan fungsi yang
bersangkutan.
4. RV dan P berisi.
Fungsi jenis ini adalah fungsi yang murni. Ia hanya bertugas melakukan
pengolahan data. Input diperoleh dari bagian lain program di atasnya.
Sedangkan output hasil pengolahannya akan dikirimkan juga ke bagian lain
program untuk kemudian ditampilkan secara terpisah. Fungsi ini ibarat
fungsi matematis yang biasa kita kenal, seperti f(x,y) = 3x + 4y. Dimana
(x,y) adalah parameternya, 3x + 4y adalah badan fungsinya. Sedangkan
tanda ‘=’ menunjukkan pengiriman hasil perhitungan dari sebelah kanan ke
sebelah kirinya.
Berikut contoh programnya.
#include “stdio.h”
//bagian deklarasi fungsi
void luas(void);
void kell(int jari);
float vol(void);
int jarak(int V, int t);
void main()
{
int pilihan;
printf(“\n1. Luas”);
printf(“\n2. Keliling”);
printf(“\n3. Volume”);
printf(“\n4. Jarak”);
printf(“\nPilih ? “);
scanf(“%d”, &pilihan);
switch(pilihan) {
case 1: luas(); break;
case 2:
//1. deklarasi variabel2
int jari;
//2. masukkan variabel input
printf(“masukkan jari :”);
scanf(“%d”,&jari);
kell(jari); break;
case 3:
float volume;
volume = vol();
//4. tampilkan hasilnya
printf(“volume = %f\n”,volume);break;
case 4:
int s, v, t;
printf(“masukkan kecepatan : “);
scanf(“%d”,&v);
printf(“masukkan waktu : “);
scanf(“%d”,&t);
s = jarak(v,t);
printf(“jarak = %d\n”, s); break;
default: printf(“salah!”);
}
}
//bagian definisi fungsi
void luas()
{
//deklarasi variabel2
int alas, tinggi;
float luas;
//input alas dan tinggi
printf(“Masukkan Alas : “);
scanf(“%i”, &alas);
printf(“Masukkan Tinggi : “);
scanf(“%i”, &tinggi);
//hitung luas
luas = 0.5 * alas * tinggi;
//output hasil
printf(“Luas = %f\n”, luas);
}
void kell(int jari)
{ float keliling;
//3. hitung variabel outputnya/ keliling
keliling=3.14*jari*jari;
//4. tampilkan hasilnya
printf(“keliling = %f\n”,keliling);
}
float vol()
{
//1. deklarasi variabel2
int panjang,lebar,tinggi;
//2. masukkan variabel input
printf(“masukkan panjang = “);
scanf(“%i”,&panjang);
printf(“masukkan lebar = “);
scanf(“%i”,&lebar);
printf(“masukkan tinggi = “);
scanf(“%i”,&tinggi);
//3. hitung variabel outputnya/ volume
return(panjang*lebar*tinggi);
}
int jarak(int v, int t)
{
return(v*t);
}
Tidak ada komentar:
Posting Komentar