Suatu fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya. Fungsi-fungsi merupakan elemen utama dari program bahasa C. Program dari bahasa C dibentuk dari kumpulan fungsi, mulai dari fungsi utama dengan nama main(), fungsi-fungsi pustaka(standar) dan fungsi-fungsi yang dibuat sendiri oleh pemrogram.
Fungsi-fungsi banyak digunakan dengan dua alasan utama. Yakni, fungsi-fungsi menjadikan program C mempunyai struktur yang jelas dan fungsi-fungsi dapat digunakan untuk menghindari penulisan yang sama yang ditulis secara berulang-ulang.
Mendefinisikan Fungsi
tipe nama-fungsi(argumen1, argumen2,…)
{
tubuh fungsi
}
Deklarasi Fungsi
Suatu fungsi yang memberikan hasil balik selain tipe int perlu dideklarasikan sebelum digunakan. Dengan demikian jika suatu fungsi tidak dideklarasikan, maka akan dianggap fungsi tersebut memberikan hasil balik berupa nilai tipe int.
tipe nama-fungsi(); //titik koma harus ditulis
Untuk deklarasi fungsi, argumen-argumen fungsi tidak perlu dituliskan. Tipe adalah tipe dari fungsi yang akan digunakan dan harus sama dengan tipe fungsi yang didefinisikan.
Contoh:
#include
double Absolute(); //deklarasi fungsi Absolut
main(){
float nilai;
Nilai = -123.45;
println(“%7.2f nilai mutlaknya adalah %7.2f\n”,Nilai. Absolut(Nilai));
}
//Fungsi untuk memutlakkan nilai negatif
double Absolut (double X) //definisi fungsi
{
if(X<0) X=-X;
return(X);
}
Jika bagian dari program yang menggunakan fungsi diletakkan sebelum definisi dari fungsi, maka deklarasi fungsi diperlukan. Akan tetapi jika bagian dari program yang menggunakan fungsi terletak setelah definisi dari fungsi, maka deklarasi dari fungsi dapat tidak dituliskan.
Contoh:
#include
//Fungsi untuk memutlakkan nilai negatif
double Absolut (double X) //definisi fungsi
{
if(X<0) X=-X;
return(X);
}
main(){
float nilai;
Nilai = -123.45;
println(“%7.2f nilai mutlaknya adalah %7.2f\n”,Nilai. Absolut(Nilai));
}
Prototype Fungsi
Deklarasi dari fungsi ditulis tanpa dengan menyebutkan argumen-argumen fungsinya. Sebenarnya argumen-argumen dari fungsi dan tipe datanya dapat juga dituliskan. Deklarasi seperti ini disebut dengan prototype fungsi. Dengan menyebutkan prototype fungsi, maka kompiler C akan dapat memeriksa tipe-tipe data melalui parameter-parameter yang dikirimkan dari program yang menggunakannya (parameter-parameter ini disebut dengan parameter nyata). Jika tipe-tipe data parameter nyata yang dikirimkan ke fungsi tidak sesuai dengan tipe-tipe parameter formalnya, maka kesalahan kompilasi dapat ditunjukkan oleh kompiler untuk tipe data yang tidak cocok. Penggunaan prototype dari fungsi ini bukan sesuatu keharusan. Akan tetapi penggunaan prototype ini sebagai pengganti deklarasi fungsi yang lebih disarankan.
Contoh:
#include
double Absolute(double X); //prototype fungsi Absolut
main(){
float nilai;
Nilai = -123.45;
println(“%7.2f nilai mutlaknya adalah %7.2f\n”,Nilai. Absolut(Nilai));
}
//Fungsi untuk memutlakkan nilai negatif
double Absolut (double X) //definisi fungsi
{
if(X<0) X=-X;
return(X);
}
Hasil Balik Fungsi
Suatu fungsi dibuat untuk maksud menyelesaikan tugas tertentu. Suatu fungsi dapat hanya melakukan suatu tugas saja tanpa memberikan suatu hasil balik atau melakukan suatu tugas dan kemudian memberikan suatu hasil balik. Fungsi yang hanya melakukan suatu tugas saja tanpa memberikan hasil balik misalnya adalah fungsi untuk menampilkan hasil di layar.
Contoh:
#include
void tampil_s_n(char *String, int Jumlah); //prototype fungsi
main(){
tampil_s_n(“Bahasa C\n”,3);
}
void tampil_s_n(char *String, int n){
int i;
for(i=1; i<=n; i++) printf(String);
}
Jika suatu fungsi memberikan hasil balik, maka hasil balik yang diberikan oleh fungsi dapat dilakukan oleh statemen return yang diikuti oleh nilai hasil baliknya yang ditulis dalam tanda kurung.
Contoh:
Program berikut ini dimaksudkan untuk menghitung n faktorial (n!). Nilai n! adalah sebesar 1*2*3*…*n dengan n adalah nilai positif. Jika n bernilai negatif atau nol, maka fungsi Faktorial() di program ini akan memberikan hasil balik 0. Nilai F adalah nilai hasil balik yang akan diberikan oleh fungsi untuk nilai n positif. Variabel F ini pertama kali harus diberi nilai awal 1. Jika nilai F mempunyai nilai awal 0, maka hasilnya akan selalu nol, karena bilangan apapun dikalikan dengan nilai nol mempunyai hasil nilai nol.
#include
long int Faktorial(int n); //prototype fungsi faktorial
main(){
int n;
long int Fak;
printf(“Berapa Faktorial ?”); scanf(“%d”, &n);
Fak = Faktorial(n);
printf(“%d faktorial = %d\n”, n, Fak);
}
long ing Faktorial(int n){
int i;
long int F=1;
if(n<=0)
return(0);
for(i=2; i<=n; i++) F*= i; //F*=i sama dengan F = F*i
return (F);
}
Hubungan antara bagian program yang memanggil fungsi, parameter nyata, parameter formal dan hasil balik dari fungsi dapat digambarkan sebagai berikut.
upload gambar(to be continue...)
CONVERSATION