Menu
CoddyTech

Pengujian dan Integrasi

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan PHP di Coddy. Pelajaran 87 dari 91.

challenge icon

Tantangan

Mudah

Selamat karena kamu telah membangun Sistem Manajemen library yang lengkap! Sekarang saatnya menyatukan semua komponenmu dan memastikan semuanya berfungsi dengan lancar. Kamu akan membuat tes integrasi menyeluruh yang menguji seluruh alur kerja library-mu.

Kamu akan mengatur kodemu dalam lima file:

  • Book.php: class Book dengan property readonly (isbn, title, author), property $isAvailable yang bersifat private, dan method: isAvailable(), markAsBorrowed(), dan markAsReturned().
  • User.php: Sertakan file Book. class User dengan property readonly (id, name), array $borrowedBooks yang bersifat private, konstanta MAX_BOOKS bernilai 3, dan semua method user.
  • Library.php: Sertakan file User. class Library dengan pengelolaan buku, fungsi peminjaman dan pengembalian, method pencarian, dan method removeBook().
  • Admin.php: Sertakan file Library. class Admin yang mewarisi User, dengan method addBookToLibrary() dan removeBookFromLibrary().
  • main.php: Sertakan file Admin. Di sinilah kamu akan menjalankan tes integrasimu. Kamu akan menerima dua input: nama user dan kata kunci penulis yang dicari.

    Siapkan sistem library-mu:

    • Buat Library
    • Buat Admin dengan ID 1 dan nama "LibraryAdmin"
    • Buat User dengan ID 2 dan nama user yang diberikan

    Minta admin menambahkan tiga buku berikut:

    • ISBN: "978-0", Judul: "PHP Fundamentals", Penulis: "Sarah Johnson"
    • ISBN: "978-1", Judul: "OOP Patterns", Penulis: "Mike Chen"
    • ISBN: "978-2", Judul: "Web Security", Penulis: "Sarah Johnson"

    Lalu jalankan urutan tes integrasi ini, dengan mencetak setiap hasil pada baris baru:

    1. Minta user meminjam "978-0"
    2. Minta user meminjam "978-1"
    3. Cari berdasarkan penulis menggunakan input kedua dan cetak jumlahnya: "Books by author: [count]"
    4. Dapatkan buku yang tersedia dan cetak: "Available: [count]"
    5. Minta user mengembalikan "978-0"
    6. Dapatkan lagi buku yang tersedia dan cetak: "Available after return: [count]"
    7. Minta admin menghapus "978-0"
    8. Minta admin mencoba menghapus "978-0" sekali lagi

Tantangan terakhir ini memvalidasi bahwa seluruh sistemmu bekerja bersama: admin mengelola inventaris, user meminjam sesuai batas, pencarian memberikan hasil yang akurat, dan ketersediaan diperbarui dengan benar selama alur kerja.

Coba sendiri

<?php

require_once 'Admin.php';

// Baca input
$userName = trim(fgets(STDIN));
$searchAuthor = trim(fgets(STDIN));

// TODO: Buat Library

// TODO: Buat Admin dengan ID 1 dan nama "LibraryAdmin"

// TODO: Buat User dengan ID 2 dan nama pengguna yang diberikan

// TODO: Minta admin menambahkan tiga buku:
// - ISBN: "978-0", Judul: "PHP Fundamentals", Penulis: "Sarah Johnson"
// - ISBN: "978-1", Judul: "OOP Patterns", Penulis: "Mike Chen"
// - ISBN: "978-2", Judul: "Web Security", Penulis: "Sarah Johnson"

// TODO: Urutan pengujian integrasi:
// 1. Minta pengguna meminjam "978-0"
// 2. Minta pengguna meminjam "978-1"
// 3. Cari berdasarkan penulis menggunakan $searchAuthor dan cetak: "Books by author: [count]"
// 4. Ambil buku yang tersedia dan cetak: "Available: [count]"
// 5. Minta user mengembalikan "978-0"
// 6. Ambil lagi buku yang tersedia dan cetak: "Available after return: [count]"
// 7. Minta admin menghapus "978-0"
// 8. Minta admin mencoba menghapus "978-0" lagi

?>

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler PHP online