Function dan Recursion di Bahasa C

Function dan Recursion di Bahasa Pemogramman C

a. Function
Function merupakan kumpulan statement yang mengambil input, melakukan perhitungan yang diperlukan dan menghasilkan output.
Fungsi dapat membantu dalam menghemat penulisan kode yang sering di tulis berulang ulang, karena kumpulan statement dan perhitungan yang sering di lakukan dapat di masukan ke dalam suatu fungsi yang dapat di panggil secara berulang.
Fungsi juga dapat membuat program lebih terstruktur dan efesien sehingga program tersebut lebih mudah di pahami dan dibaca.
Fungsi sendiri terbagi menjadi 2 jenis yaitu function yang di buat sendiri dan function yang sudah ada di dalam library c seperti di dalam fungsi string.h (strlen,strcpy,strstr,dll).

Contoh pembuatan fungsi yang sederhana
#include<stdio.h>
int jumlah(int a, int b){
int sum=a+b;
return sum;

int main (){
int angka1,angka2;
scanf("%d %d", &angka1,&angka2);
printf("%d", jumlah(angka1,angka2);

testcase
input
1 2
output
3

Sturktur dari pembuatan fungsi adalah
data_type function_name (parameter){
//statement;
}

1. Data Type (tipe data)
Fungsi memiliki tipe tipe data seperti int ,float ,void ,dll. void artinya tidak bertipe data sehingga tidak perlu adanya pengembalian nilai. karena itu setiap kali membuat int main (){} diperlukan pengembalian nilai 0 sebagai tanda berakhir nya suatu program dengan normal.
2. Function Name (nama fungsi)
Nama fungsi digunakan untuk melakukan pemanggilan terhadap fungsi tersebut seperti di contoh melakukan pemanggilan terhadap fungsi jumlah: jumlah (angka1,angka2);
3. Parameter
Parameter merupakan nilai yang menjadi acuan saat menjalankan program
passing parameter ke fungsi
Actual parameter : parameter yang digunakan untuk memanggil fungsi
contoh didalam program yang di buat adalah angka1 dan angka2
Formal parameter : parameter yang diterima oleh fungsi
contoh didalam program yang di buat adalah a dan b

Ada 2 cara yang digunakan untuk passing parameter yaitu :

1. Passing parameter by value
dalam passing parameter dengan value, nilai parameter aktual dipanggil kedalam parameter formal dan dua jenis parameter disimpan ke dalam 2 jenis memori yang berbeda.
contoh:

#include<stdio.h>
int jumlah(int a, int b){
int sum=a+b;
return sum;

int main (){
int angka1,angka2;
scanf("%d %d", &angka1,&angka2);
printf("%d", jumlah(angka1,angka2);

2. Passing parameter by address
parameter aktual dan parameter formal diletakan di dalam memori yang sama jadi setiap perubahan yang dilakukan di fungsi akan berpengaruh ke parameter aktual.
contoh :

#include<stdio.h>
int jumlah(int *a, int *b){
int sum=*a+*b;
return sum;

int main (){
int angka1,angka2;
scanf("%d %d", &angka1,&angka2);
printf("%d", jumlah(&angka1,&angka2);

b. Recursion
Rekursif merupakan pemanggilan sebuah fungsi didalam fungsi itu sendiri secara langsung maupun tidak langsung. dengan menggunakan rekursif kita dapat menyelesaikan beberapa masalah dengan lebih mudah seperti Tower of Hanoi, faktorial ,fibonaci,dll.
contoh
int fact(int n){
if (n<=1){
return 1;
}
else return n*fact(n-1);
}

kelebihan dari penggunaan rekursif
1. Program lebih singkat
2. Di beberapa kasus lebih mudah menggunakan rekursif seperti pangkat, faktorial, fibonacci ,dll.
3. Lebih cepat dan efesien dibanding menggunakan fungsi iteratif.
kekurangan dari penggunaan rekursif
1. Memakan memori yang lebih besar karena setiap bagian dari dirinya dipanggil sehingga
    membutuhkan ruang yang lebih besar.
2. Rekursif sering kali tidak bisa berhenti sehingga akan memakan memori dan menyebabkan
    program menjadi hang.

Komentar

Postingan populer dari blog ini

Sorting and Searching di Bahasa C

Pointer dan Array Dalam Bahasa Pemogramaman C