Function dan Recursion dalam Programming C
Apa itu Function? Mengapa saya harus peduli?
Function diartikan sebagai fungsi untuk memanggil suatu proses-proses yang disatukan dalam satu fungsi, untuk memudahkan pembacaan program dan tidak perlu memanggil fungsi yang sama berkali-kali.
CONTOH:
Tanpa Fungsi
==========
int main (){
int a,b,c,d;
int sum;
int sum1, sum2;
sum = a + b;
printf("%d", sum);
sum1 = a + b;
sum2 = c + d;
sum = sum1 + sum2;
}
Fungsi
=====
int sum(int a, int b)
{
sum = a + b;
return sum;
}
int main(){
int a,b,c,d;
int sum, sum1, sum2;
sum = sum(a,b);
printf("%d",sum);
sum1 = sum(a,b);
sum2 = sum(c,d);
sum = sum(sum1,sum2);
}
Dengan adanya fungsi, maka anda dapat lebih mudah memanggil suatu fungsi tertentu dalam program.
Function dari suatu fungsi dapat dibagi menjadi 2, yaitu:
1. Normal Function Type
Value yang dikembalikan oleh fungsi adalah tipe-tipe data dalam C, seperti int, char, float, dll. Khusus untuk void, fungsi TIDAK mengembalikan value apapun.
2. User-Defined Function Type
Value ditentukan berdasarkan apa yang dibuat oleh user, seperti dalam struct.
Akan lebih mudah memanggil fungsi menggunakan Pointer, seperti *array dibandingkan array[100].
Apa itu Recursion?
Bayangkan suatu loop while, tetapi kali ini loopnya itu adalah loop function. Rekursi adalah itu.
Rekursi diartikan sebagai fungsi yang memanggil dirinya sendiri, hingga mencapai basecase (keluar dari rekursi).
INGAT Untuk SELALU Mengadakan Base Case, karena jika tidak ada akan terjadi INFINITE LOOP!
Contoh Rekursi:
void print(int a){
if(a == 0) return;
printf("Hi!");
a--;
print(a);
}
int main (){
int a = 10;
print(a);
}
Program diatas akan memprint Hi sebanyak 10 kali.
Anda dapat menggabungkan Rekursi dengan Rekursi untuk menghasilkan suatu pattern yang indah maupun yang unik.
Lanjutan dari topik ini akan dibahas di Part 2.
Apa itu Function? Mengapa saya harus peduli?
Function diartikan sebagai fungsi untuk memanggil suatu proses-proses yang disatukan dalam satu fungsi, untuk memudahkan pembacaan program dan tidak perlu memanggil fungsi yang sama berkali-kali.
CONTOH:
Tanpa Fungsi
==========
int main (){
int a,b,c,d;
int sum;
int sum1, sum2;
sum = a + b;
printf("%d", sum);
sum1 = a + b;
sum2 = c + d;
sum = sum1 + sum2;
}
Fungsi
=====
int sum(int a, int b)
{
sum = a + b;
return sum;
}
int main(){
int a,b,c,d;
int sum, sum1, sum2;
sum = sum(a,b);
printf("%d",sum);
sum1 = sum(a,b);
sum2 = sum(c,d);
sum = sum(sum1,sum2);
}
Dengan adanya fungsi, maka anda dapat lebih mudah memanggil suatu fungsi tertentu dalam program.
Function dari suatu fungsi dapat dibagi menjadi 2, yaitu:
1. Normal Function Type
Value yang dikembalikan oleh fungsi adalah tipe-tipe data dalam C, seperti int, char, float, dll. Khusus untuk void, fungsi TIDAK mengembalikan value apapun.
2. User-Defined Function Type
Value ditentukan berdasarkan apa yang dibuat oleh user, seperti dalam struct.
Akan lebih mudah memanggil fungsi menggunakan Pointer, seperti *array dibandingkan array[100].
Apa itu Recursion?
Bayangkan suatu loop while, tetapi kali ini loopnya itu adalah loop function. Rekursi adalah itu.
Rekursi diartikan sebagai fungsi yang memanggil dirinya sendiri, hingga mencapai basecase (keluar dari rekursi).
INGAT Untuk SELALU Mengadakan Base Case, karena jika tidak ada akan terjadi INFINITE LOOP!
Contoh Rekursi:
void print(int a){
if(a == 0) return;
printf("Hi!");
a--;
print(a);
}
int main (){
int a = 10;
print(a);
}
Program diatas akan memprint Hi sebanyak 10 kali.
Anda dapat menggabungkan Rekursi dengan Rekursi untuk menghasilkan suatu pattern yang indah maupun yang unik.
Lanjutan dari topik ini akan dibahas di Part 2.
Comments
Post a Comment