Anda di halaman 1dari 9

LAPORAN PRAKTIKUM SEMENTARA

REKURSIF





Disusun oleh :
Abas Abdul Malik
201302023

Dosen pengampu :
Yosef Murya Kusuma Ardhana.S.T., M.Kom




JURUSAN KOMPTERISASI AKUNTANSI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014


BAB I
DASAR TEORI
A. Faktorial
Merupakan contoh sederhana dari rekursif yaitu proses menghitung nilai factorial dari
bilangan bulat positif.
Contoh penulisan factorial :
0!=1
n!=n*(n-1)! Untuk n>0
maka dapat diilustrasikan sebagai berikut:






B. Fibonaccy
Merupakan proses penyusunan deeret dengan menggunakan rumus :
1. n=1 atau n=2, maka fibo (n)=1
2. n>2, maka fibo(n)=fibo(n-1)+fibo(n-2)
maka akan didapat:





Nilai awal

C. Hanoi
Menara Hanoi atau sering disebut dengan Hanoi merupakan persoalan rekursif yang paling
dikenal dan pertama kali ditemukan oleh Pendeta Budha di Hanoi.
Faktorial(4)=4*factorial(3)
Faktorial(3)=3*factorial(2)
Faktorial(2)=2*factorial(1)
Faktorial(1)=1*factorial(0)
Fibo(5)=fibo(4)+fibo(3)
Fibo(4)=fibo(3)+fibo(2)
Fibo(3)=fibo(2)+fibo(1)



Persoalan rekursif ini merupakan persoalan klasik untuk memindahkan tumpukan piringan
cakram atau cakram dari tiang asal ketiang tujuan dengan bantuan sebuah tiang perantara.







Tiang asal Tiang perantara Tiang tujuan
D. Sintaks Dasar
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh
compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai
3. <iostream> adalah sebuah liblary yang untuk fungsi input seperti cin>> dan output
seperti cin<<.
4. Int main() adalah main program berupa integer atau program utama dalam koding
tersebut. Setiap program utama harus diawali dengan tanda kurung kurawal buka { dan
diakhiri dengan tanda kurung kurawal tutup }.
5. Char adalah suatu tipe data yang berfungsi untuk memproses atau menampung data
berupa karakter., setelah ditulis char harus di ikuti tanda [ yang didalamnya berupa angka
berapa jumlah karakter yang akan di ambil dan ditutup dengan tanda ] dan diakhiri tanda
; .
6. Float adalah sebuah tipe data yang nilainya memiliki titik decimal atau disebut dengan
bilangan pecahan.
7. Cout<< adalah intruksi atau sebuah fungsi perintah untuk memunculkan variable yang
sudah di tulis oleh programmer.
8. Cin>> adalah perintah untuk memasukan atau menginputkan data variable yang sudah
dideklarasikan diatas.
9. Return 0; digunakan untuk menutup dan membaca data dari awal



BAB II
PENJELASAN PROGAM
Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan pemrograman
C++ secara sederhana sesuai dengan modul praktikum 6 pada Program Praktikum 2.7, Program
Praktikum 2.8 dan program praktikum 2.9 C++ sederhana.
Listing Program Praktikum 2.7
/*
* programpraktikum2.7.cpp
*
* Created on: May 20, 2014
* Author: Abaz_Malik
*/

#include <iostream>
using namespace std;

int faktorial (int n)
{
if (n==1)
return (1);
else
return(n*faktorial(n-1));
}
int main()
{
int x;

cout<<"Mencari nilai faktorial\n";
cout<<"Masukan nilai x: "; cin>>x;
cout<<"Nilai faktorial dari x : "<<faktorial (x);
return 0;
}

Output Program Praktikum 2.7
Hasil output dari Program Praktikum 2.7 adalah sebagai berikut :



Penjelasan Program 6.7 :
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai
3. Main adalah nama judul fungsi, dan dilanjutkan dengan tanda ( ), digunakan untuk mengapit argumen
fungsi.
4. Int x merupakan data x yang bertipe data integer.
5. If Else, mempunyai arti jika kondisi bernilai benar, maka perintah 1 akan dijalankan dan jika
tidak memenuhi syarat maka akan mengerjakan perintah 2.
6. Cout<< adalah intruksi atau sebuah fungsi perintah untuk memunculkan variable yang sudah
di tulis oleh programmer.
7. Cin>> adalah perintah untuk memasukan atau menginputkan data variable yang sudah
dideklarasikan diatas.
8. Return 0; digunakan untuk menutup dan membaca data dari awal.
Listing Program Praktikum 2.8
/*
* programpraktikum2.8.cpp
*
* Created on: May 20, 2014
* Author: Abaz_Malik
*/

#include <iostream>
using namespace std;

long fibo (long n)
{
if(n==1 || n==2)
return 1;
else
return fibo(n-1)+fibo(n-2);
}
int main()
{
int x;
cout<<"Mencari nilai fibonaccy\n";
cout<<"masukan nilai x : "; cin>>x;
cout<<"Nilai fibonaccy dari x "<<fibo(x);
return 0;

}



Output Program Praktikum 2.8
Hasil output dari Program Praktikum 2.8 adalah sebagai berikut :

Penjelasan Listing Program 6.8 :
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai
3. <iostream> berfungsi untuk pencarian file pada direktori khusus, yang berisi deklarasi yang
diperlukan oleh cout
4. Main adalah nama judul fungsi, dan dilanjutkan dengan tanda ( ), digunakan untuk mengapit
argumen fungsi.
5. Fibo(x), pemanggilan deret Fibonanccy sebanyak x.
6. if-else, mempunyai arti jika kondisi bernilai benar, maka perintah 1 akan dijalankan dan jika
tidak memenuhi syarat maka akan mengerjakan perintah 2
7. Cout<< adalah intruksi atau sebuah fungsi perintah untuk memunculkan variable yang sudah
di tulis oleh programmer.
8. Cin>> adalah perintah untuk memasukan atau menginputkan data variable yang sudah
dideklarasikan diatas.
9. Return 0; digunakan untuk menutup dan membaca data dari awalInt, untuk memasukan
bilangan bulat.
.







Listing Program Praktikum 2.9
/*
* programpraktikum2.9.cpp
*
* Created on: May 20, 2014
* Author: Abaz_Malik
*/

#include <iostream>
using namespace std;

void hanoi(int n, char a, char b, char c)
{
if(n==1)
cout<<"-----Pindahkan cakram dari a ke c----\n"<<a<<c;
else
{
hanoi (n-1,a,c,b);
hanoi (1,a,b,c);
hanoi (n-1,b,a,c);

}
}
int main()
{
int jumlah_cakram;
cout<<"Jumlah cakram : ";cin>>jumlah_cakram;
hanoi (jumlah_cakram, 'A', 'B', 'C');
return 0;
}

Output Program Praktikum 2.9
Hasil output dari Program Praktikum 2.9 adalah sebagai berikut :




Penjelasan Listing 6.9 :
1. Tanda yang diawali dengan /* dan diakhiri tanda */ merupakan script untuk membuat
sebuah komentar pada pemrograman C++ yang jika didalamnya terdapat sebuah perintah
atau teks maka ketika program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum
kompilasi dimulai
3. <iostream> berfungsi untuk pencarian file pada direktori khusus, yang berisi deklarasi yang
diperlukan oleh cout.
4. Cout<< adalah intruksi atau sebuah fungsi perintah untuk memunculkan variable yang sudah
di tulis oleh programmer.
5. Cin>> adalah perintah untuk memasukan atau menginputkan data variable yang sudah
dideklarasikan diatas.
6. Return 0; digunakan untuk menutup dan membaca data dari awal.









KESIMPULAN
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri, artinya fungsi tersebut dipanggil
di dalam tubuh fungsi itu sendiri. Parameter yang dilewatkan berubah sebanyak fungi itu
dipanggil. Ada beberapa penerapan rekursif yaitu factorial, fibonaccy, Hanoi dll. Dengan adanya
beberapa penerapan dalam rekursif pembuatan program dapat dilakukan dengan mudah tetapi
memerlikan memori yang banyak.










Referensi

Modul Praktikum Logika dan Pemrograman yang disusun oleh Yosef Murya Kusuma Ardhana.
S.T., M.Kom.

Anda mungkin juga menyukai