Lompat ke konten utama
←

Flutter Dasar: Dart, Widget, dan State

Pelajaran 2 dari 18

Dart, bahasa di balik Flutter

Fungsi, parameter bernama, dan koleksi

Setelah pelajaran ini kamu bisa memanggil fungsi berparameter bernama dan required, serta memprediksi hasil where, map, toList, spread, dan collection if/for pada List.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Fungsi Dart menulis tipe nilai baliknya di depan nama. Fungsi yang isinya satu ekspresi boleh disingkat dengan =>, yang artinya sama dengan { return ekspresi; }. Parameter di dalam kurung kurawal adalah parameter bernama: dipanggil dengan namanya, boleh di urutan mana pun, dan bersifat opsional kecuali ditandai required. Parameter opsional diberi nilai bawaan atau bertipe nullable. Konstruktor widget Flutter memakai parameter bernama hampir di mana-mana, misalnya Padding(padding: ..., child: ...).

int diskon(int harga, {int persen = 10}) => harga * persen ~/ 100;

void main() {
  final kota = ['Medan', 'Padang', 'Bogor'];
  final stok = {'beras': 20, 'gula': 0};
  print(diskon(50000)); // 5000
  print(diskon(50000, persen: 25)); // 12500
  print(kota.map((k) => k.toUpperCase()).toList()); // [MEDAN, PADANG, BOGOR]
  print(stok['minyak']); // null: kuncinya tidak ada
  print(stok['minyak'] ?? 0); // 0
}

List adalah daftar berurutan, Map memetakan kunci ke nilai, dan Set menyimpan nilai tanpa kembar. Membaca kunci yang tidak ada di Map menghasilkan null, bukan galat. where menyaring dan map mengubah setiap elemen, tetapi keduanya mengembalikan Iterable yang malas: fungsinya baru dijalankan saat elemen dibaca, dan saat dicetak isinya diapit kurung biasa. Panggil toList() bila butuh List. Di dalam literal list, ...daftar menyisipkan isi list lain, if menyisipkan elemen bila syaratnya benar, dan for menyisipkan elemen berulang. Pola ini dipakai untuk menyusun children sebuah Column.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Dari empat panggilan berikut, mana yang ditolak analyzer?

String label(String nama, {String satuan = 'pcs', required int jumlah}) =>
    '$nama: $jumlah $satuan';
Pilih satu jawaban

Latihan 2 dari 3

Apa yang dicetak program ini?

void main() {
  final harga = [12000, 5000, 30000, 8000];
  final mahal = harga.where((h) => h >= 10000);
  print(mahal);
  print(harga.map((h) => h ~/ 1000).toList());
}
Pilih satu jawaban

Latihan 3 dari 3

Apa yang dicetak program ini?

List<String> susunMenu(bool member, List<String> menu) => [
  'Beranda',
  ...menu,
  if (member) 'Poin',
  for (var i = 1; i <= 2; i++) 'Promo $i',
];

void main() {
  final tampil = susunMenu(false, ['Nasi', 'Teh']);
  print(tampil.length);
  print(tampil);
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke