Rekursif dalam Algoritma Pemrograman

Bentuk rekursi merupakan alternatif bentuk iterasi atau perulanga. perulangan rekursif merupakan salah satu metode didalam pemrograman yang mana dalam sebuah fungsi terdapat instruksi yang memanggil fungsi itu sendiri.

notasi :

//judul     : fungsi rekursif
//kamus     : nilai1,nilai2,hasil<--integer
             function tambah(angka1<--integer,angka2<--integer)
                                                     <--integer
//deskripsi :
               nilai1 <-- input 4
               nilai2<--input 2
               hasil<-- tambah(nilai1,nilai2)
               output--> hasil 
 //output akan mengeluarkan 6
           function tambah(angka1<--integer,angka2<--integer)
                                                   <--integer 
           {
                if(angka1==0)
                {
                   return angka2
                }
                else
                {
                  return 1+tambah(angka1-1,angka2)
                }
          }

proses penambahannya adalah sebai berikut:

tambah(4,2)
1+tambah(3,2)
1+1+tambah(2,2)
1+1+1+tambah(1,2)//angka1 berkurang karena ada perintah memanggil fungsi dirinya sendiri dengan kondisi bahwa angka1 di kurang 1.
1+1+1+((tambah(0,2)//karena angka1 sudah menjadi 0 maka tambah mengembalikan nilai 2 dengan demikian menjadi :
1+1+1+1+2=6

contoh dalam bahasa C :

#include <stdlib.h>
#include <stdio.h>
///judul : fungsi rekursif tambah
///kamus :
           int hasil,nilai1,nilai2;
           int tambah(int angka1,int angka2);

///deskripsi :
int main()
{
    nilai1=4;
    nilai2=2;
    hasil=tambah(nilai1,nilai2);
    printf("%d",hasil);
}

///fungsi 
int tambah(int angka1,int angka2)
{
if(angka1==0)
    {
       printf("%d=",angka2);
       return angka2;
    }
else
    {
       printf("1+");
       return 1+tambah(angka1-1,angka2);
    }
}

jika program di jalankan :
tambah_program_blog

contoh berikutnya dalam penggunaan rekursif adalah pada faktorial :
notasi :

///judul     :     fakrorial dalam algoritma rekursif
///kamus     :     angka,hasil<--integer
                   function faktorial(nilai<--integer)<--integer 
///deskripsi :
             angka<--input (4) 
             hasil<--faktorial(angka) 

///function :
                  function faktorial(nilai<--integer)<--integer 
                  {
                     if(nilai==1)
                       {
                          return nilai  
                       }
                    else 
                       {
                          return nilai*faktorial(nilai-1) 
                       }
                  }

prosesnya adalah sebai berikut:

faktorial(4) //fungsi di isi nilai 4
4*faktorial(4-1) ///masuk kedalam pilihan else karena nilai tidak 1 maka mengulan fungsi tapi nilai 4 di kurang 1
4*3*faktorial(3-1)
4*3*2*faktorial(2-1) karena faktorial(2-1) sama artinya faktorial(1) maka akan masuk if bukan else.
4*3*2*1=24

berikut contoh program dalam bahasa C :

#include <stdio.h>
#include <stdlib.h> 

///judul :  faktorial rekrsif
///kamus :
                 int batas;
                 int faktorial(int nilai);
                 int hasil;

///deskripsi :

int main()
{
   batas=4;///batas di input nilai 4
   hasil=faktorial(batas); ///fungsi akan berhenti dan measukan hasilnya
                              kedalam variabel hasil
   printf("%d",hasil);
}

int faktorial(int nilai)
{
  if(nilai==1)
    {
      printf("%d=",nilai);
      return nilai;
    }
else
    {///jika nilai tidak 1 maka akan masuk kedalam else 
     printf("%d*",nilai);
      return nilai*faktorial(nilai-1);
    }


}

jika di jalan kan program agan seperti berikut :
rekursif_program_blog

penggunaan rekursif dalam perkalian :

notasi :

///judul : perkalian 
///kamus : hasil,angka1,angka2<--integer 
           function perkalian(nilai1<--integer,nilai2<--integer)
            <--integer 
///deskripsi : 
          angka1<--input 5
          angka2<--input 7
          hasil<--perkalian(angka1,angka2)
          output hasil

///fungsi 
function perkalian(nilai1<--integer,nilai2<--integer)<--
integer 
{
   if(niali2==1)
   {
    return nilai1 
   }
    else 
   {
      return nilai1+perkalian(nilai1,nilai2-1)
   }

aplikasikan kedalam program , bahasa C:

#include <stdio.h>
#include <stdlib.h>

///judul : perkalian rekursif
///kamus :
           int hasil,angka1,angka2;
           int perkalian(int nilai1,int nilai2);
///deskripsi :
 int main()
 {
    angka1=5;
    angka2=7;
    printf("5*7=\n");
    printf("proses perkalian nya adalah \n");
    hasil=perkalian(angka1,angka2);
    printf("%d",hasil);
    printf("hasil perkalian %d*%d=%d\n",angka1,angka2,hasil);



 }
///fungsi

 int perkalian(int nilai1,int nilai2)
 {
     if(nilai2==1)
     {
      printf("%d=",nilai1);
      return nilai1;
     }
       else
     {
       printf("%d+",nilai1);
       return nilai1+perkalian(nilai1,nilai2-1);
     }
 }

hasil setelah program dijalankan :
rekursif-kali

Leave a Reply

Your email address will not be published. Required fields are marked *