Session dan Authentication

Mata Kuliah: Pemrograman Berbasis Web


🧭 1. Pengertian Session dan Authentication

https://images.openai.com/static-rsc-4/rt5lJ8fQYL9cP6zrPKGaV0IE4_EBnDYa1YFVO998nCwb3eVz49Lp8rIsz_f-iy5uQVwbn05sl4bmc7Y5fb_pZm1IXlMQ7SOwEohmmnGICgDaxPyfV_RqC2yiy9S4paaDXs-zgQMLFZYuXYKc7KkRtFcTBSBhGv0x6vjQ3UjaM6-H_1vxTZOv7e0ajCIP0JyS?purpose=fullsize
https://images.openai.com/static-rsc-4/YuQtgNyPAipRZw3HVC_FRyPQuqr79RafVM2uFwWAmmzBnZQ1SGp2k4jX2xYhkDQjwVp0K7BYBKQAToMTLJMy4eJ5bgpBW2dGivKFXM9gon9x_8biGRQPqHcbDpZNNhW14iAVs57EClNq6bPvTppzTMC40ZXl_6WI_6triyU44G2lU4UnB1OY3Sn0LtjPjpd5?purpose=fullsize
https://images.openai.com/static-rsc-4/-gExxyGQJLYkILfSSiunFizQ96SpAkJdlzmMjMzOZeHizaC5E0Zsq-0o6FfIA-tXeUq5mQL03sPMK8CXj9TML4FAhF3HctG08Hgj1C0IDA9QekadOPdTPXgUbfVUQfFYMGa2B-k45GIa9Zvtx7n0_dhrGHnVBVxloCVkpjGOg-fyZCpsCGgF7aVpI7PvtOcv?purpose=fullsize

7

πŸ“– Deskripsi

  • Authentication adalah proses verifikasi identitas pengguna (login).
  • Session adalah mekanisme untuk menyimpan status login pengguna di server.

🧠 Narasi

Web bersifat stateless (tidak menyimpan keadaan). Artinya, setiap request dianggap baru. Session digunakan untuk β€œmengingat” pengguna setelah login sehingga tidak perlu login ulang setiap membuka halaman.


🌐 2. Konsep HTTP Stateless

https://images.openai.com/static-rsc-4/7LvtiNw2CmujePW1Q35mlM_se1bqGm85MUCqMhwPRjHvMVFdduJDY0ZwytWj2qmVYYl7XPYPKQ7iPXv_Ef5xR91AFDc9ohWvt0TiWDHKHohYnsKnchIUcPzgeyeHgJAr2k2amEdrTdUAAxriRu1B-gHFL4wu9GoRd_Sr3IEBBQZblGM7iS4sRz5eludw3yWS?purpose=fullsize
https://images.openai.com/static-rsc-4/9cnCppx1uik0dSnyj0GruVcakCRQpyrp9R7XDXki7GPsbcf6isUp6XRNm1fH8nOWDZF-6Z9TYDGF2Kog7nROxavObzo5Y7syoDOskj5tkYlwsrPTAWU4-MTGruzea7_Bcq8PtpKPJ69IWkhcj48q90AsmARiCVB2xbUoBj1Ip3lkyQKGnaC0mS-KUUHmnZPU?purpose=fullsize
https://images.openai.com/static-rsc-4/2JMzF11n7x5OjoTyRfY8X7bjGWc71YeeFg0yskTjZjUmG3mGIgHuDI6UI-afoFALAChpwM06aBweukYDkTWgS5HWJm4yyz_o-zTw6As-LDmuEnO1bC36z7fZqlQt8y_bFORvrR3fe1ItOVleehA-fNzLN1nGb2Ip-1Cf7Wobiwg9nbSILT1b5OTiUV15NMsy?purpose=fullsize

6

πŸ“– Deskripsi

HTTP tidak menyimpan informasi antar request.

🧠 Narasi

Tanpa session, server tidak tahu apakah request berasal dari user yang sama. Oleh karena itu, diperlukan mekanisme tambahan seperti session atau cookie.


πŸͺ 3. Cookie vs Session

