Sistem Informasi Perpustakaan CodeIgniter 4: Rancangan Aplikasi SIPUS

By | Oktober 17, 2026
CRUD kategori buku CodeIgniter 4
This entry is part 1 of 3 in the series Sistem Informasi Perpustakaan CodeIgniter 4

MWI – Hallo sobat pembelajara pada web MuSa. Sistem informasi perpustakaan CodeIgniter 4 merupakan pilihan proyek pembelajaran yang sangat ideal bagi siswa maupun pengembang pemula yang ingin menguasai pemrograman web berbasis arsitektur Model-View-Controller (MVC). Melalui artikel panduan awal ini, Anda akan mempelajari rancangan fitur, struktur relasi database (ERD), alur bisnis transaksi, serta urutan pengembangan aplikasi SIPUS (Sistem Informasi Perpustakaan Sekolah).

Alasan Mengapa Proyek SIPUS Sangat Cocok Untuk Belajar

Membangun aplikasi perpustakaan memberikan studi kasus nyata yang mudah kita pahami. Selain mempraktikkan fungsi CRUD (Create, Read, Update, Delete) dasar, Anda juga akan belajar mengelola relasi antartabel, validasi stok secara real-time, serta penanganan transaksi database yang aman.

Di samping itu, Anda dapat mengikuti panduan instalasi dan setup database pada artikel berikutnya untuk memulai tahap pengkodean aplikasi. Untuk memahami standar arsitektur dan dokumentasi resmi framework, Anda juga dapat mengunjungi halaman resmi dokumentasi CodeIgniter 4.

Ruang Lingkup dan Fitur Utama Aplikasi

Aplikasi SIPUS terrancang khusus untuk mempermudah operasional staf perpustakaan sekolah. Fitur utama yang ada meliputi:

  • Autentikasi Pengguna: Sistem login, logout, manajemen session, serta pembatasan hak akses berbasis peran (admin dan petugas).
  • Dashboard Operasional: Ringkasan statistik jumlah koleksi buku, anggota aktif, transaksi berjalan, dan daftar keterlambatan.
  • Modul Master Data: Pengelolaan data kategori buku, data detail buku beserta stok, serta data anggota perpustakaan.
  • Transaksi Peminjaman dan Pengembalian: Pencatatan peminjaman multi-buku sekaligus, cek ketersediaan stok, hingga pelacakan pengembalian bertahap.
  • Laporan dan Riwayat: Rekapitulasi transaksi peminjaman, pencatatan keterlambatan pengembalian, serta pencarian data.

Rancangan Database dan Relasi Tabel (ERD)

Database SIPUS menggunakan MySQL atau MariaDB dengan tujuh tabel utama yang saling terhubung untuk menjaga integritas data:

  1. Tabel users: Menyimpan informasi akun admin dan petugas beserta password_hash.
  2. Tabel categories: Menyimpan daftar kategori buku.
  3. Tabel books: Menyimpan detail informasi buku, lokasi, total stok, dan stok yang tersedia.
  4. Tabel members: Menyimpan data anggota perpustakaan dan status keanggotaan.
  5. Tabel loans: Menyimpan header transaksi peminjaman utama seperti kode peminjaman, tanggal pinjam, dan tanggal jatuh tempo.
  6. Tabel loan_details: Menyimpan daftar buku yang terpinjam dalam satu nomor transaksi.
  7. Tabel loan_returns: Menyimpan catatan riwayat pengembalian buku secara fleksibel.
ERD Sipus
ERD Sipus

Aturan Relasi Antartabel

Relasi antar tabel rancangannya untuk mendukung operasional perpustakaan secara konsisten:

  • Satu kategori dapat menampung banyak buku (1:N).
  • Satu anggota dapat memiliki banyak riwayat transaksi peminjaman (1:N).
  • Satu petugas dapat mencatat banyak transaksi peminjaman maupun pengembalian (1:N).
  • Satu transaksi peminjaman dapat mencakup beberapa judul buku sekaligus melalui tabel detail (1:N).

Penjelasan hubungan tabel

RelasiKardinalitasMakna
categories → books1:NSatu kategori dapat memiliki banyak buku.
members → loans1:NSatu anggota dapat memiliki banyak transaksi.
users → loans1:NSatu petugas dapat mencatat banyak peminjaman.
loans → loan_details1:NSatu transaksi mencakup beberapa buku.
books → loan_details1:NSatu buku dapat muncul dalam banyak transaksi.
loan_details → loan_returns1:NSatu detail peminjaman dapat dikembalikan bertahap.
users → loan_returns1:NSatu petugas dapat memproses banyak pengembalian.

Mengapa membutuhkan loan_details?

Misalnya, anggota bernama Andi meminjam dua buku sekaligus. Data transaksi tersimpan satu kali pada loans, sedangkan masing-masing buku tersimpan pada baris terpisah di loan_details.

Alur Bisnis Transaksi Peminjaman dan Pengembalian

Proses peminjaman awalnya dengan pemeriksaan status keaktifan anggota dan pengecekan ketersediaan stok buku di database. Ketika transaksi tersimpan, sistem akan secara otomatis mengurangi stok buku yang tersedia serta mencatat detail peminjaman.

