Caching adalah proses menyimpan hasil dari proses berat (misalnya query database) ke dalam file statis sementara, agar ketika pengguna membuka laporan lagi, sistem tidak perlu menghitung ulang — cukup menampilkan hasil yang sudah disimpan.
Tujuan Caching di SLiMS
1. Mengurangi beban server/database
2. Mempercepat loading halaman laporan
3. Membuat tampilan tetap responsif, meskipun datanya besar
4. Efisien untuk laporan yang tidak berubah setiap saat (misalnya rekap koleksi per klasifikasi)
Metode caching yang diterapkan dalam percakapan ini adalah sebuah pendekatan cerdas untuk mengurangi beban kerja server dalam menampilkan laporan yang bersifat berat dan memakan waktu, seperti laporan statistik koleksi, rekapitulasi klasifikasi, atau laporan pengadaan (procurement report) di sistem SLiMS. Konsep dasarnya sederhana namun sangat efektif: alih-alih membiarkan server melakukan query ke database setiap kali laporan diminta, hasil dari proses tersebut disimpan terlebih dahulu ke dalam sebuah file statis — inilah yang disebut cache. File ini biasanya berbentuk HTML dan diletakkan di direktori tertentu, dalam hal ini folder files/cache/
. Saat pengguna membuka laporan di waktu berikutnya, sistem akan memeriksa apakah file cache tersebut masih berlaku atau sudah kadaluarsa. Jika cache masih dalam jangka waktu yang ditentukan — dalam implementasi ini selama satu hari (86400 detik) — maka sistem langsung menampilkan isi cache tersebut tanpa memproses ulang query database atau membangun ulang tampilan laporan. Ini sangat menghemat sumber daya dan mempercepat waktu muat halaman.
Proses caching ini dimulai dengan memeriksa apakah file cache sudah tersedia dan apakah usia file tersebut masih dalam batas waktu yang ditentukan. Jika ya, maka sistem akan menampilkan file tersebut dan menghentikan proses lebih lanjut. Jika tidak, sistem akan melanjutkan untuk memproses data seperti biasa: menjalankan query, menghitung jumlah judul dan eksemplar, serta membentuk tabel HTML. Namun, alih-alih langsung menampilkan hasilnya ke browser, sistem menyimpannya terlebih dahulu menggunakan ob_start()
dan ob_get_clean()
— metode ini menangkap seluruh output tampilan HTML sebagai satu string. Setelah itu, string tersebut disimpan ke dalam file cache menggunakan fungsi file_put_contents()
, lalu ditampilkan ke pengguna menggunakan template tampilan SLiMS seperti printed_page_tpl.php
atau pop_iframe_tpl.php
agar tampilannya tetap konsisten dan profesional.
Dengan metode ini, kecepatan akses laporan meningkat drastis karena hanya satu kali query berat yang dilakukan dalam satu hari — selebihnya cukup menampilkan file cache. Ini sangat bermanfaat, terutama jika laporan diakses berulang-ulang oleh banyak pengguna dalam waktu singkat. Selain itu, metode ini fleksibel dan tidak memerlukan database tambahan atau plugin eksternal. Hanya dengan beberapa baris kode tambahan dan folder cache yang dapat ditulis, performa SLiMS bisa ditingkatkan secara signifikan. Tidak hanya membuat halaman lebih cepat, metode caching ini juga membantu menghindari overload server dan menjaga kenyamanan pengguna, terutama di jam-jam sibuk atau ketika jumlah data sudah besar. Dengan kata lain, caching adalah bentuk efisiensi yang elegan — menyimpan hasil dari kerja keras sistem agar tidak perlu diulang, dan menghadirkannya kembali saat dibutuhkan, secepat membuka sebuah buku yang sudah ditandai halamannya.
Contoh Chacing pada Menu Rekapitulasi dan Laporan Perolehan di Menu Pelaporan