laporan fungsi dalam c++

28
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

Upload: universitasnegerimalang

Post on 24-Jan-2023

1 views

Category:

Documents


0 download

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

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.