Fungsi memecah program menjadi unit kecil yang dapat diuji dan dipakai ulang. Kita mempelajari parameter dan return value, overloading, rekursi, function pointer, dan lambda, hingga pengantar function template yang menjadi fondasi generic programming.

# Mendefinisikan Fungsi

Struktur definisi fungsi C++: return type, nama, parameter list, dan body, beserta aturan urutan penulisan terhadap main().

Buka →
# Deklarasi dan Function Prototype

Bedah deklarasi (prototype) versus definisi fungsi, mengapa prototipe dibutuhkan, dan praktik menaruh prototipe di header.

Buka →
# Parameter dan Argumen

Perbedaan parameter dan argumen, pemetaan posisi, serta desain fungsi dengan nol hingga beberapa parameter bertipe berbeda.

Buka →
# Return Value

Tipe kembalian fungsi, return pada banyak jalur, aturan return type wajib di C++, dan kasus khusus main() tanpa return.

Buka →
# Pass by Value

Mekanisme pass-by-value di C++: argumen disalin ke parameter, perubahan di dalam fungsi tidak memengaruhi pemanggil, dan biaya salinannya.

Buka →
# Pass by Reference

Parameter reference (int&) sebagai alias variabel pemanggil: perubahan terlihat, pola out parameter, dan kapan memakainya.

Buka →
# Pass by Const Reference

Parameter const& : kehematan reference tanpa risiko perubahan, aturan praktis memilih cara passing, dan penjagaan const oleh compiler.

Buka →
# Default Arguments

Parameter dengan nilai bawaan: pemanggilan fleksibel, aturan bawaan dari kanan, posisi deklarasi vs definisi, dan jebakan bawaan yang tidak stabil.

Buka →
# Function Overloading

Function overloading: nama sama dengan daftar parameter berbeda, cara compiler memilih (resolusi overload), dan benturan dengan default argument.

Buka →
# Inline Functions

Kata kunci inline sebagai saran pada compiler, perbedaannya dengan makro #define yang berbahaya, dan peran inline di header.

Buka →
# Rekursi

Fungsi yang memanggil dirinya sendiri: base case, stack frame, bahaya stack overflow, kasus faktorial dan fibonacci, serta pembandingannya dengan loop.

Buka →
# Function Pointer

Menyimpan dan memanggil fungsi lewat pointer, alias tipe dengan using, dan pola callback: fungsi sebagai parameter fungsi lain.

Buka →
# Lambda Expressions

Lambda expression: fungsi tanpa nama yang ditulis langsung di tempat pemakaiannya — anatomi, penyimpanan di auto, pemanggilan langsung, dan for_each.

Buka →
# Capture Lambda

Pelajari cara lambda mengakses variabel luar melalui capture by value dan by reference, beserta aturan dan bahayanya.

Buka →
# Generic Lambda

Pelajari lambda generic dengan parameter auto (C++14) dan template parameter (C++20) untuk logika yang bekerja di banyak tipe.

Buka →
# Function Template: Pengantar

Pelajari function template sebagai cetak biru fungsi untuk banyak tipe: deklarasi, deduksi tipe, instansiasi, dan batasannya.

Buka →