> For the complete documentation index, see [llms.txt](https://learn.devlabss.my.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learn.devlabss.my.id/php/bab-9-session-and-autentikasi/9.3-pembatasan-hak-akses.md).

# 9.3 Pembatasan Hak Akses

Setelah login berjalan, aplikasi perlu membatasi akses ke halaman penting.

Materi ini membahas pengecekan session dan redirect saat akses tidak diizinkan.

### Tujuan belajar

Setelah mempelajari bagian ini, Anda diharapkan bisa:

* memahami kenapa hak akses perlu dibatasi
* mengecek session sebelum membuka halaman tertentu
* mencegah pengguna belum login mengakses halaman penting

### Kenapa pembatasan akses penting

Kalau halaman penting bisa dibuka tanpa login, maka sistem jadi tidak aman.

Misalnya, halaman data siswa seharusnya hanya bisa diakses oleh admin atau pengguna yang sudah berhasil login.

### Contoh pengecekan session

```php
<?php
session_start();

if (!isset($_SESSION["login"])) {
    echo "Akses ditolak";
    exit;
}

echo "Selamat datang di halaman admin";
?>
```

### Penjelasan singkat

Pada contoh itu:

* `isset()` dipakai untuk mengecek apakah status login ada
* jika tidak ada, akses dihentikan
* jika ada, halaman bisa dibuka

### Tujuan logika ini

Logika pembatasan akses membantu memastikan:

* hanya pengguna yang sah yang bisa masuk
* halaman penting tidak terbuka bebas
* status login benar-benar berguna

### Pengembangan sederhana

Di proyek nyata, setelah akses ditolak biasanya pengguna diarahkan kembali ke halaman login.

Untuk tahap ini, yang paling penting adalah memahami ide dasarnya lebih dulu.

### Kesalahan umum

* lupa mengecek session pada halaman penting
* hanya membuat login tetapi tidak membatasi akses
* mengira login cukup dilakukan di satu halaman saja

### Latihan singkat

Buat satu halaman simulasi admin yang:

* hanya boleh dibuka jika session `login` ada
* menampilkan pesan jika akses ditolak

### Poin evaluasi bab 9.3.

Pastikan Anda sudah memahami poin berikut:

* Saya paham kenapa halaman penting harus dibatasi.
* Saya bisa mengecek session sebelum halaman dibuka.
* Saya tahu bahwa login dan hak akses harus berjalan bersama.
* Saya bisa membaca contoh pembatasan akses sederhana.

Jika semua sudah jelas, lanjut ke [Praktik: Mengamankan CRUD Data Siswa](/php/bab-9-session-and-autentikasi/praktik-mengamankan-crud-data-siswa.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.devlabss.my.id/php/bab-9-session-and-autentikasi/9.3-pembatasan-hak-akses.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
