Panduan Cara Membuat Session Login di PHP dan Contohnya

3 min read

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:

  1. User mengisi form login berisi username dan password.
  2. Data dikirim ke server, lalu diverifikasi dengan data yang ada di database.
  3. Jika username dan password cocok, PHP akan membuat session, misalnya:

$_SESSION['user'] = $username;
  1. Session ini kemudian digunakan untuk memvalidasi akses pada halaman lain.
  2. 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.

Promo

Struktur Tabel: users

KolomTipe
idINT (AI, PRIMARY)
usernameVARCHAR(50)
passwordVARCHAR(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.

Promo
Shakila Zahra Previa
Shakila Zahra Previa I'm Shakila, a Content Writer & Copywriter specializing in creating impactful, reader-friendly content that helps brands communicate with clarity and purpose.
Shakila Zahra Previa I'm Shakila, a Content Writer & Copywriter specializing in creating impactful, reader-friendly content that helps brands communicate with clarity and purpose.
Sahabat Qwords, yuk kita ubah pengalaman ngodingmu supaya lebih dari sekadar membuka localhost sebuah domain kustom, menjadi pengalaman yang terasa lebih profesional, rapi, dan...
Zulfa Naurah Nadzifah Zulfa Naurah Nadzifah
2 min read
Sahabat Qwords, apakah saat ini kamu sudah punya website, blog, atau online shop, tapi sedang berpikir untuk mengganti alamat domainnya?  Tepat sekali, karena kali...
Zulfa Naurah Nadzifah Zulfa Naurah Nadzifah
3 min read
Halo Sababat Qwords, kamu bisa membayangkan bahwa kecepatan website bukan lagi sekadar pelengkap, tetapi bagian penting dari pengalaman pengguna, dan di sinilah peran apa...
Shakila Zahra Previa Shakila Zahra Previa
4 min read
Leave a Reply

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

//