• Tidak ada hasil yang ditemukan

Pemrograman Web. PHP State, Session dan Cookies. Adam Hendra Brata

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Web. PHP State, Session dan Cookies. Adam Hendra Brata"

Copied!
33
0
0

Teks penuh

(1)

PHP State, Session dan Cookies

4

Pemrograman Web

(2)

Pokok Bahasan

Konsep State pada PHP

- Stateless - Statefull Cookies Session

Konsep State pada PHP

Stateless

Statefull

Session

Cookies

(3)
(4)

 State = Keadaan

 Website pada umumnya menggunakan protokol HTTP

 Pada dasarnya protokol HTTP memiliki sifat stateless

 Pada interaksiyang bersifat stateless, maka antara suatu interaksi request-response

dengan request-response lainnya bersifat independen, tidak memiliki keterkaitan satu sama lain

 Server HTTP tidak mengingat apa yang

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

(5)

PHP State - Stateless

Pokok Bahasan

Konsep State pada PHP

- Stateless

- Statefull Cookies Session

Sistem langsung memberikan response kepada user dengan langsung memberikan halaman baru

(6)

 Stateful adalah kemampuan situs untuk mempertahankan state (keadaan)

 Pada interaksi statefull, membuat sebuah website dapat menyimpan keadaan seorang user walaupun komunikasi data di jaringan tetap menggunakan HTTP

PHP State - Statefull

Pokok Bahasan

Konsep State pada PHP - Stateless - Statefull Cookies Session Create Use Destroy

(7)

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

(8)

 Penggunaan PHP State

 Bagaimana pengguna tetap logged-in ketika dia berpindah-pindah halaman ?

 Bagaimana keranjang belanja pengguna tetap tersimpan ketika pengguna tersebut melihat – lihat barang di halaman lain untuk

ditambahkan ke keranjang belanja tersebut ?

PHP State

Pokok Bahasan

Konsep State pada PHP

- Stateless - Statefull Cookies Session

(9)

 PHP State dapat dibentuk menggunakan :

 Cookies

 Session

PHP State

Pokok Bahasan

Konsep State pada PHP - Stateless - Statefull Cookies Session Create Use Destroy

(10)
(11)

 Cookie adalah file kecil yang diletakkan oleh server pada komputer pengguna

 Cookie dikirim setiap kali pengguna mengakses web yang menjadi pemilik cookie tersebut, sehingga, ukuran cookie perlu diperhatikan supaya tidak membebani jaringan secara berlebihan

 Ketika kita mendefinisikan suatu cookie, maka kita menentukan berapa lama cookie tersebut valid. Jika telah melampaui waktu valid (expires), maka cookie tersebut akan dihapus

Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(12)

 Cookies bisa digunakan untuk :

 Otentifikasi

 Melacak User

 Mempertahankan preferensi user, shopping chart dll

 Data cookie berisi pasangan name/value yang dikirim melalui header dari request HTTP (Post/Get)

Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(13)

 Saat browser meminta page, server dapat mengirim cookies bersamaan dengan page tersebut

 Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya

bersamaan dengan request

Cara Kerja Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(14)

 Saat browser meminta page, server dapat mengirim cookies bersamaan dengan page tersebut

 Jika server sebelumnya sudah mengirimkan cookies, browser akan mengirimkannya

bersamaan dengan request

Cara Kerja Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(15)

 Mitos

 Cookies seperti virus yang bisa menghapus data di komputer kita (salah)

 Cookies bisa mencuri informasi kita (salah)

 Cookies digunakan untuk spam (salah)

 Fakta

 Cookies hanyalah data

 Cookies biasanya anonim (tidak berisi informasi personal)

 Cookies bisa digunakan untuk melacak kebiasaan kita dalam melihat suatu situs

Serba-Serbi Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(16)

 Apakah cookie berbahaya?

 Pada dasarnya tidak

 Namun, cookie dapat digunakan untuk menyimpan informasi tentang pengguna tanpa disadari oleh pengguna tersebut

 Dengan kata lain, cookie dapat Digunakan sebagai media untuk memata-‐matai

aktivitas pengguna, misalnya seberapa sering pengguna mengakses, kapan waktu aksesnya, link apa saja yang di-‐klik, dsb

 Untuk alasan tertentu, kita dapat mengaktifkan atau me-non-aftifkan

penggunaan cookie pada web browser yang kita gunakan

Serba-Serbi Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(17)

 Jika cookie “terpaksa” digunakan untuk menyimpan data yang bersifat personal (misal : alamat email, nomor telepon, dsb), gunakan enkripsi untuk melindungi data tersebut dari pihak yang tidak berwenang

Serba-Serbi Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(18)

 Session cookies : tipe default, cookie

sementara yang hanya disimpan di memory browser

 Ketika browser ditutup, cookies ini akan terhapus

 Tidak bisa digunakan untuk melacak informasi yang lama

 Lebih aman, karena tidak ada program yang bisa mengaksesnya (kecuali

browser itu sendiri)

 Persistent Cookies : cookies yang disimpan 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

Jenis Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(19)

 IE :  C:\Documents and Settings\administrator\Cookies  Firefox  %APPDATA%\Mozilla\Firefox\???.defau lt\cookies.txt

 Dimana ??? adalah karakter acak

 Chrome :  C:\Users\<User Name>\AppData\Local\Google\Chrome \User Data

