
Cara Membuat Sistem Login & Register + Belajar REST API Dasar untuk Pemula (PHP & MySQL)
Pendahuluan
Membuat sistem login dan register adalah skill wajib untuk developer web. Hampir semua website modern memiliki fitur autentikasi user, mulai dari blog, e-commerce, hingga aplikasi SaaS.
Dalam tutorial lengkap ini kamu akan belajar:
- Membuat database user
- Membuat form register
- Menyimpan password dengan aman
- Membuat sistem login
- Menggunakan session
- Membuat REST API sederhana
1. Persiapan
Pastikan kamu sudah:
- Install XAMPP / Laragon
- Menjalankan Apache & MySQL
- Membuat folder project di htdocs
2. Membuat Database MySQL
Buka phpMyAdmin lalu buat database baru:
CREATE DATABASE db_login;
Buat tabel users:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) NOT NULL,
email VARCHAR(150) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3. Membuat Koneksi Database (config.php)
<?php
$conn = mysqli_connect("localhost", "root", "", "db_login");
if (!$conn) {
die("Koneksi gagal: " . mysqli_connect_error());
}
?>
4. Membuat Form Register (register.php)
<form method="POST" action="proses_register.php">
Username: <input type="text" name="username" required><br>
Email: <input type="email" name="email" required><br>
Password: <input type="password" name="password" required><br>
<button type="submit">Register</button>
</form>
5. Proses Register (proses_register.php)
<?php
include "config.php";
$username = $_POST['username'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$query = "INSERT INTO users (username, email, password)
VALUES ('$username', '$email', '$password')";
if (mysqli_query($conn, $query)) {
echo "Register berhasil!";
} else {
echo "Error: " . mysqli_error($conn);
}
?>
Kenapa pakai password_hash?
Supaya password terenkripsi dan aman.
6. Membuat Form Login (login.php)
<form method="POST" action="proses_login.php">
Email: <input type="email" name="email" required><br>
Password: <input type="password" name="password" required><br>
<button type="submit">Login</button>
</form>
7. Proses Login (proses_login.php)
<?php
session_start();
include "config.php";
$email = $_POST['email'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE email='$email'";
$result = mysqli_query($conn, $query);
$data = mysqli_fetch_assoc($result);
if ($data && password_verify($password, $data['password'])) {
$_SESSION['user'] = $data['username'];
header("Location: dashboard.php");
} else {
echo "Login gagal!";
}
?>
8. Halaman Dashboard (dashboard.php)
<?php
session_start();
if (!isset($_SESSION['user'])) {
header("Location: login.php");
}
?>
<h2>Selamat datang, <?= $_SESSION['user']; ?></h2>
<a href="logout.php">Logout</a>
9. Logout (logout.php)
<?php
session_start();
session_destroy();
header("Location: login.php");
?>
10. Belajar REST API Dasar
REST API memungkinkan aplikasi lain mengakses data kita.
Membuat File api_users.php
<?php
include "config.php";
header("Content-Type: application/json");
$query = "SELECT id, username, email FROM users";
$result = mysqli_query($conn, $query);
$data = [];
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
echo json_encode($data);
?>
Akses melalui browser:
http://localhost/project/api_users.php
Maka akan muncul data JSON seperti:
[
{
"id": 1,
"username": "admin",
"email": "admin@gmail.com"
}
]
11. Konsep Dasar REST API
- GET → Ambil data
- POST → Tambah data
- PUT → Update data
- DELETE → Hapus data
12. Tips Keamanan
- Gunakan prepared statement (hindari SQL Injection)
- Gunakan HTTPS di production
- Validasi input user
- Gunakan token untuk API lanjutan
Penutup
Sekarang kamu sudah bisa:
- Membuat sistem login & register
- Menggunakan session
- Menyimpan password dengan aman
- Membuat REST API sederhana
Ini adalah fondasi untuk membuat:
- Website membership
- Sistem admin
- Aplikasi SaaS
- Backend aplikasi mobile
Latih terus dan upgrade ke level berikutnya seperti JWT dan MVC.