https://images.openai.com/static-rsc-4/zLvr3gwv3o5DehjSMboumNvkWriIMXTc7khp-LGOHFwdd2s6-LuiY5K23hLp3Cm6XLqINyOYNvXfQDn2BO0_7hS4UoPVSKvDVbfMJheRscU5wIzJNgNdKcyWbfaVtZOR6i3ThnfJDHh0DuyMwKdiFbC26XYXZE1o2yvN2O0TRhxivo0LRyDQ_C-kK36jppJc?purpose=fullsize
https://images.openai.com/static-rsc-4/PKHSOpu-aUVxrrA-wWzMnxbvf5-SK4z_PML8uqwPhKenp2d1thiLrx7VYCY39Fq6QSba3pFA8BkBTvUWEXeDqbbDwTl3QcVyKpX1bXDCH1rdmWLX4HAaE0PjsLGNRr53boPUUYi8C3mC7VnJb4WEGaiA-dwie2SqSJVNHC-Zr7h09_78LdM_3_ASIR3ZVtP3?purpose=fullsize
https://images.openai.com/static-rsc-4/AO_1UG5giuoxbchywoOo0hVY4QKwmh7XG_rKM1p-grhh3HLbNYjb7CmOlWouqMl_9qEG35rhFwfLJvYkvR6SQ3jQZJDf_EKbHAnwP0qr0fqJI9Gm-7wYQlcZUPWI66BNcRVgwHK7g0NzPTMRBuI0ZO0dKSTPLsWdh59vrx63W7uH8WeujZbM0Wr8SPieuxSJ?purpose=fullsize

5

πŸ“– Deskripsi

Perbedaan antara cookie dan session:

🧱 Tabel Perbandingan

AspekCookieSession
PenyimpananClient (browser)Server
KeamananLebih rendahLebih aman
UkuranTerbatasLebih besar

🧠 Narasi

Session lebih aman karena data disimpan di server, sedangkan cookie bisa diakses dari browser.


πŸ”‘ 4. Konsep Authentication (Login System)

https://images.openai.com/static-rsc-4/UyqDhGujNSyAQ2t6N3o0UK7pyyLz_Rl-RETqwrB0ihACLF_nPHaVB2d-VKOOgB3POejq07CvFGjDhfw7IcmyN2PJqVC3yWqjFzOclU5Modpa3Wf_vKyT8_F5LsiSDFhADqOEgVwc6GApLlYqQlXoKqFC9WX2B98F9016dOs-OV--qc6XLMCejYiazsYnHQJ1?purpose=fullsize
https://images.openai.com/static-rsc-4/42XkDA98YMBg4pGMlknJJ5tas2DvHOkbh2MAO_ixfVrVQHl9XtB0HxHPKXM9A5V9Gx_73W--S7KoHFG_oKIPlhxAhinxW1slF2omUXQrwlTuy-CYrLskhwfa_gNrwYxXDPC-ll9a6HJ2yV_3Kli57QYUsYoFGXk4LkGXe7IpXuIUeU7CMngUqO92RMUqpb0l?purpose=fullsize
https://images.openai.com/static-rsc-4/-gExxyGQJLYkILfSSiunFizQ96SpAkJdlzmMjMzOZeHizaC5E0Zsq-0o6FfIA-tXeUq5mQL03sPMK8CXj9TML4FAhF3HctG08Hgj1C0IDA9QekadOPdTPXgUbfVUQfFYMGa2B-k45GIa9Zvtx7n0_dhrGHnVBVxloCVkpjGOg-fyZCpsCGgF7aVpI7PvtOcv?purpose=fullsize

8

πŸ“– Deskripsi

Authentication dilakukan dengan:

  • Username
  • Password

πŸ”„ Alur

  1. User input data
  2. Data dikirim ke server
  3. Dicek ke database
  4. Jika cocok β†’ login berhasil

🧠 Narasi

Authentication memastikan hanya pengguna yang valid dapat mengakses sistem.


πŸ–₯️ 5. Implementasi Session di PHP

