Domain: Perpustakaan¶
SSOT untuk modul perpustakaan Scola — katalog, sirkulasi, denda, GLS, paket buku ajar.
Last verified: 2026-04-01
1. Visi & Best Practice¶
1.1 Regulasi & Standar Acuan¶
| Standar | Relevansi |
|---|---|
| SNI 7329:2009 | Standar perpustakaan sekolah |
| Permendikbud No. 23/2015 | GLS (Gerakan Literasi Sekolah) |
| SNP Standar Sarana & Prasarana | Minimal koleksi, ruang, petugas |
| DDC (Dewey Decimal Classification) | Klasifikasi koleksi |
| INLIS/SLiMS compatibility | Standar otomasi perpustakaan Indonesia |
1.2 Kondisi Ideal¶
Katalog & Koleksi: - Katalog media digital (buku, majalah, CD, digital resources) - Metadata: judul, pengarang, penerbit, ISBN, DDC, tahun, cover - Unit management: setiap media bisa punya multiple physical copies (units) - Barcode/QR per unit - Jenis media configurable (buku, majalah, referensi, audiovisual, dsb.) - Tags & categories untuk pencarian
Sirkulasi: - Peminjaman: scan barcode/QR → link ke anggota - Pengembalian: scan barcode/QR → auto-calculate denda jika terlambat - Quick circulation (batch scan) - Antrian peminjaman (jika semua unit dipinjam) - Durasi pinjam configurable per jenis media - Batas pinjam per anggota configurable
Keanggotaan: - Kartu perpustakaan digital - Jenis kartu per kategori anggota (siswa, guru, umum) - Cetak kartu fisik - Riwayat pinjam per anggota
Denda: - Auto-calculate berdasarkan hari keterlambatan - Tarif denda configurable - Monitoring denda outstanding - Pembayaran denda (manual / link ke keuangan)
GLS (Gerakan Literasi Sekolah): - Program literasi: target baca per semester - Reading log: siswa catat buku yang dibaca - Verifikasi guru: approve reading log - Dashboard literasi: progress per kelas - Laporan akreditasi literasi
Paket Buku Ajar: - Paket buku per jenjang/kelas - Distribusi buku ke siswa di awal tahun - Return tracking di akhir tahun - Kondisi buku tracking
Reporting: - Statistik sirkulasi (pinjam/kembali per periode) - Koleksi per kategori - Anggota aktif vs pasif - Stock opname - Laporan akreditasi perpustakaan
2. Arsitektur & Data Model¶
2.1 Frontend Structure¶
src/views/LibraryManagement/
├── LibrarianDashboard.vue # Dashboard pustakawan
├── LibrarianProfile.vue # Profil pustakawan
├── Media/ # Katalog & koleksi
│ ├── MediaCatalogPage.vue # Katalog media
│ ├── MediaDetails.vue # Detail media
│ ├── AddLibraryHome.vue # Tambah media
│ ├── MediaUnitsPage.vue # Unit management
│ ├── MediaUnitsDetail.vue # Detail unit
│ ├── MediaUnitsNew.vue # Tambah unit
│ ├── MediaMovement.vue # Sirkulasi (peminjaman/pengembalian)
│ ├── MediaMovementNew.vue # Catat sirkulasi baru
│ ├── MediaQueuePage.vue # Antrian pinjam
│ ├── MediaQueueNew.vue # Tambah antrian
│ ├── MediaPurchasePage.vue # Pengadaan buku
│ ├── MediaPurchaseDetail.vue # Detail pengadaan
│ └── MediaPurchaseNew.vue # Tambah pengadaan
├── Fines/
│ └── LibraryFines.vue # Monitoring denda
├── Circulation/
│ ├── FineManagement.vue # Kelola denda
│ ├── QuickCirculation.vue # Batch scan pinjam/kembali
│ └── ...
├── Returns/
│ └── ReturnWorkflow.vue # Return workflow
├── Konfigurasi/
│ ├── LibraryCards.vue # Kartu perpustakaan
│ ├── LibraryCardsDetail.vue
│ ├── LibraryCardTypesPage.vue # Jenis kartu
│ ├── Publishers.vue # Penerbit
│ ├── AuthorsPage.vue # Penulis
│ ├── MediaTypePage.vue # Jenis media
│ └── MediaTagsPage.vue # Tags
├── Settings/
│ ├── LibrarySettings.vue # Pengaturan umum
│ ├── LibraryLocations.vue # Lokasi perpustakaan
│ ├── CollectionPolicy.vue # Kebijakan koleksi
│ ├── ServiceCalendar.vue # Kalender layanan
│ └── PrivacySettings.vue # Pengaturan privasi
├── Textbook/
│ ├── TextbookPackages.vue # Paket buku ajar
│ └── TextbookDistribution.vue # Distribusi buku
├── StockOpname/
│ └── StockOpname.vue # Stock opname
├── Labels/
│ └── PrintLabels.vue # Cetak label barcode
├── Reports/
│ ├── LibraryReports.vue # Laporan umum
│ └── AccreditationReport.vue # Laporan akreditasi
└── GLS/
├── GLSPrograms.vue # Program literasi
└── ReadingDashboard.vue # Dashboard baca
2.2 Key Capabilities¶
| Capability | Scope |
|---|---|
library.dashboard.view |
Dashboard |
library.catalog.view |
Katalog media |
library.media_units.view |
Unit management |
library.circulation.view |
Sirkulasi (pinjam/kembali) |
library.queue.view |
Antrian pinjam |
library.fines.view |
Monitoring denda |
library.purchases.view |
Pengadaan buku |
library.cards.view |
Kartu anggota |
library.settings.view |
Pengaturan perpus |
library.reports.view |
Laporan |
library.stock_opname.view |
Stock opname |
library.print_labels.view |
Cetak label |
library.textbook_packages.view |
Paket buku ajar |
library.textbook_distribution.view |
Distribusi buku |
library.reading_log.manage |
Verifikasi reading log (teacher) |
2.3 Canonical API¶
Frontend perpustakaan inti sekarang menggunakan namespace canonical /api/v1/library/... untuk:
- katalog & detail media
- pinjaman pribadi & perpanjangan
- reading log & verifikasi guru
- quick circulation & fine management
- laporan perpustakaan & laporan akreditasi
- settings utama perpustakaan
- purchase request siswa/guru
Route detail settings lama (CollectionPolicy, ServiceCalendar, PrivacySettings) diarahkan ke LibrarySettings sebagai halaman canonical tunggal.
Canonical Self-Service Routes¶
| Route | Purpose | Access Notes |
|---|---|---|
/library/home |
Beranda perpustakaan | Student, parent, teacher, principal |
/library/loans |
Pinjaman saya (termasuk riwayat) | Student dan parent (child context) |
/library/wishlist |
Daftar keinginan | Student dan parent (child context), read/write via ownership rules |
/library/purchase-requests |
Daftar usulan pembelian | Read-only untuk parent; create route hanya untuk role berizin |
/library/purchase-requests/new |
Form usulan pembelian | Student/teacher/librarian sesuai capability |
Role → Capabilities (Recommended mapping)¶
| Role | Key library capabilities |
|---|---|
student |
library.catalog.view, library.circulation.view, library.queue.view, library.reading_log.view |
parent |
library.catalog.view, library.queue.view, library.reading_log.view (child context); read-only for purchase requests |
teacher |
library.catalog.view, library.queue.view, library.circulation.view, library.reading_log.view, library.reading_log.manage, library.purchase_requests.view, library.purchase_requests.create |
librarian |
library.* (full access, including purchase request workflow) |
Notes:
- Parents are explicitly read-only for library.purchase_requests.create to match backend enforcement.
- Teachers are granted library.purchase_requests.create so they may suggest purchases on behalf of classes or curriculum needs.
3. Fitur & Status Implementasi¶
| Fitur | Status | Catatan |
|---|---|---|
| Katalog media (CRUD) | ✅ Done | + metadata, cover |
| Unit management (physical copies) | ✅ Done | Barcode per unit |
| Penerbit, penulis, jenis media | ✅ Done | Konfigurasi lengkap |
| Tags & categories | ✅ Done | |
| Sirkulasi (pinjam/kembali) | ✅ Done | |
| Quick circulation (batch) | ✅ Done | QuickCirculation |
| Antrian peminjaman | ✅ Done | MediaQueuePage |
| Denda auto-calculate | ✅ Done | |
| Monitoring & manajemen denda | ✅ Done | LibraryFines + FineManagement via canonical fine API |
| Kartu perpustakaan digital | ✅ Done | + jenis kartu |
| Pengadaan buku | ✅ Done | Purchase workflow + request siswa/guru |
| Settings (lokasi, kalender, policy) | ✅ Done | LibrarySettings canonical, route detail diarahkan ke halaman utama |
| Stock opname | ✅ Done | |
| Cetak label barcode | ✅ Done | |
| Laporan perpustakaan | ✅ Done | Overview report canonical |
| Laporan akreditasi | ✅ Done | AccreditationReport + KPI akreditasi dikoreksi |
| Paket buku ajar | ✅ Done | TextbookPackages |
| Distribusi buku ajar | ✅ Done | TextbookDistribution |
| Return workflow | ✅ Done | |
| GLS programs | ✅ Done | GLSPrograms |
| Reading dashboard | ✅ Done | ReadingDashboard |
| Teacher reading log verification | ✅ Done | Via teacher route |
| Privacy settings | ✅ Done | |
| Siswa/guru view katalog | ✅ Done | Katalog, detail, advanced search, wishlist, queue, loans |
| Pengajuan pembelian buku siswa/guru | ✅ Done | Histori canonical di /library/purchase-requests; form create di /library/purchase-requests/new; parent hanya read-only |
| Konsistensi due date & textbook distribution | ✅ Done | Due date portal/pustakawan mengikuti timezone sekolah dan distribusi buku ajar memakai textbook_loan_days dari settings canonical |
| OPAC (Online Public Access Catalog) | ❌ Gap | Belum ada public-facing catalog |
| SLiMS/INLIS import/export | ❌ Gap | Tidak interoperable |
4. Gap Analysis & Backlog¶
P2 — Nice to Have¶
| Gap | Dampak | Solusi |
|---|---|---|
| OPAC (public catalog) | Siswa/guru search buku dari device sendiri | Public-facing search page |
| SLiMS/INLIS compatibility | Interop dengan sistem perpustakaan lain | Import/export standard format |
| E-book reader integration | Digital reading dalam sistem | Integrate e-reader / PDF viewer |
| WhatsApp reminder pengembalian | Peminjam lupa return | WA notification for due dates |
Note: Core perpustakaan untuk operasional sekolah sekarang sudah tertutup end-to-end. Gap tersisa berfokus pada interoperabilitas dan kanal publik.
5. File References¶
Frontend¶
src/router/librarianRoutes.js— All librarian routes (~461 lines)src/router/teacherRoutes.js— Teacher reading log route (line ~493)src/views/LibraryManagement/— All library views
7. Panduan Konfigurasi Implementor¶
configuration-guides/perpustakaan.md
8. Panduan End User¶
| Role | Panduan |
|---|---|
| Pustakawan | librarian.md |
| Siswa / Ortu | student.md, parent.md |
| Quick Start | pinjam-buku.md |