preloader

Membuat Sistem Login Sederhana Menggunakan PHP dan MySQL

Salah satu fitur yang hampir selalu ada pada sebuah website adalah sistem login. Fitur ini berfungsi untuk memverifikasi identitas pengguna sebelum mereka dapat mengakses halaman tertentu, seperti dashboard admin, halaman profil, atau sistem manajemen data.

Bagi Anda yang sedang belajar PHP dan MySQL, membuat sistem login merupakan proyek yang sangat baik untuk memahami bagaimana proses autentikasi bekerja. Selain mempelajari dasar pemrograman, Anda juga akan mengenal cara menghubungkan PHP dengan database MySQL.

Pada artikel ini, kita akan membahas cara membuat sistem login sederhana menggunakan PHP dan MySQL secara bertahap, mulai dari pembuatan database hingga proses login.

Apa Itu Sistem Login?

Sistem login adalah mekanisme keamanan yang digunakan untuk memastikan bahwa hanya pengguna yang memiliki akun yang dapat mengakses suatu aplikasi atau website.

Biasanya pengguna diminta memasukkan:

  • Username
  • Email (opsional)
  • Password

Jika data yang dimasukkan sesuai dengan data yang tersimpan di database, pengguna akan diarahkan ke halaman utama atau dashboard.

Mengapa Sistem Login Penting?

Berikut beberapa alasan mengapa sistem login menjadi bagian penting dalam sebuah website.

  • Melindungi data pengguna.
  • Membatasi akses ke halaman tertentu.
  • Mengamankan informasi penting.
  • Mengelola hak akses pengguna.
  • Mencegah akses dari pengguna yang tidak berwenang.

Dengan sistem login yang baik, keamanan website dapat ditingkatkan secara signifikan.


Persiapan Sebelum Membuat Sistem Login

Sebelum mulai membuat sistem login, siapkan beberapa tools berikut:

  • XAMPP atau Laragon
  • PHP 8 atau versi terbaru
  • MySQL
  • phpMyAdmin
  • Visual Studio Code
  • Web Browser

Pastikan Apache dan MySQL sudah berjalan agar aplikasi dapat diuji secara lokal.

Membuat Database MySQL

Langkah pertama adalah membuat database.

Misalnya:

CREATE DATABASE db_login;

Selanjutnya buat tabel users.

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100),
username VARCHAR(50),
password VARCHAR(255)
);

Struktur tabel di atas cukup sederhana dan cocok untuk latihan.

Menambahkan Data Pengguna

Masukkan satu akun sebagai contoh.

INSERT INTO users(nama,username,password)
VALUES
('Administrator','admin','admin123');

Untuk proyek nyata, password sebaiknya disimpan dalam bentuk hash menggunakan password_hash() agar lebih aman.

Membuat Form Login

Buat file login.php.

<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>

<body>

<h2>Login</h2>

<form method="POST">

<input type="text"
name="username"
placeholder="Username">

<br><br>

<input type="password"
name="password"
placeholder="Password">

<br><br>

<button type="submit">
Login
</button>

</form>

</body>
</html>

Form tersebut digunakan untuk mengirim data username dan password ke server menggunakan metode POST.

Menghubungkan PHP dengan MySQL

Selanjutnya buat file koneksi.php.

<?php

$host = "localhost";
$user = "root";
$pass = "";
$db = "db_login";

$koneksi = mysqli_connect($host,$user,$pass,$db);

if(!$koneksi){
die("Koneksi gagal");
}

?>

File ini akan digunakan pada halaman login maupun halaman lainnya yang membutuhkan akses database.

Membuat Proses Login

Tambahkan kode berikut pada login.php.

<?php

include "koneksi.php";

if(isset($_POST['login'])){

$username = $_POST['username'];
$password = $_POST['password'];

$query = mysqli_query($koneksi,
"SELECT * FROM users
WHERE username='$username'
AND password='$password'");

if(mysqli_num_rows($query)>0){

header("Location: dashboard.php");

}else{

echo "Username atau Password salah";

}

}

?>

Kode di atas akan memeriksa apakah username dan password sesuai dengan data pada database.

Membuat Dashboard

Buat file dashboard.php.

<?php

echo "<h2>Selamat Datang</h2>";

?>

Jika login berhasil, pengguna akan diarahkan menuju halaman dashboard.

Menambahkan Session Login

Agar pengguna tetap login selama menggunakan website, gunakan Session.

Contoh:

session_start();

$_SESSION['login']=true;
$_SESSION['username']=$username;

Kemudian pada halaman dashboard.

session_start();

if(!isset($_SESSION['login'])){

header("Location: login.php");

}

Session berfungsi menjaga status login sehingga pengguna tidak perlu masuk kembali setiap membuka halaman baru.

Membuat Logout

Buat file logout.php.

<?php

session_start();

session_destroy();

header("Location: login.php");

?>

Logout digunakan untuk menghapus session sehingga pengguna harus login kembali.

Alur Kerja Sistem Login

Secara umum, proses login berlangsung sebagai berikut:

  1. Pengguna membuka halaman login.
  2. Pengguna memasukkan username dan password.
  3. Data dikirim ke server menggunakan metode POST.
  4. PHP memeriksa data ke database MySQL.
  5. Jika data cocok, session dibuat.
  6. Pengguna diarahkan ke dashboard.
  7. Jika tidak cocok, sistem menampilkan pesan kesalahan.

Alur ini menjadi dasar dari hampir semua sistem autentikasi pada aplikasi web.

Tips Membuat Sistem Login yang Aman

Agar sistem login lebih aman, berikut beberapa praktik yang disarankan:

  • Gunakan password_hash() untuk menyimpan password.
  • Verifikasi password menggunakan password_verify().
  • Gunakan Prepared Statement agar terhindar dari SQL Injection.
  • Validasi setiap input dari pengguna.
  • Gunakan HTTPS saat aplikasi diakses secara online.
  • Batasi jumlah percobaan login untuk mencegah serangan brute force.
  • Kelola session dengan baik dan lakukan logout otomatis jika diperlukan.

Dengan menerapkan langkah-langkah tersebut, keamanan aplikasi dapat ditingkatkan secara signifikan.

Kelebihan Menggunakan PHP dan MySQL

Mengapa banyak developer memilih PHP dan MySQL?

  • Mudah dipelajari oleh pemula.
  • Gratis dan bersifat open source.
  • Dokumentasi lengkap.
  • Banyak tutorial dan komunitas.
  • Cocok untuk berbagai jenis aplikasi web.
  • Mendukung pengembangan website dinamis.
  • Terintegrasi dengan berbagai framework seperti Laravel dan CodeIgniter.

Kombinasi PHP dan MySQL tetap menjadi pilihan populer dalam pengembangan website hingga saat ini.

Related Post

Leave a Reply

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