Jumat, 11 April 2014

Rekursif

REKURSIF (ALGORITMA PEMOGRAMAN)

Rekursif merupakan salah satu metode algoritma yang kerap digunakan dalam membuat perulangan, seperti halnya iterasi for, repeat .. until, do.. while, dsb. Perbedaannya adalah dalam sifatnya yang memanggil dirinya sendiri, baik secara langsung ataupun melalui metode yang lainnya. Ciri masalah yang dapat diselesaikan secara rekursif adalah masalah itu dapat direduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil. Dalam pemrograman rekursif, terdapat dua istilah penting yaitu Basis dan Rekurans. Basis adalah suatu keadaan yang terdefinisi yang akan menghentikan kondisi rekursif, sementara rekurans adalah sebuah

Berikut adalah beberapa contoh kasus pemrograman yang menggunakan algoritma rekursi, yakni menhitung jumlah digit suatu bilangan, jumlah deret bilangan bulat positif dan jumlah deret bilangan genap positif dengan menggunakan bahasa C :
include <stdio.h>

//menghitung jumlah digit suatu bilangan ex. 234 == 9
int digit(n){
    if (n < 10)
       return n;
    else return (n % 10) + digit(n / 10);
}

//menghitung jumlah deret S(n) = 1 + 2 + 3 + 4 + .... + n
int deret1(n){
    if (n == 1)
       return 1;
    else return deret1(n - 1) + n;
}

//menghitung jumlah deret genap S(n) = 2 + 4 + 6 + 8 + .... + (2 * n)
int deret2(n){
    if (n == 1)
       return 2;
    else return deret2(n - 1) + (2*n);
}

int main(){
    printf("Penjumlahan digit dengan n = 678 : %d\n",digit(678));
    printf("Penjumlahan deret bilangan dengan n = 8 : %d\n",deret1(8));
    printf("Penjumlahan deret genap dengan n = 5 :  %d",deret2(5));
    return 0;
}

Berikut adalah beberapa contoh kasus pemrograman yang menggunakan algoritma rekursi, dengan menggunakan bahasa C :

#include<iostream.h>
#include<conio.h>

using namespace std;
class rekrusif{
      private :
              int x,y;
      public:
             long pangkat(int x,int y);
             int proses(){
   cout<<" program untuk memangkatkan dengan menggunakan rekrusi"<<endl;


   cout<<"x : ";
   cin>>x;
   cout<<"y : ";
   cin>>y;
   cout<<x<<" ^ "<<y<<" = "
       <<pangkat(x,y)<<endl;
       system("pause");
   }};
   long rekrusif::pangkat(int x,int n)
   {
       if (n==1)
          return(x);
         else
         return(x * pangkat(x,n-1));//pemanggilan kembali fungsi pangkat dengan n-1
   }
int main(){
    rekrusif a;
    a.proses();
return 0;
}


Rekursif dalam bahasa C++

Sebagai contoh, 4! = (4)(3)(2)(1).
contoh :
  3!=3.(3-1)!
  3!=3.2!     -->   Faktorial n-1
  3!=3.2.(2-1)!
  3!=3.2.1!   -->  Faktorial n-2
  3!=3.2.1
- See more at: http://aina-tunk.blogspot.com/2012/06/program-rekursif-faktorial-pada-c.html#sthash.ZyUjCCLZ.dpuf
1. Sebagai contoh, 4! = (4)(3)(2)(1).
contoh :
  3!=3.(3-1)!
  3!=3.2!     -->   Faktorial n-1
  3!=3.2.(2-1)!
  3!=3.2.1!   -->  Faktorial n-2
  3!=3.2.1
Program Faktorial :
- See more at: http://aina-tunk.blogspot.com/2012/06/program-rekursif-faktorial-pada-c.html#sthash.ZyUjCCLZ.dpuf
REFERENSI
1. http://efilistianidewi.wordpress.com/2012/04/13/rekursif-dan-iteratif/
2. http://wanz-91.blogspot.com/2011/12/fungsi-rekursif.html


Tidak ada komentar:

Posting Komentar