Laporan Praktikum Struktur Data Modul 3 Fungsi Rekursif

PRAKTIKUM


    • Praktikum 1
  • Studi Kasus
Dalam perhitungan matematika dikenal perpangkatan dengan menentukan bilangn dasar yang dipangkatkan dengan menentukan pangkat yang akan diterapkan pada bilangan dasar tersebut, bagaimana perhitungan matematika tersebut jika dibuat kedalam sebuah program
  • Script Program
#include<stdio.h>
#include<conio.h>
int pangkat(int x,int y)
{
if(y==0){
return 1;}
else{
return x*pangkat(x,y-1);}
}

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",x,y,pangkat(x,y));
getch();
return 0;
}

  • Output

  • Penjelasan
Pada Program tersebut nilai diproses dengan rumus = x*pangkat(x,y-1). Dimana, x adalah bilangan yang akan dipangkatkan dan y adalah bilangan pangkatnya.

    • Praktikum 2
  • Studi Kasus
Bilangan yang ada merupakan runtunan jumlah dari bilangan sebelumnya dengan demikian kita dapat mengetahui deret bilangan sebelumnya dengan melakukan faktorisasi dari bilangan tersebut, hasil dari penjumlahan deret bilangan tersebut dapat dilakukan dengan sebutan factorial. Contoh 4 difaktorialkan (4!)=>4 x 3 x 2 x 1 : (hasil kali 4!) = 24.
  • Script Program

#include<iostream>
#include<conio.h>
using namespace std;

int factorial(int a)
{
if(a>0){
cout<<a<<" ";
return(a*factorial(a-1));
}
else{
return 1;}
}
int main()
{
int a;
cout<<"Program menampilkan nilai deret Faktorial"<<endl;
cout<<"Masukan Nilai Faktorial = ";cin>>a;
cout<<"\nRekursif -> Hasil perkalian semua nilai dari "<<a<<"! = "<<factorial(a);
getch();
return 0;
}
  • Output

  • Penjelasan
Nilai faktorial ini adalah dimana kita menginputkan nilai maka nilai tersebut akan dikalikan dengan nilai-nilai sebelumnya, contoh faktorial dari 5 adalah 5 x 4 x 3 x 2 x 1. Dalam program ini penghitungan faktorial menggunakan rumus = a*factorial(a-1). Dimana  a adalah nilai yang akan di faktorialkan


    • Praktikum 3
  • Studi Kasus
Bilangan fibonanci adalah bilangan yang melakukan penambahan terhadap dirinya sendiri dan nilai penjumlahan dari bilangan pada dirinya yang sebelumnya seperti teorinya berikut :
ƒ0 :1:1ƒn≥2:ƒn-2
ƒ2= ƒ+ ƒ1= 0+1=1
ƒ3= ƒ+ ƒ2= 1+1=2
ƒ4= ƒ+ ƒ3= 1+2=3
ƒ5= ƒ+ ƒ4= 2+3=5
  • Script Program

#include<iostream>
#include<conio.h>
using namespace std;

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

cout<<"Fungsi Rekursif Bilangan Fibonacci"<<endl;
cout<<"=================================="<<endl;
cout<<"Masukan Bilangan : ";cin>>bil;
for(i=1;i<=bil;i++)
cout<<" "<<fibo(i);
cout<<"\nFibonanci("<<bil<<") = "<<fibo(bil);
getch();
return 0;
}
  • Output

  • Penjelasan
Program ini untuk menampilkan deret fibonanci, dimana kita harus inputkan nilai yang akan menjadi batas deret fibonanci tersebut. Untuk mengetahui deret fibonanci menggunakan rumus = fibo(i-1)+fibo(i-2). Dimana, i adalah bilangan yang menjadi batas deret fibonanci tersebut.



LATIHAN


    • Latihan 1
  • Studi Kasus
Program berikut ini berfungsi untuk membalikan urutan deret bilangan yang diinput menggunakan fungsi rekursif.
Contoh : 12345678→87654321

Pehatikan fungsi membandingkan bilangan sebelum dan berikutnya.
  • Script Program

#include<stdio.h>
#include<conio.h>
#define MAX 100
void rekursif_angka_terbalik(int);
main(){
int i,j,jml=0;
char bil[MAX];

printf("Program Pembalik Angka\n");
printf("\nMasukan bilangan yang 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;
}
  • Output
  • Penjelasan
Pada program ini untuk membuat sebuah deret bilangan menjadi terbalik, yang semulanya angka yang kita inputkan ditampilkan dari nilai yang paling kiri ke kanan, akan jadi menampilkan nilai yang kanan ke kiri yang akan ditampilkan. Dalam program ini menggunakan array, dimana setiap angka yang kita masukan, akan menjadi indeks-indeks pada array tersebut, sehingga dalam pemanggilan, indeks array yang paling kanan akan ditampilkan terlebih dahulu.



    • Latihan 2
  • Studi Kasus
Deret fibonanci adalah deret unik yang dapat dirumuskan dalam rumus matematika sederhana bagaimana membuat menampilkan deret fibonanci dengan memberikan batasan akhir dari sebuah angka fibonanci dengan menggunakan statement #define variable.
  • Script Program

#include<iostream>
#include<conio.h>
#define MAX 10
using namespace std;

int main()
{
int i;
long fibo[MAX];

fibo[1]=1;
fibo[2]=1;
for(i=3;i<=MAX;i++)
{
fibo[3]=fibo[1]+fibo[2];
fibo[1]=fibo[2];
fibo[2]=fibo[3];
cout<<fibo[3]<<" ";
}
getch();
return 0;
}
  • Output
  • Penjelasan

Program ini untuk menampilkan deret fibonanci, dimana nilai batas deret fibonanci tersebut telah ditetapkan pada #define. Untuk mengetahui deret fibonanci menggunakan rumus = fibo(i-1)+fibo(i-2). Dimana, i adalah bilangan yang menjadi batas deret fibonanci tersebut.

    • Latihan 3
  • Studi Kasus

Dalam perhitungan matematika dikenal perpangkatan dengan menentukan bilangan dasar yang akan dipangkatkan dan menentukan pangkat yang akan diterapkan pada bilangan dasar tersebut, bagaimana perhitungan matematika tersebut jika dibuat kedalam sebuah program yang dapat menampilkan deret nilai yang dipangkatkan tersebut. Contoh : 32 →  9.
  • Script Program

#include<stdio.h>
#include<conio.h>
int pangkat(int x,int y)
{
if(y==0){
return 1;}
else{
return x*pangkat(x,y-1);}
}

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",x,y,pangkat(x,y));
getch();
return 0;
}
  • Output
  • Penjelasan
Program ini untuk menghitung hasil pangkat dari sebuah bilangan. Dimana kita harus menginput nilai yang akan dipangkatkan dan nilai pangkatnya. Nilai tersebut akan di proses dengan rumus = x*pangkat(x,y-1). Dimana, x adalah bilangan yang akan dipangkatkan dan y adalah bilangan pangkatnya.


POST TEST



Postingan terkait:

1 Tanggapan untuk "Laporan Praktikum Struktur Data Modul 3 Fungsi Rekursif"