> 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-6-penanganan-form/praktik-form-registrasi-siswa-baru.md).

# Praktik: Form Registrasi Siswa Baru

Praktik ini meniru alur pendaftaran siswa baru dengan beberapa field input.

Tujuannya adalah membangun form yang bisa menerima data dan menolaknya jika tidak valid.

### Target praktik

Setelah praktik ini selesai, Anda seharusnya bisa:

* menangkap data input
* membersihkan data yang masuk
* memvalidasi data sederhana sebelum diproses

### Studi kasus

Bayangkan Anda menerima data berikut dari form registrasi:

* nama
* email
* jurusan

Program harus memeriksa apakah data itu layak diproses.

### Kode latihan

```php
<?php
if (isset($_POST["nama"]) && isset($_POST["email"]) && isset($_POST["jurusan"])) {
    $nama = htmlspecialchars(trim($_POST["nama"]));
    $email = htmlspecialchars(trim($_POST["email"]));
    $jurusan = htmlspecialchars(trim($_POST["jurusan"]));

    if ($nama == "") {
        echo "Nama wajib diisi";
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Email tidak valid";
    } elseif ($jurusan == "") {
        echo "Jurusan wajib diisi";
    } else {
        echo "Data registrasi valid";
        echo "<br>";
        echo "Nama: " . $nama;
        echo "<br>";
        echo "Email: " . $email;
        echo "<br>";
        echo "Jurusan: " . $jurusan;
    }
}
?>
```

### Penjelasan singkat

Program ini melakukan empat langkah:

1. mengecek apakah data ada
2. membersihkan input
3. memvalidasi isi input
4. menampilkan hasil jika data valid

### Hasil yang diharapkan

Jika semua data benar, program akan menampilkan identitas siswa yang sudah lolos validasi.

Jika ada data yang salah, program akan memberi pesan yang sesuai.

### Tantangan tambahan

Coba kembangkan program ini dengan:

* menambah field kelas
* mengecek panjang nama minimal 3 karakter
* menampilkan pesan `Registrasi berhasil` jika semua lolos

### Poin evaluasi praktik Bab 6.

Pastikan Anda sudah memahami poin berikut:

* Saya berhasil menangkap data form.
* Saya bisa membersihkan input pengguna.
* Saya bisa memvalidasi input wajib dan email.
* Saya paham alur dasar pemrosesan form di PHP.

Jika semua sudah jelas, lanjut ke [6.6 Checkpoint: Uji Pemahamanmu Sebelum Lanjut!](/php/bab-6-penanganan-form/6.6-checkpoint-uji-pemahamanmu-sebelum-lanjut.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-6-penanganan-form/praktik-form-registrasi-siswa-baru.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.
