FUNGSI
Seperti telah disinggung pada bab-bab yang lalu, suatu fungsi merupakan suatu nama atas sekumpulan instruksi. Jadi suatu fungsi merupakan suatu subprogram.
C membedakan fungsi ke dalam 2 kelompok, yaitu fungsi yang mengembalikan suatu nilai dan fungsi yang tidak mengembalikan suatu nilai.
Program utama juga dipandang sebagai suatu fungsi, hanya identifiernya sudah ditetapkan, yaitu main.
Suatu fungsi dibentuk oleh bagian-bagian sebagai berikut.
[type]id_fungsi([argumen])
[deklarasi-argumen]
tubuh fungsi
Seperti halnya variabel, jenis-data nilai yang akan dikembalikan (type) oleh fungsi harus dinyatakan. Jika itu tidak dinyatakan maka dianggap int. Nama fungsi dinyatakan oleh id_fungsi. Komunikasi data antar fungsi dilakukan melalui argumen. Jenis-data untuk setiap argumen dinyatakan dalam deklarasi-argumen. Instruksi-instruksi apa yang harus dilakukan oleh fungsi, dinyatakan dalam tubuh-fungsi. Tubuh suatu fungsi berupa suatu pernyataan-gabungan (compound statement).
Apabila suatu fungsi tidak memiliki argumen maka pada bidang argumen ditetapkan keyword void atau tidak dituliskan apa-apa. Begitu pula, jika dia tidak akan mengembalikan suatu nilai maka pada bidang type ditetapkan keyword void.
Dengan demikian maka contoh suatu fungsi yang paling sederhana adalah:
abcd()
{
}
Fungsi di atas menetapkan abcd sebagai nama/identifier fungsi, tanpa argumen, tanpa suatu instruksi untuk dikerjakan, dan akan mengembalikan nilai berjenis-data int.
Perhatikan pula maksud dari fungsi utama berikut ini.
main()
{
printf(“Hello, world!\n” );
}
Fungsi utama di atas ditetapkan tanpa argumen, memiliki satu instruksi berupa pernyataan-fungsi printf, dan akan mengembalikan nilai berjenis-data int. Pernyataan-fungsi printf digunakan untuk memanggil fungsi tersebut dengan membawa alamat konstanta string “Hello, world!\n” sebagai argumen.
A. ARGUMEN DAN NILAI FUNGSI
Argumen fungsi digunakan untuk mengatur komunikasi data antara fungsi yang satu dengan fungsi lainnya. Tepatnya, antara variabel-argumen fungsi dengan nilai-argumen pernyataan-fungsi.
Perhatikan fungsi abcd berikut ini. Fungsi ini memiliki dua buah argumen a dan b berjenis-data int dan memiliki satu pernyataan untuk mencetak nilai kedua argumen tersebut. Berikutnya adalah fungsi-utama yang memiliki tiga buah pernyataan untuk mengaktifkan fungsi abcd tersebut.
Code:
abcd(a,b)
int a, b;
{
printf("%d %d\n" , a, b);
}
main()
{
abcd(2, 5);
abcd(8, 3);
abcd(7, 12);
}
Pernyataan-fungsi abcd(2, 5), abcd(8, 3), dan abcd(7, 12) pada fungsi main, secara berturut-turut mengandung arti:
aktifkan fungsi abcd dengan memberikan konstanta 2 dan 5 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 8 dan 3 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 7 dan 12 untuk variabel-argumen a dan b.
Dengan demikian apabila program di atas dijalankan maka akan diperoleh output:
Code:
2 5
8 3
7 12
Deklarasi argumen dapat digabung dan ditempatkan pada bidang argumen, dengan ketentuan penulisan jenis-data dilakukan untuk setiap variabel-argumen. Perhatikan fungsi abcd di atas menurut ketentuan terakhir.
Code:
abcd(int a, int b)
{
printf("%d %d\n" , a, b);
}
Nilai-fungsi adalah nilai yang dikembalikan/dihasilkan oleh fungsi. Untuk mengembalikan suatu nilai dari tubuh-fungsi kepada ekspresi pernyataan-fungsi digunakan keyword return.
Perhatikan fungsi pangkat sederhana berikut yang digunakan untuk menghitung nilai pangkat dari argumen yang dinyatakannya, kemudian mengembalikan nilai tersebut sebagai nilai fungsi.
Code:
/*
mencari harga x pangkat n.
nilai n harus >= 0 dan hasilnya tidak lebih dari nilai maksimum jenis-data int
*/
int pangkat(int x, int n)
{
int hasil;
hasil = 1;
while (n > 0)
{ hasil *= x;
n--;
}
return hasil;
}
Keyword return dapat digunakan di sembarang tempat pada tubuh-fungsi. Keyword ini sekaligus juga berfungsi untuk menghentikan alur program pada fungsi. Alur progrm kemudian berlanjutk pada pernyataan setelah pernyataan-fungsi. Apabila fungsi tidak mengembalikan suatu nilai, maka keyword return tidak diikuti oleh suatu ekspresi.
B. PROTOTIP FUNGSI
Sampai di sini anda telah mengetahui tentang fungsi dan pernyataan-fungsi. Fungsi merupakan sekumpulan instruksi yang diberi nama, sementara pernyataan-fungsi merupakan pernyataan yang digunakan untuk mengaktifkan fungsi yang disebutkannya.
Seperti halnya variabel, setiap fungsi harus telah dideklarasikan sebelum dia digunakan. Maksud utama hal tersebut adalah untuk memudahkan kompiler dalam memeriksa kebenaran penulisan pernyataan-fungsi, apakah itu sesuai atau tidak. Hal itu terutama menyengkut jenis-data nilai-fungsi dan argumen-argumennya.
Pembuatan suatu fungsi dapat dilakukan belakangan tetapi kompiler perlu diberi tahu aturan penulisan yang harus digunakan untuk fungsi tersebut, agar dia mampu memeriksa kebenaran penulisan pernyataan-fungsi yang dimaksud. Itu disebut deklarasi deklarasi-fungsi atau prototip-fungsi.
Penulisan prototip-fungsi hampir mirip dengan penulisan fungsi itu sendiri, hanya ia tidak memerlukan tubuh-fungsi dan penulisan argumen-argumen boleh hanya jenis-datanya saja. Perhatikan Program-5.1 sebagai contoh.
Code:
#include <stdio.h>
int factorial(int n); /* prototip fungsi factorial */
main()
{
int i = 1;
while (i < 6)
{ printf("%d! adalah %d\n" , i, factorial(i));
i++;
}
}
int factorial(int n)
{
if (n == 1)
return(1);
else
return(n * factorial(n-1));
}
Apabila program tersebut dijalankan maka akan diperoleh output sebagai berikut.
Code:
1! adalah 1
2! adalah 2
3! adalah 6
4! adalah 24
5! adalah 120
TUGGU KELANJUTANNYA…!!!
Next
« Prev Post
« Prev Post
Previous
Next Post »
Next Post »
0 Komentar untuk "ARTIKEL TENTANG BAHASA PEMROGRAMAN C EPISODE KELIMA"