Saat proses pengembangan aplikasi berbasis Laravel, kebutuhan untuk menyimpan data sementara antar halaman seperti status login, pesan notifikasi, atau data input pengguna hampir selalu kita temukan. Dengan memahami cara membuat session di Laravel, Anda dapat mengelola alur data antar request secara lebih terstruktur tanpa perlu membangun mekanisme penyimpanan secara manual.
Dalam panduan ini, kita akan membahas konsep dasar hingga contoh implementasinya agar lebih mudah dipahami dan langsung bisa dipraktikkan. Namun, sebelum melanjutkan ke pembahasan bagaimana membuat session di laravel, pastikan laravel sudah terinstall. Jika belum, Anda dapat membaca panduan lengkapnya di artikel berikut.
Apa Itu Session?
Session adalah mekanisme untuk menyimpan data sementara milik pengguna selama mereka berinteraksi dengan sebuah aplikasi atau website. Data ini bersifat sementara dan biasanya digunakan untuk mempertahankan informasi penting antar halaman, seperti status login, notifikasi (flash message), data input form, hingga isi keranjang belanja pada aplikasi e-commerce.
Secara teknis, session bekerja dengan menyimpan data di sisi server, kemudian menghubungkannya dengan pengguna melalui sebuah session ID yang disimpan di browser (biasanya dalam bentuk cookie). Setiap kali pengguna melakukan request ke server, session ID tersebut akan dikirimkan kembali sehingga server dapat mengenali dan memuat data yang sesuai.
Selama session masih aktif dan belum kedaluwarsa atau expired, informasi tersebut tetap dapat digunakan pada halaman atau request berikutnya tanpa perlu diinput ulang. Dengan adanya session, aplikasi dapat memberikan pengalaman yang lebih personal, konsisten, dan aman bagi setiap pengguna.
Memahami Konfigurasi Session Pada Laravel
Secara default, Laravel sudah mengaktifkan session tanpa perlu konfigurasi tambahan. Namun, penting untuk memahami bagaimana session dikonfigurasi.
config/session.phpDi dalam file tersebut terdapat pengaturan utama yaitu driver. Secara default, Laravel menggunakan driver file, yang berarti data session disimpan dalam bentuk file di folder:
storage/framework/sessionsPada file .env, biasanya terdapat konfigurasi berikut:
SESSION_DRIVER=file
SESSION_LIFETIME=120Artinya, session akan aktif selama 120 menit sebelum kedaluwarsa. Jika ingin menggunakan database sebagai penyimpanan session, jalankan:
php artisan session:table
php artisan migrateKemudian ubah file .env menjadi:
SESSION_DRIVER=databaseMembuat Session di Laravel
Setelah konfigurasi session siap, langkah selanjutnya kita akan membuat controller di laravel. Berikut adalah cara untuk membuatnya:
php artisan make:controller SessionControllerKemudian, setelah membuat controller session anda dapat untuk membuka file controller tersebut dan sesuaikan kode berikut:
// 1. Membuat Session
public function buat(Request $request)
{
$request->session()->put('nama', 'Ari');
return "Session berhasil dibuat";
}
// 2. Mengambil Session
public function ambil()
{
$nama = session('nama', 'Belum ada session');
return "Isi session: " . $nama;
}
// 3. Mengecek Session
public function cek()
{
if (session()->has('nama')) {
return "Session tersedia";
} else {
return "Session tidak tersedia";
}
}
// 4. Menghapus Satu Session
public function hapus()
{
session()->forget('nama');
return "Session dihapus";
}
// 5. Menghapus Semua Session
public function hapusSemua()
{
session()->flush();
return "Semua session dihapus";
}
// 6. Flash Session
public function flash()
{
return redirect('/tampil-flash')->with('success', 'Flash session berhasil dibuat');
}
public function tampilFlash()
{
return view('flash');
}Method put() yang ada di baris membuat session digunakan untuk menyimpan data ke dalam session. Dalam contoh ini, kita menyimpan data dengan key nama dan value Ari.
Setelah session dibuat, kita bisa mengambilnya kembali di halaman atau method lain, seperti di baris mengambil session.
Terkadang, kita perlu memastikan apakah session tertentu sudah ada atau belum. Untuk itu, kita bisa menggunakan method has() dengan pemeriksaan menggunakan logic if else, pada baris mengecek session.
Jika data session sudah tidak dibutuhkan, kita bisa menghapusnya. Dengan Method flush() biasanya digunakan saat proses logout.
Menggunakan Flash Session (Session Sementara) yang ada para baris flash session. Flash session adalah session yang hanya bertahan untuk satu request berikutnya. Biasanya digunakan untuk notifikasi setelah proses redirect.
Menambahkan Route pada file routes/web.php
Routes di Laravel berfungsi sebagai pusat pengatur lalu lintas permintaan (request) URL, menghubungkan alamat yang diakses pengguna di browser ke controller, view, atau fungsi logika tertentu.
use App\Http\Controllers\SessionController;
Route::get('/buat-session', [SessionController::class, 'buat']);
Route::get('/ambil-session', [SessionController::class, 'ambil']);
Route::get('/cek-session', [SessionController::class, 'cek']);
Route::get('/hapus-session', [SessionController::class, 'hapus']);
Route::get('/hapus-semua-session', [SessionController::class, 'hapusSemua']);
Route::get('/flash-session', [SessionController::class, 'flash']);
Route::get('/tampil-flash', [SessionController::class, 'tampilFlash']);Membuat Tampilan view
Buat file baru pada resources/views dengan nama file flash.blade.php atau bisa disesuaikan dengan keinginan
<!DOCTYPE html>
<html>
<head>
<title>Flash Session</title>
</head>
<body>
@if(session('success'))
<h3>{{ session('success') }}</h3>
@endif
<a href="/flash-session">Buat Flash Lagi</a>
</body>
</html>Pengujian
Setelah semua konfigurasi untuk membuat session selesai, langkah berikutnya adalah melakukan pengujian. Anda dapat menjalankan aplikasi dengan perintah php artisan serve.
Pada tahap pengujian ini, session akan disimpan dalam bentuk file. Anda dapat melihat hasil penyimpanannya di folder storage/framework/sessions. Pastikan folder tersebut terisi file baru setelah Anda melakukan aktivitas yang menggunakan session, seperti login atau menyimpan data sementara.
Pada gambar dibawah ini kita mencoba testing untuk buat session dengan akses http://127.0.0.1:8000/buat-session

