LAPORAN PRAKTIKUM VII
FUNGSI
Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++
Dibimbing oleh Bpk. Wahyu Sakti G.I
Oleh:
Ananda Putri Syaviri
130533608243
S1 PTI’13 OFF B
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI PENDIDIKAN TEKNIK INFORMATIKA
November 2013
A.
Tujuan
Mahasiswa mampu memahami fungsi:
1. Mahasiswa mampu memahami fungsi
2. Mahasiswa mampu mendeklarasikan dan mendefinisikan fungsi
3. Mahasiswa mampu menyelesaikan masalah menggunakan fungsi
4. Mahasiswa mampu memahami metode pemanggilan fungsi
5. Mahasiswa mampu membuat fungsi rekursif.
B.
DasarTeori.
Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas khusus. Tujuan
pembuatan fungsi adalah:
Program menjadi terstruktur
Dapat mengurangi duplikasi kode
Fungsi dapat di panggil dari program atau fungsi yang lain
Pada umumnya fungsi memerlukan masukan yang disebut parameter atau argument.
Hasil akhir fungsi akan berupa nilai(nilaibalikfungsi).
Bentuk umum sebuah fungsi adalah:
TypeFungsinamaFungsi (parameter) {//Tubuhfungsi }
Misalkan: DalamBahasa C++:
voidCkali(intangka) {int a=angka*angka;
cout<<”HasilPerkalian:”<<a<<endl; }
DalamBahasa Java:
public void Jkali(intangka) {
int a=angka*angka; system.out.println(“HasilPerkalian:” + a); }
DalamBahasa VB:
publicVkali(ByValangka As Integer) As Integer {
}
TypeFungsi berfungsi untuk menentukan tipe keluaran fungsi yang dapat berupa salah
satu tipe data C++ yang berlaku misalnya char atau int. Default tipe yang tidak
disebutkan dianggap sebagai int.
Contoh:
Ckali()
{
return(0); }
PROTOTYPE FUNCTION
Sebuah program C++ dapat terdiri dari banyak fungsi. Salah satu fungsi tersebut harus
bernama main(). Jika fungsi yang lain di tuliskan setelah fungsi main(), sebelum fungsi
main harus ditambahkan prototype function agar fungsi tersebut dapat dikenal. Hal
tersebut tidak berlaku jika penulisannya dilakukan sebelum fungsi main().
Call by Value vs Call by Reference
Ada duacarapemanggilanfungsiyaitu: 1. Call by value 2. Call by reference.
Call by Value
Pemanggilan fungsi dengan melewatkan nilai parameter variable dalam definisi
fungsi. Fungsi tsb akan mengolah nilai yang dikirimkan kepadanya
Misal:
float purchase = 4000;
float tax = calcSalesTax(purchase);
dapatjugamerupakansuatukonstan
Call by Reference
Pemanggilan dengan referensi merupakan suatu usaha melewatkan alamat dari
suatu variable ke dalam fungsi. Dengan pengubahan dilakukan di dalam fungsi untuk
mengubah variabel di luar fungsi.
Misal:
A bernilai 20 -> X jugabernilai 20
B bernilai 30 -> Y jugabernilai 30
Selanjutnyanilai X dan Y diprosestetapinilaiAdan B akan tetap. Metode Call by Reference
menggunakan operator pointer „& dan „* untuk mengirimkan alamat variabel kesuatu
‟
‟
fungsi. Untuk lebih jelasnya, kerjakancontoh script program berikut dan jawab
pertanyaanya!
Latihan Praktikum 1
Pemrograman C++
Nama Program
:Program Mencari nilai terbesar dari suatu data
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
/*fungsi*/#include <stdio.h>
//deklarasi fungsi
int cari(int n1, int n2); void prin (int m);
//main function main()
{
int i=5; int j=7; int k;
return 0; }
//<--function definition here int cari(int a,int b)
{
if (a>b) return a; else return b; }
void prin(int m) {
printf("Bilangan terbesar adalah:%d\n",&m); }
//end function definition
Output Program:
Algoritma:
1. Mulai.
2. Masukkan main function yang telah ditentukan.
main()
{
int i=5;
int j=7;
int k;
k= cari(i,j);
prin(k);
return 0;
}
3. Untuk fungsi definisi:
if (a>b) return a;
}
4. Bilangan terbesar adalah: %d \n”,m;
5. Cetak hasil.
6. Selesai.
Deskripsi:
Program di atas menggunakan file header stdio karena menggunakan printf.
Menggunakan fungsi cari yang berfungsi mencari dua bilangan yang memiliki dua parameter
yaitu a dan b yang bertipe data integer. Menggunakan
parameter formal variable. Menggunakan operator if else.Latihan Praktikum 2
Pemrograman C++
Nama Program
:Program Menentukan pajak pembelian
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
#include <iostream.h>//deklarasifungsi
intcalcSalesTax(float purchase, float taxRate= 0.1);
//main function main()
{
float purchase;
cout<<"Masukkanpembelian:"; cin>>purchase;
float tax= calcSalesTax(purchase);
cout<<"Pajakpembelianadalah:"<<tax<<endl;
return 0; }
intcalcSalesTax(float purchase, float taxRate) {
}
Output Program :
Algoritma:
1. Mulai.
2. Masukkan pembelian.
3. Pajak pembelian= calcSalesTax(purchase).
4. Cetak hasil pajak pembelian.
5. Selesai.
Deskripsi:
Menggunakan file header iostream karena menggunakan cout dan cin. Menggunakan
fungsi calcSalesTax dengan mengoperasikan 2 parameter yaitu purchase dan taxRate yang bertipe
float dengan batasan 0.1.
Latihan Praktikum 3
Pemrograman C++
Nama Program
:Program Contoh perbedaan program call by reference dan call by
value
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
/*aplikasirekursifpadafaktorial*/ #include <iostream.h>
intfaktorial(int a) {
if(a==1)
return (a*faktorial(a-1)); }
int main() {
int x;
cout<<"MencariNilaiFaktorial\n"; cout<<"Masukkannilai n=";
cin>>x;
cout<<"Faktorial "<<x<<"!="<<faktorial(x)<<endl; }
Output Program :
Algoritma:
1. Mulai.
2. Masukkan nilai n (faktorial).
3. Menghitung faktorial:
if(a==1)
return 1;
else
return (a*faktorial(a-1));
4. Cetak hasil.
5. Selesai.
Deskripsi:
Program diatas menggunakan file header iostream karena menggunakan cout dan cin.
Menggunakan fungsi faktorial. Menggunakan fungsi return. Menggunakan operator if else.
Menggunakan operator logika “==”, “!=”, operator aritmatika “*”, “-“.
Nama Program
:Program menghitung faktorial dengan fungsi rekursif
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
/*aplikasirekursifpadafibonacci*/ #include <iostream.h>
longfibo(long a) {
if(a==1 && a==2) return 1; else
returnfibo(a-1) + fibo(a-2); }
int main() {
int x;
cout<<"MencariNilai Fibonacci\n"; cout<<"Masukkannilai n=";
cin>>x;
cout<<"Fibonacci "<<x<<"="<<fibo(x)<<endl; }
Script yang telahdiperbaiki:
/*aplikasirekursifpadafibonacci*/ #include <iostream.h>
longfibo(long a) {
if(a==1 || a==2) return 1; else
return (fibo(a-1) + fibo(a-2)); }
int main() {
int x;
cout<<"Masukkannilai n="; cin>>x;
cout<<"Fibonacci "<<x<<"="<<fibo(x)<<endl; }
Output Program :
Algoritma:
1. Mulai.
2. Masukkan nilai fibonacci.
3. Menghitung fibonacci:
if(a==1 || a==2)
return 1;
else
return (fibo(a-1) + fibo(a-2));
4. Cetak hasil.
5. Selesai.
Deskripsi:
Program diatas menggunakan file header iostream karena menggunakan cout dan cin.
Menggunakan fungsi operator if else. Menggunakan fungsi long fibo(long a). Menggunakan
beberapa operator logika “==” dan “||”, operator aritmatika “+”, “-“.
Tugas Praktikum 1
Pemrograman C++
Nama Program
:Program untuk menampilkan permutasian nPr.
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
int faktorial (int x); int main()
{
int n, r, permutasi;
cout<<"Program Menghitung Permutasi (nPr)\n";
cout<<"|---Ananda Putri Syaviri---|\n"; cout<<"|---130533608243---|\n"; cout<<"|---PTI'13 B---|\n"; cout<<"Masukkan Nilai n: ";cin>>n;
cout<<"Masukkan Nilai r: ";cin>>r; permutasi=faktorial(n)/faktorial(n-r); cout<<"Permutasinya adalah: "<<permutasi; getch();
}
int faktorial (int n) {
int fak; if (n<=1) {
fak=1; }
else {
fak=n*faktorial(n-1); }
return (fak); }
Algoritma:
1. Mulai.
2. Masukkan nilai n
3. Masukkan nilai r
4. Permutasi :
int fak;
if (n<=1)
{
fak=1;
}
else
{
fak=n*faktorial(n-1);
}
return (fak);
5. Cetak hasil.
6. Selesai.
Deskripsi:
Program diatas menggunakan file header iostream karena menggunakan cout dan cin,
conio karena menggunakan getch. Menggunakan main fungsi faktorial. Menggunakan operator if
else. Menggunakan fungsi return(fak). Menggunakan operator aritmatika “*”, “-“, operator
relasional “<=”.
Tugas Praktikum 2
Pemrograman C++
Nama Program
:Program untuk menghitung nilai faktorial dan fibonanci dari
sebuah inputan yang dimasukkan.
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
#include <iostream.h> #include <conio.h>longintfaktorial (int A); longfibo (long a);
int main()
int r, hasil;
cout<<"Program MenghitungFaktorialdan Fibonacci\n"; cout<<"|---AnandaPutriSyaviri---|\n"; cout<<"|---130533608243---|\n"; cout<<"|---PTI'13 B---|\n"; cout<<"MasukkanNilai: ";
cin>>r;
hasil=faktorial(r);
cout<<"Hasil "<<r<<" Faktorialadalah "<<hasil<<endl; cout<<"Fibonacci "<<r<<" = "<<fibo(r)<<endl;
getch(); }
longintfaktorial (int A) {
if (A==1)
return(A); else
return (A*faktorial(A-1)); }
longfibo (long a) {
if (a==1||a==2) return 1; else
return (fibo(a-1)+fibo(a-2)); }
Output Program:
1. Mulai.
2. Masukkan nilai
3. Hasil fibonacci:
long int faktorial (int A)
{
if (A==1)
return(A);
else
return (A*faktorial(A-1));
}
long fibo (long a)
{
if (a==1||a==2)
return 1;
else
return (fibo(a-1)+fibo(a-2));
}
4. Cetak hasil.
5. Selesai.
Deskripsi:
Program diats menggunakan file header iostream karena menggunakan cout dan cin ,
conio karena menggunakan getch. Menggunakan fungsi main, fibo dan faktorial. Menggunakan
operator if else. Menggunakan operator logika “==”, “||”, operator aritmatika “+”<”-“.
Menggunakan fungsi return.
Tugas Rumah Praktikum 1
Pemrograman C++
Nama Program
: Program untuk menentukan jumlah gaji bersih dari gaji pokok
yang diinputkan ditambah dengan jumlah bonus juga diinputkan.
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
long tambahan; long bersih; long totalgaji=0; int n;
long gajibersih()
{ bersih = gaji_pokok + tambahan; return (bersih); }
long gajitotal()
{ cout<<" Gaji total pegawai adalah Sebesar : Rp. "<<gajibersih(); cout<<endl;
return 0; } long bonus()
{ cout<<" Masukkan Gaji Pokok : Rp. "; cin>>gaji_pokok;
cout<<" Masukkan Bonus : Rp. "; cin>>tambahan;
cout<<endl;
cout<<" ---+"<<endl<<endl; cout<<" Gaji Bersih : Rp. "<<gajibersih();
cout<<endl; gajitotal(); system("pause"); return 0; }
int inputdata()
{ char nama[array][20]; char nip[array][12]; cout<<endl<<endl;
cout<<"Masukan jumlah karyawan : "; cin>>n;
for(int i=0; i<n; i++) {
system("cls"); cout<<endl<<endl;
cout<<setw(40)<<"PEGAWAI "<<i+1; cout<<endl<<endl;
cout<<" Nama Pegawai "<<i+1<<" : "; cin>>nama[20];
cout<<" Nomor Induk Pegawai "<<i+1<<" : "; cin>>nip[12];
bonus(); } }
int main()
{ cout<<endl; cout<<" ---"<<endl; cout<<" | Ananda Putri Syaviri |"<<endl;
cout<<" | 130533608243 |"<<endl; cout<<" | S1 PTI offering B 2013 |"<<endl; cout<<" | |"<<endl; cout<<" | PROGRAM PENGHITUNGAN GAJI |"<<endl;
cout<<" ---"<<endl<<endl; inputdata();
}
Output Program:
Algoritma:
1. Mendeklarasi variabel global : nip, nama, Gaji_pokok, dan Bonus.
2. Mendeklarasi dan mendefinisi semua fungsi.
3. Pada fungsi main() :Memanggil fungsi inputdata().
Pada fungsi inputdata() :Untuk menampilkan gaji pokok.
Bonus memanggil fungsi bonus().
Untuk menampilkan gaji bersih, memanggil fungsi gajibersih().
Untuk menampilkan gaji total, memanggil fungsi gajitotal().
4. Program selesai.
Menggunakan 6 file header, isotream-conio-stdlib-string-iomanip-define array. Define
array 100 menunjukkan batasan mencapai 100. Menggunakan 5 fungsi yaitu main, input data,
bonus, gaji bersih, gaji total. Menggunakan fungsi return, system(“cls”) untuk menghapus layar,
system(“pause”) agar program tidak berhenti. Menggunakan perulangan for. Menggunakan array
satu dimensi. Menggunakan operator increment, relasional.
TugasRumahPraktikum2
Pemrograman C++
Nama Program
: Program MENU UTAMA yang berisi operasi aritmetika yang
berisi penjumlahan, pengurangn, perkalian dan pembagian .
BahasaPemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
#include <iostream>#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
awal:
char x;
float A, B;
double tambah,kurang,kali,bagi;
while (true)
{
cout<<"---PROGRAM ARITMATIKA---"<<endl;
cout<<"---MENU UTAMA---"<<endl;
cout<<"---Ananda Putri Syaviri 130533608243---"<<endl;
cout<<"---PTI'13 OFF B---"<<endl;
cout<<"2. Operasi Pengurangan"<<endl;
cout<<"3. Operasi Perkalian"<<endl;
cout<<"4. Operasi Pembagian"<<endl;
cout<<"X. KELUAR"<<endl;
cout<<"Pilihan Operasi (1-2-3-4-X): "<<endl;
cin>>x;
switch(x)
{
case '1' : cout<<"Penjumlahan"<<endl;
cout<<"Masukan A= "<<endl;
cout<<"Masukan B = "<<endl;
cin>>A;
cin>>B;
tambah= A+B;
cout<<"Hasil = "<<tambah<<endl;
break;
case '2': cout<<"Pengurangan"<<endl;
cout<<"Masukan A : "<<endl;
cout<<"Masukan B : "<<endl;
cin>>A;
cin>>A;
kurang= A-B;
cout<<"Hasil = "<<kurang<<endl;
break;
case '3' : cout<<"Perkalian"<<endl;
cout<<"Masukan A : "<<endl;
cout<<"Masukan B : "<<endl;
cin>>A;
cin>>B;
kali= A*B;
cout<<"Hasil = "<<kali<<endl;
case '4' : cout<<"Pembagian"<<endl;
cout<<"Masukan A : "<<endl;
cout<<"Masukan B : "<<endl;
cin>>A;
cin>>B;
bagi= A/B;
cout<<"Hasil = "<<bagi<<endl;
break;
case 'x':
cout<<"Terima Kasih"<<endl<<endl;
exit(0);
break;
default :
cout<<"KODE TIDAK SESUAI"<<endl;
cout<<"TERIMA KASIH"<<endl;
}
char q;
cout<<"ULANGI ARITMATIKA : (Y/N) ??" ;
cin>>q;
if(q=='Y'||q=='y')
goto awal;
else
if(q=='N'||q=='n')
goto akhir;
akhir :
cout<<"---"<<endl;
cout<<"---TERIMA KASIH---"<<endl;
cout<<"---ANANDA PUTRI SYAVIRI---"<<endl;
getch();
return 0;
}
Output Program :
Algo
rtima:
1. Mulai.
2. Masukkan main function char x, float A,B, double tambah, kurang, kali, bagi, while
(true).
3. Pilihan menu utama: (masukkan inputan =1-2-3-4-x)
1. Operasi Penjumlahan.
3. Operasi Perkalian.
4. Operasi Pembagian.
4.
tambah= A+Bkurang= A-B kali= A*B bagi= A/B
x=TERIMA KASIH
5.
Cetak hasil.6.
Inputan selain 1-x , maka “Kode tidak sesuai”7.
Jika ingin mengulang maka inputkan ‘y’||’Y’ atau ‘n’||’N’.8.
Input ‘y’||’Y’ maka kembali ke menu awal. Jika ‘n’||’N’ maka ke menu akhir “Terima kasih”.9.
Cetak hasil.10.
Selesai.Deskripsi:
Menggunakan 7 file header yaitu iostream, stdio, stdlib, math, conio dan windows.
Menggunakan tipe data integer, float, double dan char. Menggunakan perulangan switch case.
Menggunakan operator aritmatika “+”,”-“,”*”,”/”. Menggunakan fungsi exit, break.
Menggunakan fungsi return dan getch. Menggunakan operator if else untuk melakukan
perulangan. Menggunakan fungsi goto.
KESIMPULAN
1. Hasil akhir fungsi akan berupa nilai(nilai balik fungsi).
2. TypeFungsi berfungsi untuk menentukan tipe keluaran fungsi yang dapat berupa salah
satu tipe data C++ yang berlaku misalnya
char
atau
int
. Default tipeyang tidak disebutkan
dianggap sebagai
int
.
3. Jika fungsi yang lain di tuliskan setelah fungsi main(), sebelum fungsi main harus
ditambahkan prototype function agar fungsi tersebut dapat dikenal.
4. Ada dua cara pemanggilan fungsi yaitu: 1. Call by value 2. Call by reference
5. Metode Call by Reference menggunakan operator pointer „& dan „* untuk
‟
‟
mengirimkan alamat variable ke suatu fungsi.
7. Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri, artinya fungsi tersebut
dipanggil di dalam tubuh fungsi itu sendiri. Parameter yang dilewatkan berubah sebanyak
fungsi itu dipanggil.
DAFTAR RUJUKAN