Ketika kamu membuat sebuah website yang memiliki fitur login, salah satu komponen paling penting adalah membuat session login.
Tanpa session, website tidak bisa mengetahui siapa pengguna yang sedang aktif, apakah mereka sudah login, dan halaman apa yang boleh diakses.
Karena itu, memahami cara membuat session login di PHP adalah kemampuan dasar yang wajib dimiliki oleh setiap web developer.
Halo Sahabat Qwords, di artikel ini kita akan mempelajari sesi login PHP dengan cara yang sederhana dan lengkap.
Artikel ini dibuat seperti tutorial step-by-step supaya mudah diikuti, bahkan untuk pemula sekalipun.
Yuk kita mulai pembahasannya!
1. Pengertian Session di PHP
Sebelum masuk ke teknis, mari pahami dulu apa itu session.
Session adalah sebuah mekanisme penyimpanan data di sisi server yang berguna untuk menyimpan informasi sementara tentang pengguna.
Data yang disimpan bisa berupa username, role, status login, ID user, hingga preferensi tertentu.
Ketika user login, session berfungsi sebagai “tanda pengenal” pada setiap halaman.
Jadi, saat user berpindah halaman, server tetap mengenali bahwa mereka sudah login.
Kenapa Session Penting dalam Sistem Login?
Sahabat Qwords perlu tahu bahwa session:
- Menyimpan status autentikasi user.
- Mengamankan akses halaman penting seperti dashboard.
- Lebih aman dibanding menyimpan data di cookie.
- Memudahkan pengelolaan user pada aplikasi multi-halaman.
Dengan session, sistem bisa membedakan mana user yang sudah login dan mana yang belum.
Tanpa session, user harus login ulang setiap kali membuka halaman baru, tentu saja tidak praktis.
2. Cara Kerja Session Login (Alur Dasar)
Supaya lebih mudah dipahami, berikut alur login secara sederhana:
- User mengisi form login berisi username dan password.
- Data dikirim ke server, lalu diverifikasi dengan data yang ada di database.
- Jika username dan password cocok, PHP akan membuat session, misalnya:
$_SESSION['user'] = $username;
- Session ini kemudian digunakan untuk memvalidasi akses pada halaman lain.
- Ketika user logout, session tersebut dihancurkan sehingga akses dihentikan.
Dengan alur ini, aplikasi bisa memberikan halaman yang tepat sesuai status login user.
3. Persiapan Database
Langkah pertama dalam membangun sistem login adalah membuat database berisi data user.
Kita cukup menggunakan tabel sederhana bernama users.
Struktur Tabel: users
| Kolom | Tipe |
| id | INT (AI, PRIMARY) |
| username | VARCHAR(50) |
| password | VARCHAR(255) |
SQL untuk membuat tabel
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, Password VARCHAR(255) NOT NULL );
Menambahkan user manual
INSERT INTO users (username, password)
VALUES ('admin', PASSWORD_HASH('123456', PASSWORD_DEFAULT));Di dunia nyata, user tentu akan membuat akun sendiri.
Namun untuk tutorial ini, kita coba untuk buat manual ya.
4. Membuat Halaman Login
Tahap ini cukup mudah karena kita hanya perlu membuat form HTML dan mengarahkan data ke file pemrosesan login.
A. Form HTML Login – login.php
<!DOCTYPE html> <html> <head> <title>Login PHP</title> </head> <body> <h2>Form Login</h2> <form action="process_login.php" method="POST"> <label>Username</label><br> <input type="text" name="username" required><br><br> <label>Password</label><br> <input type="password" name="password" required><br><br> <button type="submit">Login</button> </form> </body> </html>
Form ini mengirimkan data ke file process_login.php.
B. Proses Login – process_login.php
Pada file ini, kita akan:
- memulai session,
- mengecek username di database,
- memverifikasi password,
- membuat session jika login berhasil.
<?php
session_start();
include 'koneksi.php';
// Ambil data dari form
$username = $_POST['username'];
$password = $_POST['password'];
// Cari user berdasarkan username
$query = $conn->prepare("SELECT * FROM users WHERE username = ?");
$query->bind_param("s", $username);
$query->execute();
$result = $query->get_result();
$user = $result->fetch_assoc();
if ($user && password_verify($password, $user['password'])) {
// Login berhasil
$_SESSION['user'] = $user['username'];
// Amankan session ID
session_regenerate_id(true);
header("Location: dashboard.php");
exit;
} else {
echo "Username atau password salah!";
}Penggunaan password_verify() sangat penting demi keamanan.
5. Membuat Halaman Dashboard
Dashboard hanya boleh diakses oleh user yang sudah login. Jika belum login, user harus diarahkan kembali ke halaman login.
dashboard.php
<?php
session_start();
// Cek apakah session login ada
if (!isset($_SESSION['user'])) {
header("Location: login.php");
exit;
}
?>
<h2>Selamat datang, <?php echo $_SESSION['user']; ?>!</h2>
<p>Anda berhasil login dan kini berada di halaman dashboard.</p>
<a href="logout.php">Logout</a>Di sinilah peran session terasa paling penting.
6. Membuat Fitur Logout
Logout digunakan untuk menghapus session yang aktif. Dengan begitu, user tidak bisa lagi mengakses halaman dashboard setelah keluar.
logout.php
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit;Tips buat Sahabat Qwords: selalu sediakan tombol logout pada aplikasi berbasis login. Ini menjaga privasi dan keamanan user.
Saatnya Kamu Membangun Sistem Login-mu Sendiri!
Nah, Sahabat Qwords, sekarang kamu sudah punya bekal lengkap untuk membuat sistem login berbasis session di PHP, mulai dari konsep dasarnya, alur kerja, hingga implementasi kodenya.
Dengan memahami materi ini, kamu sudah selangkah lebih dekat menuju level web developer yang lebih profesional.
Sistem autentikasi adalah fondasi banyak aplikasi, dan kamu baru saja mempelajari cara membangunnya dari nol!
Jadi, jangan berhenti di teori saja, langsung praktikkan langkah-langkahnya.
Mulailah dari struktur sederhana, lalu kembangkan sesuai kebutuhanmu.
Semakin sering kamu mencoba, semakin cepat skill kamu naik kelas.
Selamat bereksperimen, Sahabat Qwords.

