🎯 📗 Bagian 1 (Fundamental & Dasar) • Modul 04 100% Standar Industri & Vokasi

Fungsi, Parameter & Lambda (Arrow Syntax)

Modul pembelajaran Fungsi, Parameter & Lambda (Arrow Syntax).

⚡ Pemrograman DART

06. Fungsi, Parameter & Lambda (Arrow Syntax)

1. Anatomi Fungsi di Dart

Fungsi adalah blok kode modular yang dapat menerima parameter input, memproses logika, dan mengembalikan (return) sebuah nilai.

// Tipe Return + Nama Fungsi + Parameter Input
int hitungLuasPersegi(int sisi) {
  return sisi * sisi;
}

// Arrow Syntax (=>) untuk fungsi 1 baris
int hitungKeliling(int sisi) => 4 * sisi;

2. Positional vs Named Parameters

Dart memiliki sistem parameter yang sangat fleksibel, yang menjadi kunci arsitektur Widget pada Flutter:

Named Parameters ({required ...})

Parameter dipanggil menggunakan label nama, urutan argumen tidak berpengaruh. Sangat mudah dibaca dan dipahami.

void buatUser({required String nama, int umur = 17, String role = 'Siswa'}) {
  print("User: $nama ($umur thn) - Role: $role");
}

void main() {
  // Pemanggilan dengan label
  buatUser(nama: "Fauzi", role: "Ketua Kelas");
}

Optional Positional Parameters ([...])

Parameter opsional dibungkus tanda kurung siku siku dengan nilai bawaan (default value).

String sambut(String nama, [String salam = 'Selamat Pagi']) {
  return "$salam, $nama!";
}

3. First-Class Functions & Higher-Order Functions

Di Dart, fungsi diperlakukan sebagai objek kelas utama (First-Class Object), sehingga fungsi dapat disimpan dalam variabel, dikirim sebagai argumen, atau di-return dari fungsi lain:

void main() {
  var angka = [1, 2, 3, 4, 5];

  // Anonymous Function / Lambda pada fungsi .map() dan .where()
  var angkaGenap = angka.where((n) => n % 2 == 0).toList();
  var angkaKuadrat = angka.map((n) => n * n).toList();

  print("Genap: $angkaGenap");      // [2, 4]
  print("Kuadrat: $angkaKuadrat");  // [1, 4, 9, 16, 25]
}