LAPORAN PRAKTIKUM VII FUNGSI

  

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

  hitung(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

  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) {

  }

  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; 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<<"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 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

Script program :

  #include <iostream.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <iomanip.h> #define array 100 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.

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

  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 fungsi itu sendiri. Parameter yang dilewatkan berubah sebanyak fungsi itu dipanggil.

  

DAFTAR RUJUKAN

Tim Asisten Dosen. 2013. Modul 7.FUNGSI. Malang: Universitas Negeri Malang.

  Kadir, Abdul. 2003. Pemrograman C++. Yogyakarta: Penerbit ANDI.