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.
Struktur definisi fungsi C++: return type, nama, parameter list, dan body, beserta aturan urutan penulisan terhadap main().
Buka → # Deklarasi dan Function PrototypeBedah deklarasi (prototype) versus definisi fungsi, mengapa prototipe dibutuhkan, dan praktik menaruh prototipe di header.
Buka → # Parameter dan ArgumenPerbedaan parameter dan argumen, pemetaan posisi, serta desain fungsi dengan nol hingga beberapa parameter bertipe berbeda.
Buka → # Return ValueTipe kembalian fungsi, return pada banyak jalur, aturan return type wajib di C++, dan kasus khusus main() tanpa return.
Buka → # Pass by ValueMekanisme pass-by-value di C++: argumen disalin ke parameter, perubahan di dalam fungsi tidak memengaruhi pemanggil, dan biaya salinannya.
Buka → # Pass by ReferenceParameter reference (int&) sebagai alias variabel pemanggil: perubahan terlihat, pola out parameter, dan kapan memakainya.
Buka → # Pass by Const ReferenceParameter const& : kehematan reference tanpa risiko perubahan, aturan praktis memilih cara passing, dan penjagaan const oleh compiler.
Buka → # Default ArgumentsParameter dengan nilai bawaan: pemanggilan fleksibel, aturan bawaan dari kanan, posisi deklarasi vs definisi, dan jebakan bawaan yang tidak stabil.
Buka → # Function OverloadingFunction overloading: nama sama dengan daftar parameter berbeda, cara compiler memilih (resolusi overload), dan benturan dengan default argument.
Buka → # Inline FunctionsKata kunci inline sebagai saran pada compiler, perbedaannya dengan makro #define yang berbahaya, dan peran inline di header.
Buka → # RekursiFungsi yang memanggil dirinya sendiri: base case, stack frame, bahaya stack overflow, kasus faktorial dan fibonacci, serta pembandingannya dengan loop.
Buka → # Function PointerMenyimpan dan memanggil fungsi lewat pointer, alias tipe dengan using, dan pola callback: fungsi sebagai parameter fungsi lain.
Buka → # Lambda ExpressionsLambda expression: fungsi tanpa nama yang ditulis langsung di tempat pemakaiannya — anatomi, penyimpanan di auto, pemanggilan langsung, dan for_each.
Buka → # Capture LambdaPelajari cara lambda mengakses variabel luar melalui capture by value dan by reference, beserta aturan dan bahayanya.
Buka → # Generic LambdaPelajari lambda generic dengan parameter auto (C++14) dan template parameter (C++20) untuk logika yang bekerja di banyak tipe.
Buka → # Function Template: PengantarPelajari function template sebagai cetak biru fungsi untuk banyak tipe: deklarasi, deduksi tipe, instansiasi, dan batasannya.
Buka →