Ringkasan: Menangani Null dengan Aman
Termasuk bagian Dasar-Dasar dalam perjalanan Dart di Coddy. Pelajaran 82 dari 94.
Tantangan
MudahKamu 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:
- Property non-nullable (harus selalu memiliki nilai):
idbertipeintcreatedDatebertipeString
- Property nullable (bisa bernilai null saat inisialisasi):
namebertipeString?emailbertipeString?agebertipeint?
- Property yang diinisialisasi belakangan:
displayNamebertipeString, dideklarasikan menggunakan kata kuncilate
- Konstruktor:
- Menerima
iddancreatedDatesebagai parameter wajib - Menginisialisasi
displayNamedengan nilai"Guest"
- Menerima
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> -------------------- Method:
void updateEmail(String? newEmail)- Memperbarui property
emaildengan nilai baru.
- Memperbarui property
- Method:
String getDisplayName()- Jika
nametidak null, tetapkandisplayName = name!(menggunakan operator null assertion) - Mengembalikan nilai
displayNamesaat ini
- Jika
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
4Operator Bagian 2
Operator PerbandinganAND LogisOR LogisNOT LogisOperator Pengujian TipeRangkuman: Membuat Perbandingan7Bekerja dengan String
Penggabungan StringInterpolasi StringString MultibarisProperti StringMetode Dasar String10Koleksi: Dasar Map
Apa Itu Map?Membuat MapMengakses Nilai dengan KunciPasangan Kunci-NilaiMelihat Ukuran MapMelihat KunciMelihat NilaiMemeriksa Keberadaan Kunci13Pendalaman Keamanan Null
Memahami NullTipe yang Dapat Bernilai NullTipe yang Tidak Dapat Bernilai NullOperator Penegasan NullInisialisasi TerlambatRingkasan: Menangani Null dengan Aman2Variabel dan Tipe Data Dasar
Apa Itu Variabel?stringBilangan Bulat (int)Bilangan Desimal (double)Boolean (bool)Inferensi Tipe dengan 'var'Variabel finalVariabel KonstantaKonvensi PenamaanKeamanan null DasarUlasan: Mendeklarasikan Variabel8Alur Kontrol: Perulangan
Perulangan 'for'Perulangan 'while'Perulangan 'do-while'Menggunakan 'break' dalam PerulanganMenggunakan 'continue' dalam PerulanganRekap: Mengulang Kode3Operator, Bagian 1
Operator AritmetikaPembagian Bilangan BulatOperator ModuloInkremen dan DekremenPintasan PenugasanRangkuman: Perhitungan Sederhana6Alur Program: Pengambilan Keputusan
Pernyataan 'if'Pernyataan 'else'Pernyataan 'else if'Ringkasan: Keputusan SederhanaPernyataan 'if' BersarangPernyataan 'switch'9Koleksi: Dasar-Dasar list
Apa Itu list?Membuat listMengakses dengan IndeksMengetahui Panjang listMenambahkan ElemenMenghapus ElemenMemeriksa Apakah list KosongMelakukan Perulangan pada list12Fungsi Lanjutan
Parameter Posisi OpsionalParameter BernamaParameter Bernama WajibNilai Default ParameterRangkuman: Parameter Fungsi15Proyek: Kalkulator Sederhana
MenyiapkanMendeklarasikan AngkaLatihan sendiri: Compiler Dart online