Fungsi dalam Bahasa C November 2014

Fungsi dalam pemrograman berarti suatu bagian kode atau blok program yang digunakan untuk menjalankan suatu proses tertentu. Disadari atau tidak, pada saat kita pertama kali membuat program, sebenarnya kita sudah membuat apa yang dinamakan fungsi ini, yaitu fungsi main. Yang akan dibahas di sini adalah tentu saja fungsi yang lain (fungsi di luar fungsi main). Lalu apa gunanya ada fungsi selain fungsi main? Fungsi-fungsi ini nantinya akan memudahkan kita dalam membuat program. Dengan menggunakan fungsi, source code yang kita buat akan menjadi lebih ringkas dan tentu saja program kita menjadi lebih efektif. Contoh kasusnya seperti ini: Kita diperintahkan membuat program yang menggambar tiga buah segitiga. Jika tanpa fungsi, source-nya akan terlihat seperti ini:
#include
void main(){
printf(" /\\ \n");
printf(" / \\ \n");
printf(" ---- \n");
printf(" /\\ \n");
printf(" / \\ \n");
printf(" ---- \n");
printf(" /\\ \n");
printf(" / \\ \n");
printf(" ---- \n")
}
Jika dijalankan, source di atas akan menghasilkan
tiga buah gambar segitiga. Sekarang masalahnya, bagaimana jika kita
diperintahkan membuat 20 buah gambar segitiga? Bisa dibayangkan panjang
source code yang akan kita buat nantinya. Di sinilah peranan fungsi.
Dengan fungsi kita hanya perlu menggambar segitiga hanya satu kali. Loh,
ga percaya?#include
void segitiga();
void main(){
segitiga();
segitiga();
segitiga();
}
void segitiga(){
printf(" /\\ \n");
printf(" / \\ \n");
printf(" ---- \n");
}
Jika kamu jalankan source di atas, hasilnya akan sama saja dengan source di awal tadi. Nah, jika kita menginginkan 20 buah segitiga, alangkah praktisnya jika kita membuatnya dengan sedikit jurus loop.
#include<stdio.h>
void segitiga();
void main(){
int i;
for(i=0;i<20;i++){
segitiga();
}
}
void segitiga(){
printf(" /\\ \n");
printf(" / \\ \n");
printf(" ---- \n");
}
Wow! Jauh lebih praktis bukan? Eit, tunggu dulu, ngomong-ngomong
bagaimana caranya bikin fungsi? Adakah ketentuan dan aturannya? Ya,
tentu saja! Berikut akan kujelaskan bagian-bagian fungsi terlebih
dahulu. Ada dua bagian penting dari fungsi, yaitu prototype fungsi dan
definisi fungsi. Yang mana prototype? Yang mana juga yang definisi?
Lihat saja source di bawah ini... (perhatikan bagian comment) #include<stdio.h>
void segitiga(); //prototype fungsi
void main(){
segitiga();
segitiga(); //fungsi dipanggil di fungsi main
segitiga();
}
void segitiga(){ //definisi fungsi
printf(" /\\ \n");
printf(" / \\ \n");
printf(" ---- \n");
}
Ok, kukira sudah jelas di sana bagian-bagian dari fungsi. Berikut
adalah aturan penulisan fungsi: Syntax penulisan prototype fungsi: tipe_data nama_fungsi(argument-1, argumen-2, argumen-n);Prototype fungsi ini tidak perlu ditulis jika kamu menuliskan definisi fungsi di atas fungsi main. Tipe data di sini digunakan untuk menentukan nilai kembalian (return value). Jika fungsi yang kamu buat tidak memerlukan return value, kamu bisa menuliskan void seperti source di atas. Sedangkan argument adalah nilai yang akan di masukkan ke dalam fungsi untuk diproses. Syntax penulisan argumen seperti ini: tipe_data nama_variabel. Syntax penulisan definisi fungsi:
tipe_data nama_fungsi(argument){
statement;
}
Program gambar segitiga yang kujelaskan di awal tadi adalah contoh
fungsi yang tidak memerlukan argumen dan return value. Supaya lebih
mantab, sekarang kuberikan contoh fungsi yang memiliki kedua komponen
tersebut. //program penghitung 2 pangkat n
#include
int duapangkat(int n);
void main(){
int hasil;
hasil=duapangkat(3); //argument yang dimasukkan adalah 3
printf("%d", hasil);
}
int duapangkat(int n){
int i, hasil=1;
for(i=0;i<n;i++){
hasil*=2;
}
return hasil;
}
Source di atas adalah program yang menghitung hasil dari
2 pangkat n (tergantung dari argument yang dimasukkan, contoh di atas
argumentnya 3). Eh, source di atas masih bisa disingkat loh! Pake fungsi
rekursif. Wah, apa lagi tuh? Fungsi Rekursif Fungsi rekursif adalah
fungsi yang memanggil dirinya sendiri. Dengan fungsi rekursif kita bisa
menyelesaikan program yang menggunakan perulangan rumit dengan source
yang lebih ringkas. Ok, kita buat saja program dua pangkat ini dengan
fungsi rekursif... #include<stdio.h>
int duapangkat(int n);
void main(){
int hasil;
hasil=duapangkat(3);
printf("%d", hasil);
}
int duapangkat(int n){
if(n==0){
return 1;
}else{
return 2 * duapangkat(n-1);
}
}
Well, tidak ada perulangan sama sekali. Dengan melihat
pengkondisiannya, kuharap kamu paham dengan penggunaan fungsi rekursif
ini. Fungsi duapangkat di atas akan selalu memanggil dirinya sendiri
selama nilai n lebih besar dari nol. Terima Kasih Telah Berkunjung ke Web Lowongan Kerja Resmi Terbaru ini. Anda dapat menerima Info Rekrutmen Karir Terbaru dari Perusahaan BUMN, BANK, CPNS dan Perusahaan lainnya dengan KLIK and FOLLOW Akun Google+ dibawah.





