Menu
CoddyTech

Ringkasan: Menangani Null dengan Aman

Termasuk bagian Dasar-Dasar dalam perjalanan Dart di Coddy. Pelajaran 82 dari 94.

challenge icon

Tantangan

Mudah

Kamu sedang membangun sistem profil pengguna untuk aplikasi seluler. Buat class UserProfile yang menunjukkan pemahamanmu tentang fitur null safety Dart.

Implementasikan class UserProfile dengan hal-hal berikut:

  1. Property non-nullable (harus selalu memiliki nilai):
    • id bertipe int
    • createdDate bertipe String
  2. Property nullable (bisa bernilai null saat inisialisasi):
    • name bertipe String?
    • email bertipe String?
    • age bertipe int?
  3. Property yang diinisialisasi belakangan:
    • displayName bertipe String, dideklarasikan menggunakan kata kunci late
  4. Konstruktor:
    • Menerima id dan createdDate sebagai parameter wajib
    • Menginisialisasi displayName dengan nilai "Guest"
  5. Method: void printProfile() Menampilkan profil pengguna dengan format berikut:

    User Profile:
    ID: <id>
    Created: <createdDate>
    Name: <name or 'Not provided'>
    Email: <email or 'Not provided'>
    Age: <age or 'Not provided'>
    Display Name: <displayName>
    -------------------
  6. Method: void updateEmail(String? newEmail)
    • Memperbarui property email dengan nilai baru.
  7. Method: String getDisplayName()
    • Jika name tidak null, tetapkan displayName = name! (menggunakan operator null assertion)
    • Mengembalikan nilai displayName saat ini

Penting: Setelah memperbarui property name, kamu harus memanggil getDisplayName() untuk memperbarui field displayName sebelum mencetak profil lagi.

Lengkapi kode untuk membuat profil, memperbaruinya, dan menampilkan informasi seperti yang terlihat pada output yang diharapkan.

Coba sendiri

void main() {
  // Buat profil pengguna
  final profile = UserProfile(1, 'today');
  
  // Cetak profil awal
  profile.printProfile();
  
  // Perbarui profil
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Perbarui nama tampilan dan cetak profil yang sudah diperbarui
  profile.getDisplayName(); // Panggil ini untuk memperbarui displayName
  profile.printProfile();
}

class UserProfile {
  // TODO: Tambahkan property (id, createdDate, name, email, age, displayName)
  
  // TODO: Buat konstruktor
  
  // TODO: Implementasikan method printProfile()
  
  // TODO: Implementasikan method updateEmail()
  
  // TODO: Implementasikan method getDisplayName()
}

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Dart online