C++ Fungsi

FUNGSI
           Fungsi (Function) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Kegunaan dari fungsi ini adalah untuk:

  • Mengurangi pengulangan penulisan program yang berulangan atau sama.
  • Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan

Pemanggilan Fungsi dapat berulang-ulang dengan cara memanggil nama fungsinya.


Fungsi dapat dibedakan menjadi 2.

  • Fungsi sederhana(tanpa parameter)
  • Fungsi Berparameter
Contoh penggunaan Fungsi Sederhana



FUNGSI DENGAN PARAMETER
         Parameter adalah nilai yang dapat kita masukkan ke dalam sebuah fungsi. Kita dapat mendefinisikan jumlah parameter berapapun sesuai dengan kebutuhan.

Terdapat dua macam parameter, yaitu:
  • parameter formal, yaitu variabel yang terdapat dalam definisi fungsi.
  • parameter aktual, yaitu variabel atau nilai yang digunakan saat pemanggilan suatu fungsi.

Perhatikan contoh berikut:
Contoh 2:
#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


PROTIPE FUNGSI
Prototipe fungsi digunakan untuk mendeklarasikan ke kompiler mengenai:

Nilai balik dari fungsi
Jumlah parameter yang digunakan fungsi
Tipe data dari masing-masing parameter yang digunakan fungsi

Contoh 3:
#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


NILAI BAWAAN PARAMETER
         Salah satu keistimewaan C++ adalah adanya kemampuan untuk menggunakan nilai bawaan (default) parameter fungsi. parameter yang mempunyai nilai bawaan nantinya dapat tidak disertakan didalam pemanggilan fungsi.
Contoh 4:
#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


PASS BY VALUE
         Melewatkan parameter dengan nilai (pass by value). Secara default argumen yang kita definisikan dalam fungsi bersifat pass by value, yang berarti akan dilewatkan ke dalam fungsi dan tidak akan mengalami perubahan setelah fungsi dijalankan. Perhatikan contoh berikut:
Contoh 5:
#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

PASS BY REFERENCE
         Melewatkan parameter dengaan rerefensi (pass by reference). Berbeda dengan pass by value yang tidak akan mempengaruhi nilai parameter setelah fungsi dijalankan, pass by reference akan mempengaruhi nilai setelah fungsi dijalankan. Untuk melewatkan parameter dengan referensi, tambahkan karakter ampersand ('&') di depan nama parameter. berikut adalah contoh sebelumnya yang telah diubah menjadi pass by reference:
Contoh 6:
#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


FUNGSI YANG MENGEMBALIKAN NILAI
         Pada saat kita membuat fungsi, sering kali kita ingin agar ketika fungsi dipanggil akan melakukan proses dan mengembalikan nilai tertentu. kita bisa menggunakan keyword return dalam fungsi untuk mengembalikan nilai ketika fungsi tersebut dipanggil. sebagai contoh, perhatikan script berikut:
Contoh 7:
#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; 
}
Output:
nilai c sekarang = 1000

LINGKUP VARIABEL
         Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam fungsi. Ada variabel yang hanya dikenal di suatu fungsi dan tidak dikenal pada fungsi lain. Namun ada juga variabel yang dapat diakses oleh semua fungsi.
  • Variabel Lokal
    variabel lokal adalah variabel yang dideklarasikan di dalam fungsi dan hanya dikenali dalam fungsi yang bersangkutan. Variabel lokal bisa juga disebut dengan variabel otomatis. Perhatikan contoh berikut:
Contoh 8:
#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

  • Variabel Eksternal
    Variabel eksternal adalah variabel yang dideklarasikan di luar fungsi dan bersifat global sehingga dapat digunakan bersama-sama tanpa harus dideklarasian berulang-ulang. perhatikan contoh berikut:
Contoh 9:
#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

  • Variabel Statis
    Variabel statis dapat berupa variabel lokal ataupun variabel eksternal. variabel statis ini mempunyai sifat antara lain:
    - 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


OVERLOADING FUNCTION
         Fungsi overloading berarti mendefinisikan beberapa fungsi dengan nama yang sama tetapi dengan parameter yang berbeda.
Contoh 11:
#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

Download Data C++ Fungsi (Klik Disini)
Sekian pembahasan dari C++ Fungsi. Semoga bermamfaat dan terima kasih.
Read More
loading...
loading...
loading...