https://images.openai.com/static-rsc-4/jj-drldheuOh2sHgg7rT-uVxnEcd2PC1lO5WqRCnm1yYtFLbxBbPXaJUrEOi0qa-OP2IfGVxgR9aEc2B_ROLAzQ6SWpgr8M3NAqLTQh2JMimiBcY7-FhTcJ1r73NHgQhEwX8RYrtb9YwBpkwPNQ3Dmh5APuHXctsLOeU5zfHLjScV_jSTpPpJFwCzOCkUB-U?purpose=fullsize
https://images.openai.com/static-rsc-4/nRAmw-PhCb8XJdxJNZh-NtVd7U7VktN3E68Q9aFWmbWU--mxsMhYkhqw7q9rx3bgqoIuqlJ4gxF8-cNrWS_T_9vF7OX8Xn4T9kvre22UsiFB-HyXaalB5MRhzUuwxcb-DVmAJk0rjzkseOT3f2wUBf0uRh6BPTVXGDgFhriKPF_x33GTZqm9HM6B4vw5GVaV?purpose=fullsize
https://images.openai.com/static-rsc-4/yfYoC4PLx2PZd3idmC0NDwNHaWGIavPK3G5zagbcNN5sQOHJ6dm-BtXKsbdESnoKVRXGddW5y9AQ1iSIObfmTH0LEjoMApERSxgfnkflBZMUwCZngqXIMmsBaBiirkXQqgcZlaaW18QpUs1D1csthAXr_eAbn_RaWnxNrBbroUubNh-y9ljPnjlO-qDJxVyk?purpose=fullsize

6

πŸ“– Deskripsi

Session di PHP digunakan untuk menyimpan data user.

πŸ’» Contoh

session_start();
$_SESSION['user'] = "Budi";

🧠 Narasi

session_start() wajib dipanggil sebelum menggunakan session.


πŸ” 6. Implementasi Login dengan Session

https://images.openai.com/static-rsc-4/UC8kvO67l75gahLT1YvyjkCai4CGh0ATtRwVPY4KpjtdSGyGP3OmUY5emdIQcn86GZ-9btCjYbbqLNvpqYV0jfYoFCC0wC4MkVemcKab9dVQRNTTgtAn-EEHJRo9Uhk0aZt56ILVo_LMlGQpAX4O7u85GIzR5B865mT4yHoM5VTyyaEezV1cvllXhVfni3Em?purpose=fullsize
https://images.openai.com/static-rsc-4/jis31fOGY9GiA2mSVmC6UBt9djIwhq2QJ9as4_3ZHvN9e3sizgJal0CNAjI18tZUtv2-BAt9w95H196RoW0SYjjSBV5SUq3ZF4gIobyrMggK8_CF-l3bSZpq86_DNbcXj53zOvFZOOnclki64BYA8_-sSDTaJa8l2c5OwVYF737rQIHh1_ZPTmj-Hb0o8aFE?purpose=fullsize
https://images.openai.com/static-rsc-4/Ugv2-ycKUclIuKenRutUYnn9cfT4u_uaQIUuJ9BRJ3OfPs2Vacpsmc26fICVNR6cQDjCz2fh4tNFURp77vuCvxbL_NExOp4QnFVE_QUGE9SprEpQ3P6w8yIYFeWjyAGJIO_qYyZ9o8aKSc_QpY5vp9sObaE9YQMc2BuE-ak7rw8cJY4l7my6KrzTYbRamPyN?purpose=fullsize

7

πŸ“– Deskripsi

Session digunakan untuk menyimpan status login.

πŸ’» Contoh

if ($username == "admin" && $password == "123") {
session_start();
$_SESSION['login'] = true;
}

🧠 Narasi

Setelah login berhasil, session digunakan untuk mengakses halaman lain.


πŸšͺ 7. Proteksi Halaman (Authorization)

https://images.openai.com/static-rsc-4/YuQtgNyPAipRZw3HVC_FRyPQuqr79RafVM2uFwWAmmzBnZQ1SGp2k4jX2xYhkDQjwVp0K7BYBKQAToMTLJMy4eJ5bgpBW2dGivKFXM9gon9x_8biGRQPqHcbDpZNNhW14iAVs57EClNq6bPvTppzTMC40ZXl_6WI_6triyU44G2lU4UnB1OY3Sn0LtjPjpd5?purpose=fullsize
https://images.openai.com/static-rsc-4/aIhxu4Rf_ptshMnIzWkhFc0a0Lnx5bOZfDr_3Op_Ndmg9om__Gw9arKOSsXedFRmXdOzH2Ceg1jDVlNSWpizCJTIn1R9BwpsaSbCJLvyd4i9niwktCWjbkow8fGShvngfn4YD7nvBDSrs9WISnNkhsHvmbqS282j9eh34-P8xq6Eqod4MFv4yJkHqOv3cIN3?purpose=fullsize
https://images.openai.com/static-rsc-4/8DrTdBIc-mOBaVh7fQbGxCIPEMN8_PlpktMPyNzjVgcenX8jQRzy4UisyDrb8MGdox46fySWMQ0SmHqJ4DLCkP2vvwJopGxUqzx9vjdZSH-i405a9lniZ1bxpkiPlIRzF7sbp4WUZ7IwOYn1Iv-P_eJmwYwNJK9w_WDmHZTzg4g_Fr544HVHfXXVbcrSq_vC?purpose=fullsize

