Sistem Informasi Perpustakaan Digital (SIPAS) - SMK Ardli Sela
Selamat datang di portal panduan praktikum interaktif pengembangan aplikasi perpustakaan sekolah berbasis CodeIgniter 3 + MySQL + Bootstrap 5. Modul ini telah disusun secara modular (terpisah menjadi 9 bab materi ringan) dengan Full Source Code dan 100% Offline Ready.
Bedah Lengkap Soal UKK & Alur Kerja Sistem Perpustakaan
Panduan terstruktur: Dari membaca soal, merancang database, koding, pengujian, hingga berkas yang harus dikumpulkan saat ujian.
💡 Prinsip Utama Siswa RPL: Jangan membaca soal ujian mentah-mentah lalu panik. Pecah soal menjadi 4 pertanyaan sederhana: "Kalian sebenarnya diminta membuat apa, fiturnya apa saja, alurnya bagaimana, dan apa saja bukti berkas yang wajib dikumpulkan ke penguji?"
1 Inti Tugas Ujian Praktik Kejuruan
Sederhananya: Kalian diminta membuat aplikasi Perpustakaan Sekolah berbasis web yang berjalan di localhost (tanpa koneksi internet).
Jadi bukan sekadar membuat brosur web statis yang hanya memajang daftar buku! Aplikasinya harus benar-benar memiliki database MySQL yang terhubung dan memiliki proses transaksi peminjaman & pengembalian buku nyata. Waktu ujian adalah 9 jam dan dikerjakan secara mandiri (perorangan).
2 Dua Jenis Hak Akses Pengguna (Role Authorization)
Memiliki hak akses penuh (CRUD Lengkap):
- CRUD Buku: Tambah buku (upload cover/gambar), lihat katalog, edit data, dan hapus buku.
- CRUD Anggota: Tambah anggota siswa (upload foto profil), pantau akun, edit status, dan hapus.
- CRUD Transaksi: Memantau semua peminjaman siswa dan memvalidasi pengembalian buku fisik di meja layanan.
Hak akses terfokus pada layanan peminjaman:
- Daftar & Login: Registrasi akun mandiri dengan NIS dan username unik.
- Katalog & Pencarian Buku: Mencari judul, filter kategori, melihat lokasi rak & sisa stok eksemplar.
- Peminjaman Mandiri: Meminjam buku langsung dengan 1 klik (otomatis memotong stok buku -1).
- Menu "Buku Saya": Memantau jatuh tempo dan mengembalikan buku secara mandiri (otomatis menambah stok +1).
- Ganti Foto Profil: Mengunggah foto profil sendiri di halaman akun siswa.
- Dilarang Keras: Siswa tidak boleh bisa mengedit/menghapus buku milik perpustakaan.
3 Tampilan Flowchart / Flowmap Sistem Usulan (Soal UKK Halaman 3)
Berikut adalah diagram alur kerja resmi (Flowchart Soal UKK Halaman 3) yang menunjukkan pembagian proses sistem antara Admin dan Siswa:
4 Matriks Halaman & Hak Akses (Sesuai Tabel Soal UKK Halaman 4)
📱 Tabel di bawah otomatis bertransformasi menjadi kartu rapi di layar ponsel (mobile-friendly tanpa perlu geser horizontal):
| Fitur / Halaman | User / Siswa | Admin Petugas | Keterangan pada Aplikasi SIPAS |
|---|---|---|---|
| Daftar Akun | ✓ (Bisa) | ✓ (Bisa) | Siswa daftar mandiri; Admin dapat menambahkan anggota baru langsung dari panel admin. |
| Login Multi-Role | ✓ (Bisa) | ✓ (Bisa) | 1 halaman login terintegrasi, otomatis membedakan dashboard Admin vs Siswa via session. |
| Dashboard Interaktif | ✓ (Bisa) | ✓ (Bisa) | Admin memantau total buku, stok, & transaksi; Siswa memantau kuota pinjaman aktif. |
| Pencarian Buku (Kondisi Tertentu) | ✓ (Bisa) | ✓ (Bisa) | Pencarian multi-kolom kata kunci (judul, penulis, kode) & filter kategori buku. |
| Peminjaman & Pengembalian Buku | ✓ (Bisa) | ✓ (Bisa) | Siswa bisa meminjam & mengembalikan mandiri di portal; Admin memproses di meja sirkulasi. |
| CRUD Transaksi | ✓ (Bisa) | ✓ (Bisa) | Tercatat di tabel transaksi lengkap dengan tanggal pinjam, batas tempo, & status. |
| CRUD Kelola Data Buku | ✕ (Dilarang) | ✓ (Bisa) | Hanya Admin: Tambah buku, upload cover, edit data buku, serta menghapus buku. |
| CRUD Kelola Data Anggota | ✕ (Dilarang) | ✓ (Bisa) | Hanya Admin: Tambah akun siswa, upload foto profil, aktivasi/nonaktifkan status akun. |
5 Struktur Database: Menyimpan Apa Saja?
Aplikasi SIPAS dirancang dengan skema relasional 3 tabel yang solid, efisien, dan memiliki integritas data:
users
id, username, password, nama, nis, kelas, foto, role, status
buku
id, kode_buku, judul, penulis, penerbit, tahun_terbit, kategori, stok, rak, deskripsi, gambar
transaksi
id, kode_transaksi, user_id, buku_id, tanggal_pinjam, batas_kembali, tanggal_kembali, status
6 Logika Peminjaman & Manipulasi Stok Fisik (Business Logic)
Inilah yang membedakan aplikasi nyata dengan tampilan web palsu:
- Siswa Meminjam: Andi login → melihat buku Dasar Pemrograman PHP (Stok: 5) → klik tombol Pinjam Buku.
- Sistem Memproses Transaksi: Mengurangi stok buku secara otomatis (5 → 4), mencatat transaksi dengan kode
TRX..., statusdipinjam, dan tanggal tempo 7 hari ke depan. - Validasi Pencegahan: Jika stok habis (0), tombol pinjam dinonaktifkan otomatis. Jika Andi sudah meminjam buku tersebut dan belum kembali, sistem menolak peminjaman ganda.
- Siswa Mengembalikan: Saat buku dikembalikan di portal siswa atau meja admin, status berubah menjadi
dikembalikandan stok buku bertambah kembali (4 → 5).
7 Fitur Wajib: "Pencarian untuk Kondisi Tertentu"
Di lembar soal halaman 4 tertulis jelas fitur "Pencarian untuk Kondisi Tertentu (User: V, Admin: V)". Di aplikasi SIPAS, fitur ini telah diterapkan secara maksimal:
- Pencarian Buku: Bisa mencari berdasarkan kata kunci judul, nama penulis, kode buku, atau filter dropdown kategori buku.
- Pencarian Anggota: Petugas admin bisa mencari siswa berdasarkan nama, NIS, atau memfilter status aktif/nonaktif.
- Pencarian Transaksi: Mencari nomor resi transaksi, nama siswa peminjam, atau judul buku dengan filter status dipinjam/kembali.
8 Langkah Kerja Debugging & Pengujian Sistem
Di lembar penilaian, penguji akan mengamati apakah siswa paham cara menguji aplikasi mereka sendiri. Siapkan 5 skenario uji berikut di hadapan penguji:
Coba masukkan password yang salah. Hasil: Aplikasi menolak login dan memunculkan pesan peringatan merah.
Siswa login lalu mencoba buka URL
admin/buku. Hasil: Sistem otomatis menolak dan mengarahkan kembali ke dashboard siswa.
Kosongkan field wajib atau masukkan kode buku yang sudah ada. Hasil: Form menampilkan error validasi tanpa merusak database.
Lakukan peminjaman dan pengembalian. Cek apakah angka stok di database dan tabel berubah akurat.
9 Bukti Berkas yang Wajib Dikumpulkan (Penting!)
Jangan habiskan 9 jam hanya untuk coding! Sisakan minimal 1,5 jam terakhir untuk menyiapkan 4 berkas pengumpulan resmi sesuai lembar soal halaman 4:
- Folder Proyek Aplikasi: Berkas source code lengkap CodeIgniter 3 (folder
htdocs/perpustakaanatau folder proyek mandiri Anda). - Database dengan Ekstensi .sql: Hasil export database dari phpMyAdmin (contoh:
db_perpustakaan.sql). -
Dokumentasi Tertulis (MS Word / PDF):
- a. ERD (Entity Relationship Diagram) relasi 3 tabel.
- b. Deskripsi program (latar belakang & fungsi aplikasi).
- c. Dokumentasi fungsi/prosedur utama (login, CRUD, transaksi).
- d. Bukti hasil uji Debugging (tabel pengujian & tangkapan layar).
- Laporan Evaluasi Singkat: Ulasan kesimpulan pengerjaan dan kelebihan/kendala selama pembuatan aplikasi.
10 Visualisasi ERD (Entity Relationship Diagram) & Relasi Tabel
ERD memetakan relasi data secara visual antara users, transaksi, dan buku:
- USERS → TRANSAKSI (1 : N): Satu orang siswa bisa memiliki banyak riwayat transaksi peminjaman.
- BUKU → TRANSAKSI (1 : N): Satu judul buku dapat dipinjam dalam banyak transaksi peminjaman dari waktu ke waktu.
- Foreign Key Constraint:
user_idterikat keusers.id(CASCADE), danbuku_idterikat kebuku.id(RESTRICT agar buku yang sedang dipinjam tidak terhapus sembarangan).
11 Cara Menuliskan Dokumentasi Fungsi / Prosedur
Siswa tidak perlu menyalin setiap baris sintaks kode! Tuliskan fungsi modul secara fungsional seperti berikut:
- Fungsi
login_process(): Memeriksa keabsahan username dan verifikasi kecocokan hash password Bcrypt. Jika valid, membuat session dan mendistribusikan pengguna ke dashboard sesuai role. - Fungsi
create_peminjaman(): Menjalankan transaksi basis data untuk memvalidasi limit pinjaman, mencatat kode transaksi unik, dan mengurangi stok buku secara atomik. - Fungsi
kembalikan_buku(): Mengubah status transaksi menjadi 'dikembalikan', mencatat waktu pengembalian, dan menambah kembali stok buku.
12 Urutan Pengerjaan Ideal (Rekomendasi Waktu 9 Jam)
Tahap 2 (1.0 Jam): Buat database
db_perpustakaan di phpMyAdmin dan hubungkan dengan CodeIgniter 3.Tahap 3 (1.5 Jam): Siapkan Auth Helper, Layout Master, dan sistem Login + Registrasi multi-role.
Tahap 4 (2.0 Jam): Selesaikan modul Admin (Dashboard ringkasan statistik, CRUD Buku dengan upload cover, CRUD Anggota).
Tahap 5 (2.0 Jam): Selesaikan modul Siswa (Katalog buku dengan pencarian, peminjaman otomatis potong stok, halaman Buku Saya).
Tahap 6 (1.0 Jam): Pengujian menyeluruh (Debugging seluruh tombol, validasi error form, keamanan filter hak akses).
Tahap 7 (1.0 Jam): Ekspor database SQL, susun berkas ERD, dokumentasi prosedur, dan laporan evaluasi singkat.
PERINGATAN KRUSIAL: UKK BERSIFAT MANDIRI / PERORANGAN!
BELUM DIKONFIRMASI 🔒Meskipun materi tutorial ini dapat dipelajari bersama selama sesi latihan, saat hari pelaksanaan ujian penilaian dilakukan secara perorangan (individu). Setiap siswa WAJIB memiliki proyek aplikasi masing-masing yang unik dan tidak diperkenankan sama persis dengan teman:
- Nama Database & Folder Mandiri: Wajib gunakan prefix nama/NIS Anda (contoh:
db_perpustakaan_andi, folder:C:\xampp\htdocs\perpustakaan_andi). - Data Riil Unik: Input data buku, penulis, penerbit, dan anggota yang berbeda dari teman sebelah.
- Diferensiasi Tampilan: Sesuaikan judul web sekolah, slogan sambutan, atau sedikit aksen warna.
Daftar Modul Praktikum Terstruktur
Pilih modul di bawah ini atau navigasikan melalui menu sidebar sebelah kiri:
Pengantar MVC & Localhost
Memahami pemisahan Model-View-Controller, RDBMS, direktori htdocs, dan port 80/3306.
XAMPP, htdocs & Database Manual
Start Apache/MySQL, ekstrak ZIP ke htdocs, buka Sublime, dan buat tabel users/buku/transaksi.
Konfigurasi Dasar CodeIgniter 3
Full code konfigurasi config.php (dynamic base_url), database.php, autoload.php, dan .htaccess.
Auth Helper & Master Layouts
Full code fungsi penjaga sesi (check_admin, check_user) dan views modular (header, navbar, footer).
Landing Page Publik & Autentikasi
Full code Controller Home, view home.php, User_model, Controller Auth (Bcrypt), dan form login/register.
Admin: Dashboard & CRUD Buku
Full code agregasi statistik perpustakaan, model kueri buku, pencarian, dan proteksi hapus buku.
Admin: Anggota & Sirkulasi Transaksi
Full code Transaksi_model atomik ($this->db->trans_start), Controller Anggota & Transaksi, serta seluruh Views formulir tambah/edit, kartu profil, dan sirkulasi.
Modul Portal Siswa
Full code katalog buku 3 kolom, modal pinjam, Buku Saya, riwayat peminjaman, serta profil siswa mandiri.
Prosedur Pengujian UKK
Skenario live demo pengujian hak akses admin, siswa, dan mutasi stok di depan guru penguji.
Panduan Mengatasi Error & Bantuan AI
Membaca Parse error, deteksi typo titik koma, dan template prompt meminta bantuan AI mencari bug.