Lewati ke isi

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 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