Penyimpanan Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(20)

 Cookie ditangani dengan superglobal array $_COOKIE

 Set cookies :

 Kalau tidak didefinisikan batas timeoutnya, maka secara default cookies akan dianggap session cookies

Pengelolaan Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(21)

 Menerima informasi cookies :

 Gunakan isset untuk mengetahui apakah cookies yang diinginkan ada

Pengelolaan Cookies

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull

Cookies

(22)
(23)

 Session adalah konsep abstrak yang

merepresentasikan interaksi antara browser dan server

 Beda session dan cookies

 Cookies adalah data yang disimpan di client

 Data session disimpan di server (1 session per user)

 Session biasanya dibangun diatas cookies

 Setiap permintaan page, client mengirim 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

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(24)

 Session merupakan kombinasi dari client-side session ID + server-client-side session data

 Client-side session ID dapat berupa

parameter URL, cookie, atau HTTP request header

 Cara yang paling umum adalah

menggunakan cookie untuk menyimpan client-side session ID

 Server-side session data dapat disimpan pada file maupun basis data

 Session dapat digunakan untuk menyimpan data berukuran sangat besar, sedangkan cookie hanya dapat menyimpan data

berukuran kecil (karena dibatasi oleh web browser)

Session

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(25)

 Pertama-tama browser melakukan request ke server

 Server mengetahui IP client, kemudian

memberikan data session yang akan dikirim lagi ke client dalam bentuk session ID

 Untuk interaksi selanjutnya client mengirim session ID tersebut ke server

 Server menggunakan session ID ini untuk mendapatkan data client yang disimpan di database server

Cara Kerja Session

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(26)

 Memulai session

 Memberi nilai pada variabel session

 Membaca nilai dari variabel session

Pengelolaan Session

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(27)

 Menghapus sebuah variabel session

 Menghapus semua session pada pengguna tertentu

Pengelolaan Session

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(28)

 session_start() menandakan server

menginginkan untuk memulai sesi dengan user

 perintah ini harus di jalankan di awal sebelum output diproduksi

 Ketika kita memanggil session_start() maka:

 Jika server tidak pernah berinteraksi dengan user, maka akan dibuat session baru

 Jika user sudah pernah berintaksi, maka data session akan di simpan di

assosiative array $_SESSION

 Kita dapat menyimpan data di

$_SESSION dan menerimanya kembali untuk digunakan lagi nantinya

Pengelolaan Session - Start

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(29)

 Pada client, session disimpan sebagai cookies dengan nama PHPSESSID

 Pada server, data session disimpan sebagai file temporary dengan nama acak

seperti /tmp/sess_fcc17f071

 Kita bisa mencari atau mengubah folder dimana session disimpan dengan

menggunakan fungsi session_save_path

 Untuk aplikasi yang besar, session bisa disimpan di database (misalnya mysql)

Pengelolaan Session - Saving

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(30)

 Karena HTTP adalah stateless, maka akan sulit untuk menentukan apakah user sudah menyelesaikan sessionnya

 Idealnya, user harus melakukan logout untuk menyelesaikan session, tetapi kebanyakan user jarang melakukannya

 Browser akan secara otomatis menghapus session ketika ditutup

 Server secara otomatis akan menghapus session setelah beberapa waktu tertentu ( bisa diset melalui setting PHP

session_cache_expire )

 Session bisa dihapus secara paksa dengan perintah session_destroy (biasanya

dilakukan saat user logout)

Session Timeout

Pokok Bahasan Konsep State pada PHP

- Stateless - Statefull Cookies

(31)

 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

 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

(32)

 Kumpulkan script HTML, PHP dan CSSnya dalam 1 folder dan kirimkan via email

 Deadline :

Kamis, 12 Maret 2015 jam 12.00

siang

 Judul folder email :

PW-A-Kode_Tugas-NIM Contoh :

PW-A-2-126060312111002

Latihan

(33)

Terimakasih dan

Semoga

Bermanfaat ^^

Referensi

Dokumen terkait

Struktur Rangka, dipilih karena dengan sistem rangka lebih mudah dalam pengolahan ruang dalam bangunan balai penelitian. Bentang Lebar, pada bangunan greenhouse dan hall serbaguna

Submitted to Faculty of Cultural Studies University of Sumatra Utara Medan in partial fulfillment of the requirements for the degree of Sarjana Sastra from Departement of

by moving the old queen and leaving the swarm cells in place, but then the foraging bees, finding their old queen still in place, may just decide to build more swarm cells and

[r]

Praptoyo (2008) dalam penelitian menyatakan bahwa sifat fisika yang lain, yaitu perubahan dimensi berupa penyusutan dan pengembangan untuk kayu Nangka adalah penyusutan

Jika stok barang habis bagian gudang membuat data pemesanan barang kepada supplier dan mendapatkan bukti pengiriman barang dari supplier.. Bagian gudang mencatat data penerimaan

Kaum Anshar adalah orang-orang Madinah yang beriman kepada Allah SWT, berjanji kepada Nabi Muhammad SAW dan kaum Muhajirin untuk bersama-sama berjuang di jalan

7enyakit Parkinson&amp; *eru3akan 80 dari kasus)kasus  Parkinsonism. erda3at dua istila yan arus di'edakan yaitu 3enyakit  Parkinson  dan  Parkinsonism.