Fungsi dalam C++
Fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu. Fungsi membantu memecah program menjadi bagian-bagian kecil yang lebih mudah dikelola.
Deklarasi dan Definisi Fungsi
// Deklarasi fungsi (prototipe)
tipe_return nama_fungsi(parameter);
// Definisi fungsi
tipe_return nama_fungsi(parameter) {
// Badan fungsi
return nilai; // Opsional
}
Jenis-jenis Fungsi
1. Fungsi tanpa parameter dan return value
void sapa() {
cout << "Halo, Selamat Datang!" << endl;
}
2. Fungsi dengan parameter tapi tanpa return value
void sapaNama(string nama) {
cout << "Halo, " << nama << "!" << endl;
}
3. Fungsi dengan parameter dan return value
int tambah(int a, int b) {
return a + b;
}
Parameter Fungsi
1. Parameter Biasa
void cetakInfo(string nama, int umur) {
cout << nama << " berumur " << umur << " tahun" << endl;
}
2. Parameter Default
void cetakPesan(string pesan = "Pesan default") {
cout << pesan << endl;
}
3. Parameter Referensi
void gandakan(int &x) {
x = x * 2;
}
Rekursi
Fungsi yang memanggil dirinya sendiri
int faktorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * faktorial(n - 1);
}
}
Function Overloading
Membuat beberapa fungsi dengan nama sama tetapi parameter berbeda
void cetak(int i) {
cout << "Integer: " << i << endl;
}
void cetak(double d) {
cout << "Double: " << d << endl;
}
void cetak(string s) {
cout << "String: " << s << endl;
}
Contoh Program Lengkap
#include <iostream>
#include <cmath>
using namespace std;
// Prototipe fungsi
double hitungLuasLingkaran(double radius);
void tampilkanMenu();
int faktorial(int n);
int main() {
int pilihan;
double radius;
do {
tampilkanMenu();
cout << "Pilih operasi: ";
cin >> pilihan;
switch (pilihan) {
case 1:
cout << "Masukkan radius lingkaran: ";
cin >> radius;
cout << "Luas lingkaran: " << hitungLuasLingkaran(radius) << endl;
break;
case 2:
int bilangan;
cout << "Masukkan bilangan: ";
cin >> bilangan;
cout << "Faktorial: " << faktorial(bilangan) << endl;
break;
case 3:
cout << "Keluar dari program..." << endl;
break;
default:
cout << "Pilihan tidak valid!" << endl;
}
} while (pilihan != 3);
return 0;
}
// Definisi fungsi
double hitungLuasLingkaran(double radius) {
return M_PI * pow(radius, 2);
}
void tampilkanMenu() {
cout << "\nMenu Program:" << endl;
cout << "1. Hitung Luas Lingkaran" << endl;
cout << "2. Hitung Faktorial" << endl;
cout << "3. Keluar" << endl;
}
int faktorial(int n) {
if (n <= 1) return 1;
return n * faktorial(n - 1);
}