Kamis, 23 Mei 2013

Recursion


Recursion secara singkat dapat diartikan sebagai sebuah fungsi yang memanggi fungsi itu atau dirinya sendiri.

source code
1
2
3
4
5
6
7
8
9
10
11
void myMethod( int counter)
{
if(counter == 0)
     return;
else
    {
       System.out.println(""+counter);
       myMethod(--counter);
       return;
    }
}
Fungsi diatas tentu tidak akan mengalami looping forever karena sudah memiliki kondisi kapan dia selesai yaitu ketika counternya = 0. Contohnya saja kita panggil fungsi diatas dengan nilai counter = 5. Lalu apa hasilnya??
Hasilnya adalah :
  • 5
  • 4
  • 3
  • 2
  • 1
Kenapa nilai terakhir = 1? Ini karena fungsi diatas memiliki kondisi terakhir dimana jika nilai counter = 0, maka recursion akan berhenti . (Sudah pusing? saya saja sudah pusing karena sudah kebelet maen dota ) Jika sudah agak mengerti dengan contoh di atas selanjutnya kita bahas tentang contoh selanjutnya dari recursion yaitu tentang factorial.
Factorial adalah mengalikan suatu bilangan dengan bilangan sebelumnya sampai bilangan itu dikalikan dengan 1.
For example: 6! = 6 X 5 X 4 X 3 X 2 X 1 = 720 .  Lalu bagaiman kita mencari hasil factorial dengan konsep recursion ini? Coba perhatikan java code dibawah ini deh.
?
source code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Factorial {
 
     int fact(int n) {
 
          int result;
 
          if ( n ==1) return 1;
 
          result = fact (n-1) * n;
 
          return result;
 
     }
 
}
  
class Recursion {
 
     public static void main (String args[]) {
 
          Factorial f =new Factorial();
 
          System.out.println("Factorial of 3 is "+ f.fact(3));
 
          System.out.println("Factorial of 4 is " + f.fact(4));
 
          System.out.println("Factorial of 5 is " + f.fact(5));
 
     }

Tidak ada komentar:

Posting Komentar