Cover Image

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.

Harga Terus Naik, Kenapa Hidup Banyak Orang Terasa Semakin Berat?

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:

Belajar PHP untuk Pemula: Membuat Website Dinamis dengan Database MySQL
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.