Tugas Akhir
Penjelasan
Sekarang saatnya menggabungkan semua yang sudah dipelajari — dari interface sampai utility types — jadi satu program utuh. Kamu akan membuat sistem sederhana untuk mengelola koleksi buku perpustakaan, memakai interface, class, generics, dan utility types sekaligus.
Tugas
Buat interface Buku dengan id: number, judul: string, penulis: string, dan tersedia: boolean. Buat class Perpustakaan<T extends { id: number }> generic dengan properti private koleksi: T[] = [], method tambah(item: T): void yang push ke koleksi, method cariById(id: number): T | undefined memakai find(), dan method semua(): readonly T[] yang mengembalikan koleksi. Buat instance Perpustakaan<Buku>, tambahkan minimal 3 buku, cari salah satu lewat id, lalu buat type alias BukuRingkas dengan Pick untuk hanya menampilkan judul dan tersedia dari SEMUA buku.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau bingung mulai dari mana, kerjakan method tambah() dan cariById() dulu, cek hasilnya dengan console.log(), baru terakhir kerjakan transformasi ke BukuRingkas. Program besar selalu lebih mudah kalau dipecah jadi langkah-langkah kecil.