Anda di halaman 1dari 33

Pemrograman Web 4

PHP State, Session dan Cookies


Adam Hendra Brata
Pokok Bahasan
 Konsep State pada PHP
 Stateless
Pokok Bahasan
 Statefull
Konsep State pada
PHP  Session
- Stateless
- Statefull
 Cookies
Cookies

Session
PHP State
PHP State - Stateless
 State = Keadaan
 Website pada umumnya menggunakan
Pokok Bahasan protokol HTTP
 Pada dasarnya protokol HTTP memiliki sifat
Konsep State pada stateless
PHP  Pada interaksiyang bersifat stateless, maka
- Stateless antara suatu interaksi request-response
- Statefull dengan request-response lainnya bersifat
independen, tidak memiliki keterkaitan satu
Cookies sama lain
 Server HTTP tidak mengingat apa yang
Session terjadi pada interaksi request-response yang
terjadi
 Pada interaksi stateless, server HTTP tidak
menyimpan state yang berhubungan
dengan klien
PHP State - Stateless

Pokok Bahasan

Konsep State pada


PHP
- Stateless
- Statefull

Cookies

Session
Sistem langsung memberikan response
kepada user dengan langsung memberikan
halaman baru
PHP State - Statefull
 Stateful adalah kemampuan situs untuk
mempertahankan state (keadaan)
Pokok Bahasan  Pada interaksi statefull, membuat sebuah
website dapat menyimpan keadaan seorang
Konsep State pada user walaupun komunikasi data di jaringan
PHP tetap menggunakan HTTP
- Stateless
- Statefull

Cookies
Destroy

Session
Use

Create
PHP State - Statefull

Pokok Bahasan

Konsep State pada


PHP
- Stateless
- Statefull

Cookies

Session
Sistem mengetahui keadaan user sekarang
dan dapat “melanjutkan” halaman apa yang
diminta oleh user daripada dia memberikan
apa yang diminta user dengan langsung
memberikan halaman baru
PHP State
 Penggunaan PHP State
 Bagaimana pengguna tetap logged-in
Pokok Bahasan ketika dia berpindah-pindah halaman ?
 Bagaimana keranjang belanja
Konsep State pada pengguna tetap tersimpan ketika
PHP pengguna tersebut melihat – lihat
- Stateless barang di halaman lain untuk
- Statefull ditambahkan ke keranjang belanja
tersebut ?
Cookies

Session
PHP State
 PHP State dapat dibentuk menggunakan :
 Cookies
Pokok Bahasan  Session

Konsep State pada


PHP
- Stateless
- Statefull

Cookies

Session Create

Use

Destroy
Cookies
Cookies
 Cookie adalah file kecil yang diletakkan oleh
server pada komputer pengguna
Pokok Bahasan  Cookie dikirim setiap kali pengguna
mengakses web yang menjadi pemilik
Konsep State pada cookie tersebut, sehingga, ukuran cookie
PHP perlu diperhatikan supaya tidak membebani
- Stateless jaringan secara berlebihan
- Statefull
 Ketika kita mendefinisikan suatu cookie,
maka kita menentukan berapa lama cookie
Cookies
tersebut valid. Jika telah melampaui waktu
valid (expires), maka cookie tersebut akan
Session
dihapus
Cookies
 Cookies bisa digunakan untuk :
 Otentifikasi
Pokok Bahasan  Melacak User
 Mempertahankan preferensi user,
Konsep State pada
shopping chart dll
PHP
- Stateless  Data cookie berisi pasangan name/value
- Statefull yang dikirim melalui header dari request
HTTP (Post/Get)
Cookies

Session
Cara Kerja Cookies
 Saat browser meminta page, server dapat
mengirim cookies bersamaan dengan page
Pokok Bahasan tersebut
 Jika server sebelumnya sudah mengirimkan
Konsep State pada cookies, browser akan mengirimkannya
PHP bersamaan dengan request
- Stateless
- Statefull

Cookies

Session
Cara Kerja Cookies
 Saat browser meminta page, server dapat
mengirim cookies bersamaan dengan page
Pokok Bahasan tersebut
 Jika server sebelumnya sudah mengirimkan
Konsep State pada cookies, browser akan mengirimkannya
PHP bersamaan dengan request
- Stateless
- Statefull

Cookies

Session
Serba-Serbi Cookies
 Mitos
 Cookies seperti virus yang bisa
Pokok Bahasan menghapus data di komputer kita
(salah)
Konsep State pada  Cookies bisa mencuri informasi kita
PHP (salah)
- Stateless  Cookies digunakan untuk spam (salah)
- Statefull
 Fakta
Cookies  Cookies hanyalah data
 Cookies biasanya anonim (tidak berisi
Session informasi personal)
 Cookies bisa digunakan untuk melacak
kebiasaan kita dalam melihat suatu
situs
Serba-Serbi Cookies
 Apakah cookie berbahaya?
 Pada dasarnya tidak
Pokok Bahasan  Namun, cookie dapat digunakan untuk
menyimpan informasi tentang pengguna
Konsep State pada tanpa disadari oleh pengguna tersebut
PHP
- Stateless  Dengan kata lain, cookie dapat Digunakan
- Statefull sebagai media untuk memata-‐matai
aktivitas pengguna, misalnya seberapa
Cookies sering pengguna mengakses, kapan waktu
aksesnya, link apa saja yang di-‐klik, dsb
Session  Untuk alasan tertentu, kita dapat
mengaktifkan atau me-non-aftifkan
penggunaan cookie pada web browser yang
kita gunakan
Serba-Serbi Cookies
 Jika cookie “terpaksa” digunakan untuk
menyimpan data yang bersifat personal
Pokok Bahasan (misal : alamat email, nomor telepon, dsb),
gunakan enkripsi untuk melindungi data
Konsep State pada tersebut dari pihak yang tidak berwenang
PHP
- Stateless
- Statefull

Cookies

Session
Jenis Cookies
 Session cookies : tipe default, cookie
sementara yang hanya disimpan di memory
browser
Pokok Bahasan  Ketika browser ditutup, cookies ini akan
terhapus
Konsep State pada  Tidak bisa digunakan untuk melacak
PHP informasi yang lama
- Stateless
- Statefull  Lebih aman, karena tidak ada program
yang bisa mengaksesnya (kecuali
Cookies browser itu sendiri)
 Persistent Cookies : cookies yang disimpan
Session pada sebuah file yang ada di komputer
browser
 Bisa melacak informasi yang bisa
bertahan lama
 Berpotensial untuk tidak aman, sebab
user / program, bisa membuka file
tersebut atau mengubah isi cookies nya
Penyimpanan Cookies
 IE :
 C:\Documents and
Pokok Bahasan Settings\administrator\Cookies

Konsep State pada  Firefox


PHP  %APPDATA%\Mozilla\Firefox\???.defau
- Stateless lt\cookies.txt
- Statefull  Dimana ??? adalah karakter acak

Cookies  Chrome :
 C:\Users\<User
Session Name>\AppData\Local\Google\Chrome
\User Data
Pengelolaan Cookies
 Cookie ditangani dengan superglobal array
$_COOKIE
Pokok Bahasan  Set cookies :

Konsep State pada


PHP
- Stateless
- Statefull

Cookies

Session
 Kalau tidak didefinisikan batas timeoutnya,
maka secara default cookies akan dianggap
session cookies
Pengelolaan Cookies
 Menerima informasi cookies :

Pokok Bahasan

Konsep State pada


PHP
- Stateless
- Statefull

Cookies

Session

 Gunakan isset untuk mengetahui apakah


cookies yang diinginkan ada
Session
Session
 Session adalah konsep abstrak yang
merepresentasikan interaksi antara browser
dan server
Pokok Bahasan
 Beda session dan cookies
Konsep State pada  Cookies adalah data yang disimpan di
PHP client
- Stateless  Data session disimpan di server (1
- Statefull session per user)

Cookies  Session biasanya dibangun diatas cookies


 Setiap permintaan page, client mengirim
Session cookie yang berisi session ID , dan server
menggunakan session ID ini untuk mencari
dan menerima data session -nya
 Data session ID ini bisa disimpan oleh
browser dalam bentuk cookie
Session
 Session merupakan kombinasi dari client-
