MODUL 3 FUNGSI REKURSI

LAPORAN PRAKTIKUM MODUL II
STRUKTUR DATA

FUNGSI REKURSI


ANDIKA PRATAMA
20160910005

UNIVERSITAS KUNINGAN


Praktikum 3.1

compiler : borland C++
  • syntax 
#include<stdio.h>
#include<conio.h>
int pangkat(int x,int y);
main()
{
int x,y;
printf("Masukan bilangan yang dipangkatan = ");
scanf("%d",&x);
printf("\npangkat bilangan = ");
scanf("%d",&y);
printf("\nhasil bilangan %d pangkat %d adalah %d",x,y,pangkat (x,y));
getch();
return 0;
}
int pangkat (int x,int y)
{
if(y==0){
return 1;
}else{
return x*pangkat(x,y-1);
}
}

  • hasil run

  • analisis
Program diatas adalah program perhitungan matematika perpangkatan dengan menentukan terlebih dahulu bilangan yang akan dipangkatkan dan menentukan pangkat yang akan digunakan ke bilangan tersebut.proses perpangkat terjadi pada : x*pangkat(x,y-1);

dan diprogram tersebut terdapat struktur pemilihan dimana jika pangkat bernilai nol maka akan menghasilkan bilangan dasar atau bilangan yang akan dipangkatkan sedangkan jika bukan nol maka akan memproses x*pangkat(x,y-1)

Praktikum 3.2

compiler : borland C++
  • syntax
#include<iostream.h>
#include<conio.h>
int faktorial (int a)
{
if (a>0){
cout<<a<<" ";

return (a*faktorial(a-1));}
else
return 1;
}
int main()
{
int a;
int faktorial(int a);
cout<<"program menampilkan deret nilai faktorial"<<endl;
cout<<"Masukan nilai faktorial : ";
cin>>a;
cout<<endl;
cout<<"\n\nrekrusif -> hasil perkalian semua nilai dari "<<a<<"!="<<faktorial(a);
getch();
return 0;

}

  • hasil run

  • analisis

Program diatas adalah program nilali factorial ,program diatas menggunakan instruksi function yang didalamnya menggunakan struktur pemilihan if else :
if (a>0){
cout<<a<<" ";
return (a*faktorial(a-1));
}
else
return 1;
}

Yang berguna untuk melakukan pemilihan dimana jika a atau nilai factorial = 0 maka program akan menjalankan statmen:

cout<<a<<" ";
return (a*faktorial(a-1));

tetapi jika a bukan 0 maka program akan menjalankan statemen:
return 1;

Praktikum 3.3

compiler : borland C++
  • syntax
#include<iostream.h>
#include<conio.h>
int fibo(int i)
{
if(i==0)
return 0;
else if(i==1)
return 1;
else
//fungsi reksudif
return fibo(i-1)+fibo(i-2);
}
int main()
{
int i,bil;
cout<<"fungsi reksusif bilangan fibonanci"<<endl;
cout<<"\t==============================="<<endl;
cout<<"\nMasukan bilangan : ";
cin>>bil;
//pemanggilan nilai fibonanci
for(i=1; i<=bil; i++)
//pemanggilan fungsi
cout<<" "<<fibo(i);
cout<<"\n fibonanci ("<<bil<<")= "<<fibo(bil);
getch();
return 0;
}

  • hasil run
 
  • analisis

Program di atas adalah program menampilkan bilangan fibonanci atau bilangan yang menambahkan nilai nya sendiri, dari program Rekursi tersebut mengunakan fungction dengan nama fungction fibo deangan tipedata integer dan di dalam fungction tersebut terdapat sebuah variabel i dengan tipedata integer, syntax fungction :

int fibo(int i)
{
 if (i==0)
 return 0;
 else if (i==1)
 return 1;
 else
 return fibo (i - 1) + fibo (i - 2);
}