7

πŸ“– Deskripsi

Membatasi akses halaman hanya untuk user login.

πŸ’» Contoh

session_start();
if (!isset($_SESSION['login'])) {
header("Location: login.php");
}

🧠 Narasi

Authorization memastikan user yang belum login tidak bisa mengakses halaman tertentu.


πŸšͺ 8. Logout Session

https://images.openai.com/static-rsc-4/Yo7wAzdZZ5z3OHfBfV73baBZvFxDF5CFoRioOmTFh1hW8gPqL85WZYfwGzan1nZ7cf67q8zWkWNisk0MHlk28-kKUXpDeEdfRLIccGUAgB463Fdc9qn2qgT6jxTURAtpta6Xk8N1rJu0TbcjihnaXBHCCx9f1F_j80Omm6nx2Mu9yGkgO7WUUJhIwBSCXFky?purpose=fullsize
https://images.openai.com/static-rsc-4/AY868MMelRCg1kuFJjdjxYw0Q1ACe1TumRV_5wQRd6rWs7uiGnVxE0vLu7pGoMXPkBfG8lfwQ7vlr0u804i7gxbpy3VXpxIn6fBHHVI4__2gNHh8dqrUS2yklN-_-FSSLA6ioKK6bmLsEnOVUC5tK_syaMBRiwrij3focP2lMrMzbkuSfQqAWHwzYQ_h4X2N?purpose=fullsize
https://images.openai.com/static-rsc-4/RmyQGoTE6eLdzpaT_e0R1aoUThbWevl5IkVysVDTy7KzkhbJddipRAtH5VFm-11X8tNoCkC4MwupkyWejBmutuKzPw1qXJxx62W6Tq4r2roC-ONDxOFc-WKxnqQtRLCbr_0lQkwCdlYkTiCjcX6V32TY4vOokHPE4dEG1AAlvpJEllSTinFL5x5yKt0sulTe?purpose=fullsize

8

πŸ“– Deskripsi

Logout digunakan untuk menghapus session.

πŸ’» Contoh

session_start();
session_destroy();

🧠 Narasi

Setelah logout, user harus login kembali untuk mengakses sistem.


πŸ” 9. Keamanan Authentication

https://images.openai.com/static-rsc-4/6gam2PPsnyNxNw9m6BPGrMFah02CMiOQtgpbJOW8vSvXUQLB6z6zuhy9d3pyszgqUikMfCS6hM4Iakxek6tNQLNE39-1nE_92RyiTFubmnQMAlWq07hQuTwT87Ljd4ra2qzs2RFo4JjhGW8fjUWXTh-uZp-I39zRWSTe-CCFptEWND1LS6e9Vpxt-d_Odefm?purpose=fullsize
https://images.openai.com/static-rsc-4/VwkE7GnGg6gbC9pY5iKJwEhHm7MNIZBLB7c1jfcKXn27NyoCFLls1qSyeqDZlqgZFUiFacZyGzyE_rLjjaH8JYCcDmkGrR_v7J8n6uVYjmU5vrldQWnv54oUPNB_sK2NrHpYXLTAty4LL6mD5UoGeF-Gfoe3zC3IYXSyyS_6I9gt_ASNSuWYF1fPJ1MEiFLd?purpose=fullsize
https://images.openai.com/static-rsc-4/TPWH28DXaIgIN0pFdDisqx5fmDyJi0cboXH6H_ey0hFPcO7DJSjkr6LUZNdkwb-sSxjOX2i0LSxJieSrj3qxJa_94Wbaes_m2eY9fp6e4gt7cRgrgRxBB1Alw6dD2e6KbYLgijBKf8eZstSdZjkZaQFYg7FG0Poww0OSGKSIB43RPQEDQyyD2brRZDx9e1pv?purpose=fullsize

8

πŸ“– Deskripsi

Authentication harus aman.

🧱 Teknik

TeknikFungsi
HashingEnkripsi password
HTTPSKeamanan data
Session timeoutBatas waktu login

πŸ’» Contoh

$password = password_hash("123", PASSWORD_DEFAULT);

