Daftar Isi
- Pendahuluan
- Struktur Folder dan File
- Persiapan Database MySQL
- Membuat File
config.phpuntuk Koneksi - Membuat Form HTML di
register.php - Menangani Input dengan PHP
- Validasi dan Simpan ke Database
- Penjelasan Kode Baris per Baris
- Penutup dan Pengembangan Lanjutan
1. Pendahuluan
Salah satu fitur dasar dari aplikasi web adalah sistem registrasi pengguna, yang memungkinkan pengguna membuat akun. Fitur ini digunakan di berbagai aplikasi seperti e-commerce, sistem sekolah, e-learning, dan lain-lain.
Tutorial ini menggunakan:
- PHP: sebagai bahasa server
- MySQL: sebagai database
- Laragon/XAMPP: sebagai server lokal
2. Struktur Folder dan File
Buat folder belajar_register di dalam direktori Laragon/XAMPP kamu (www), lalu siapkan struktur file berikut:
belajar_register/
├── config.php
└── register.php

3. Persiapan Database MySQL
A. Buka phpMyAdmin:
Akses di browser:
http://localhost/phpmyadmin

B. Buat database:
Mau Kuasai Panduan Lengkap Membuat Form Registrasi Menggunakan PHP dan MySQL Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
C. Buat tabel user:

4. Membuat File config.php untuk Koneksi

Kode Lengkap config.php
<?php
$host = "localhost";
$dbname = "db_register";
$username = "root";
$password = "";
// Koneksi ke MySQL dengan PDO
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Koneksi gagal: " . $e->getMessage());
}
?>5. Membuat Form HTML di register.php

Kode Lengkap Tampilan register.php
<?php
require_once 'config.php';
$errors = [];
$success = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = trim($_POST["username"]);
$email = trim($_POST["email"]);
$password = trim($_POST["password"]);
if (empty($username) || empty($email) || empty($password)) {
$errors[] = "Semua field wajib diisi!";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Format email tidak valid!";
} else {
$stmt = $pdo->prepare("SELECT id FROM users WHERE email = ?");
$stmt->execute([$email]);
if ($stmt->rowCount() > 0) {
$errors[] = "Email sudah digunakan!";
}
}
if (empty($errors)) {
$hash = password_hash($password, PASSWORD_DEFAULT);
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$username, $email, $hash]);
$success = "Registrasi berhasil! Silakan login.";
}
}
?>
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Form Registrasi</title>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background-color: #f3f4f6;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.register-container {
background-color: #fff;
padding: 30px 40px;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
width: 100%;
max-width: 400px;
}
h2 {
text-align: center;
margin-bottom: 20px;
color: #374151;
}
input[type="text"],
input[type="email"],
input[type="password"] {
width: 100%;
padding: 10px 12px;
margin-bottom: 15px;
border: 1px solid #d1d5db;
border-radius: 6px;
transition: border 0.3s;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus {
border-color: #3b82f6;
outline: none;
}
input[type="submit"] {
background-color: #3b82f6;
color: white;
border: none;
padding: 12px;
width: 100%;
border-radius: 6px;
font-weight: bold;
cursor: pointer;
}
input[type="submit"]:hover {
background-color: #2563eb;
}
.error {
background-color: #fee2e2;
color: #b91c1c;
padding: 10px;
margin-bottom: 10px;
border-radius: 6px;
font-size: 0.9em;
}
.success {
background-color: #d1fae5;
color: #065f46;
padding: 10px;
margin-bottom: 10px;
border-radius: 6px;
font-size: 0.9em;
}
</style>
</head>
<body>
<div class="register-container">
<h2>Registrasi Akun</h2>
<?php
foreach ($errors as $e) {
echo "<div class='error'>$e</div>";
}
if ($success) {
echo "<div class='success'>$success</div>";
}
?>
<form method="POST" action="">
<input type="text" name="username" placeholder="Nama pengguna" required>
<input type="email" name="email" placeholder="Email aktif" required>
<input type="password" name="password" placeholder="Password" required>
<input type="submit" value="Daftar">
</form>
</div>
</body>
</html>6. Penjelasan Kode
Baris Penting:
require_once 'config.php';→ Menghubungkan ke database$_SERVER["REQUEST_METHOD"] == "POST"→ Mengecek jika form dikirimpassword_hash()→ Mengamankan passwordprepare()→ Melindungi dari SQL injection
Validasi:
- Kosong → ditolak
- Email salah → ditolak
- Email sudah ada → ditolak
7. Uji Coba
Akses:

Uji:
- Daftar user dengan email baru → sukses
- Daftar dengan email sama → gagal
- Kosongkan form → gagal

8. Keamanan Dasar
- Gunakan
password_hash()danpassword_verify()untuk login - Jangan tampilkan error MySQL di produksi
- Validasi input lebih detail (panjang username, kekuatan password, dll.)
9. Pengembangan Selanjutnya
Setelah berhasil membuat register.php, kamu bisa melanjutkan dengan:
login.php→ autentikasi penggunalogout.php→ keluar dari sistem- Session → menjaga sesi login
- Halaman dashboard → hanya bisa diakses setelah login
- Verifikasi email (opsional)
Kesimpulan
Kamu baru saja membuat sistem register.php dari nol menggunakan PHP dan MySQL. Dengan pendekatan ini, kamu memahami:
- Cara menghubungkan PHP ke database
- Form dan validasi user input
- Menyimpan data dengan aman menggunakan
password_hash
Artikel ini bisa digunakan untuk:
- Modul praktikum kuliah
- Project tugas sekolah
- Pondasi membangun website real
Mau Kuasai Panduan Lengkap Membuat Form Registrasi Menggunakan PHP dan MySQL Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
