Artikel Teknologi

Menguasai Cara Jitu Membuat Login Multi User Level Pakai PHP dan MySQLi

Yo Sobat Teknologi! Apa kabar? Kalian pasti sudah tahu dong tentang sistem login? Yaps, sistem login itu penting banget buat membatasi akses ke halaman-halaman tertentu di website atau aplikasi, sesuai dengan hak akses pengguna. Nah, kali ini kita akan ngobrol soal gimana cara membuat Login Multi User Level menggunakan PHP dan MySQLi.

Jangan khawatir, bro and sis! Walau mungkin kedengarannya rumit, kita akan kupas tuntas dalam artikel kali ini. Ngarifin pengetahuan dulu deh seputar Login Multi User Level, terus kita langsung ke praktik, step-by-step, yaa. Yuk, check it out!

Pendahuluan: Kenapa Harus Login Multi User Level, sih?

Sebelum ngomongin cara bikinnya, kita bahas dulu nih kenapa harus Login Multi User Level? Kebanyakan website atau aplikasi tuh punya beberapa jenis pengguna, seperti admin, staff, member atau lainnya. Masing-masing pengguna ini tentu punya hak akses yang beda-beda, dong.

Misalnya, si admin punya hak akses buat ngelola semua data, terus si staff hanya bisa ngelola data pelanggan, terakhir si member cuma bisa ngeliat data mereka sendiri. Eits, biar ngga ribet dan berantakan, kita butuh nih sistem Login Multi User Level.

Siapin Dulu Barang "Perang"

Jadi, sebelum kita mulai ngoprek ke PHP dan MySQLi, ada beberapa peralatan yang harus kita siapin dulu. Tenang, sob! Nggak perlu panik. Itu mah cuma peralatan software alias aplikasi yang dipake buat bikin sistem login. Berikut ini kebutuhan yang harus kamu siapin:

  1. Web Server (misalnya: XAMPP atau WAMP)
  2. Text Editor (bisa pake Notepad++, Sublime Text, atau Visual Studio Code)
  3. Browser Web (Google Chrome, Mozilla Firefox, atau yang lainnya)

Kalau tiga item di atas udah siap, kita lanjut ya ke tahap selanjutnya, yaitu membangun basis data yang akan kita gunakan untuk sistem login multi user level kita.

Bangun Rumah Data yang Mantul

Nah, sekarang kita bakal buat basis data yang cocok buat sistem login multi user level. Jangan lupa buka aplikasi web server seperti XAMPP atau WAMP, terus aktifin Apache dan MySQL-nya.

Pertama-tama, kita buat dulu nih tabel pengguna di basis data. Caranya gampang, ikutin langkah-langkah berikut deh:

  1. Buka browser favorit kamu, terus ketik localhost/phpmyadmin
  2. Klik "New" buat bikin basis data baru, kasih nama misal "multi_user_login", terus klik "Create"
  3. Nah, di basis data yang udah dibuat, kita bikin tabel baru dengan nama "users", terus tentuin jumlah kolomnya (misal 5), terus klik "Go"
  4. Nah, kita masukin nama kolom dan tipe datanya:
    • id: INT – AUTO_INCREMENT – Primary Key
    • username: VARCHAR (50)
    • password: VARCHAR (255)
    • email: VARCHAR (100)
    • level: ENUM ('admin', 'staff', 'member')
    Terus klik "Save"

Yow! Kolom basis data kita udah jadi. Sekarang kita bisa masukin data awal buat tiap level user. Misalnya kita masukin:

  • id = 1, username = "Admin", password = "admin123", email = "[email protected]", level = "admin"
  • id = 2, username = "Staff", password = "staff123", email = "[email protected]", level = "staff"
  • id = 3, username = "Member", password = "member123", email = "[email protected]", level = "member"

Sip dah, rumah data kita udah siap. Sekarang saatnya bikin script PHP-nya.

PHP dan MySQLi Racik Sendiri, Gurih Banget!

Di bab ini, kita bakal gabungin PHP dan MySQLi supaya sistem login multi user level kita jalan. Kita bakal bangun file-project-nya dulu, terus mulai ngoding di tiap bagian.

1. Bikin Struktur File-Project

Sebelum kita mulai, bikin dulu folder "multi_user_login" di dalam folder htdocs (kalau pake XAMPP) atau www (kalau pake WAMP). Terus di folder "multi_user_login" ini, kita bikin beberapa file:

  1. config.php: buat ngatur koneksi ke basis data
  2. login.php: buat ngurusin proses login
  3. register.php: buat ngurusin proses registrasi
  4. dashboard.php: buat nampilin tampilan dashboard sesuai level pengguna
  5. logout.php: buat ngatur mekanisme logout

Oke, kita mulai dari file config.php:

2. Bikin Koneksi ke Basis Data

Bisikin PHP nomor IP kita, jangan lupa usernamenya- begitu liriknya. Begini caranya:

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "multi_user_login";

    $koneksi = new mysqli($servername, $username, $password, $dbname);

    if ($koneksi->connect_error) {
        die("Koneksi gagal: " . $koneksi->connect_error);
    }
?>

Sekarang file login.php:

3. Bikin Form Login

Ini dia nih yang ditunggu-tunggu: bikin form login. Check it out!

<?php
    session_start();
    include("config.php");

    if (isset($_SESSION["username"])) {
        header("Location: dashboard.php");
    }
?>

<!DOCTYPE html>
<html>
<head>
    <title>Login Multi User Level | BacaBos.com</title>
