Modul 3.2
Modul 3.2
3.19
A. Kompetensi Dasar
3.19 Menerapkan aplikasi web statefull
4.19 Membuat aplikasi web statefull
B. Tujuan Pembelajaran
1. Siswa dapat menjelaskan pengertian session
2. Siswa dapat menjelaskan pengertian cookies
3. Siswa dapat menerapkan penggunaan session pada aplikasi web
4. Siswa dapat menerapkan penggunaan cookies pada aplikasi web
5. Siswa dapat membuat aplikasi web statefull dengan session dan cookies
C. Uraian Materi
Sisi Server
Dari sisi server php akan membuat file yang kita sebut file session yang diawali dengan sess_
dan diikuti dengan ID session, dimana ID Session tersebut mereferensikan id session yang ada
di browser client. nilai ID session adalah:
Jika browser mengijinkan penggunaan cookie, maka ID session berupa angka acak
sebanya 26 karakter hexadesimal, contoh: 1g7vcm79tg4869tp8u53gldl02
Jika browser tidak mengijinkan penggunaan cookie Jika nama session ada di url, maka
nilai ID Session sama dengan id yang ada di url, missal
https://jagowebdev.com?page=login&PHPSESSID=1234, maka ID Session yang
digunakan adalah 1234, sehingga nama file session yang dibuat sess_1234, Namun jika
ID Session tidak ada di URL, maka PHP akan membuat file dengan ID Session sama
seperti sebelumnya yaitu 26 karakter hexadesimal, file ini akan dibuat setiap kali perintah
session_start() dijalankan, dan tidak ada referensi ke user/client.
Terus dimana php menyimpan file session tersebut? file tersebut secara default disimpan
didalam direktori temporary dimana letak direktory ini tergantung dari masing-masing sistem
opersi yang digunakan. untuk mengetahui dimana php menyimpan file session, dapat
menggunakan perintah: session_save_path() Misal kita buat file session.php dan simpan ke
dalam htdocs/tutorial, selanjutnya tuliskan kode berikut:
<?php echo session_save_path(); ?>
Ketika kita jalankan file tersebut di komputer yang menggunakan sistem operasi windows,
contoh output yang dihasilkan adalah E:\xampp-1.8.3.2\tmp (komputer saya), jika kita buka
direktori tersebut, disana kita temukan banyak file .tmp, cari nama dengan awalan sess_ , file
tersebut merupakan file session.
Gambar 1. Contoh File Session
Sisi User/Client
Selanjutnya dari sisi client/user, php akan:
Jika browser mengijinkan penggunaan cookie
Membuat file cookie dengan nama default yaitu PHPSESSID dengan nilai (value) ID
session, lokasi penyimpanan file tersebut berbeda beda tergantung jenis browser yang
digunakan, untuk google chrome lokasi cookie berada di:C:\Users\<NAMA
USER>\AppData\Local\Google\Chrome\User Data\Default dengan nama file Cookie,
namun kita tidak dapat membukanya secara langsung, melainkan harus menggunakan
SQLite, kita dapat membaca isinya melalui Chrome Developer Tools, yaitu pada
tab Resources bagian Cookies, contoh seperti gambar berikut:
/*
Output
Array
(
[user] => agusph
[role] => admin
[login_time] => 2015-09-05
)
*/
/*
Output
Array
(
[role] => admin
[login_time] => 2015-09-05
)
*/
disamping itu kit juga dapat menggunakan perintah session_unset() untuk menghapus semua
data pada $_SESSION, contoh:
<?php
session_start();
$_SESSION['user'] = 'agusph';
$_SESSION['role'] = 'Admin';
session_unset();
print_r($_SESSION);
/*
Output
Array ()
*/
perlu diperhatikan bahwa jika menggunakan perintah unset() untuk menghapus data session,
pilihlah data secara spesifik, jangan menghapus $_SESSION itu sendiri
(unset($_SESSION)), karena akan menghapus semua isi data session, dan menghapus
variabel $_SESSION itu sendiri, sehingga jika kita panggil akan memunculkan pesan error
bahwa variabel $_SESSION undefined. contoh:
<?php
session_start();
$_SESSION['user'] = 'agusph';
$_SESSION['role'] = 'admin';
$_SESSION['login_time'] = date('Y-m-d');
unset($_SESSION);
print_r($_SESSION);
Nah, ketika kita kembali menjalankan file cookie.php, maka browser akan mengirim data cookie
tersebut melalui Cookie: header
Selanjutnya kita dapat menggunakan data cookie ini untuk melakukan pengaturan tertentu
khusus untuk user tersebut.