form pendaftaran pasien php | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: form pendaftaran pasien php

Saturday, October 10, 2026

form pendaftaran pasien php

🏥📝

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.

Form PHP GET & POST Pendaftaran Pasien XAMPP
⏱️
12 menit
Estimasi baca
📊
Menengah
Level
📅
2026
Tahun

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.

🎯 Capaian pembelajaran
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.

📐 Rumus Dasar Form PHP
<form action="file-tujuan.php" method="get / post">
  <input name="kunci">
</form>
Di PHP, isinya dibaca lewat $_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:

ElemenTag HTMLCocok untukContoh pada data pasien
Input teks<input type="text">Jawaban bebasNama, NIK
Select<select>Pilih satu dari daftar panjangPoli tujuan
Radio<input type="radio">Pilih satu dari 2–4 opsiJenis kelamin
Checkbox<input type="checkbox">Boleh pilih lebih dari satuKeluhan pasien
💡 Tips: Pasangkan label dan input
Pakai <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.

1
Nyalakan Apache.
Buka XAMPP Control Panel, lalu klik Start pada Apache. Modul berwarna hijau berarti server siap.
2
Buat folder kerja.
Di C:\xampp\htdocs\, buat folder baru bernama pendaftaran-pasien.
3
Buat file form.
Buka Sublime Text, buat file baru, simpan sebagai form-pasien.php di folder tadi.
4
Ketik kode berikut.
Boleh disalin, tapi baca tiap baris dan cari tahu fungsinya.
📄 form-pasien.php
<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Pendaftaran Pasien</title>
</head>
<body>
  <h2>Form Pendaftaran Pasien</h2>
  <form action="hasil-post.php" method="post">

    <p>
      <label for="nama">Nama Lengkap</label><br>
      <input type="text" id="nama" name="nama" required>
    </p>
    <p>
      <label for="nik">NIK (fiktif)</label><br>
      <input type="text" id="nik" name="nik" maxlength="16" required>
    </p>
    <p>
      <label for="tgl_lahir">Tanggal Lahir</label><br>
      <input type="date" id="tgl_lahir" name="tgl_lahir" required>
    </p>
    <p>
      Jenis Kelamin<br>
      <input type="radio" id="lk" name="jenis_kelamin" value="Laki-laki" required>
      <label for="lk">Laki-laki</label>
      <input type="radio" id="pr" name="jenis_kelamin" value="Perempuan">
      <label for="pr">Perempuan</label>
    </p>
    <p>
      <label for="poli">Poli Tujuan</label><br>
      <select id="poli" name="poli" required>
        <option value="">-- Pilih Poli --</option>
        <option value="Poli Umum">Poli Umum</option>
        <option value="Poli Gigi">Poli Gigi</option>
        <option value="Poli Anak">Poli Anak</option>
        <option value="Poli KIA">Poli KIA</option>
      </select>
    </p>
    <p>
      Keluhan (boleh lebih dari satu)<br>
      <input type="checkbox" id="k1" name="keluhan[]" value="Demam">
      <label for="k1">Demam</label>
      <input type="checkbox" id="k2" name="keluhan[]" value="Batuk">
      <label for="k2">Batuk</label>
      <input type="checkbox" id="k3" name="keluhan[]" value="Sakit Kepala">
      <label for="k3">Sakit Kepala</label>
      <input type="checkbox" id="k4" name="keluhan[]" value="Mual">
      <label for="k4">Mual</label>
    </p>
    <p>
      <label for="catatan">Catatan Tambahan</label><br>
      <textarea id="catatan" name="catatan" rows="3" cols="30"></textarea>
    </p>

    <button type="submit">Daftar</button>
  </form>
</body>
</html>
5
Buka di browser.
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.
⚡ Insight Penting: Radio berbagi satu name, checkbox pakai kurung siku
Dua radio punya 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.

📄 hasil-post.php
<?php
// Tolak akses langsung tanpa lewat form
if ($_SERVER["REQUEST_METHOD"] !== "POST") {
    echo "Silakan isi form pendaftaran terlebih dahulu.";
    exit;
}

// Ambil data. Tanda ?? memberi nilai cadangan jika kunci tidak ada
$nama      = htmlspecialchars(trim($_POST["nama"] ?? ""));
$nik       = htmlspecialchars(trim($_POST["nik"] ?? ""));
$tgl_lahir = htmlspecialchars($_POST["tgl_lahir"] ?? "");
$jk        = htmlspecialchars($_POST["jenis_kelamin"] ?? "Belum dipilih");
$poli      = htmlspecialchars($_POST["poli"] ?? "");
$catatan   = htmlspecialchars(trim($_POST["catatan"] ?? ""));

