Function bikin kode reusable, modular, dan readable. Plus konsep scope yang sering bingungkan pemula.
Reusability (tulis sekali, pakai banyak). Readability (kasih nama berarti). Testing (test bagian kecil daripada keseluruhan). Maintainability (ubah di 1 tempat, kena semua pemakai).
Nama (verb, deskriptif). Parameter (input). Body (logic). Return (output). Contoh: hitung_pajak(harga) yang menerima harga dan return pajak. Ambil 1 tanggung jawab per function.
Local scope (di dalam function, tidak terlihat dari luar). Global scope (visible di mana saja). Block scope (di dalam if atau loop). Aturan: minimasi global variable, prefer local.
Beri nilai default untuk parameter optional. Contoh: kirim_email(to, subject="Hello"). Kalau subject tidak diisi, otomatis pakai default. Bikin function lebih flexible.
Python: return tuple. JavaScript: return object. Powerful untuk function yang hasilkan beberapa info terkait. Mis. parse_name return first_name dan last_name.