Memahami berbagai jenis parameter dan cara mendeklarasikan tipe kembalian adalah kunci untuk menulis fungsi Dart yang fleksibel dan mudah digunakan.
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 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.
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)
// 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};
}
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
}
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. 📋
Kursus
Dart Dasar
Kategori
Fungsi
Durasi Pelajaran
20 menit