MENGENAL FUNGSI DALAM C++
Fungsi Dalam C++
|
- Untuk mengurangi pengulangan program yang sama
- Agar program menjadi terstruktur, rapi dan lebih mudah dikembangkan.
2. STRUKTUR FUNGSI
Sebuah fungsi sederhana mempunyai bentuk penulisan sebagai berikut:
return_type nama_fungsi(parameter) { pernyataan }
Keterangan:
- return_type adalah nilai balik saat fungsi dipanggil
- nama_fungsi, biasanya disesuaikan dengan kegunaan dari fungsi, namun boleh ditulis secara bebas dengan ketentuan tidak menggunakan spasi dan nama-nama fungsi yang memiliki arti sendiri.
- parameter/argumen, diletakan di antara tanda kurung setelah nama fungsi, argumen digunakan sebagai nilai masukan untuk fungsi dan dapat dibuat lebih dari satu atau tidak sama sekali.
#include <iostream.h> #include <conio.h> void hello() { cout << "Hello Everyone\n"; } void main() { hello(); hello(); getch(); }
Output:
Hello Everyone
Hello Everyone
3. FUNGSI DENGAN PARAMETER
- parameter formal, yaitu variabel yang terdapat dalam definisi fungsi.
- parameter aktual, yaitu variabel atau nilai yang digunakan saat pemanggilan suatu fungsi.
#include <iostream.h> #include <conio.h> void tambah(int a, int b) { cout << a + b << endl; } void main() { tambah(10, 12); tambah(100, 200); getch(); }
Output:
22
300
4. PROTIPE FUNGSI
- Nilai balik dari fungsi
- Jumlah parameter yang digunakan fungsi
- Tipe data dari masing-masing parameter yang digunakan fungsi
#include <iostream.h> #include <conio.h> //definisi prototipe void tambah(int a, int b); void kurang(int a, int b); void main() { tambah(10, 12); tambah(100, 200); kurang(30, 45); kurang(200, 125); getch(); } void tambah(int a, int b) { cout << a + b << endl; } void kurang(int a, int b) { cout << a - b << endl; }
Output:
22
300
-15
75
5. NILAI BAWAAN PARAMETER
#include <iostream.h> #include <conio.h> void hello(int jum=1); // Prototipe fungsi void main() { clrscr(); hello(); hello(3); getch(); } void hello(int jum) { for (int i = 0; i < jum; i ++) { cout << " C++ " << endl; } cout << " Selesai " << endl; }
Output:
C++
Selesai
C++
C++
C++
Selesai
6. PASS BY VALUE
#include <iostream.h> #include <conio.h> void perkalian(int a, int b, int c); void main() { int a = 10, b = 30, c = 0; cout << "\nNilai c SEBELUM fungsi perkalian dipanggil : " << c; perkalian(a, b, c); cout << "\nNilai c SETELAH fungsi perkalian dipanggil : " << c; getch(); } void perkalian(int a, int b, int c) { c = a * b; cout << "\nNilai c DALAM fungsi perkalian " << c; }
Output:
Nilai c SEBELUM fungsi perkalian dipanggil : 0
Nilai c DALAM fungsi perkalian 300
Nilai c SETELAH fungsi perkalian dipanggil : 0
7. PASS BY REFERENCE
#include <iostream.h> #include <conio.h> void perkalian(int a, int b, int &c); void main() { int a = 10, b = 30, c = 0; cout << "\nNilai c SEBELUM fungsi perkalian dipanggil : " << c; perkalian(a, b, c); cout << "\nNilai c SETELAH fungsi perkalian dipanggil : " << c; getch(); } void perkalian(int a, int b, int &c) { c = a * b; cout << "\nNilai c DALAM fungsi perkalian " << c; }
Output:
Nilai c SEBELUM fungsi perkalian dipanggil : 0
Nilai c DALAM fungsi perkalian 300
Nilai c SETELAH fungsi perkalian dipanggil : 300
8. FUNGSI YANG MENGEMBALIKAN NILAI
#include <iostream.h> #include <conio.h> int tambahkan(int a, int b); long kuadrat(long a); void main() { int a = 10, b = 30, c = 0; a = kuadrat(a); b = kuadrat(b); c = tambahkan(a, b); cout << "nilai c sekarang = " << c; getch(); } int tambahkan(int a, int b) { return a + b; } long kuadrat(long a) { return a * a; }
nilai c sekarang = 1000
9. LINGKUP VARIABEL
#include <iostream.h> #include <conio.h> void lokal(); void main() { int a = 25; cout << "\nNilai a dalam fungsi main = " << a; lokal(); cout << "\nNilai a dalam fungsi main = " << a; getch(); } void lokal() { int a=70; cout << "\nNilai a dalam fungsi lokal = " << a; }
Output:
Nilai a dalam fungsi main = 25
Nilai a dalam fungsi lokal = 70
Nilai a dalam fungsi main = 25
b. Variabel Eksternal
#include <iostream.h> #include <conio.h> int a = 77; void lokal(); void main() { a = 25; cout << "\nNilai a dalam fungsi main = " << a; lokal(); cout << "\nNilai a dalam fungsi main = " << a; getch(); } void lokal() { a+=7; cout << "\nNilai a dalam fungsi lokal = " << a; }
Output:
Nilai a dalam fungsi main = 25
Nilai a dalam fungsi lokal = 32
Nilai a dalam fungsi main = 32
c. Variabel Statis
- jika variabel statis bersifat lokal, maka variabel hanya dikenal oleh fungsi dimana variabel dideklarasikan.
- jika variabel statis bersifat eksternal, maka variabel dapat dipergunakan oleh semua fungsi yang terletak pada file yang sama.
- jika nilai variabel statis tidak diberikan, secara otomatis akan diberikan nilai nol.
Contoh 10:
#include <iostream.h> #include <conio.h> void saya_ingat(); void main(){ int mana = 50; clrscr(); saya_ingat(); saya_ingat(); saya_ingat(); cout << " main() : mana = " << mana << endl; getch(); } void saya_ingat() { static int mana = 77; mana ++; cout << " Saya_ingat () : mana = " << mana << endl; }
Output:
Saya_ingat () : mana = 78
Saya_ingat () : mana = 79
Saya_ingat () : mana = 80
main() : mana = 50
10. OVERLOADING FUNCTION
#include <iostream.h> #include <conio.h> int kuadrat(int angka); long kuadrat(long angka); float kuadrat(float angka); void main() { int a = 200; float b = 50.56; long c = 120; cout << a << " dikuadratkan menjadi " << kuadrat(a) << endl; cout << b << " dikuadratkan menjadi " << kuadrat(b) << endl; cout << c << " dikuadratkan menjadi " << kuadrat(c) << endl; getch(); } int kuadrat(int angka){ return (angka * angka); } long kuadrat(long angka) { return (angka * angka); } float kuadrat(float angka) { return (angka * angka); }
Output:
200 dikuadratkan menjadi 40000
50.56 dikuadratkan menjadi 2556.31
120 dikuadratkan menjadi 14400