dartfungsidasarPemula4 mnt baca

Fungsi Dasar

Membuat fungsi sendiri: parameter, return value, dan kenapa fungsi penting.

Fungsi: resep yang bisa dipakai ulang

Bayangkan kamu punya resep mie goreng favorit. Daripada mengingat-ingat tiap kali mau masak, kamu menulisnya sekali di kartu resep, lalu tinggal bilang "buatkan mie goreng". Fungsi adalah kartu resep dalam kode: blok perintah yang diberi nama, bisa dipanggil berkali-kali.

Analogi lain: fungsi seperti mesin fotokopi. Kamu masukkan dokumen (input), mesin bekerja, keluar hasil (output). Kamu tidak perlu tahu cara kerja mesinnya setiap kali memakai.

Kenapa fungsi ada?

Tiga alasan besar:

  1. Hindari pengulangan. Tanpa fungsi, logika yang sama ditulis berulang-ulang. Ada bug? Perbaiki di 10 tempat. Dengan fungsi, cukup perbaiki sekali.
  2. Keterbacaan. hitungTotal() jauh lebih jelas daripada 15 baris perhitungan acak.
  3. Pengujian. Fungsi kecil mudah dites satu per satu.

Anatomi fungsi

dart
// Definisi: menulis resepnya
int tambah(int a, int b) {
  int hasil = a + b;
  return hasil;
}

void main() {
  // Pemanggilan: memakai resepnya
  int x = tambah(3, 4);
  print(x); // 7

  int y = tambah(10, 20);
  print(y); // 30, fungsi sama dipakai ulang
}

Bedah int tambah(int a, int b):

  • int di depan: tipe nilai kembali (return value). Fungsi ini mengembalikan bilangan bulat.
  • tambah: nama fungsi, pakai camelCase.
  • (int a, int b): parameter, bahan yang harus disiapkan pemanggil.
  • return hasil;: menyerahkan hasil ke pemanggil. Setelah return, fungsi berhenti.

Contoh kedua, fungsi tanpa nilai kembali:

dart
// void = tidak mengembalikan apa-apa, hanya "melakukan"
void sapa(String nama) {
  print('Halo, $nama!');
  print('Selamat datang di Dart.');
}

void main() {
  sapa('Budi');
  sapa('Ani');
}

Tidak semua fungsi butuh return. Fungsi void seperti asisten yang disuruh melakukan sesuatu, bukan ditanya jawabannya.

Parameter vs argumen

Istilah ini sering membingungkan pemula:

  • Parameter: variabel di definisi fungsi (int a, int b).
  • Argumen: nilai nyata saat memanggil (tambah(3, 4), argumennya 3 dan 4).
dart
int kali(int a, int b) { // a, b = parameter
  return a * b;
}

void main() {
  print(kali(5, 6)); // 5, 6 = argumen
}

Kesalahan umum pemula

1. Lupa return sehingga fungsi mengembalikan null

dart
// SALAH
int tambah(int a, int b) {
  int hasil = a + b;
  // lupa return!
}

void main() {
  print(tambah(3, 4)); // ERROR: tidak mengembalikan int
}
dart
// BENAR
int tambah(int a, int b) {
  int hasil = a + b;
  return hasil;
}

2. Jumlah argumen tidak cocok

dart
// SALAH
int tambah(int a, int b) => a + b;

void main() {
  // print(tambah(5)); // ERROR: butuh 2 argumen
}
dart
// BENAR
void main() {
  print(tambah(5, 10)); // 15
}

3. Memakai hasil fungsi void

dart
// SALAH
void sapa(String nama) {
  print('Halo, $nama');
}

void main() {
  // var x = sapa('Budi'); // ERROR: void tidak bisa disimpan
  sapa('Budi'); // BENAR: panggil saja
}

Kesimpulan

Fungsi = nama + parameter (input) + badan + return (output, kecuali void). Tulis sekali, pakai berkali-kali. Mulai biasakan memecah program menjadi fungsi-fungsi kecil yang fokus, ini fondasi gaya koding profesional.

Catatan teknis: Di Dart, fungsi adalah objek kelas satu (first-class): bisa disimpan di variabel dan dioper ke fungsi lain. Kemampuan ini dibahas di modul higher-order function.

Tantangan

Fungsi luas bangun datar

Buat fungsi luasPersegi(sisi), luasPersegiPanjang(p, l), dan luasLingkaran(r) (pakai 3.14). Panggil ketiganya di main dan cetak hasilnya.

text
// TODO: tulis 3 fungsi di sini

void main() {
  // TODO: panggil dan cetak
}