Bikin Form Pendaftaran Pasien: Input, Select, Radio, Checkbox, dan Pengiriman Data dengan GET dan POST
Dari kolom kosong di layar sampai data pasien tampil rapi di halaman hasil. Praktik form PHP langkah demi langkah di XAMPP.
Pernah mendaftar berobat dengan formulir kertas, lalu petugas salah membaca tulisan tanganmu? Namamu "Rudi" tercatat "Budi", dan kamu dipanggil untuk pemeriksaan orang lain. Inilah alasan rumah sakit dan puskesmas beralih ke formulir digital. Di artikel ini kamu belajar membuat form PHP untuk pendaftaran pasien: dari kolom input, select, radio, sampai checkbox, lalu mengirim datanya dengan GET dan POST.
Kamu tidak perlu jago coding. Cukup XAMPP, Sublime Text, dan rasa penasaran. Semua data di sini fiktif, jadi aman untuk bereksperimen. Artikel ini adalah bagian dari seri "Pemrograman Web D4 MIK" (artikel 6 dari 16), dan di akhir kamu akan punya form yang benar-benar berjalan di localhost.
CPMK 2 · Sub-CPMK 3: mahasiswa mampu membuat form input dan menerapkan validasi data pada form data pasien. Di artikel ini kamu membangun form-nya dan validasi dasar. Validasi lengkap (format NIK, tanggal lahir, pesan error) dibahas di Artikel 7.
Konsep Dasar Form PHP: Mengenal Input, Select, Radio, dan Checkbox
Bayangkan loket pendaftaran di puskesmas. Petugas memberimu selembar formulir: ada garis kosong untuk menulis nama, kotak pilihan untuk jenis kelamin, daftar poli, dan kotak centang untuk keluhan. Form di web persis seperti itu. Bedanya, PHP yang "membaca" isi formulir setelah kamu menekan tombol kirim.
<input name="kunci">
</form>
$_POST["kunci"] atau $_GET["kunci"]. Atribut name adalah "kunci" itu. Tanpa name, data tidak akan terkirim.Berikut empat elemen yang akan kita pakai di form pendaftaran pasien:
| Elemen | Tag HTML | Cocok untuk | Contoh pada data pasien |
|---|---|---|---|
| Input teks | <input type="text"> | Jawaban bebas | Nama, NIK |
| Select | <select> | Pilih satu dari daftar panjang | Poli tujuan |
| Radio | <input type="radio"> | Pilih satu dari 2–4 opsi | Jenis kelamin |
| Checkbox | <input type="checkbox"> | Boleh pilih lebih dari satu | Keluhan pasien |
<label for="nama"> yang cocok dengan id="nama". Hasilnya, kalau teks label diklik, kursor langsung masuk ke kolomnya. Ini juga membantu pembaca layar (screen reader) membacakan formulir untuk pengguna tunanetra.Praktik 1: Membuat Form PHP Pendaftaran Pasien Langkah demi Langkah
Saatnya praktik di laboratorium komputer. Ikuti urutan ini tanpa melompat, ya.
Buka XAMPP Control Panel, lalu klik Start pada Apache. Modul berwarna hijau berarti server siap.
Di
C:\xampp\htdocs\, buat folder baru bernama pendaftaran-pasien.Buka Sublime Text, buat file baru, simpan sebagai
form-pasien.php di folder tadi.Boleh disalin, tapi baca tiap baris dan cari tahu fungsinya.
Akses
http://localhost/pendaftaran-pasien/form-pasien.php. Hasil yang diharapkan: halaman berisi kolom nama, NIK, tanggal lahir, dua radio, dropdown poli, empat checkbox, kotak catatan, dan tombol "Daftar". Jangan klik Daftar dulu, file tujuannya belum ada.name="jenis_kelamin" yang sama supaya browser tahu keduanya satu kelompok (hanya satu yang bisa dipilih). Sebaliknya, checkbox memakai name="keluhan[]". Tanda [] membuat PHP menyimpan semua pilihan dalam sebuah array.Praktik 2: Mengirim dan Membaca Data Form PHP dengan Method POST
Form sudah ada, sekarang buat "petugas" yang menerima lembar pendaftarannya. Buat file baru hasil-post.php di folder yang sama.
Coba sekarang. Isi form dengan data fiktif, misalnya nama "Rina Fiktif", NIK "3578000000000001", poli "Poli Umum", centang "Demam" dan "Batuk", lalu klik Daftar. Hasil yang diharapkan: halaman "Pendaftaran Berhasil" menampilkan semua isian dalam tabel, dengan keluhan tertulis "Demam, Batuk". Perhatikan bahwa alamat di address bar tetap hasil-post.php tanpa tambahan apa pun. Itulah ciri khas POST.
htmlspecialchars() mengubah karakter seperti < dan > menjadi kode aman, sehingga skrip jahat yang diketik ke kolom nama tidak dijalankan browser. Serangan ini disebut XSS dan masuk daftar risiko yang dibahas OWASP. Biasakan sejak form PHP pertamamu.GET vs POST pada Form PHP: Kapan Pakai yang Mana?
Analogi gampangnya: GET itu seperti menulis pertanyaan di kartu pos, sedangkan POST seperti memasukkannya ke amplop tertutup. Keduanya sampai ke tujuan, tapi isi kartu pos bisa dibaca siapa saja yang melihatnya.
| Pertanyaan | GET | POST |
|---|---|---|
| Terlihat di URL? | Ya | Tidak |
| Variabel di PHP | $_GET | $_POST |
| Aman di-refresh berulang? | Ya, hanya membaca | Browser akan bertanya dulu |
| Contoh di klinik | Cari pasien berdasarkan nama | Daftarkan pasien baru |
Mari buktikan sendiri. Buat file cari-pasien.php. Satu file ini berisi form sekaligus pembaca datanya.
Ketik "Rina Fiktif", pilih Poli Umum, lalu klik Cari. Hasil yang diharapkan: halaman memuat ulang, muncul teks "Mencari pasien Rina Fiktif di Poli Umum...", dan alamat di address bar berubah menjadi sesuatu seperti cari-pasien.php?nama=Rina+Fiktif&poli=Poli+Umum. Bandingkan dengan hasil POST tadi.
Error yang Sering Muncul di Form PHP & Cara Mengatasinya
Error itu normal, bahkan programmer berpengalaman pun mengalaminya. Cek tabel ini sebelum panik.
| Gejala | Penyebab | Solusi |
|---|---|---|
Undefined array key "jenis_kelamin" (di PHP 7 muncul sebagai Undefined index) | Radio atau checkbox tidak dipilih, sehingga kuncinya tidak dikirim | Pakai $_POST["x"] ?? "nilai cadangan" atau isset() |
| Kode PHP tampil mentah di browser | File dibuka lewat file:///, bukan server | Akses lewat http://localhost/... dan pastikan ekstensi .php |
| Halaman "Not Found" (404) | File di luar htdocs atau salah ketik nama file di action | Cek lokasi folder dan samakan nama file persis, termasuk huruf besar-kecil |
| Hanya satu keluhan yang terbaca | Lupa tanda [] pada name="keluhan[]" | Tambahkan [] di semua checkbox yang sekelompok |
| Data satu kolom selalu kosong | Atribut name tidak ada atau berbeda dengan yang dibaca PHP | Samakan penulisan name di form dan $_POST["..."] |
| Apache gagal start di XAMPP | Port 80 dipakai aplikasi lain | Tutup aplikasi yang memakai port itu, atau ubah port Apache lewat tombol Config |
Latihan Mandiri: Kembangkan Form PHP Pendaftaran Pasien
Tiga tugas ini selaras dengan Sub-CPMK 3. Kerjakan berurutan dan simpan filenya di folder pendaftaran-pasien.
Tugas 1 – Lengkapi form. Tambahkan kolom No. HP (type="tel"), golongan darah (select: A, B, AB, O), dan radio status pasien (Baru / Lama). Tampilkan semuanya di hasil-post.php.
Tugas 2 – Validasi dasar. Di hasil-post.php, tolak pendaftaran jika NIK kosong atau poli belum dipilih. Tampilkan pesan yang jelas dan tautan kembali ke form.
Tugas 3 – Ubah method. Salin form-pasien menjadi form-pasien-get.php dengan method GET. Catat perbedaan URL-nya, lalu tulis dua kalimat alasan mengapa POST lebih tepat untuk pendaftaran.
name, ganti method, lupakan []. Melihat error-nya sendiri membuat kamu paham lebih cepat daripada sekadar menyalin kode.Kesimpulan: Form PHP Itu Pintu Masuk Data Pasien
Kamu sudah membuat form PHP lengkap: input teks dan tanggal untuk jawaban bebas, radio untuk satu pilihan, select untuk daftar poli, dan checkbox (name="keluhan[]") untuk banyak pilihan. Kamu juga sudah membandingkan GET yang terlihat di URL dengan POST yang lebih tertutup, serta membersihkan output dengan htmlspecialchars().
Langkah berikutnya: membuat form ini tidak mau dibohongi lewat validasi yang ketat. Sampai ketemu di Artikel 7!
Mana yang paling bikin kamu tersandung: checkbox, radio, atau GET vs POST? Ceritakan di kolom komentar, dan bagikan artikel ini ke teman sekelasmu.
- PHP Manual: $_POST, $_GET, dan htmlspecialchars().
- MDN Web Docs: elemen <form> dan elemen <input>.
- OWASP: Cross Site Scripting (XSS).
Artikel ini bagian dari seri 16 artikel. Lihat semua materi dan urutan belajarnya di daftar isi.
Buka Daftar Isi Artikel
No comments:
Post a Comment