dartstringdasarPemula4 mnt baca

String & Interpolasi

Menyisipkan variabel ke string dengan $ dan ${}, plus method String penting.

Menyelipkan data ke dalam teks

Seringkali kamu ingin mencetak kalimat yang berisi nilai variabel: "Halo, Budi! Umurmu 17 tahun." Cara kuno adalah menggabung teks dengan +, tapi itu melelahkan. String interpolation adalah cara Dart menyelipkan nilai langsung ke dalam teks memakai tanda $.

Analogi: interpolation itu seperti surat formulir. Kamu menulis template "Halo, [NAMA]!" sekali, lalu [NAMA] diganti otomatis untuk tiap orang. Di Dart, $nama adalah "kolom formulir" itu.

Kenapa interpolation ada?

Tanpa interpolation, kode terlihat seperti ini:

dart
void main() {
  String nama = 'Budi';
  int umur = 17;
  // Cara kuno: gabung dengan +
  print('Halo, ' + nama + '! Umurmu ' + umur.toString() + ' tahun.');
}

Bisa jalan, tapi berisik: banyak tanda +, kutip, dan toString(). Bandingkan dengan interpolation:

dart
void main() {
  String nama = 'Budi';
  int umur = 17;
  // Cara Dart: selipkan langsung dengan $
  print('Halo, $nama! Umurmu $umur tahun.');
}

Satu baris, jelas, tanpa konversi manual. Inilah alasan interpolation menjadi cara standar di Dart.

Bentuk sederhana: $nama

Untuk variabel sederhana, cukup tulis $ diikuti nama variabel:

dart
void main() {
  String buah = 'mangga';
  int jumlah = 5;
  double harga = 2500.5;

  print('Aku beli $jumlah buah $buah seharga $harga rupiah.');
  // Aku beli 5 buah mangga seharga 2500.5 rupiah.
}

Bentuk ekspresi: ${...}

Kalau yang disisipkan bukan sekadar nama variabel, melainkan ekspresi (perhitungan, pemanggilan method, akses properti), bungkus dengan ${}:

dart
void main() {
  int harga = 10000;
  int jumlah = 3;

  print('Total: ${harga * jumlah}'); // Total: 30000
  print('Tahun depan: ${2026 + 1}'); // Tahun depan: 2027

  String nama = 'budi santoso';
  print('Nama besar: ${nama.toUpperCase()}'); // BUDI SANTOSO
  print('Panjang nama: ${nama.length} huruf'); // 12 huruf
}

Aturan praktisnya: kalau setelah $ hanya nama variabel sederhana, tulis langsung. Kalau ada titik, kurung, atau operator, pakai kurung kurawal ${}.

Multiline string

Untuk teks panjang beberapa baris, pakai tiga kutip:

dart
void main() {
  String nama = 'Ani';
  String pesan = '''
Halo $nama,

Terima kasih sudah belajar Dart.
Tetap semangat ya!
''';
  print(pesan);
}

Interpolation tetap bekerja di dalam multiline string.

Kesalahan umum pemula

1. Lupa $ sehingga variabel tidak terganti

dart
// SALAH
void main() {
  String nama = 'Budi';
  print('Halo, nama!'); // mencetak "Halo, nama!" mentah
}
dart
// BENAR
void main() {
  String nama = 'Budi';
  print('Halo, $nama!'); // Halo, Budi!
}

2. Pakai $nama.method tanpa kurung kurawal

dart
// SALAH: hanya $nama yang terganti, sisanya teks mentah
void main() {
  String nama = 'budi';
  print('$nama.toUpperCase()'); // budi.toUpperCase()
}
dart
// BENAR
void main() {
  String nama = 'budi';
  print('${nama.toUpperCase()}'); // BUDI
}

3. Interpolation di string kutip tunggal vs ganda, tidak masalah

Keduanya mendukung interpolation. Pilih satu gaya dan konsisten. Yang penting JANGAN pakai string mentah (raw string, diawali r) kalau butuh interpolation:

dart
void main() {
  String nama = 'Budi';
  print(r'Halo, $nama'); // r membuat $ tidak diproses!
  print('Halo, $nama');  // Halo, Budi
}

Kesimpulan

Interpolation ($variabel dan ${ekspresi}) adalah cara idiomatis Dart menggabungkan data ke dalam teks. Lebih ringkas dan lebih mudah dibaca daripada concatenasi +. Mulai sekarang, jadikan ini kebiasaan default setiap mencetak nilai variabel.

Catatan teknis: Interpolation dievaluasi saat runtime dengan memanggil toString() pada objeknya. Kamu bisa mengubah cara objekmu ditampilkan dengan meng-override method toString(), topik yang akan dibahas di modul OOP.

Tantangan

Format nama rapi

Diberi nama acak-acakan " bUdI sAnToSo ", tampilkan "Halo, Budi Santoso!" (trim, lowercase, lalu kapitalkan tiap kata) memakai interpolasi.

text
void main() {
  String nama = '  bUdI sAnToSo  ';
  // TODO
}