• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM VII FUNGSI

N/A
N/A
Protected

Academic year: 2017

Membagikan "LAPORAN PRAKTIKUM VII FUNGSI"

Copied!
22
0
0

Teks penuh

(1)

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

(2)

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 {

(3)

}

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

(4)

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;

(5)

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;

(6)

}

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

(7)

}

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)

(8)

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 “*”, “-“.

(9)

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;

(10)

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

(11)

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); }

(12)

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

(13)

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:

(14)

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

(15)

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

(16)

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.

(17)

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;

(18)

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;

(19)

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;

}

(20)

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.

(21)

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.

(22)

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

Referensi

Dokumen terkait

- Karnaugh Map hanya cocok digunakan jika fungsi Boolean mempunyai jumlah variable paling banyak 6 buah, jika variable yang terlibat pada suatu fungsi

 Kriteria , diperlukan kriteria dalam bentuk angka, ekspresi, referensi sel, teks, atau fungsi yang menentukan sel apa yang akan ditambahkan.. Jika kriteria adalah numerik, tanda

Indikator zatwarna ditambahkan pada larutan logam pada saat awal sebelum dilakukan titrasi dan akan membentuk kompleks berwarna dengan sejumlah logam kecil.. Indikator yang

jika tubuh diasumsikan sebagai satu kompartemen, tidak berarti bahwakadar obat sama di dalam setiap jaringan atau organ, namun asumsi yang berlaku pada model tersebut ialah

Sedangkan untuk pisang yang ditambahkan dengan larutan asam askorbat 10% berupa larutan vitamin Cipi, UC-1000 dan perasan jeruk tidak mengalami oksidasi yakni tidak

Jika kalian telah memahami limit-limit fungsi tersebut dengan baik, kalian dapat menarik kesimpulan bahwa dalam perhitungan limit berlaku aturan-aturan (sifat-sifat tertentu),

Seperti contoh diatas, jika terdapat fungsi lain yang ditambahkan pada main(), maka variable local yang dideklarasikan dalam main tidak dapat digunakan pada fungsi

Jika suatu kelas BASE mempunyai suatu fungsi virtual VF dari kelas DERIVED yang diturunkan dari BASE juga mempunyai suatu fungsi VF yang sama tipnya, maka pemanggilan fungsi VF