A
ALVITO.DEV
RETURN_TO_BASE PROJECT_ID: NOT-ENOUGH-BOOKS

// PROJECT_SPECS

Not Enough Books: Perpustakaan Digital
CURRENT_STATUS
completed
TECHNOLOGY_STACK
LaravelTailwindCSSDaisyUIPython

// CLASSIFIED_DOCUMENT

Not Enough Books: Perpustakaan Digital

Sistem manajemen perpustakaan modern berbasis Laravel yang membuat pendataan buku jadi semudah memesan kopi.

Masalah: Buku Berserakan, Data Berantakan

Pernahkah Anda mencoba mendata ratusan buku secara manual di Excel? Melelahkan dan rawan salah ketik. Itulah masalah yang coba saya selesaikan dengan proyek Not Enough Books ini.

Sebagai tugas akhir mata kuliah Pemrograman Web, saya tidak ingin hanya membuat aplikasi CRUD (Create, Read, Update, Delete) yang membosankan. Saya ingin membuat sistem perpustakaan yang cantik, cepat, dan pintar.

Dashboard Perpustakaan

Solusi: Modern & Terotomatisasi

Aplikasi ini dibangun dengan filosofi β€œMobile First”. Artinya, pustakawan bisa mendata buku lewat HP sambil berjalan di lorong rak buku, tanpa harus duduk di depan komputer kasir yang besar.

Arsitektur Database (ERD)

Kunci dari sistem perpustakaan adalah relasi antar data. Berikut adalah rancangan database bagaimana sistem menghubungkan Buku, Kategori, dan Peminjaman:

erDiagram
    USERS ||--o{ LOANS : makes
    BOOKS ||--o{ LOANS : is_in
    CATEGORIES ||--o{ BOOKS : categorizes
    
    USERS {
        int id
        string name
        string role "Admin/Member"
    }

    BOOKS {
        int id
        string title
        string isbn
        int stock
        int category_id FK
    }

    LOANS {
        int id
        date borrow_date
        date return_date
        string status "Active/Returned/Overdue"
    }

Fitur untuk Manusia (Bukan Robot)

  • Pencarian Kilat: Cari buku berdasarkan judul, penulis, atau ISBN semudah mencari barang di marketplace.
  • Sampul Otomatis: Sistem didesain untuk menampilkan sampul buku secara visual, bukan cuma daftar teks membosankan.
  • Sistem Peminjaman: Mencatat siapa meminjam apa, dan kapan harus kembali.

Struktur Project (Laravel)

Bagi Anda yang ingin mempelajari kodenya, berikut adalah peta direktori penting dalam proyek ini:

not-enough-books/
β”œβ”€β”€ app/
β”‚ β”œβ”€β”€ Models/ # Representasi data (Book.php, User.php)
β”‚ └── Http/Controllers/
β”‚ β”œβ”€β”€ BookController.php # Logika pendataan buku
β”‚ └── LoanController.php # Logika peminjaman
β”œβ”€β”€ database/
β”‚ └── migrations/ # Blueprint database (Skema tabel)
β”œβ”€β”€ resources/
β”‚ └── views/ # Tampilan (Blade Templates + DaisyUI)
β”œβ”€β”€ routes/
β”‚ └── web.php # Peta jalan URL (Routing)
└── import_books.py # Script Python Sakti (Lihat di bawah)

Di Balik Layar: Teknologi yang Bekerja

Untuk orang awam, bayangkan aplikasi ini seperti sebuah restoran modern:

  1. Dapur (Backend - Laravel): Saya menggunakan Laravel, framework PHP paling populer. Laravel bertugas mengelola logika berat: keamanan login, penyimpanan data ke database, dan validasi input. Ini menjamin data perpustakaan aman dan tidak korup.

  2. Penyajian (Frontend - DaisyUI): Agar tampilannya tidak kaku seperti software tahun 90-an, saya menggunakan Tailwind CSS dengan bantuan DaisyUI. Ini membuat tombol, form, dan tabel terlihat modern, konsisten, dan enak dipandang (seperti antarmuka aplikasi startup kekinian).

Note (Fitur Spesial: Jalur Cepat Python)

Salah satu bagian paling menarik dari proyek ini adalah Skrip Otomatisasi Python.

Alih-alih menginput 100 buku satu per satu (yang bisa memakan waktu berjam-jam), saya menulis kode Python (import_books.py) yang bisa membaca file CSV data mentah dan menyuntikkannya langsung ke database MySQL dalam hitungan detik. Efisiensi tingkat tinggi!

Kesimpulan

Not Enough Books membuktikan bahwa aplikasi manajemen internal tidak harus terlihat kaku dan membosankan. Dengan sentuhan desain yang tepat dan sedikit otomatisasi Python, pekerjaan administratif bisa jadi jauh lebih menyenangkan.

Proyek ini adalah langkah besar saya memahami bagaimana membangun aplikasi Fullstack yang siap pakai.

AUTHORIZED_BY ALVITO.DEV ADMIN
DATE_LOGGED 10 MAY 2025