Program diatas juga menggunakan instruksi for(i=1; i<=bil; i++),yang berguna untuk mengulang penambahan bilangan fibonanci tersebut.dan untuk pemanggilan atau menampilkan hasil akhir program diatas menggunakan statemen :

cout<<" "<<fibo(i);
cout<<"\n fibonanci ("<<bil<<")= "<<fibo(bil);


latihan 3.1

compiler : borland C++
  • syntax
#include<stdio.h>
#include<conio.h>
#define MAX 100
void rekrusif_angka_terbalik(int);
main()
{
int i,j,jml=0;
char bil[MAX];
printf("\nProgram pembalik angka ");
printf("\n");
printf("\nMasukan /bilangan yang akan dibalik kawan = ");
gets(bil);

for(i=0; bil[i]; i++)
jml=jml++;

printf("\n");
printf("Maka hasilnya adalah = ");
for(j=jml-1;j>=0; j--)

printf("%c",bil[j]);
printf("\n");
getch();
return 0;
}

  • hasil run
 
  • analisis

Program diatas adalah program untuk membalikan sebuah bilang yang sebelumnya sudah kita masukan secara manual melalui intruksi:

printf("\nMasukan /bilangan yang akan dibalik kawan = ");
gets(bil);
for(i=0; bil[i]; i++)
jml=jml++;

dan untuk membalikan sebuah bilangan,program trsebut menggunakan intruksi :

for(j=jml-1;j>=0; j--)
printf("%c",bil[j]);

latihan 3.2

compiler : borland C++
  • syntax
#include<iostream.h>
#include<conio.h>
#define MAX 10
long fibo[MAX];
int main()
{
int i;
fibo[1]=1;
fibo[2]=1;
for(i=0; i<MAX; i++)
{
cout<<"Masukan bilangan ke- ";
cin>>i;
}
cout<<MAX<<" Bilangan fibonanci pertama adalah \n";
for(int j=0; j<MAX; j++)
{
cout<<"\n "<<j;
}
getch();
return 0;
}

  • hasil run
 
  • analisis

Program diatas adalah program yang menampilkan deret fibonanci dengan memberikan batasan akhir dari sebuah angka fibonanci dengan menggunakan statemen #define variable ,program diatas menggunakan intruksi for ,untuk for(i=0; i<MAX; i++) berfungsi untuk mengulang statemen cout<<"Masukan bilangan ke- "; yang berguna untuk memasukan sebuah nilai ke dalam variable, sedangkan for(int j=0; j<MAX; j++) berfungsi untuk mengulang statemen cout<<”\n”<<j; yang berguna untuk menampilkan deret fibonanci.

latihan 3.3

compiler : borland C++
  • syntax
#include<iostream.h>
#include<conio.h>
int pangkat (int x,int y);
main()
{
int x,y;
printf("Masukan bilangan yang akan dipangkatkan = ");
scanf("%d",&x);
printf("\nPangkat bilangan = ");
scanf("%d",&y);
printf("\nhasil bilangan %d pangkat %d adalah %d %d",x,y,x,pangkat (x,y));
getch();
return 0;
}
int pangkat (int x,int y)
{
if(y==0){
return 1;
}else{
return x*pangkat (x,y-1);
}
}

  • hasil run
 
  • analisis


Program diatas adalah program untuk perhitungan perpangkatan dengan menentukan bilangan dasar yang akan dipangkatkan dan menentukan pangkat yang akan diterapkan pada bilangan dasar tersebut,program diatas menggunakan perintah return x*pangkat (x,y-1); untuk menjalankan perpangkatan pada program dan program diatas menggunakan struktur pemilihan if else :

if(y==0){
return 1;
}else{
return x*pangkat (x,y-1);
} 

Yang berfungsi untuk menjalankan perintah pemilihan angka yang dimasukan, seperti jika kita memasukan nilai pangkat “0” maka program akan menjalankan return 1; tetapi jika kita memasukan nilai pangkat bukan “0” maka program akan menjalankan perintah return x*pangkat (x,y-1);



Comments

Post a Comment

Popular Posts