</head>
<body>
    <h1>Login Multi User Level - BacaBos.com</h1>
    <form action="" 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" name="submit">Login</button>
    </form>
    <p>Belum punya akun? <a href="register.php">Daftar di sini</a></p>

    <?php
        if (isset($_POST["submit"])) {
            $username = $_POST["username"];
            $password = $_POST["password"];

            $query = "SELECT * FROM users WHERE username = '$username'";
            $result = $koneksi->query($query);

            if ($result->num_rows > 0) {
                $row = $result->fetch_assoc();
                if (password_verify($password, $row["password"])) {
                    $_SESSION["username"] = $row["username"];
                    $_SESSION["level"] = $row["level"];

                    header("Location: dashboard.php");
                } else {
                    echo "Password salah, bro!";
                }
            } else {
                echo "Username nggak ketemu, coba lagi!";
            }
        }
    ?>
</body>
</html>

Dah jadi nih form login-nya. Trus kita bikin register.php:

4. Bikin Form Registrasi

Nah, skarang kita pindah ke form registrasi. Ga mau kan selalu bingung cari username dan password waktu mau masuk: biar yang masuk itu kita-kita saja.

Setelah file login.php udah, sekarang ayo kita bikin file register.php:

<?php
    session_start();
    include("config.php");

    if (isset($_SESSION["username"])) {
        header("Location: dashboard.php");
    }
?>

<!DOCTYPE html>
<html>
<head>
    <title>Registrasi Multi User Level | BacaBos.com</title>
</head>
<body>
    <h1>Registrasi Multi User Level - BacaBos.com</h1>
    <form action="" 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>
        <label>Email:</label><br>
        <input type="email" name="email" required><br><br>
        <label>Level:</label><br>
        <select name="level" required>
            <option value="admin">Admin</option>
            <option value="staff">Staff</option>
            <option value="member">Member</option>
        </select><br><br>
        <button type="submit" name="submit">Daftar</button>
    </form>
    <p>Sudah punya akun? <a href="login.php">Login di sini</a></p>

    <?php
        if (isset($_POST["submit"])) {
            $username = $_POST["username"];
            $password = password_hash($_POST["password"], PASSWORD_DEFAULT);
            $email = $_POST["email"];
            $level = $_POST["level"];

            $query = "INSERT INTO users (username, password, email, level) VALUES ('$username', '$password', '$email', '$level')";
            $result = $koneksi->query($query);

            if ($result) {
                echo "Pendaftaran berhasil! Silakan <a href='login.php'>login di sini</a>.";
            } else {
                echo "Pendaftaran gagal, bro! Coba lagi ya!";
            }
        }
    ?>
</body>
</html>

Oke dah, file register.php udah selesai. Kita bikin skarang dashboard.php:

5. Bikin Dashboard Sesuai Level

Terus kita lanjutkan dengan file dashboard.php yang akan menampilkan konten sesuai dengan level pengguna:

<?php
    session_start();
    include("config.php");

    if (!isset($_SESSION["username"])) {
        header("Location: login.php");
    }
?>

<!DOCTYPE html>
<html>
<head>
    <title>Dashboard Multi User Level | BacaBos.com</title>
</head>
<body>
    <h1>Dashboard Multi User Level - BacaBos.com</h1>
    <p>Halo, <?php echo $_SESSION["username"] ?>! Selamat datang di Dashboard.</p>
    <p>Anda login sebagai <strong><?php echo $_SESSION["level"] ?></strong>.</p>
    <a href="logout.php">Logout</a>

    <?php if($_SESSION["level"] == "admin") : ?>
        <h2>Menu Admin</h2>
        <ul>
            <li>Menu 1</li>
            <li>Menu 2</li>
            <li>Menu 3</li>
        </ul>
    <?php endif; ?>

    <?php if($_SESSION["level"] == "staff") : ?>
        <h2>Menu Staff</h2>
        <ul>
            <li>Menu A</li>
            <li>Menu B</li>
            <li>Menu C</li>
        </ul>
    <?php endif; ?>

    <?php if($_SESSION["level"] == "member") : ?>
         <h2>Menu Member</h2>
        <ul>
            <li>Menu I</li>
            <li>Menu II</li>
            <li>Menu III</li>
        </ul>
    <?php endif; ?>

</body>
</html>

Yeay! Dashboard udah bisa menyesuaikan sesuai level pengguna nih. Akhirnya kita bikin file logout.php:

6. Bikin Mekanisme Logout

Selanjutnya, kita bikin file logout.php buat ngatur proses logout pengguna:

<?php
    session_start();
    session_destroy();
    header("Location: login.php");
?>

Dan taraaa! Skarang sistem Login Multi User Level pake PHP dan MySQLi udah jadi dan bisa dipake. Cuss coba langsung, latihan bikin deh, good luck!

Ternyata udah selesai nih tutorial membuat sistem Login Multi User Level menggunakan PHP dan MySQLi, Sob! Yuk, kita review apa yang udah kita lakukan:

  1. Membuat basis data dan tabel users lewat phpMyAdmin.
  2. Menyiapkan file config.php buat ngatur koneksi ke basis data.
  3. Bikin form login di file login.php dan mekanisme login.
  4. Bikin form registrasi di file register.php dan mekanisme registrasi.
  5. Bikin dashboard.php yang menampilkan konten sesuai level pengguna.
  6. Menyiapkan file logout.php buat ngatur mekanisme logout.

Maka udah selesai deh proses pembuatan sistem Login Multi User Level ini. Praktikkan dan eksplor lebih dalam yuk. Modifikasilah sesuai kebutuhan kamu, bisa juga memperkaya desain dan tampilan agar lebih menarik.

Kalau kamu pengen belajar lebih lanjut soal PHP dan MySQLi atau pun topik lain seputar teknologi dan pemrograman, jangan ragu buat mengeksplorasi, membaca tutorial, dan berdiskusi dengan rekan-rekan kamu yang juga berminat di bidang yang sama. Keep learning and happy coding! 🚀

Comments