laporan fungsi dalam c++
TRANSCRIPT
LAPORAN PRAKTIKUM VIIFUNGSI
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 MALANGFAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTROPRODI PENDIDIKAN TEKNIK INFORMATIKA
November 2013
FUNGSI
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
{
Dim a = angka*angkaConsole.writeln(“HasilPerkalian:” & a)
}
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);
dapatjugamerupakansuatukonstanhitung(2, 3);
tulis(„A‟);
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;
k= cari(i,j);
prin(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;
else return b;
}
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)
{
return purchase * 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 1;
else
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 “*”,
“-“.
Latihan Praktikum 4
Pemrograman C++
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<<"MencariNilai Fibonacci\n";
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
Script program :#include <iostream.h>
#include <conio.h>
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);
}
Output Program:
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 nilaifaktorial 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:
Algoritma:
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 jugadiinputkan.
Bahasa Pemrogramam : C++
Compiler : MinGW Developer Studio
Script program :#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <iomanip.h>
#define array 100
long gaji_pokok;
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];
cout<<endl;
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.
Deskripsi:
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<<"1. Operasi Penjumlahan"<<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;
break;
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.
2. Operasi Pengurangan.
3. Operasi Perkalian.
4. Operasi Pembagian.
4. tambah= A+B
kurang= 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.
6. Call by value merupakan pemanggilan fungsi dengan
melewatkan nilai paramater variabel dalam definisi fungsi.
7. Fungsi rekursif adalah fungsi yang memanggil dirinya
sendiri, artinya fungsi tersebut dipanggil di dalam tubuh