download

Matakuliah
Tahun
: T0456 / Algoritma dan Metode Object
Oriented Programming
: 2007
FUNCTIONS
Pertemuan 9
Learning Outcomes
Pada akhir pertemuan ini, diharapkan:
Mahasiswa dapat menghasilkan program yang terdiri atas
fungsi-fungsi yang sesuai
Buku Referensi:
C++ - How to program, Deitel & Deitel,
Prentice Hall, 2001.
Websites:
http://www.deitel.com
3
Bina Nusantara
Outline Materi
•
•
•
•
•
•
•
•
Declaration & Definition
Argument & Default Argument
Passing by Value
Passing by Reference
Return Value
Fungsi Recursive
Function Overloading
Inline Function
Bina Nusantara
Function
• Merupakan sekumpulan instruksi yang membentuk satu
unit serta memiliki nama
• Fungsi digunakan untuk membantu organisasi program
dan mengurangi besar (size) program
Bina Nusantara
Format deklarasi fungsi
type function_name (<argument_list>) {
<statement_list>
}
Dimana:
type  tipe data dari return value
function_name  nama fungsi sesuai C++
argument_list  variabel input
statement_list  kumpulan instruksi
Bina Nusantara
Argument (function parameter)
Merupakan data yang dikirim dari program ke fungsi dan
sebaliknya.
Argument dipergunakan untuk mengirim data yang akan diproses.
Bina Nusantara
2 jenis pengiriman argument
Passing by value
• Yang dikirim adalah nilai dari variabel.
• Perubahan terhadap argumen dalam fungsi tidak mempengaruh
nilai variabel tersebut.
Passing by reference
• Yang dikirim adalah reference (pointer) dari variabel.
• Perubahan terhadap argumen dalam fungsi mempengaruhi nilai
variabel tersebut.
• Jenis data yang dikirim harus berupa variabel, tidak boleh
konstanta
Bina Nusantara
Contoh program passing by value
#include <iostream.h>
// deklarasi fungsi (function declaration)
void print (int num);
void main(){
int num = 7007;
print(num);
}
// definisi fungsi (function definition)
void print (int num){
cout << “ Nilai bilangan : “ << num++
<<endl;
}
Bina Nusantara
Contoh program passing by reference
#include <iostream.h>
// deklarasi fungsi (function declaration)
void KaliDua (int & num) ;
void main() {
int num = 7007;
KaliDua(num);
}
// definisi fungsi (function definition)
void KaliDua (int & num)
{
num = num * 2;
}
Bina Nusantara
Default Argument
Suatu nilai tertentu yang akan dipakai sebagai argumen
bila fungsi tidak dipanggil dengan argumen lengkap
Contoh program:
#include<constream.h>
void print (int num=100); //function dengan default arg
void main() {
int num = 7007;
print(); //function call tanpa argumen
print(num); //function call dengan argumen lengkap
getch();
}
void print (int num) {
cout<<"Nilai bilangan : “ << num<< endl;
}
Bina Nusantara
Return value
Satu fungsi setelah melaksanakan pekerjaan, maka akan
mengirimkan hasil.
Hasil dari fungsi dikembalikan dengan statement return
Bina Nusantara
Contoh Return value
#include<constream.h>
int CariBilTerbesar (int b1, int b2, int b3);
void main() {
int bil1, bil2, bil3, bilMax;
cout<<"Masukkan 3 bilangan: ";
cin>>bil1 >> bil2 >> bil3;
bilMax = CariBilTerbesar (bil1, bil2, bil3);
cout<<"Bilangan terbesar adalah "<<bilMax;
getch();
}
int CariBilTerbesar (int b1, int b2, int b3){
int bMax b1;
if (b2 > bMax)
bMax = b2;
if (b3 > bMax)
bMax = b3;
return bMax; //return value bMax
}
Bina Nusantara
Fungsi Recursive
Fungsi recursive adalah fungsi yang memanggil dirinya
sendiri
Dalam recursive fungsi harus ada kondisi
pemberhentian.
Bina Nusantara
Contoh Fungsi Recursive
long Factorial(int n) {
long hasil = 1;
if (n == 0)
return 1;
else {
hasill = n * Factorial(n – 1);
return hasil;
}
}
Bina Nusantara
Function Overloading
• Satu fungsi yang dapat melakukan aktivitas yang berbeda tergantung dari data
yang diterima.
• Pada C++ fungsi dapat mempunyai nama yang sama namun dengan tugas
yang berbeda, hal ini disebut function overloading atau trivial polymorphism
(semu).
• Function overloading dapat diterapkan bila tiap fungsi mempunyai function
signature (ciri khas fungsi) yang berbeda.
• Function signature terdiri atas:
1. Jenis tipe data argumen
2. Jumlah argumen
3. Urutan letak argumen
Bina Nusantara
Contoh Overloading
#include<constream.h>
void print(int i);
void print(char ch);
void print(char ch, int i);
void print(int i, char ch);
void main() {
print(10);
print('A');
print('A', 10);
print(7, 'X');
getch();
}
void print(int i){// function definition
cout << "Integer : " << i << endl;
}
void print(char ch){
cout << "Character : " << ch << endl ;
}
void print(char ch, int i){
for ( int j = 0; j < i; j++ )
cout << ch << endl;
}
void print(int i, char ch){
cout << "Integer: " << 8 << i << endl;
cout << "Character: " << 8 << ch<< endl;
}
Bina Nusantara
Inline Function
Fungsi ini bermanfaat menghemat memori, dengan cara
mengabungkan fungsi kedalam program utama.
#include <iostream.h>
float lbstokg(float pounds) {
return (0.453592 * pounds);
}
void main(){
float lbs; // libras
cout << “Enter your weight pounds : “;
cin >> lbs;
cout << “Your weght in Kilograms is “
<< lbstokg(lbs);
}
Bina Nusantara
Diskusi dan Tanya Jawab
Latihan soal
19
Bina Nusantara