FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007
Bina Nusantara 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, Websites : 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 Merupakan sekumpulan instruksi yang membentuk satu unit serta memiliki nama Fungsi digunakan untuk membantu organisasi program dan mengurangi besar (size) program Function
Bina Nusantara type function_name ( ) { } Dimana: type tipe data dari return value function_name nama fungsi sesuai C++ argument_list variabel input statement_list kumpulan instruksi Format deklarasi fungsi
Bina Nusantara Merupakan data yang dikirim dari program ke fungsi dan sebaliknya. Argument dipergunakan untuk mengirim data yang akan diproses. Argument (function parameter)
Bina Nusantara 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 2 jenis pengiriman argument
Bina Nusantara #include // 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; } Contoh program passing by value
Bina Nusantara #include // 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; } Contoh program passing by reference
Bina Nusantara Suatu nilai tertentu yang akan dipakai sebagai argumen bila fungsi tidak dipanggil dengan argumen lengkap Contoh program: #include 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; } Default Argument
Bina Nusantara Satu fungsi setelah melaksanakan pekerjaan, maka akan mengirimkan hasil. Hasil dari fungsi dikembalikan dengan statement return Return value
Bina Nusantara #include 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 } Contoh Return value
Bina Nusantara Fungsi recursive adalah fungsi yang memanggil dirinya sendiri Dalam recursive fungsi harus ada kondisi pemberhentian. Fungsi Recursive
Bina Nusantara long Factorial(int n) { long hasil = 1; if (n == 0) return 1; else { hasill = n * Factorial(n – 1); return hasil; } Contoh Fungsi Recursive
Bina Nusantara 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 Function Overloading
Bina Nusantara #include 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; } Contoh Overloading
Bina Nusantara Fungsi ini bermanfaat menghemat memori, dengan cara mengabungkan fungsi kedalam program utama. #include float lbstokg(float pounds) { return ( * pounds); } void main(){ float lbs; // libras cout << “Enter your weight pounds : “; cin >> lbs; cout << “Your weght in Kilograms is “ << lbstokg(lbs); } Inline Function
Bina Nusantara 19 Diskusi dan Tanya Jawab Latihan soal