Parameter & Return Type

Parameter & Return Type 📬

Memahami berbagai jenis parameter dan cara mendeklarasikan tipe kembalian adalah kunci untuk menulis fungsi Dart yang fleksibel dan mudah digunakan.


Parameter Posisional

Parameter biasa yang harus diisi sesuai urutan:

void perkenalan(String nama, int umur, String kota) {
  print('Nama: $nama, Umur: $umur, Kota: $kota');
}

// Harus diisi sesuai urutan!
perkenalan('Budi', 25, 'Jakarta');
perkenalan('Ani', 22, 'Bandung');

Parameter Named (Bernama)

Parameter dibungkus dalam {} dan dipanggil dengan namanya:

void perkenalan({
  required String nama,
  required int umur,
  String kota = 'Jakarta', // nilai default
}) {
  print('Nama: $nama, Umur: $umur, Kota: $kota');
}

// Dipanggil dengan nama parameter — urutan bebas!
perkenalan(nama: 'Budi', umur: 25);
perkenalan(nama: 'Ani', umur: 22, kota: 'Bandung');
perkenalan(umur: 30, nama: 'Citra');

required menandakan parameter wajib diisi.


Parameter Opsional Posisional

Gunakan [] untuk parameter opsional yang diisi berdasarkan posisi:

void tampilkan(String teks, [String warna = 'hitam', int ukuran = 14]) {
  print('$teks ($warna, ${ukuran}px)');
}

tampilkan('Judul');               // Judul (hitam, 14px)
tampilkan('Judul', 'merah');      // Judul (merah, 14px)
tampilkan('Judul', 'merah', 24); // Judul (merah, 24px)

Berbagai Tipe Kembalian

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

// Mengembalikan String
String sapa(String nama) => 'Halo, $nama!';

// Mengembalikan bool
bool isGenap(int angka) => angka % 2 == 0;

// Mengembalikan List
List<int> buatRange(int awal, int akhir) {
  List<int> hasil = [];
  for (int i = awal; i <= akhir; i++) {
    hasil.add(i);
  }
  return hasil;
}

// Mengembalikan Map
Map<String, dynamic> buatProfil(String nama, int umur) {
  return {'nama': nama, 'umur': umur};
}

Nullable Return Type

Fungsi bisa mengembalikan null dengan menandai tipe kembalian dengan ?:

String? cariNama(List<String> daftar, int indeks) {
  if (indeks < 0 || indeks >= daftar.length) {
    return null; // kembalikan null jika indeks tidak valid
  }
  return daftar[indeks];
}

void main() {
  List<String> nama = ['Budi', 'Ani', 'Citra'];

  String? hasil = cariNama(nama, 1);
  print(hasil); // Ani

  String? tidakAda = cariNama(nama, 10);
  print(tidakAda ?? 'Tidak ditemukan'); // Tidak ditemukan
}

Contoh Lengkap dengan Named Parameters

double hitungHarga({
  required double hargaDasar,
  int jumlah = 1,
  double diskon = 0,
}) {
  double subtotal = hargaDasar * jumlah;
  double potongan = subtotal * diskon;
  return subtotal - potongan;
}

void main() {
  double total1 = hitungHarga(hargaDasar: 50000);
  print('Total: $total1'); // Total: 50000.0

  double total2 = hitungHarga(
    hargaDasar: 50000,
    jumlah: 3,
    diskon: 0.1,
  );
  print('Total: $total2'); // Total: 135000.0
}

💡 Tips: Gunakan named parameters dengan {} untuk fungsi yang memiliki lebih dari 2 parameter — ini membuat pemanggilan fungsi lebih mudah dibaca dan menghindari kesalahan urutan argumen. Selalu tulis tipe kembalian secara eksplisit agar kode lebih mudah dipahami oleh tim. 📋

Informasi Kursus

Kursus

Dart Dasar

Kategori

Fungsi

Durasi Pelajaran

20 menit

Pelajaran dalam Kategori Ini