🧠 Narasi

Password tidak boleh disimpan dalam bentuk asli (plain text).


⚠️ 10. Kesalahan Umum

https://images.openai.com/static-rsc-4/HC1SZVkPE3V4WxH-944nLSX3LbvKg_VrgQYLWEr02t6ARvc7Cun97BDsU1pKAySOyYw7Bs2VujMqRciTsugGB62GhaMNBQPfLY0EPG7h46C87_kUSvZGvUabU28DnmqRLx7zQWfbMN-5PiUxSr4qlWF9TT7Hg5DeBrvHqDnsTINA6ZUnHk6BsJGi4s5npcCr?purpose=fullsize
https://images.openai.com/static-rsc-4/poszIMyG6JnMtZ3_51XrxSigjtdSdBoB70dxzq43Hak9jWhNy6pNXeRR_KT9ZdQOsjOrJ9bAh5eH7M-bbp5KsiUgse78kifSPFv7A9ev_dQgYF1HAiQJ6vCvBJMFC9lyE6VrswmHaAVhysm37G86mH2q6igb5KHuP_sr_UGYwHiP0Rzc2EOEIQGSoE0fSRc0?purpose=fullsize
https://images.openai.com/static-rsc-4/U5TnQMvEcZNdXbNL6SFZFO4aZLNK3g6EjYiNHjufrk_LgEl6pKpdyu3qJFrRRwFnmzK05ZFNQbZSqLQToxNA0M6nRuJ11Wyt02pyPulbdb3QKoVtbblkYs5OgK38ER9t1vCguTp_oVZOyJ3q8RyS-2wMZ2htXMqmOIL-k9Tgks0FWhaP_iFdInwgwsU5sRuS?purpose=fullsize

6

πŸ“– Deskripsi

Kesalahan umum:

  • Lupa session_start()
  • Tidak validasi login
  • Tidak proteksi halaman

🧠 Narasi

Kesalahan ini bisa menyebabkan celah keamanan.


πŸ”„ 11. Alur Lengkap Sistem Login

https://images.openai.com/static-rsc-4/QcJI3jlh5bC166EVsS_EkRKrc8BQQHjpoxX2-gKBlAvefJy4uDS4o78kEl588nKLbt--ouXgMNkU_O3TjIwciyoIn0yhIBqzUFhC3gHaU8Yvl6v1Mdi1gqTVnkDvZzFXbD7qvrsv_swr27uKOzjDCJJqiw4R9a6oyfGaj4tnzJ8EKxocpLg6A_QbaE-x2f17?purpose=fullsize
https://images.openai.com/static-rsc-4/0pqG3gBM73rf8qUOqySVD0z31Xecyq-c2uuJA__v6ajhweEj0U4YdA2SNmyKAo6AMLKfbkKcdvf5Mp8nlr-W7Uk2xLAD-mXvh0ANNw1f2bab_NTuReYn4gGlP7EAzN0SJmtLXOPQukEmPkHfqPdi-L_yhtjfxoVg7a1l-Nxk_YaXvq79toqpXsHq2bA148MF?purpose=fullsize
https://images.openai.com/static-rsc-4/80whQ4WRfUBIBWQVz9Q263R-r-oreCnA7gqx16l9w6cwx0SJfqa85QbWC2X06sIK0xuTdlJc0-VF_N4Fc37s5fF5cEBjgfswJkgaqNap4gkazdE-L9jB6C8EKEgF5-sBAmNYQGXNgD77pZMaP2hiQQXBKz9MJ8lX7jdLtXzdus4eeoSTpa3mus6hEwIwI3TP?purpose=fullsize

8

πŸ“– Deskripsi

Alur sistem:

  1. Login
  2. Session dibuat
  3. Akses halaman
  4. Logout

🧠 Narasi

Siklus ini adalah dasar semua aplikasi berbasis user.


πŸ§ͺ 12. Studi Kasus Mini Project

🎯 Tugas

Buat sistem:

  • Form login
  • Validasi user
  • Session login
  • Proteksi halaman
  • Logout

🎯 13. Kesimpulan

  • Session menyimpan status user
  • Authentication memverifikasi user
  • Authorization mengontrol akses
  • Keamanan sangat penting

πŸŽ“ Penutup

Materi ini menjadi dasar untuk:
➑️ Sistem login lengkap
➑️ Role-based access control
➑️ Framework seperti Laravel