Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
  • Elearning
  • Blog
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
  • Elearning
  • Blog

Panduan Lengkap Membuat Form Registrasi Menggunakan PHP dan MySQL

  • July 22, 2025
  • oleh Edusoft Center

Daftar Isi

  1. Pendahuluan
  2. Struktur Folder dan File
  3. Persiapan Database MySQL
  4. Membuat File config.php untuk Koneksi
  5. Membuat Form HTML di register.php
  6. Menangani Input dengan PHP
  7. Validasi dan Simpan ke Database
  8. Penjelasan Kode Baris per Baris
  9. 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:

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 dikirim
  • password_hash() → Mengamankan password
  • prepare() → 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() dan password_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 pengguna
  • logout.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
Tags: belajar php dasarcara membuat form registercoding php mysqlconfig.php phpform html phpform registrasiinsert data mysqlkoneksi database phpMySQLpemrograman web phpPHPphp proceduralregister user phpregister.phptutorial backend phptutorial pemula phptutorial php mysqlvalidasi form phpweb development indonesia
Previous Post
Next Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Basis Data: Pengertian, Konsep, Contoh, dan Langkah Praktis Menggunakan SQL
  • Di Balik Rekomendasi Aplikasi: Mengapa Teknologi Selalu Tahu Apa yang Kita Mau?
  • Membuat Aplikasi Otomatisasi Menggunakan Google Apps Script: Pendekatan Praktis untuk Data Analyst Pemula
  • Mengapa Data Analyst Pemula Lebih Butuh Cara Berpikir daripada Tools
  • Mengapa dan Bagaimana Cara Berkontribusi pada Proyek Open Source di Platform seperti GitHub?

Arsip

  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus mysql kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2025 | Privacy Policy | Site Map

All Right Reserved

WhatsApp us