Danu Andrean, 05 Jan 2025
Function C++

Function atau fungsi dalam C++ adalah blok kode yang dirancang untuk melakukan tugas tertentu. Fungsi digunakan untuk mengorganisasi program menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan memanfaatkan fungsi, kamu dapat menghindari pengulangan kode, meningkatkan keterbacaan, dan mempermudah debugging.
Struktur Dasar Fungsi dalam C++
Setiap fungsi dalam C++ memiliki struktur dasar seperti berikut:
<tipe_data_pengembalian> nama_fungsi(<parameter>)
{
// Blok kode
return nilai;
}
- <tipe_data_pengembalian>: Menentukan jenis data yang dikembalikan oleh fungsi (contoh: int, float, void, dll.).
- nama_fungsi: Nama yang unik untuk mengidentifikasi fungsi.
- < parameter >: Daftar variabel yang diterima oleh fungsi, dipisahkan dengan koma.
- return nilai;: Digunakan untuk mengembalikan hasil ke pemanggil fungsi (opsional untuk fungsi void).
Contoh Fungsi Sederhana
Berikut contoh fungsi untuk menjumlahkan dua bilangan:
#include <iostream>
// Deklarasi fungsi
int Add(int a, int b)
{
return a + b;
}
int main()
{
int x = 5, y = 10;
int result = Add(x, y);
std::cout << "Hasil penjumlahan: " << result << std::endl;
return 0;
}
Jenis-Jenis Fungsi dalam C++
1. Fungsi Void
Fungsi yang tidak mengembalikan nilai apapun:
void Show()
{
std::cout << "Halo, Dunia!" << std::endl;
}
2. Fungsi Rekursif
Fungsi yang memanggil dirinya sendiri:
int Faktorial(int n)
{
if (n <= 1) return 1;
return n * Faktorial(n - 1);
}
3. Fungsi Overloading
Fungsi dengan nama yang sama tetapi parameter berbeda:
int Add(int a, int b)
{
return a + b;
}
double Add(double a, double b)
{
return a + b;
}
4. Fungsi Lambda
Fungsi anonim yang digunakan untuk operasi sederhana:
[ capture_list ] ( parameter_list ) -> return_type {
// body
};
Penjelasan setiap bagian:
- capture_list: Menentukan variabel dari lingkup sekitar yang dapat diakses dalam lambda.
- parameter_list: Daftar parameter (mirip dengan fungsi biasa).
- return_type: (Opsional) Jenis data yang dikembalikan oleh lambda. Jika diabaikan, akan ditentukan secara otomatis.
Contoh:
int x = 10, y = 20;
auto add = [x, y]() {
return x + y;
};
std::cout << "Jumlah: " << add() << std::endl;
Lambda sendiri diperkenalkan pertama kali di C++11 dan telah mengalami peningkatan di versi-versi berikutnya.
Capture List pada Lambda
capture_list menentukan bagaimana variabel dari lingkup luar dapat diakses di dalam lambda. Ada beberapa cara menangkap variabel:
- [ ]: Tidak menangkap variabel apa pun.
- [=]: Menangkap semua variabel di lingkup luar dengan nilai.
- [&]: Menangkap semua variabel di lingkup luar dengan referensi.
- [variable]: Menangkap variabel tertentu dengan nilai.
- [&variable]: Menangkap variabel tertentu dengan referensi.
Contoh:
int a = 5, b = 10;
// Menangkap dengan nilai
auto lambda1 = [=]() {
return a + b; // a dan b hanya dapat dibaca
};
// Menangkap dengan referensi
auto lambda2 = [&]() {
a += 10; // a dapat diubah
return a + b;
};
std::cout << "Lambda1: " << lambda1() << std::endl;
std::cout << "Lambda2: " << lambda2() << std::endl;
Kesimpulan
Fungsi adalah salah satu konsep dasar dalam pemrograman C++ yang sangat penting untuk dipahami. Dengan memahami fungsi, kamu dapat membuat program yang lebih terstruktur, efisien, dan mudah di-maintain. Jangan ragu untuk bereksperimen dengan berbagai jenis fungsi untuk menyelesaikan berbagai masalah pemrograman!🎉🎉🎉