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<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<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;
compiler : borland C++
- syntax
#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
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3MYPA0NuQvxyAuR-Z8b6l89V5oKdszxOtxq37LudqemQIAKyVnR7RpVDciM5PA2G66bCjQe_DWYhVQ9UjFHCf9X9KNRhPpVmL-QrPcmlHitBmtVj3tCtq1o-38o2LYQRakxvxtgp6Gg6G/s320/Prak3.png)
- 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);
compiler : borland C++
- syntax
#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]);
compiler : borland C++
- syntax
#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.
compiler : borland C++
- syntax
#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);
sudah diperiksa
ReplyDelete