Formulir website bukan sekadar pelengkap tampilan. Mulai dari formulir kontak, pendaftaran newsletter, hingga pengumpulan data pelanggan, formulir menjadi pintu masuk informasi penting bagi bisnis. Sayangnya, banyak website masih mengirim data formulir hanya melalui email atau menampilkannya di halaman tanpa menyimpan ke database.
Padahal, dengan menghubungkan formulir ke database, Anda bisa mengelola data secara lebih rapi, mencari entri tertentu, membuat laporan, hingga mengintegrasikannya dengan sistem lain. Artikel ini membahas cara menghubungkan formulir website dengan database langkah demi langkah, mulai dari konsep dasar hingga praktik keamanan yang wajib diperhatikan.
Panduan ini cocok untuk pemula yang menggunakan HTML, PHP, dan MySQL. Anda juga bisa menerapkan prinsip serupa saat memakai framework atau layanan no-code.
1. Pahami Alur Kerja Formulir ke Database
Sebelum menulis kode, pahami dulu alurnya. Ketika pengunjung mengisi formulir dan menekan tombol kirim, browser akan mengirim data ke server melalui metode POST. Data tersebut kemudian diproses oleh skrip server, divalidasi, lalu disimpan ke tabel database.
Alur sederhananya seperti ini:
- Pengguna mengisi kolom nama, email, dan pesan.
- Browser mengirim data ke file pemroses, misalnya
proses.php. - Skrip server memeriksa apakah data wajib sudah lengkap dan format email valid.
- Skrip membuka koneksi ke database.
- Data dimasukkan ke tabel menggunakan query yang aman.
- Server menampilkan pesan sukses atau gagal kepada pengguna.
Ingat, JavaScript saja tidak cukup untuk menyimpan data ke database. Diperlukan bahasa server seperti PHP, Node.js, Python, atau layanan backend lainnya.
2. Siapkan Lingkungan dan Struktur Database
Untuk latihan lokal, Anda bisa menggunakan XAMPP, Laragon, atau MAMP. Ketiganya menyediakan Apache, PHP, dan MySQL dalam satu paket. Setelah terpasang, buka phpMyAdmin untuk membuat database dan tabel.
Misalnya, Anda membuat database bernama website_db dan tabel kontak dengan kolom berikut:
- id — primary key, auto increment.
- nama — varchar, menyimpan nama pengirim.
- email — varchar, menyimpan alamat email.
- pesan — text, menyimpan isi pesan.
- dibuat_pada — timestamp, mencatat waktu pengiriman.
Struktur sederhana ini sudah cukup untuk formulir kontak. Jika formulir Anda lebih kompleks, tambahkan kolom sesuai kebutuhan, misalnya nomor telepon, subjek, atau pilihan layanan.
3. Buat Formulir HTML yang Benar
Buat file kontak.html atau kontak.php yang berisi formulir. Pastikan elemen form memiliki atribut action yang mengarah ke file pemroses dan method="post".
Contoh struktur form yang umum digunakan adalah <form action="proses.php" method="post"> dengan input name="nama", name="email", dan name="pesan". Jangan lupa tambahkan tombol type="submit".
Gunakan juga atribut required pada kolom wajib dan type="email" untuk memudahkan validasi di sisi browser. Namun, validasi di browser tidak boleh menjadi satu-satunya pengaman. Server tetap harus memeriksa data yang masuk.
4. Hubungkan dengan Database Menggunakan PHP
Langkah berikutnya adalah membuat file koneksi, misalnya koneksi.php. File ini berisi kredensial database: host, nama database, username, dan password. Untuk latihan lokal, biasanya host localhost dan username root.
Gunakan PDO atau mysqli dengan prepared statement. Prepared statement membantu mencegah SQL injection, yaitu serangan yang memanipulasi query melalui input formulir.
Secara konsep, proses penyimpanan data berjalan seperti ini:
- Tangkap data dari
$_POST. - Bersihkan spasi berlebih dan validasi format email.
- Buat query
INSERT INTO kontak (nama, email, pesan) VALUES (?, ?, ?). - Ikat parameter ke placeholder, lalu eksekusi.
- Tampilkan notifikasi berhasil atau gagal.
Hindari menyusun query dengan menggabungkan input pengguna secara langsung, seperti "INSERT ... VALUES ('$nama')". Pola tersebut rentan dieksploitasi. Dengan prepared statement, input diperlakukan sebagai data, bukan perintah SQL.
Validasi dan Pesan Kesalahan
Selain menyimpan data, skrip pemroses perlu memberikan respons yang jelas. Jika email tidak valid, tampilkan pesan “Format email tidak sesuai.” Jika penyimpanan berhasil, tampilkan “Pesan Anda telah terkirim.” Pesan yang ramah membantu pengguna memahami apa yang terjadi.
Untuk pengembangan, aktifkan mode error saat berada di server lokal. Namun, saat website sudah online, sembunyikan detail error dari pengunjung dan catat ke log server.
5. Uji Formulir dan Periksa Hasilnya
Setelah semua file siap, lakukan pengujian. Buka formulir di browser, isi data, lalu kirim. Selanjutnya, buka phpMyAdmin dan periksa apakah data baru muncul di tabel kontak.
Uji juga beberapa skenario berikut:
- Mengosongkan kolom wajib untuk memastikan validasi berjalan.
- Mengisi email dengan format salah.
- Mengirim pesan dengan karakter khusus.
- Membuka formulir melalui smartphone Android untuk mengecek responsivitas.
- Menguji koneksi database saat kredensial salah.
Jika data tidak masuk, periksa pesan error, nama database, nama tabel, serta kesesuaian nama kolom. Kesalahan kecil seperti salah ketik nama kolom sering menjadi penyebab utama.
6. Amankan Formulir dari Serangan Umum
Formulir yang terhubung ke database perlu perlindungan ekstra. Beberapa risiko yang umum terjadi adalah SQL injection, cross-site scripting (XSS), spam bot, dan CSRF.
Langkah pengamanan yang bisa diterapkan:
- Gunakan prepared statement untuk semua query yang melibatkan input pengguna.
- Escape output dengan
htmlspecialcharssaat menampilkan data agar tag berbahaya tidak dieksekusi. - Tambahkan CAPTCHA atau honeypot untuk mengurangi spam.
- Aktifkan HTTPS agar data formulir terenkripsi saat dikirim.
- Batasi ukuran input dan validasi tipe data di server.
- Buat backup database secara berkala.
Jika formulir Anda menyimpan password, jangan pernah menyimpannya sebagai teks biasa. Gunakan fungsi hash seperti password_hash dan verifikasi dengan password_verify.
7. Alternatif Tanpa Coding
Bagi yang belum nyaman menulis kode, ada beberapa alternatif untuk menghubungkan formulir ke database atau penyimpanan data. Contohnya Google Forms yang terhubung ke Google Sheets, layanan Formspree, Netlify Forms, atau plugin formulir pada WordPress.
Alternatif ini cocok untuk kebutuhan cepat dan sederhana. Namun, jika Anda membutuhkan kontrol penuh atas struktur data, integrasi sistem, atau alur kerja khusus, solusi kustom dengan PHP dan MySQL tetap lebih fleksibel.
Kesimpulan
Menghubungkan formulir website dengan database membutuhkan pemahaman alur dasar, struktur tabel yang rapi, validasi server, dan praktik keamanan yang benar. Dengan mengikuti langkah di atas, Anda dapat membuat formulir kontak yang tidak hanya mengirim data, tetapi juga menyimpannya secara terorganisir.
Mulailah dari formulir sederhana, uji secara berkala, lalu tingkatkan fiturnya sesuai kebutuhan. Jika Anda ingin mendalami tutorial teknologi, aplikasi, dan gadget Android lainnya, kunjungi Solusitekno.id untuk mendapatkan panduan praktis dan terbaru.
1 Comment