Pernah nggak kamu buka aplikasi, klik satu halaman, terus nunggu loading berdetik-detik cuma buat lihat data yang sebenarnya dari kemarin juga sama? Kalau iya, kemungkinan besar aplikasi itu ngerjain hal yang sama berulang-ulang tanpa "mengingat" jawabannya. Nah, di dunia CodeIgniter, ada solusi sederhana tapi ampuh buat masalah ini: caching.
Caching itu sebenarnya konsep yang nggak asing-asing banget kalau kita samain sama kehidupan sehari-hari. Yuk, kita bedah pelan-pelan biar kamu nggak cuma tahu cara pakainya, tapi juga ngerti kenapa ini penting.
Coba bayangin kamu punya warung nasi goreng. Setiap ada pelanggan pesan, kamu masak dari awal: motong bawang, panasin wajan, semua dari nol. Kalau yang pesan cuma satu-dua orang, mungkin masih oke. Tapi kalau yang pesan menu yang sama ada 50 orang dalam satu jam, capek banget kan kalau harus masak ulang terus?
Solusi cerdiknya: kamu masak nasi goreng dalam jumlah banyak sekali, taruh di wadah hangat, dan tinggal sajikan kalau ada yang pesan menu itu lagi. Lebih cepat, lebih hemat tenaga, pelanggan juga senang karena nggak nunggu lama.
Itulah persisnya yang dilakukan caching di aplikasi CodeIgniter. Alih-alih server "memasak ulang" data dari database setiap ada request yang datang, hasil olahan data itu disimpan sementara. Jadi request berikutnya yang minta data sama, tinggal diambil dari "wadah hangat" itu — jauh lebih cepat.
Setiap kali aplikasi CodeIgniter mengambil data dari database, ada proses yang harus dilewati: koneksi ke database, query dijalankan, hasilnya diolah, baru ditampilkan. Proses ini kelihatan sepele, tapi kalau dilakukan berulang-ulang untuk data yang sama, itu buang-buang waktu dan resource server.
Menurut beberapa riset soal performa web, pengguna internet cenderung meninggalkan halaman yang loading lebih dari 3 detik. Bayangkan kalau aplikasimu punya ribuan pengunjung per hari — selisih beberapa detik saja bisa berarti banyak pengunjung yang kabur duluan sebelum halaman selesai dimuat.
Di sinilah caching jadi penyelamat. Dengan menyimpan hasil query atau halaman yang sering diakses, server nggak perlu kerja dua kali untuk hal yang sama.
CodeIgniter menyediakan beberapa cara untuk "menyimpan hasil masakan" tadi, tergantung kebutuhan:
Biar nggak cuma teori, ini contoh gambaran sederhana bagaimana caching dipakai di CodeIgniter menggunakan Cache Library-nya:
<?php
class Berita extends CI_Controller {
public function index()
{
$this->load->driver('cache', array('adapter' => 'file'));
$data = $this->cache->get('daftar_berita');
if ($data === FALSE) {
// Kalau cache belum ada, ambil dari database
$this->load->model('Berita_model');
$data = $this->Berita_model->get_semua();
// Simpan hasilnya ke cache selama 300 detik (5 menit)
$this->cache->save('daftar_berita', $data, 300);
}
$this->load->view('halaman_berita', array('berita' => $data));
}
}
Coba perhatikan logikanya: pertama, kita cek dulu apakah data sudah "disimpan hangat" di cache. Kalau belum ada (masih FALSE), baru ambil dari database dan simpan buat request berikutnya. Simpel kan? Tapi efeknya ke performa bisa signifikan, terutama untuk halaman yang diakses banyak orang tapi datanya nggak sering berubah.
Nggak semua data cocok di-cache. Data yang berubah tiap detik, seperti saldo rekening atau status transaksi real-time, justru bisa berbahaya kalau di-cache — bisa jadi kamu nampilin data basi ke pengguna.
Caching paling cocok untuk data yang:
Ibaratnya, kamu nggak perlu bikin nasi goreng baru buat menu yang emang selalu berubah tiap menit. Tapi buat menu andalan yang laris dan resepnya nggak berubah, ya masak sekali banyak, hemat waktu.
Caching bukan sihir yang bikin aplikasi otomatis kilat, tapi ini salah satu senjata paling praktis buat bikin aplikasi CodeIgniter-mu terasa lebih responsif tanpa harus upgrade server. Cukup dengan mengenali data mana yang layak "disimpan hangat", kamu udah bisa mengurangi beban server secara signifikan.
Jadi, sekarang coba deh cek aplikasimu sendiri. Ada nggak halaman yang sering diakses tapi datanya jarang berubah? Kalau ada, itu kandidat kuat buat mulai belajar dan menerapkan caching. Selamat mencoba, dan rasakan sendiri bedanya!
Download semua project premium tanpa batas mulai Rp99.000.