← Kembali ke Beranda
Ilustrasi Artikel

Session dan Cookie: Rahasia Website Mengingat Siapa Dirimu

Halo Sobat Jurnal Coding! Pada artikel sebelumnya, kita sudah membedah tuntas tentang konsep CRUD (Create, Read, Update, Delete) yang menjadi jantung dari segala aplikasi di dunia. Kamu sudah bisa membuat formulir pendaftaran dan menyimpannya ke dalam Kulkas Database MySQL.

Namun, ada satu masalah besar yang akan kamu hadapi setelah pengunjung berhasil masuk (login).

Bayangkan kamu sedang membuka aplikasi Facebook. Kamu memasukkan email dan password, lalu klik tombol masuk. Halaman beranda terbuka. Tapi saat kamu mengeklik menu profil, tiba-tiba Facebook memintamu memasukkan password lagi! Kamu mau mengeklik menu pesan, diminta password lagi! Sangat menyebalkan, bukan?

Hal ini terjadi karena pada dasarnya, server internet (HTTP) itu mengidap penyakit amnesia ekstrem. Server sama sekali tidak punya ingatan. Setiap kali kamu pindah halaman, bagi server, kamu adalah orang asing yang baru pertama kali datang.

Lalu, bagaimana cara Facebook, Tokopedia, dan Google bisa mengingat bahwa kamu sudah login meskipun kamu menutup browser dan membukanya lagi besok hari? Di sinilah kita menggunakan sihir kembar bernama: Session dan Cookie.

### Analogi Stempel VIP di Taman Hiburan

Untuk memahami perbedaan keduanya, bayangkan kamu sedang pergi ke sebuah Taman Hiburan eksklusif.

Saat kamu pertama kali datang ke loket tiket (halaman Login), kamu menyerahkan KTP dan membayar tiket (memasukkan username dan password). Satpam mengecek datanya, dan menyatakan bahwa kamu adalah pengunjung sah.

Agar kamu tidak perlu menunjukkan KTP lagi setiap kali ingin naik wahana Roller Coaster atau Rumah Hantu, satpam tersebut melakukan DUA hal:

1. Memberikan Cap Stempel di Tanganmu (Ini adalah COOKIE).
Stempel ini menempel secara fisik di tanganmu (disimpan di dalam browser laptop/HP pengunjung). Kelemahannya, stempel ini bisa luntur kalau kamu mencuci tangan (menghapus riwayat browser), atau bisa dipalsukan oleh orang jahat jika mereka melihat bentuk stempelnya. Oleh karena itu, stempel ini hanya digunakan untuk menyimpan data yang tidak terlalu rahasia, seperti preferensi Dark Mode atau isi keranjang belanja sementara.

2. Mencatat Namamu di Buku Rahasia Satpam (Ini adalah SESSION).
Satpam mencatat di buku catatannya: Pengunjung nomor 007 bernama Budi, sudah bayar lunas. Buku ini disimpan rapat-rapat di dalam pos satpam (disimpan di dalam memori Server komputer). Ini sangat aman karena tidak ada pengunjung yang bisa mencuri atau mengubah isi buku satpam tersebut! Di tanganmu, satpam hanya memberikan sebuah gelang kertas bertuliskan angka 007 (Session ID).

### Bagaimana Keduanya Bekerja Sama?

Di dunia pemrograman PHP, kedua fitur ini bekerja bahu-membahu.

Setiap kali kamu berpindah halaman (mau naik wahana baru), browser-mu akan otomatis menunjukkan gelang kertas nomor 007 (Cookie) ke server. Koki PHP di dalam server akan melihat nomor itu, lalu membuka buku catatannya (Session): Wah, nomor 007 ini adalah Budi, dan dia berstatus sudah login! Silakan masuk!


Perbedaan Utama Singkat:



- Cookie: Disimpan di komputer pengunjung. Bisa dihapus pengunjung. Cocok untuk mengingat pilihan bahasa, tema gelap, atau iklan.

- Session: Disimpan di dalam memori komputer Server. Hilang saat browser ditutup atau tombol Logout ditekan. Wajib digunakan untuk data sensitif seperti hak akses Admin dan saldo uang!


### Menerapkan Sihir Ini di Kode

Saat kamu belajar PHP, kamu akan sangat sering bertemu dengan fungsi ajaib bernama session_start(). Ini adalah kalimat pembuka wajib yang harus kamu letakkan di baris paling atas kodemu. Perintah ini ibarat kamu sedang berteriak kepada sang koki PHP: Hei Koki, tolong buka buku catatan rahasiamu sekarang, aku mau mengecek identitas pengunjung ini!

Menguasai konsep identitas gaib ini adalah gerbang terakhirmu menuju status Web Developer profesional. Setelah kamu bisa membuat fitur Login dan Logout yang aman, aplikasimu sudah siap dijual ke pasar nyata. Di artikel selanjutnya, kita akan belajar cara merapikan barisan kode PHP agar tidak terlihat seperti benang kusut saat proyekmu makin membesar!

Apa pendapatmu tentang artikel ini?