Pada gambar di bawah ini, kita coba lakukan testing untuk mengambil session dengan mengakses http://127.0.0.1:8000/ambil-session

Selanjutnya, pada gambar di bawah ini, kita akan mencoba testing untuk cek session dengan akses http://127.0.0.1:8000/cek-session

Lalu, pada gambar di bawah ini, kita cek apakah session benar-benar tersimpan atau tidak pada folder storage/framework/session. Jika hasilnya seperti gambar di bawah ini, maka session yang kita buat sudah berhasil.

Selanjutnya, kita akan mencoba testing untuk menghapus session dengan akses http://127.0.0.1:8000/hapus-session

Untuk memastikan session terhapus, kita bisa membuka file session yang ada di storage seperti berikut:

Dari gambar di atas, kita bisa disimpulkan bahwa data session yang sudah dibuat tidak ada di Laravel, hanya menyisakan data sistem, perintah forget() atau flush() sudah bekerja dengan benar.
Langkah terakhir, kita dapat membuktikan dengan mengakses halaman http://127.0.0.1:8000/ambil-session. Jika halaman menampilkan Isi session “Belum ada session”, maka semua session yang kita buat sudah berjalan dengan baik.
Kesimpulan
Membuat session di Laravel pada dasarnya sangat mudah karena fitur ini sudah terintegrasi langsung di dalam framework. Anda hanya perlu memastikan konfigurasi session aktif, kemudian menyimpan data melalui controller, mengambilnya saat dibutuhkan, dan menghapusnya ketika sudah tidak digunakan.
Dengan memahami alur tersebut secara menyeluruh, Anda dapat membangun berbagai fitur penting seperti sistem login, notifikasi (flash message), hingga penyimpanan data sementara dengan lebih terstruktur dan aman. Pengelolaan session yang tepat juga membantu aplikasi berjalan lebih konsisten serta memberikan pengalaman pengguna yang lebih baik.
Itu tadi artikel kami tentang cara membuat session di Laravel hingga pengujiannya, semoga bermanfaat.