side session ID + server-side session data
Pokok Bahasan  Client-side session ID dapat berupa
parameter URL, cookie, atau HTTP request
Konsep State pada header
PHP  Cara yang paling umum adalah
- Stateless menggunakan cookie untuk menyimpan
- Statefull client-side session ID
 Server-side session data dapat disimpan
Cookies pada file maupun basis data
Session  Session dapat digunakan untuk menyimpan
data berukuran sangat besar, sedangkan
cookie hanya dapat menyimpan data
berukuran kecil (karena dibatasi oleh web
browser)
Cara Kerja Session
 Pertama-tama browser melakukan request
ke server
Pokok Bahasan  Server mengetahui IP client, kemudian
memberikan data session yang akan dikirim
Konsep State pada lagi ke client dalam bentuk session ID
PHP
 Untuk interaksi selanjutnya client mengirim
- Stateless
session ID tersebut ke server
- Statefull
 Server menggunakan session ID ini untuk
Cookies mendapatkan data client yang disimpan di
database server
Session
Pengelolaan Session
 Memulai session

Pokok Bahasan
 Memberi nilai pada variabel session
Konsep State pada
PHP
- Stateless
- Statefull
 Membaca nilai dari variabel session
Cookies

Session
Pengelolaan Session
 Menghapus sebuah variabel session
Pokok Bahasan

Konsep State pada


PHP
- Stateless
- Statefull
 Menghapus semua session pada pengguna
Cookies tertentu

Session
Pengelolaan Session - Start
 session_start() menandakan server
menginginkan untuk memulai sesi dengan
Pokok Bahasan user
 perintah ini harus di jalankan di awal
Konsep State pada sebelum output diproduksi
PHP
- Stateless  Ketika kita memanggil session_start() maka:
- Statefull  Jika server tidak pernah berinteraksi
dengan user, maka akan dibuat session
Cookies baru
 Jika user sudah pernah berintaksi, maka
Session data session akan di simpan di
assosiative array $_SESSION
 Kita dapat menyimpan data di
$_SESSION dan menerimanya kembali
untuk digunakan lagi nantinya
Pengelolaan Session - Saving
 Pada client, session disimpan sebagai
cookies dengan nama PHPSESSID
Pokok Bahasan
 Pada server, data session disimpan sebagai
Konsep State pada file temporary dengan nama acak
PHP seperti /tmp/sess_fcc17f071
- Stateless  Kita bisa mencari atau mengubah folder
- Statefull dimana session disimpan dengan
menggunakan fungsi session_save_path
Cookies
 Untuk aplikasi yang besar, session bisa
Session disimpan di database (misalnya mysql)
Session Timeout
 Karena HTTP adalah stateless, maka akan
sulit untuk menentukan apakah user sudah
Pokok Bahasan menyelesaikan sessionnya
 Idealnya, user harus melakukan logout
Konsep State pada untuk menyelesaikan session, tetapi
PHP kebanyakan user jarang melakukannya
- Stateless
- Statefull  Browser akan secara otomatis menghapus
session ketika ditutup
Cookies  Server secara otomatis akan menghapus
session setelah beberapa waktu tertentu
Session ( bisa diset melalui setting PHP
session_cache_expire )
 Session bisa dihapus secara paksa dengan
perintah session_destroy (biasanya
dilakukan saat user logout)
Latihan
 Buatlah sebuah halaman untuk melakukan
login sederhana dengan menggunakan
teknik session dan cookies, tanpa
menggunakan database, definisi nilai
session dan cookies langsung di kode
PHPnya
Latihan
 Percantik halaman login yang kalian buat
dengan menggunakan konsep desain yang
baik plus CSS
 Halaman login ini harus bisa melakukan
autentifikasi user, dengan input dasar
username dan password dan dapat
menampilkan halaman lain yang hanya bisa
dibuka setelah login
Latihan

 Kumpulkan script HTML, PHP dan CSSnya


dalam 1 folder dan kirimkan via email
 Deadline :
Kamis, 12 Maret 2015 jam 12.00
Latihan siang
 Judul folder email :

PW-A-Kode_Tugas-NIM

Contoh :
PW-A-2-126060312111002
Terimakasih dan
Semoga
Bermanfaat ^^

Anda mungkin juga menyukai