Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Pemrograman Web Aman: Input, Query, dan Hak Akses

Pelajaran 11 dari 14

Validasi tipe, panjang, rentang, allowlist, dan escaping

Misi: formulir pendaftaran pelatihan

Setelah pelajaran ini kamu bisa menggabungkan validasi, query berparameter, dan escaping keluaran pada formulir pendaftaran pelatihan kerja.

±17 menitDiperiksa 7 Okt 2026

Materi

Balai pelatihan kerja di Bekasi membuka pendaftaran kelas desain grafis, akuntansi, dan las listrik lewat formulir web. Data yang masuk dipakai di tiga tempat: disimpan ke basis data, ditampilkan di tabel admin, dan dihitung untuk kuota kelas. Formulir lama hanya memeriksa isian di peramban, menyimpan dengan f-string, dan menampilkan nama apa adanya di tabel admin.

Ketiga lapisan di misi ini punya tugas berbeda dan tidak saling menggantikan. Validasi menolak data yang melanggar kontrak: nama 2–60 karakter, umur 15–65 dari angka 0–9, kelas dari daftar tetap. Query berparameter menjaga perintah SQL, termasuk untuk data sah yang memuat tanda petik. Escaping keluaran menjaga halaman admin saat nama yang sah memuat karakter seperti < atau &.

# Urutan yang sama di formulir lain: validasi → simpan berparameter → escape saat tampil
bersih = validasi_tamu(data)
conn.execute("INSERT INTO tamu(nama, instansi) VALUES (?, ?)", (bersih["nama"], bersih["instansi"]))
baris = f"<li>{html.escape(bersih['nama'])}</li>"

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 4 dari 4

Rekan menulis: "Nama sudah divalidasi 2–60 karakter, jadi aman disisipkan ke query dengan f-string." Mana tanggapan yang tepat?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke