Menu
CoddyTech

Rangkuman: Sistem Profil Pengguna

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 29 dari 110.

challenge icon

Tantangan

Mudah

Mari buat sistem profil pengguna lengkap yang menggabungkan semua konsep keamanan null yang telah kamu pelajari di bab ini. Kamu akan membuat sistem yang mengelola akun pengguna dengan gabungan informasi wajib dan detail opsional.

Kamu akan membagi kodemu ke dalam dua file:

  • user_profile.dart: Definisikan class UserProfile yang merepresentasikan akun pengguna. Pikirkan informasi apa yang penting (seperti nama pengguna) dan apa yang opsional (seperti bio atau nomor telepon). Class-mu harus memiliki:
    • String username yang tidak dapat bernilai null, setiap pengguna harus memiliki nama pengguna
    • String email yang tidak dapat bernilai null, setiap pengguna harus memiliki email
    • String? displayName yang dapat bernilai null, pengguna mungkin lebih suka menampilkan nama yang berbeda
    • String? bio yang dapat bernilai null, tidak semua orang menulis bio
    • int? age yang dapat bernilai null, usia adalah informasi pribadi yang opsional
    • Constructor yang menggunakan parameter bernama dengan required untuk username dan email
    • Method getDisplayIdentity() yang mengembalikan nama tampilan jika sudah diatur, jika tidak, mengembalikan nama pengguna menggunakan ??
    • Method getBioPreview() yang mengembalikan 20 karakter pertama bio diikuti ... jika bio tersedia dan panjangnya lebih dari 20 karakter, bio lengkap jika panjangnya 20 karakter atau kurang, atau null jika tidak ada bio (gunakan ?. untuk akses yang aman)
    • Method setDefaultBio() yang mengatur bio menjadi 'Hello, I am new here!' hanya jika saat ini nilainya null, dengan menggunakan ??=
    • Method printProfile() yang menampilkan profil lengkap pengguna
  • main.dart: Impor class profil pengguna, lalu buat beberapa pengguna untuk menunjukkan seluruh fitur keamanan null:
    • Buat pengguna dengan nama pengguna 'alice_dev' dan email 'alice@code.com', lalu atur nama tampilan menjadi 'Alice', bio menjadi 'Software developer passionate about clean code and testing', dan usia menjadi 28
    • Buat pengguna dengan nama pengguna 'bob_builder' dan email 'bob@build.io', lalu atur nama tampilan saja menjadi 'Bob'
    • Buat pengguna dengan nama pengguna 'charlie99' dan email 'charlie@mail.net' (biarkan semua field opsional bernilai null)
    • Panggil setDefaultBio() pada ketiga pengguna
    • Untuk setiap pengguna secara berurutan, panggil printProfile(), lalu cetak Identity: [getDisplayIdentity()], lalu cetak Bio preview: [getBioPreview()]

Method printProfile() harus mencetak dengan format berikut:

===== User Profile =====
Username: [username]
Email: [email]
Display Name: [displayName or "Not set"]
Bio: [bio or "No bio"]
Age: [age or "Not specified"]

Perhatikan bahwa bio Alice tetap tidak berubah setelah setDefaultBio() karena bio tersebut sudah memiliki nilai, sedangkan Charlie mendapatkan bio default. Perhatikan juga bagaimana pratinjau bio memotong bio Alice yang lebih panjang, tetapi menampilkan seluruh bio default Charlie yang lebih pendek.

Output yang diharapkan:

===== User Profile =====
Username: alice_dev
Email: alice@code.com
Display Name: Alice
Bio: Software developer passionate about clean code and testing
Age: 28
Identity: Alice
Bio preview: Software developer p...
===== User Profile =====
Username: bob_builder
Email: bob@build.io
Display Name: Bob
Bio: Hello, I am new here!
Age: Not specified
Identity: Bob
Bio preview: Hello, I am new here!
===== User Profile =====
Username: charlie99
Email: charlie@mail.net
Display Name: Not set
Bio: Hello, I am new here!
Age: Not specified
Identity: charlie99
Bio preview: Hello, I am new here!

Coba sendiri

import 'user_profile.dart';

void main() {
  // TODO: Buat pengguna 'alice_dev' dengan email 'alice@code.com'
  // Atur displayName menjadi 'Alice'
  // Atur bio menjadi 'Software developer passionate about clean code and testing'
  // Atur age menjadi 28
  
  // TODO: Buat pengguna 'bob_builder' dengan email 'bob@build.io'
  // Atur hanya displayName menjadi 'Bob'
  
  // TODO: Buat pengguna 'charlie99' dengan email 'charlie@mail.net'
  // Biarkan semua field opsional bernilai null
  
  // TODO: Panggil setDefaultBio() untuk ketiga pengguna
  
  // TODO: Untuk setiap pengguna sesuai urutan (alice, bob, charlie):
  // 1. Panggil printProfile()
  // 2. Cetak "Identity: [getDisplayIdentity()]"
  // 3. Cetak "Bio preview: [getBioPreview()]"
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Dart online