Pada proses pengembalian, petugas dapat mencatat pengembalian buku secara bertahap atau sekaligus. Setiap kali buku kembali, stok buku yang tersedia akan bertambah kembali secara otomatis, dan status transaksi akan berubah menjadi selesai apabila seluruh buku telah kembali.

Struktur folder CodeIgniter 4

Struktur berikut memisahkan tanggung jawab tiap bagian agar siswa belajar pola MVC yang rapi.

app/
├── Config/
│   └── Routes.php
├── Controllers/
│   ├── AuthController.php
│   ├── DashboardController.php
│   ├── UsersController.php
│   ├── CategoriesController.php
│   ├── BooksController.php
│   ├── MembersController.php
│   ├── LoansController.php
│   ├── ReturnsController.php
│   └── ReportsController.php
├── Database/
│   ├── Migrations/
│   └── Seeds/
├── Filters/
│   ├── AuthFilter.php
│   └── RoleFilter.php
├── Models/
│   ├── UserModel.php
│   ├── CategoryModel.php
│   ├── BookModel.php
│   ├── MemberModel.php
│   ├── LoanModel.php
│   ├── LoanDetailModel.php
│   └── LoanReturnModel.php
└── Views/
    ├── layouts/
    │   ├── main.php
    │   ├── navbar.php
    │   └── sidebar.php
    ├── auth/
    │   └── login.php
    ├── dashboard/
    │   └── index.php
    ├── users/
    ├── categories/
    ├── books/
    ├── members/
    ├── loans/
    │   ├── index.php
    │   ├── create.php
    │   └── detail.php
    ├── returns/
    └── reports/

Folder Migrations/ dan Seeds/ akan terisi file untuk membuat struktur database dan data awal. Folder view modul master data nantinya masing-masing memiliki halaman index, create, dan edit; detail bisa menggunakan halaman tersendiri jika perlu.

Tanggung jawab tiap komponen

KomponenTugas
RoutesMenentukan URL dan controller tujuan.
ControllerMengatur alur permintaan dan respons.
ModelMengelola query dan akses database.
ViewMenampilkan HTML dan Bootstrap 5.
FilterMelindungi halaman dan memeriksa peran.
MigrationMembuat dan mengubah struktur tabel.
SeederMenyediakan data awal untuk praktikum.

Aturan penting: logika transaksi tidak boleh hanya terletak pada view. Controller menangani alur permintaan, sedangkan proses bisnis seperti validasi stok, pencatatan pengembalian, dan perubahan stok perlu terkelola secara terpusat serta terbungkus dalam transaksi database yang tepat.

Daftar halaman aplikasi

Berikut rancangan halaman yang \terdata. URL ini adalah usulan untuk Routes.php, bukan kode routing final.

HalamanURL usulanHak akses
Login/loginPublik
Dashboard/dashboardAdmin, petugas
Daftar kategori/categoriesAdmin
Daftar buku/booksAdmin
Daftar anggota/membersAdmin
Daftar pengguna/usersAdmin
Daftar peminjaman/loansAdmin, petugas
Tambah peminjaman/loans/createAdmin, petugas
Detail peminjaman/loans/{id}Admin, petugas
Pengembalian/returnsAdmin, petugas
Proses pengembalian/returns/process/{id}Admin, petugas
Laporan/reportsAdmin
Logout/logoutPengguna login

Setiap modul CRUD memiliki operasi tambah, lihat, ubah, dan hapus atau nonaktifkan sesuai karakter data. Untuk transaksi, operasi lebih terbatas: peminjaman tercatat melalui formulir transaksi, sedangkan pengembalian melalui formulir khusus yang mencatat jumlah buku yang benar-benar kembali.

Tahapan Pembelajaran yang Akan Kita Pelajari

Untuk mempermudah proses belajar, pengembangan aplikasi SIPUS terbagi menjadi enam tahapan terstruktur:

  1. Tahap 1: Instalasi framework CodeIgniter 4, konfigurasi database MySQL, pembuatan migration 7 tabel, dan seeder data awal.
  2. Tahap 2: Pembuatan routing, struktur MVC, serta modul CRUD master data kategori dan buku.
  3. Tahap 3: Pembuatan CRUD anggota, validasi server-side, relasi tabel JOIN, serta fitur pencarian dan pagination.
  4. Tahap 4: Implementasi autentikasi login, hashing password, session, dan filter hak akses halaman.
  5. Tahap 5: Pembuatan modul transaksi peminjaman multi-buku, validasi stok, dan mekanisme database transaction.
  6. Tahap 6: Pembuatan rekapitulasi laporan, pengujian keamanan CSRF, serta penyempurnaan antarmuka Bootstrap 5.

Akhirnya, rancangan awal aplikasi sistem informasi perpustakaan CodeIgniter 4 ini siap menjadi fondasi utama Anda sebelum memulai pengerjaan kode program.

Sistem Informasi Perpustakaan CodeIgniter 4

Sistem Informasi Perpustakaan CodeIgniter 4: Setup dan Konfigurasi Database

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses