Table of contents
Penggunaan session dalam pembuatan aplikasi berbasis website terutama dalam bahasa pemrograman PHP adalah periode atau waktu ketika pengguna mulai berinteraksi dengan sistem, hingga akhirnya keluar dari sistem tersebut.
Apa itu Session?
Session adalah periode waktu yang dimulai ketika seorang pengguna mulai berinteraksi dengan suatu sistem atau aplikasi, dan berakhir ketika pengguna keluar dari sistem atau aplikasi tersebut.
Selama sesi session, sistem akan menetapkan sebuah “session ID” yang unik untuk mengidentifikasi pengguna yang sedang menggunakan sistem atau aplikasi.
Data session ini disimpan dalam variabel global yang dapat diakses di seluruh aplikasi web, dan dapat digunakan untuk mengidentifikasi pengguna, menyimpan preferensi, dan mempertahankan status login.
Fungsi Session
Fungsi dari session adalah untuk mempertahankan data pengguna di seluruh sesi interaksi dengan aplikasi web. Dengan session, data pengguna seperti preferensi, status login, dan riwayat belanja dapat disimpan sementara di sisi server dan diakses di seluruh aplikasi web tanpa perlu meminta pengguna untuk memasukkan informasi lagi dan lagi.
Session juga dapat digunakan untuk meningkatkan keamanan dalam sistem dan aplikasi. Dalam peran ini, session digunakan untuk memastikan bahwa pengguna hanya memiliki akses ke informasi yang sesuai dengan session ID mereka, dan tidak dapat mengakses informasi yang dimiliki oleh pengguna lain yang memiliki session ID yang berbeda.
Ada beberapa fungsi / function dalam session yang sering digunakan diantaranya :
- session_start() berfungsi untuk mengaktifkan session.
- session_destroy() berfungsi untuk menghapus seluruh session yang telah dibuat.
- unset() berfungsi untuk menghapus data session yang dipilih saja.
Sebelum membahas mengenai function unset(), saya akan menjelaskan terlebih dahulu cara mengaktifkan sesssion itu sendiri dan mendeklarasikan sebuah variable global session. Buatlah file php dengan nama index.php, tuliskan syntaxnya seperti dibawah ini.
<?php
//Mengaktifkan session dengan memanggil fungsi session_start()
session_start();
//Mendeklarasikan variable global session
$_SESSION['nama'] = 'Restu Kersana';
?>
Kemudian buatlah file baru dengan nama ceksession.php, dan tuliskan syntax seperti dibawah ini.
<?php
//Aktifkan session terlebih dahulu
session_start();
//Tampilkan session dari halaman index.php
echo $_SESSION['nama'];
?>
Cara penulisan function unset() untuk menghapus session yang telah kita buat sebelumnya.
<?php
//Aktifkan SESSION
session_start();
//Hapus SESSION yang telah dibuat sebelumnya
unset($_SESSION['nama']);
?>
Cara Kerja Session
Cara kerja session diawali dengan pembuatan sebuah session ID yang di-generate oleh server ketika pengguna melakukan permintaan pertama. Session ID ini akan disimpan pada cookie atau URL, kemudian akan dikirimkan kembali ke server pada setiap permintaan berikutnya.
Server kemudian akan memeriksa session ID untuk mengidentifikasi pengguna dan memuat data session yang terkait. Data session ini dapat berisi informasi seperti username, preferensi pengguna, atau status login. Data session kemudian dapat dimanipulasi pada server dan disimpan kembali.
Dengan cara ini, session memungkinkan pengguna untuk menyimpan preferensi dan informasi yang berbeda selama pengguna masih dalam sesi, menjaga keamanan sistem, memfasilitasi proses login, meningkatkan kinerja sistem, dan membantu pelacakan aktivitas pengguna.
Cara Menggunakan Session PHP
Ini adalah contoh kasus cara menggunakan session di php untuk halaman login:
<?php
//Aktifkan SESSION terlebih dahulu
session_start();
//parameter 1 = nama hostnya
//parameter 2 = db usernamenya
//parameter 3 = db passwordnya
//parameter 4 = nama databasenya
$koneksi = mysqli_connect('localhost','root','','nama_database');
//Cek apakah tombol submit telah ditekan
if(isset($_POST['submit'])) {
//Ambil data yang diinputkan olehh user
$username = mysql_real_escape_string($_POST['nama']);
$password = $_POST['password'];
//Cek pada database apakah username tersedia atau tidak
if($result = mysqli_query($koneksi, "SELECT * FROM user WHERE username='$username'")){
//Jika ada maka akan menghasilkan nilai 1
if(mysqli_num_rows($result) === 1) {
//ambil data query tadi menggunakan function mysqli_fetch_assoc()
$data = mysqli_fetch_assoc($result);
//cek apakah password cocok dengan didatabase
if(password_verify($password, $data['password'])){
$_SESSION['hak_akses'] = 'Admin';
//pindahkan kehalaman yang dituju
header('Location: admin.php');
}
}
}
}
?>
Ini adalah contoh penggunaan login yang tidak menggunakan hash.
<?php
//Aktifkan SESSION terlebih dahulu
session_start();
//parameter 1 = nama hostnya
//parameter 2 = db usernamenya
//parameter 3 = db passwordnya
//parameter 4 = nama databasenya
$koneksi = mysqli_connect('localhost','root','','nama_database');
//Cek apakah tombol submit telah ditekan
if(isset($_POST['submit'])) {
//Ambil data yang diinputkan olehh user
$username = mysql_real_escape_string($_POST['nama']);
$password = $_POST['password'];
//Cek pada database apakah username tersedia atau tidak
if($result = mysqli_query($koneksi, "SELECT * FROM user WHERE username='$username'")){
//Jika ada maka akan menghasilkan nilai 1
if(mysqli_num_rows($result) === 1) {
//ambil data query tadi menggunakan function mysqli_fetch_assoc()
$data = mysqli_fetch_assoc($result);
//cek apakah password cocok dengan didatabase
if($password == $data['password'])){
$_SESSION['hak_akses'] = 'Admin';
//pindahkan kehalaman yang dituju
header('Location: admin.php');
}
}
}
}
?>
Setelah itu buatlah file dengan nama admin.php dan copy syntaxnya dibawah ini.
<?php
session_start();
//cek terlebih dahulu apakah session hak_akses telah dibuat
if(!isset($_SESSSION['hak_akses'] === 'Admin')){
header('Location: login.php');
}
echo 'Selamat Datang Admin !';
?>
Penutup
Dari pembahasan di atas, dapat disimpulkan bahwa SESSION adalah fitur penting dalam pengembangan website yang dapat meningkatkan interaktivitas dan keamanan website.
Dengan menggunakan SESSION, pengguna dapat dengan mudah berinteraksi dengan website dan website dapat mengatur akses pengguna dengan lebih baik.
Namun, penggunaan SESSION juga memerlukan perhatian khusus dalam hal keamanan dan privasi pengguna.
Oleh karena itu, penting bagi pengembang website untuk memahami pengertian, fungsi, dan cara penggunaan SESSION dengan baik.