Papicode
FREECodeIgniter

Source Code Sistem Peminjaman Barang

Gabung Saluran WhatsApp Papicode

Update source code terbaru langsung ke HP kamu, nggak pakai spam.

Deskripsi

Sistem Peminjaman Barang berbasis CodeIgniter 4 yang bersih, ringan, dan langsung siap pakai: pencatatan data barang inventaris, data peminjam, transaksi peminjaman dengan validasi stok otomatis, hingga pengembalian barang dan riwayat lengkap semua dalam satu dashboard admin yang rapi dan mudah dipahami. Sistem ini dirancang untuk mahasiswa, organisasi kampus, laboratorium, kelas, maupun kantor kecil yang ingin meninggalkan pencatatan peminjaman barang manual di kertas atau spreadsheet, beralih ke sistem digital sederhana namun akurat, tanpa harus belajar sistem yang rumit.

Sistem

Setiap barang didaftarkan dengan kode unik, jumlah total, dan kondisi (Baik/Rusak Ringan/Rusak). Saat admin mencatat peminjaman baru, sistem otomatis menghitung sisa stok yang tersedia (jumlah total dikurangi jumlah yang sedang aktif dipinjam) dan menolak transaksi jika jumlah yang diminta melebihi stok tersedia, lengkap dengan pesan error yang jelas. Status barang otomatis berubah menjadi "Dipinjam" ketika seluruh stoknya sedang keluar, dan kembali "Tersedia" begitu ada unit yang dikembalikan. Setiap transaksi peminjaman mendapat kode unik otomatis (format PJM-tanggal-urutan), tercatat lengkap dengan peminjam, tanggal pinjam, rencana tanggal kembali, dan catatan opsional. Proses pengembalian dilakukan lewat halaman khusus dengan satu klik "Proses Pengembalian" status transaksi berubah menjadi "Dikembalikan" dan stok barang otomatis bertambah kembali. Seluruh riwayat transaksi (aktif maupun sudah selesai) dapat ditelusuri lewat halaman Riwayat dengan pencarian dan filter status.

Fitur

  • Login admin sederhana dengan session authentication
  • CRUD Data Barang dengan kode unik, kondisi, dan status otomatis
  • CRUD Data Peminjam (nama, identitas/NIM/NIP, kelas, no. HP)
  • Pencatatan transaksi Peminjaman dengan validasi stok tersedia otomatis
  • Penolakan otomatis jika jumlah pinjam melebihi stok tersedia
  • Halaman Pengembalian dengan update stok & status real-time
  • Riwayat peminjaman lengkap dengan pencarian dan filter status
  • Dashboard ringkas: total barang, total peminjam, barang dipinjam, peminjaman aktif
  • Search dan pagination di setiap halaman data
  • Validasi input server-side dengan pesan error yang jelas
  • Proteksi CSRF, password hashing, dan proteksi halaman admin
  • Konfirmasi sebelum hapus data dan flash message di setiap aksi
  • Tampilan modern, clean, dan responsif (desktop, tablet, mobile)

Panduan Instalasi

  1. Clone/copy project ke folder yang diinginkan.

  2. Install dependency dengan Composer:

    composer install
    
  3. Buat database MySQL baru, misalnya peminjaman_barang:

    CREATE DATABASE peminjaman_barang CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  4. Copy file environment:

    cp env .env
    
  5. Atur koneksi database pada file .env:

    CI_ENVIRONMENT = production
    
    app.baseURL = 'http://localhost:8080/'
    
    database.default.hostname = localhost
    database.default.database = peminjaman_barang
    database.default.username = root
    database.default.password =
    database.default.DBDriver = MySQLi
    database.default.DBPrefix =
    database.default.port = 3306
    

    Sesuaikan username, password, dan app.baseURL dengan konfigurasi server Anda.

  6. Jalankan migration untuk membuat semua tabel (users, items, borrowers, borrowings):

    php spark migrate
    
  7. Jalankan seeder untuk mengisi akun admin dan data contoh:

    php spark db:seed DatabaseSeeder
    
  8. Jalankan server development bawaan CodeIgniter:

    php spark serve
    

    Aplikasi dapat diakses di http://localhost:8080.

  9. Login menggunakan akun admin demo:

    • Email: admin@example.com
    • Password: password

Struktur Data Contoh (Seeder)

Setelah menjalankan seeder, aplikasi sudah berisi:

  • 1 akun admin
  • 6 data barang contoh (Laptop, Proyektor, Kamera, Tripod, Mikrofon, Speaker)
  • 4 data peminjam contoh
  • 4 transaksi peminjaman contoh (3 aktif, 1 sudah dikembalikan)