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
© Copyright 2024 Paperzz