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:

  1. Program besar dibagi menjadi program-program kecil
  2. Dapat diselesaikan oleh lebih dari satu developer/programmer
  3. Lebih mudah untuk di debug
  4. Modifikasi dapat dilakukan tanpa mempengaruhi seluruh code
  5. 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;
}

Function Prototype
Dapat ditulis sebagai berikut:
    int maximum(int a, int b);

Identifier Scoping
Local Identifier
  • Identifier dideklarasikan dalam function termasuk parameternya
  • Scope dibatasi dalam function
Global Identifier
  • 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