Menu
CoddyTech

Sistem Peminjaman

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

challenge icon

Tantangan

Mudah

Pada pelajaran sebelumnya, kamu membuat class Book dan User dengan property dasar. Sekarang saatnya membangun sistem peminjaman yang lengkap dengan class Library untuk mengelola seluruh proses peminjaman.

Kamu akan membuat file baru dan memperbarui file yang sudah ada untuk menerapkan logika peminjaman:

  • book.dart: Pertahankan class Book yang sudah ada dengan isbn, title, author, isAvailable, dan toString().
  • user.dart: Pertahankan class User yang sudah ada dengan id, name, borrowedBooks, dan toString().
  • library.dart: Buat class Library baru untuk mengelola buku dan pengguna. Class ini harus memiliki dua list: satu untuk books dan satu untuk users. Sertakan method untuk:
    • addBook(Book book): menambahkan buku ke koleksi library
    • registerUser(User user): menambahkan pengguna ke library
    • borrowBook(String isbn, String userId): mencari buku dan pengguna, lalu jika buku ditemukan, tersedia, dan penggunanya ditemukan, tandai buku sebagai tidak tersedia, tambahkan buku ke daftar buku yang dipinjam pengguna, dan cetak userId borrowed "title". Jika buku tidak ditemukan, cetak Book not found. Jika buku tidak tersedia, cetak Book not available. Jika pengguna tidak ditemukan, cetak User not found.
    • returnBook(String isbn, String userId): mencari buku dan pengguna, lalu jika keduanya ditemukan dan pengguna memiliki buku tersebut, tandai buku sebagai tersedia, hapus buku dari daftar buku yang dipinjam pengguna, dan cetak userId returned "title". Jika buku tidak ditemukan, cetak Book not found. Jika pengguna tidak ditemukan, cetak User not found.
  • main.dart: Impor semua file dan tunjukkan cara kerja sistem peminjaman. Buat Library, tambahkan dua buku (978-0-13-468599-1, The Pragmatic Programmer, David Thomas dan 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford), lalu daftarkan satu pengguna (U001, Alice Johnson). Kemudian:
    1. Pinjamkan buku pertama kepada Alice
    2. Coba pinjamkan buku yang sama sekali lagi, tindakan ini seharusnya gagal
    3. Pinjamkan buku kedua kepada Alice
    4. Cetak Alice untuk menampilkan jumlah buku yang dipinjamnya
    5. Kembalikan buku pertama
    6. Cetak Alice lagi untuk menampilkan jumlah buku yang sudah diperbarui

Output yang diharapkan:

U001 borrowed "The Pragmatic Programmer"
Book not available
U001 borrowed "JavaScript: The Good Parts"
User U001: Alice Johnson (2 books borrowed)
U001 returned "The Pragmatic Programmer"
User U001: Alice Johnson (1 books borrowed)

Coba sendiri

import 'book.dart';
import 'user.dart';
import 'library.dart';

void main() {
  // TODO: Buat instance Library
  
  // TODO: Buat dua buku:
  // - Buku 1: isbn '978-0-13-468599-1', title 'The Pragmatic Programmer', author 'David Thomas'
  // - Buku 2: isbn '978-0-596-51774-8', title 'JavaScript: The Good Parts', author 'Douglas Crockford'
  
  // TODO: Tambahkan kedua buku ke library
  
  // TODO: Buat user dengan id 'U001' dan nama 'Alice Johnson'
  
  // TODO: Daftarkan user ke library
  
  // TODO: Pinjam buku pertama untuk Alice
  
  // TODO: Coba pinjam buku yang sama lagi (seharusnya gagal dengan 'Book not available')
  
  // TODO: Pinjam buku kedua untuk Alice
  
  // TODO: Tampilkan Alice untuk menunjukkan jumlah buku yang dipinjamnya
  
  // TODO: Kembalikan buku pertama
  
  // TODO: Tampilkan Alice lagi untuk menunjukkan jumlah yang sudah diperbarui
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Dart online