LAPORAN PRAKTIKUM VII
FUNGSI
Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++
Dibimbing oleh
Bapak Wahyu Sakti Gunawan Irianto
Oleh:
NURILA WAHYUNI
NIM : 140533601280
S1 PTI’14 OFF B
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
OKTOBER 2014
A. Tujuan
Setelah mempelajari bab ini di harapkan mahasiswa akan mampu :
1.
Mahasiswa mampu memahami
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. DASAR TEORI
1. Pengantar Fungsi
Sebuah fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama. Nama ini
selanjutnya dapat dipanggil beberapa kali di beberapa tempat dalam program.
Tujuan pembuatan fungsi adalah:
Memudahkan dalam mengembangkan program. Yang menjadi kunci dalam
pembuatan program yang terstruktur.
Fungsi main ( )
Fungsi a ( ) Fungsi b ( ) Fungsi c ( )
Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( )
Gambar1.1 konsep program dibagi menjadi sejumlah modul
Keuntungan menggunakan fungsi pada pemrograman atau fungsi lainnya adalah:
Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih
sederhana atau kecil
Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program
Dapat menggunakan kode yang ditulis berbagai program yang berbeda
Memecahkan program sulit dari program besar menjadi kecil (menjadi tiap
bagian-bagian), sehingga dapat dikerjakan oleh progremer-progremer atau dipecah menjadi
beberapa tahap, sehingga memudahkan pengerjaan suatu projek
Menyembuyikan informasi dari user, sehingga mencegah adanya perbuatan yang
tidak di inginkan seperti, memodifikasi atau mengubah program yang telah dibuat
Meningkatkan kemampuan pelacakan kesalahan, jika terjadisuatu kesalahan, kita
hanya mencari fungsi yang bersangkutan saja, tidak perlu mencari kesalahan tersebut
di seluruh program.
Pada umunya, fungsi memerlukan masukan yang disebut parameter atau argument.
Hasil akhir fungsi akan berupa nilai (nilai balik fungsi).
Tipe data berfungsi untuk menentukan tipe keluaran fungsi yang dapat berupa salah satu tipe
data C++ yang berlaku, misalnya char atau integer.
Default
tipe data atau tipe data yang tidak disebutkan, maka akan dianggap sebagai integer.
Call by Value dan Call by Reference
Fungsi merupakan blok dari kode yang dirancang untuk melakukan tugas khusus. Tujuan
pembuatan funsi 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(nilai balik fungsi). Bentuk umum sebuah fungsi
adalah:
TypeFungsi namaFungsi (parameter)
{
//Tubuh fungsi
}
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.
a.
Call by Value
float purchase = 4000;
float tax = calcSalesTax(purchase);
b. Call by Reference
Pemanggilan dengan referensi merupakan suatu usaha melewatkan alamat dari suatu
variabel ke dalam fungsi. Dengan pengubahan dilakukan di dalam fungsi untuk mengubah
variabel di luar fungsi. Misal:
A bernilai 20 -> X juga bernilai 20
B bernilai 30 -> Y juga bernilai 30
Selanjutnya nilai X dan Y diproses tetapi nilai A dan B akan tetap. Metode Call by
Reference menggunakan operator pointer „&‟ dan „*‟ untuk mengirimkan alamat variable
ke suatu fungsi.
c. Fungsi Rekursif
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.
d. Prototype Fungsi
Fungsi tidak dapat digunakan kecuali sudah dideklarasikan. Untuk melihat hal ini
perhatikan contoh berikut :
Printf (“Hai\n”); }
Deklarasi fungsi dikenal dengan sebutan prototype fungsi. Prototype ini berupa :
Nama fungsi
Tipe nilai balik fungsi
Jumlah dan tipe argument
Lembar Jawaban
Latihan 1
Nama Kegiatan
:
Mencari
Volume suatu benda
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
int panjang, lebar, tinggi, hasil;
cout<<" Panjang ="; cin>>panjang;
cout<<" Lebar ="; cin>>lebar;
cout<<" Tinggi ="; cin>>tinggi;
cout<<"\nJadi pada volume suatu benda adalah = " << hasil; getch();
}
Output Program :
Source code Program
Fungsi
Gambar1. Hasil eksekusi dari Program Fungsi
Penjelasan Program
:
Program di atas menggunakan file header iostream karena menggunakan cout dan cin, conio
karena menggunakan getch Lalu pertama program akan menampilkan tampilan cout :
panjang ,jadi kita diminta untuk memasukkan nilai panjang terlebih dahulu kemudian kita enter,
maka akan muncul tampilan lebar dan kita input nilai lebar yang kita inginkan lalu enter,maka
akan muncul tampilan lagi tinggi dan inputkan nilai tinggi yang kita inginkan dan enter,terakhir
program akan menampilkan Volume dari nilai yang telah kita masukkan sebelumnya.Didalam
program akan terjaadi proses penghitungan sebelum menampilkan nilai dari Volume dengan
rumus yang kita tulis sebelumnya (volume = p*l*t;). Outputan program pada
Gambar1. Hasil
Latihan 2
Nama Kegiatan
:
Program
Prototype
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
#include <iostream.h>
//Fungsi yang tidak mengembalikan nilai//
int tampilkan(){
cout<< "\n +=======================================================+"; cout<< "\n | Nurila Wahyuni |\n"; cout<< "\n | NIM : 140533601280 |\n"; cout<< "\n | PTI'14 off B |\n"; cout<< "\n +=======================================================+";
//Menampilkan teks dalam "" cout<<"\n ";
cout<<"\n Hai PTI.."; }
int main(){
//Memanggil fungsi tampilan tampilkan();
}
Output Program :
Source code Program
Prototype Function
Gambar2. Hasil eksekusi dari Program Prototype Function
Menggunakan file header iostream karena menggunakan cout. Program ini hanya akan
menampilkan Hai PTI. . karena pada script hanya menuliskan (
cout<<"Hai PTI..";). Dan
hasil outputannya pada
Gambar2. Hasil eksekusi dari Program Prototype Function.
Latihan 3
Nama Kegiatan
:
Program
Prototype Function
Kalkulasi pajak
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
#include <iostream.h> //variabel global
float b_pajak = 0.1;
//prototype fungsi (pengenalan fungsi)
float kalkulasi_pajak (float pembelian);
int main(){
cout<<"\n Masukkan pembelian :"; cin>>beli;
//pemanggilan fungsi kalkulasi_pajak
float pajak = kalkulasi_pajak(beli);
Output Program :
Source code Program
Prototype Function
Gambar3. Hasil eksekusi dari Program Prototype Function
Penjelasan Program
:
Program diatas menggunakan file header iostream karena menggunakan cout dan cin.
Cout berfungsi untuk menampilkan data yang telah kita tuliskan di script program dan Cin
sebagai perintah kita untuk meng inputkan nilai yang kita inginkan.Pertama program akan
menampilkan tampilan “masukkan pembelian” yang mana kita diminta untuk memasukkan nilai
dari pembelian,setelah kita masukkan nilai tertentu kemudian kita enter ,maka akan
menampilkan hasil tampilan pajak pembelian yang kita terima,dan kita enter lagi maka program
akan keluar dengan sendirinya.Dengan rumus yang kita masukkan
float b_pajak = 0.1maka pajak akan diketahui. Dan sesuai dengan
Gambar3. Hasil eksekusi dari
Program
Latihan 4
Nama Kegiatan
:
Program
Prototype Function
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
#include <stdio.h> #include <conio.h> #include <windows.h> int cari(int n1, int n2); void prin(int m);
int cari (int a,int b){ if (a>b){
void prin (int m){
printf("\n +==================================================+");
Output Program :
Source code Program
Prototype Function
Gambar4. Hasil eksekusi dari Program Prototype Function
Penjelasan Program
:
Program ini adalah program yang digunakan untguk mencari nilai terbesar dari nilai input yang
dituliskan didalam script
int i = 5; - int j = 7;Program ini menggunakkan header
conio,stdio,dan windows , Program ini menggunakan operator aritmatika > yang mana akan
menentukan bilangan mana yang merupakan bilangan terbesar.Program akan langsung
memproses tanpa harus menunggu inputan lagi,jadi ketika program dijalankan akan langsung
menampilkan hasil nilai yang terbesar
printf("Bilangan terbesar adalah %d\n",m);Latihan 5
Nama Kegiatan
: Program
Call by Reference
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
cout<<"Nilai sebelum pemanggilan fungsi :"<<endl; cout<<"Nilai a = "<<a<<".Nilai b = "<<b<<
endl<<endl; Rtukar(&a,&b);
cout<<"Nilai setelah pemanggilan fungsi Rtukar :"<<endl; cout<<"Nilai a = "<<a<<".Nilai b="<<b<<endl<<endl;
//Mengembalikan nilai kesemula a=99;
b=11;
//Call by Value
cout<<"Nilai sebelum pemanggilan fungsi : "<<endl; cout<<"Nilai a = "<<a<<".Nilai b = "<<b<<endl<<endl; Vtukar(a,b);
cout<<"Nilai setelah pemanggilan fungsi Vtukar : "<<endl; cout<<"Nilai a = " <<a<<".Nilai b = "<<b<<endl<<endl; return 0;
}
void Rtukar(int *px,int *py){ int temp;
temp = *px; *px = *py; *py = temp;
cout<<"Nilai pada fungsi dengan Call by Refence : "<<endl; cout<<"Nilai px = " <<*px<<".Nilai py = "<< *py<<endl<<endl; }
void Vtukar(int px,int py){ int temp;
temp = px; px =py; py = temp;
}
Output Program :
Program
Call by Reference
Gambar5. Hasil eksekusi dari Program Call by Reference
Penjelasan Program
:
Program ini adalah program yang digunakan untuk pemanggilan fungsi,Program diatas
menggunakan file header iostream karena menggunakan cout, conio karena menggunakan getch.
Menggunakan operator aritmatika “ * ”, “-“, operator relasional “<=”.Untuk input nilai nilai
dimasukkan ketika kita menuliskan script program
( int a,b; - a=99; - b=11; )yang
mana akan memproses dengan penghitungan untuk Rtukar dan Vtukar,untuk Rtukar
cout<<"Nilai a = "<<a<<".Nilai b="<<b<<endl<<endl;
setelah itu akan dikembalikan
untuk memproses Vtukar
cout<<"Nilai a = " <<a<<".Nilai b = "<<b<<endl<<endl;
laluhasil akan ditampilkan
Latihan 6
Nama Kegiatan
:
Program fungsi
Rekursif
pada faktorial
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
//Aplikasi rekursi pada faktorial// #include <stdio.h>
#include <conio.h> #include <windows.h> int faktorial (int a){
if(a == 1){
printf("\n \n");
printf("Mencari Nilai Faktortial\n"); printf("Masukkan nilai n = ");
scanf("%i",&x);
printf("\nFaktorial %i !=%i",x,faktorial(x)); getch();
}
Gambar6. Hasil eksekusi dari Program Call by Reference pada faktorial
Penjelasan Program
:
Program ini adalah program untuk Mencari Nilai Faktorial
,Program ini menggunakan file header
stdio karena menggunakan printf , conio karena menggunakan getch.Pertama program akan
menampilkan Mencarai Nilai Faktorial karena perintah
printf("Mencari Nilai Faktortial\ n");lalu masukkan nilai yang akan diinputkan atau nilai yang ingin diketahui faktorialnya
printf("masukkan nilai n = "); - scanf("%i",&x); - printf("\nFaktorial %i !=%i",x,faktorial(x));
Setelah itu nilai akan diproses dan ditampilkan kelayar,seperti pada
gambar.Dan terakhir tekan Enter untuk mengakhiri program tersebut.
Nama Kegiatan
:
Program fungsi
Rekursif pada fibonacci
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
//Aplikasi rekursif pada fibonacci// #include <stdio.h>
printf("Mencari Nilai Fibonacci \n"); printf("Masukkan nilai n = ");
scanf("%i",&x);
printf("\nFibonacci %i = %i",x,fibo(x)); getch();
}
Gambar7. Hasil eksekusi dari Program Call by Reference pada fibonacci
Penjelasan Program
:
Program untuk menentukan nilai Fibonacci dari suatu bilangan.Program ini menggunakan stdio
karena printf .Pertama program akan menampilkan Mencari Nilai Fibonacci printf("Mencari
Nilai Fibonacci \n"); lalu diminta untuk memasukkan Nilai yang akan diketahui nilai Fibonacci
nya printf("Masukkan nilai n = "); masukkan nilai yang diinginkan dan nilai tersebut akan
diproses scanf("%i",&x); - printf("\nFibonacci %i = %i",x,fibo(x)); Setelah diproses hasil
pemrosesan akan ditampilkan seperti pada gambar.Dan untuk keluar dari program tinggal tekan
enter maka program akan keluar dengan sendirinya. Dan diketahui nilai n= 9, maka
Fibonaccinya 9 adalah = 34. Sesuai dengan gambar di atas.
Praktikum1
Nama Kegiatan
:
Program
Fungsi yang menampilkan Permutasi
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
#include <iostream.h> #include <conio.h>
int faktorial (int x); int main() cout<<"\n =Program Menghitung Permutasi (nPr)= \n"; cout<<"\n ==========================================\n";
cout<<"- Permutasi ("<<n<<"P"<<r<<") = "<<permutasi;
cout<<"\n==========================================\n"; getche();
}
int faktorial (int a) {
Gambar1.1. Hasil eksekusi dari Program Fungsi yang menampilkan Permutasi
Penjelasan Program
:
Program ini adalah program yang Menampilkan Permutasian nPr
Menggunakan
fileheader yaitu
iostream,conio. Menggunakan getch.
Pertama program akan menampilkan tampilan Program Menghitung Permutasian nPr cout<<"=Program Menghitung Permutasi (nPr)=\n";lalu kita
diminta untuk memasukkan nilai input n dan r
cout<<"- Masukkan nilai n = "; cin>>n; - cout<<"- Masukkan nilai r = "; cin>>r;.Masukkan nilai yang
diinginkan setelah itu program akan memproses nilai tersebut dengan rumus
permutasi=faktorial(n)/faktorial(n-r);
maka hasil pemrosesan akan ditampilkan
cout<<"- Permutasi ("<<n<<"P"<<r<<") = "<<permutasi;sperti pada
gambar,program ini menggunkan system perulangan juga
return a*faktorial(a-1); .Untuk mengakhiri program tinggal tekan tombol Enter maka program akan keluar dengan
sendirinya. Dan hasil outputan program akan ditampilkan seperti pada
Gambar1.1. Hasil
eksekusi dari
Program
Fungsi yang menampilkan Permutasi
Nama Kegiatan
:
Program
Perhitungan dari Faktorial dan Fibonacci
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
#include <iostream.h> #include <conio.h>
int faktorial (int a) { cout<<"\n Masukkan Nilai n : ";cin>>x;
cout<<"\n ---\n"; cout<<"Faktorial "<<x<<" ! = "<<faktorial(x)<<endl;
cout<<"Fibonacci suku ke "<<x<<" = "<<fibo(x)<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; getch();
}
Gambar1.2. Hasil eksekusi dari Program Perhitungan dari Faktorial dan Fibonacci
Penjelasan Program
:
Program ini adalah program yang menghitung Faktorial dan Fobonacci,program menggunakan iostream karena menggunakan cout dan conio untuk getch.Pertama program akan menampilkan judul program “ Mencari Nilai Faktorial dan Fibonacci” cout<<"Mencari Nilai Faktorial dan Fibonacci\n";
lalu kita diminta untuk memasukkan nilai n yang mana nilai ini akan diproses dan ditentukan faktorialnya dan nilai fobonacci nya cout<<"Faktorial "<<x<<" ! = "<<faktorial(x)<<endl; -cout<<"Fibonacci suku ke "<<x<<" = "<<fibo(x)<<endl;
setelah dimasukkan dan
diproses hasil akan ditampilkan seperti gambar.Dan terakhir untuk mengakhiri program tekan
tombol Enter maka program akan keluar dengan sendirinya,program ini menggunakn
perulangaan. Dan hasil outputan akan di tampilkan seperti pada
Gambar1.2. Hasil eksekusi dari
Program
Perhitungan dari Faktorial dan Fibonacci
Tugas Rumah 1
Nama Kegiatan
:
Program
Fungsi yang menampilkan gaji Pegawai
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
long gajitotal()
{ cout<<" Gaji total pegawai adalah Sebesar : Rp. "<<gajibersih(); cout<<endl;
return 0; }
cout<<" Tunjangan Uang Makan : Rp. "; cin>>uang_makan;
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++) {
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<<" | PROGRAM PENGHITUNGAN GAJI |"<<endl;
cout<<" ---"<<endl<<endl; inputdata();
}
Output Program :
Source Program
Fungsi yang menampilkan gaji Pegawai
Gambar1.1b. Hasil eksekusi dari Program Fungsi yang menampilkan gaji Pegawai
Penjelasan Program
:
Program ini adalah program untuk
Menentukan gaji bersih dari gaji pokok dan menentukan bonus dalam %,Program ini menggunakan header iostream dan conio karena digunakan untuk cout dan getch.Pertama program akan menampilkan judul programnya cout<<"+ Menghitung Total gaji +\n";lalu kita diminta untuk memasukkan nilai inputan yang akan kita tentukan
bonusnya
cout<<"Masukkan Gaji pokok = ";cin>>gajipokok; - cout<<"Masukkan Bonus (dalam %)= ";cin>>bonus;lalu total gaji akan diketahui dan akan ditampilkan seperti
gambar diatas dengan rumus perhitungan
return bonus*gajipokok/100;return totalbonus()+gajipokok;program ini menggunakan perulangan.Dan terakhir untuk
Lembar Jawaban
Tugas Rumah 2
Nama Kegiatan
:
Program
Fungsi dengan Operasi Aritmatika
Bahasa Pemrogramam
:
C++
Compiler
:
MinGW Developer studio
Script program
:
cout<<"3. Operasi Perkalian"<<endl;
cout<<"4. Operasi Pembagian"<<endl; cout<<"X. KELUAR"<<endl;
cout<<"Pilihan Operasi (1-2-3-4-X): "; cin>>x;
switch(x) {
case '1' : cout<<"\n\nPenjumlahan\n"<<endl; cout<<"Masukan A= ";
cin>>A;
cout<<"Masukan B = ";
cin>>B; tambah= A+B;
cout<<"Hasil = "<<tambah<<endl; break;
case '2': cout<<"\n\nPengurangan\n"<<endl; cout<<"Masukan A : ";
cin>>A;
cout<<"Masukan B : "; cin>>B;
kurang= A-B;
cout<<"Hasil = "<<kurang<<endl; break;
case '3' : cout<<"\n\nPerkalian\n"<<endl; cout<<"Masukan A : ";
cin>>A;
cout<<"Masukan B : "; cin>>B;
cout<<"Hasil = "<<kali<<endl; break;
case '4' : cout<<"\n\nPembagian\n"<<endl; cout<<"Masukan A : ";
cin>>A;
cout<<"Masukan B : "; cin>>B;
cout<<"---"<<endl; getch();
return 0; }
}
Output Program :
Source Program Fungsi Aritmatika
Penjelasan Program
:
Program ini adalah program yang memuat menu menu perhitungan aritmatika,program
ini menggunakan header iostream dan conio karena menggunakan cout,cin dan getch.Program
ini juga menggunakan perintah break untuk mengakhiri kerja program tapi masih didalam
program.Pertama program akan menampilkan menu menu pilihan yang bisa kita pilih :
cout<<"MENU UTAMA :\n";
cout<<"=======================\n"; cout<<"1. Operasi Penjumlahan\n"; cout<<"2. Operasi Pengurangan\n"; cout<<"3. Operasi Perkalian\n"; cout<<"4. Operasi Pembagian\n"; cout<<"X. Keluar\n";
cout<<"\n---"; cout<<"\nMasukkan Pilihan = ";cin>>pil;
Script diatass sebagai menu pilihan,dan pada cin adalah menu yang digunakan untuk
memasukkan pilihan yang kita inginkan,lalu kita pilih menu mana yang kita inginkan dengan
memasukkan angka menu,missal kita ingin melakukan penjumlahan maka kita masukkan angka
1 pada menu masukkan pilihan maka kitaakan masuk pada program penjumlahan (lihat gambar)
yang mana kita diminta untuk memasukkan nilai yang akan kita jumlahkan ( nilai a dan nilai b )
rumus script untuk penjumlahan
int penjumlahan() {
return a+b;