Function and Recursion
Modular Programming
- Program dibagi ke dalam modul- Modul di Bahasa C di implementasikan menggunakan function
- Function dibentuk melalui pengelompokkan beberapa pernyataan untuk melakukan pekerjaan tertentu
- Modul dibutuhkan ketika suatu pernyataan tertentu digunakan terus-menerus oleh code yang berbeda di dalam sebuah program
- Atau disebut juga Sub-Program
Keuntungan menggunakan modul:
- Program besar dibagi menjadi program-program kecil
- Dapat diselesaikan oleh lebih dari satu developer/programmer
- Lebih mudah untuk di debug
- Modifikasi dapat dilakukan tanpa mempengaruhi seluruh code
- Lebih mudah di dokumentasi
Library vs User-Defined Function
Library function, adalah fungsi standar yang disediakan oleh C Compiler. Fungsi-fungsi tersebut dideskripsikan di header files (.h). Ex: strcpy di string.h
User-defined function, adalah fungsi yang mendefinisikan sendiri
Function
Construction
return-value-type function-name(parameter-list)
{
statements;
}
Dapat ditulis sebagai berikut:
int maximum(int a, int b);
Identifier Scoping
Local Identifier
- Identifier dideklarasikan dalam function termasuk parameternya
- Scope dibatasi dalam function
- Identifier dideklarasikan di luar semua function dan ditempatkan paling atas dari semua function di C program
- Terjangkau dari poin manapun di program
- Dapat di deklarasi ulang di subprogram
Passing Parameter
- By-Value, yang dikirim ke modul lain adalah value
- By Location/by reference, yang dikirim ke modul lain adalah alamatnya
Recursive
Mempunyai dua komponen:
- Base case: mengembalikan value(constant) tanpa memanggil panggilan recursive lainnya
- Reduction case: urutan dari input value bertemu ke base case
Iterative vs Recursive
Contoh Iterative (Factorial):
long factor(int n){
long i, fac = 1;
for(i = 1 ; i <= n ; i++) fac *= i;
return (fac);
}
Contoh Recursive (Factorial):
long factor(int n)
{
if(n == 0) return(1);
else return(n * factor(n-1));
}
Contoh program yang menggunakan Recursive
Angka Fibonacci
Urutan: 0, 1, 1, 2, 3, 5, 8, 13, ...
Syntax:
int Fib(int n){
int f;
if(n == 0) f = 0;
else if(n == 1) f = 1;
else f = Fib(n-2) + Fib(n-1);
return f;
}
2201797374
skyconnectiva.
Kirani Qothrunada A.
Komentar
Posting Komentar