// Checkbox = array. Bersihkan tiap isinya, lalu gabung jadi teks
$keluhan = array_map("htmlspecialchars", $_POST["keluhan"] ?? []);
$daftar_keluhan = count($keluhan) > 0 ? implode(", ", $keluhan) : "Tidak ada";

// Validasi dasar: nama tidak boleh kosong
if ($nama === "") {
    echo "Nama wajib diisi. <a href='form-pasien.php'>Kembali</a>";
    exit;
}
?>
<h2>Pendaftaran Berhasil</h2>
<table border="1" cellpadding="8">
  <tr><td>Nama</td><td><?= $nama ?></td></tr>
  <tr><td>NIK</td><td><?= $nik ?></td></tr>
  <tr><td>Tanggal Lahir</td><td><?= $tgl_lahir ?></td></tr>
  <tr><td>Jenis Kelamin</td><td><?= $jk ?></td></tr>
  <tr><td>Poli Tujuan</td><td><?= $poli ?></td></tr>
  <tr><td>Keluhan</td><td><?= $daftar_keluhan ?></td></tr>
  <tr><td>Catatan</td><td><?= $catatan ?></td></tr>
</table>
<p><a href="form-pasien.php">Daftarkan pasien lain</a></p>

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.

⚠️ Perhatian: jangan tampilkan input mentah
Fungsi 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.

📮
GET (kartu pos)
Data muncul di URL, bisa di-bookmark dan dibagikan, cocok untuk mencari atau memfilter data. Jangan dipakai untuk data sensitif.
✉️
POST (amplop tertutup)
Data dikirim di badan request, tidak tampil di URL, cocok untuk menyimpan atau mengubah data seperti pendaftaran pasien.
🔍 Analisis: pilih berdasarkan tujuan, bukan kebiasaan
PertanyaanGETPOST
Terlihat di URL?YaTidak
Variabel di PHP$_GET$_POST
Aman di-refresh berulang?Ya, hanya membacaBrowser akan bertanya dulu
Contoh di klinikCari pasien berdasarkan namaDaftarkan pasien baru

Mari buktikan sendiri. Buat file cari-pasien.php. Satu file ini berisi form sekaligus pembaca datanya.

📄 cari-pasien.php
<h2>Cari Pasien</h2>
<form action="cari-pasien.php" method="get">
  <input type="text" name="nama" placeholder="Nama pasien">
  <select name="poli">
    <option value="Poli Umum">Poli Umum</option>
    <option value="Poli Gigi">Poli Gigi</option>
  </select>
  <button type="submit">Cari</button>
</form>

<?php
if (isset($_GET["nama"])) {
    $nama = htmlspecialchars($_GET["nama"]);
    $poli = htmlspecialchars($_GET["poli"] ?? "");
    echo "<p>Mencari pasien <strong>$nama</strong> di <strong>$poli</strong>...</p>";
}
?>

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.

🔥 Fakta Menarik: POST bukan berarti terenkripsi
Banyak pemula mengira POST otomatis aman. Faktanya, POST hanya menyembunyikan data dari URL. Di jaringan, isinya tetap bisa terbaca jika tidak memakai HTTPS. Untuk data kesehatan sungguhan, HTTPS adalah syarat mutlak.

Error yang Sering Muncul di Form PHP & Cara Mengatasinya

Error itu normal, bahkan programmer berpengalaman pun mengalaminya. Cek tabel ini sebelum panik.

GejalaPenyebabSolusi
Undefined array key "jenis_kelamin" (di PHP 7 muncul sebagai Undefined index)Radio atau checkbox tidak dipilih, sehingga kuncinya tidak dikirimPakai $_POST["x"] ?? "nilai cadangan" atau isset()
Kode PHP tampil mentah di browserFile dibuka lewat file:///, bukan serverAkses lewat http://localhost/... dan pastikan ekstensi .php
Halaman "Not Found" (404)File di luar htdocs atau salah ketik nama file di actionCek lokasi folder dan samakan nama file persis, termasuk huruf besar-kecil
Hanya satu keluhan yang terbacaLupa tanda [] pada name="keluhan[]"Tambahkan [] di semua checkbox yang sekelompok
Data satu kolom selalu kosongAtribut name tidak ada atau berbeda dengan yang dibaca PHPSamakan penulisan name di form dan $_POST["..."]
Apache gagal start di XAMPPPort 80 dipakai aplikasi lainTutup 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.

💡 Tips: Cara belajar yang cepat
Sengaja rusak-rusakin kodenya: hapus satu 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.

Referensi resmi untuk dibaca lebih lanjut:
🏷️ Tag artikel
#PemrogramanWeb #D4MIK #FormPHP #GETPOST #PendaftaranPasien
📂 Label topik
Form PHP Form Pendaftaran Pasien Method GET dan POST Pemrograman Web D4 MIK
📚
Pemrograman Web D4 MIK

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

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux