Anda di halaman 1dari 14

LAPORAN PRAKTIKUM RESMI

REKURSIF





Disusun oleh :
Abas Abdul Malik
201302023

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




JURUSAN KOMPUTERISASI AKUNTANSI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014


BAB I
DASAR TEORI

A. Pengantar
Modul program didalam program c++ disebut fungsi atau functioan. Program C++ ditulis
dengan mengkombinasikan fungsi baru yang ditulis oleh programmer dengan fungsi yang
tersedia didalam pustaka atau liblary. Contohnya cin, cout, printf, scanf dan lain-lain.
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi ini akan terus berjalan
sampai kondisi berhenti terpenuhi, oleh karena itu dalam sebuah fungsi rekursif perlu
terdapat 2 blok penting, yaitu blok yang menjadi titik berhenti dari sebuah proses rekursif
dan blok yang memanggil dirinya sendiri.
B. INPUT DATA
Penggunaan #include <stdio.h>
a. Fungsi scanf()
Fungsi scanf() digunakan untuk menginput data yang berupa data numerik, karakter dan
string dengan format tertentu. Format tersebut antara lain sebagai berikut :
%e yaitu membaca sebuah karakter
%s yaitu mrmbaca sebuah string
%i yaitu membaca sebuah integer (bilangan bulat)
%f atau %e yaitu membaca sebuah real (bilangan pecahan)
%x yaitu membaca sebuah bilangan hexadecimal
%o yaitu membaca sebuah bilangan octal
%u yaitu membaca bilangan tak bertanda

b. Fungsi gets()
Fungsi gets() dipergunakan untuk memasukkan data yang memiliki type karakter dan
tidak dapat digunakan untuk memasukan data yang memiliki type numeric dan tidak
memiliki format penentu.

c. Fungsi getchar()


Fungsi getchar() digunakan untuk membaca data yang memiliki type karakter.

d. Fungsi getch() dan getche()
Fungsi getch() dan getche() digunakan untuk membaca data bertype karakter. Karakter
yang dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER.
Jika menggunakan fungsi getch() karakter yang dimasukkan akan ditampilkan pada layar.
Sedangkan fungsi getche() karakter yang dimasukkan akan ditampilkan pada layar.

Penggunaan #include<iostream.h>
a. Cin>>var
Dalam format cin >> dipergunakan untuk menginput data bertype numeric, karakter dan
string.
b. Fungsi cin.get (var, sizeof(var))
Dalam peggunaan fungsi cin.get(var, sizeof(var)) yaitu untuk menginput string lebih dari
satu kata, namun akan mengakibatkan kesalahan jika dalam satu program menggunakan
perintah ini lebih dari satu kali. Untuk mengatasi permasalahan tersebut dapat
menggunakan perintah cin.getline().
C. OUTPUT DATA
Penggunaan #include <stdio.h>
a. Menampilkan data ke layar
Fungsi printf() digunakan untuk menampilkan semua jenis data numeric dan
karakter.
Fungsi puts() digunakan untuk menampilkan data karakter atau string.
Fungsi putchar() digunakan untuk menampilkan sebuah karakter atau string.
b. Menampilkan float atau bilangan pecahan
Bentuk umum :
printf("%m.nf", argument);
m : panjang range
n : jumlah digit dibelakang koma
argument : variable atau nilai yang ditampilkan



Contoh :
Printf(%5.3, nilai);
Contoh diatas dapat diartikan variabel nilai akan ditampilkan sebanyak 5 digit dengan 3
angka dibelakang koma.

Penggunaan #include <iostream.h>
a. Menampilkan data ke layar
cout<<var;
cout<<konstanta;
b. Menampilkan float atau bilangan pecahan
Dalam menampilkan bilangan pecahan dapat menggunakan perintah setprecision(n),
namun perlu diketahui bahwa diperlukan juga penambahan file include iomanip.h, yang
berarti bahwa n menyatakan jumlah kepresisian.
Contoh :
Cout << setprecision(7) ;
Contoh diatas dapat diartikan bahwa variabel nilai akan ditampilkan sebanyak 7
digit.

D. PENERAPAN REKURSIF
a. Mencetak nilai dari parameter
Fungsi ini mencetak nilai dari parameter yang dilempar kepadanya. Jika nilai dari
parameter tersebut > 0, fungsi akan mencetak nilai dari parameter tersebut dan kemudian
memanggil dirinya lagi, jika tidak, program berhenti.
b. Fungsi pangkat
Fungsi ini digunakan untuk menghitung nilai :

dengan n berua bilangan bulat positif.


Contoh : Menghitung 10 pangkat n atau 10

dengan menggunakan fungsi rekursif.


Secara notasi pemrograman dapat ditulis :
10
0
= 1.(1)
10

=10
01
..(2)


10
3
=10*10
2








Untuk menghitung 10

, maka fungsi harus memanggil nilai 10


01
yang telah diperoleh.


E. 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.




10
2
=10*10
1

10
1
=10*10
0

10
0
=1


BAB II
PENJELASAN PROGRAM

Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan pemrograman
C++ secara sederhana sesuai dengan modul praktikum 6 pada Program Praktikum 2.1, Program
Praktikum 2.2, program praktikum 2.4 Program praktikum 2.5 dan Program praktikum 2.6 C++
sederhana.
Listing Program Praktikum 2.1
/*
* programpraktikum2.1.cpp
*
* Created on: May 14, 2014
* Author: Abaz_Malik
*/

#include <stdio.h>
#include <conio.h>

int main()
{
char nama[20];

printf("Masukan nama anda : ");
gets(nama);
printf("Halo, nama anda adalah %s", nama);
getche();

return 0;

}


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



Penjelasan Program Praktikum 2.1
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. <stdio.h>, mendefinisikan nama-nama makro sebagai ekspresi konstanta integral positif (
agar kita dapat menggunakan printf dan scanf)
4. <conio.h>, melakukan konsol input dan output dari sebuah program.
5. Printf, mengirim output di format ke layar
6. Getch, untuk mendapatkan karakter dari stream

Listing Program Praktikum 2.2
/*
* programpraktikum2,2.cpp
*
* Created on: May 14, 2014
* Author: Abaz_Malik
*/

#include<iostream>
using namespace std;


int main()
{
char nama[20];
cout<<"Masukan nama anda : ";
cin.getline(nama,sizeof (nama));
cout<<"Hallo, nama anda adalah "<<nama;

}


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



Penjelasan Listing Program 2.2 :
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. Cout adalah kepanjangan dari character out, dugunakan untuk menampilkan teks di layar monitor.
6. Cin.getline, untuk menangani kesalahan jika dalam satu program membaca atau menginput string
lebih dari satu kata

Perbandingan Program Praktikum 2.1 da 2.2 :
a. Dalam Program praktikum 2.1 dan 2.2 perbedaanya jika program 2.1 menggunakan
Borland kalau 2.2 menggunakan eclipse indigo C++.
b. Sintak dasar program berbeda tetapi maksudnya sama seperti :
1. Printf() sama dengan cout<<var
2. Scanf() sama dengan cin>>var
c. Dan hasil dari program 2.1 dan 2.2 berbeda karena penggunaan eclipse pada program ini.
Program 2.1 tidak dapat dibaca dalam elclipse indigo C++.








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

#include <stdio.h>
#include <conio.h>

using namespace std;
int main()
{
float nilai;

puts("Masukan nilai praktikum anda : ");
scanf("%f", &nilai);
printf("Nilai yang anda peroleh %5.3f \n", nilai);
printf("Apakah anda suka mendapat nilai %6.4f ?", nilai);
getche();

}

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









Listing Program Praktikum 2.4
/*
* programpraktikum2.4.cpp
*
* Created on: May 14, 2014
* Author: Abaz_Malik
*/

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
float nilai;

cout<<"masukan nilai praktikum anda : ";
cin>>nilai;
cout<<"Nilai yang anda peroleh " << setprecision (5) << nilai;
cout<<"\nApakah anda suka mendapat nilai ";
cout<<setprecision(7) << nilai <<"?";

return 0;
}

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


Perbandingan Program Praktikum 2.3 dan 2.3 sama dengan 2.1 dan 2.2
Perbandingan Program Praktikum 2.3 da 2.4 :
a. Dalam Program praktikum 2.3 dan 2.4 perbedaanya jika program 2.3 menggunakan
Borland kalau 2.4 menggunakan eclipse indigo C++.
b. Sintak dasar program berbeda tetapi maksudnya sama seperti :
1. Printf() sama dengan cout<<var
2. Scanf() sama dengan cin>>var


c. Dan hasil dari program 2.3 dan 2.4 berbeda karena penggunaan eclipse pada program ini.
Program 2.3 tidak dapat dibaca dalam elclipse indigo C++.


Listing Program Praktikum 2.5
/*
* programpraktikum2.5.cpp
*
* Created on: May 14, 2014
* Author: Abaz_Malik
*/

#include <iostream>
using namespace std;

int main()
{
int i;

for (i=1;i<=10;i++)
{
cout<<"rekursif\n";
}


return 0;

}

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



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

#include <iostream>
using namespace std;
int main()
{
int x,n,i,hasil;

cout<<"Masukan angka : "; cin>>x;
cout<<"Masukan pangkat : "; cin>>n;

i=1; hasil=1;

for (i=1; i<=n; i++)
{
hasil=hasil*x;
}
cout<<"Hasil : "<<hasil;

return 0;
}


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










BAB III
KESIMPULAN
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi ini akan terus berjalan
sampai kondisi berhenti dipenuhi, oleh karena itu fungsi rekursif perlu terdapat 2 blok penting,
yaitu blok yang menjadi titik berhenti dari sebuah proses rekursif dan blok yang memanggil
dirinya sendiri. Seperti contoh Program Praktikum 2.5, rekursif dipanggil kurang dari sama
dengan 10 kata, kata rekursif tidak akan lebih dari 10, karena sudah dibatasi. Kata lainya adalah
jika nilai dari parameter > 0, fungsi akan mencetak nilai dari parameter tersebut dan kemudian
memanggil dirinya lagi, jika tidak, program berhenti.






Referensi

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