Praktik: Membuat halaman login sederhana

From OnnoWiki
Revision as of 05:46, 6 April 2025 by Onnowpurbo (talk | contribs) (Created page with "Berikut adalah modul praktik untuk membuat halaman login sederhana menggunakan PHP pada Ubuntu 24.04, tanpa menggunakan alat dari Microsoft. Modul ini dirancang sebagai bagian...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Berikut adalah modul praktik untuk membuat halaman login sederhana menggunakan PHP pada Ubuntu 24.04, tanpa menggunakan alat dari Microsoft. Modul ini dirancang sebagai bagian dari kuliah pemrograman web untuk pengenalan backend dengan PHP.

    • Tujuan Pembelajaran:**

- Memahami cara mengatur lingkungan pengembangan web menggunakan LAMP (Linux, Apache, MySQL, PHP) pada Ubuntu 24.04. - Membuat halaman login sederhana dengan PHP dan MySQL. - Mengimplementasikan dasar-dasar autentikasi pengguna.

    • Prasyarat:**

- Komputer dengan sistem operasi Ubuntu 24.04. - Akses ke terminal dengan hak akses sudo. - Koneksi internet untuk mengunduh paket yang diperlukan.

    • Langkah 1: Instalasi LAMP Stack**

LAMP adalah singkatan dari Linux, Apache, MySQL, dan PHP. Berikut adalah langkah-langkah untuk menginstalnya:

1. **Perbarui daftar paket:**

  ```bash
  sudo apt update
  ```

2. **Instal Apache:**

  ```bash
  sudo apt install apache2
  ```

  Setelah instalasi, verifikasi bahwa Apache berjalan:
  ```bash
  sudo systemctl status apache2
  ```

  Jika berjalan dengan baik, Anda akan melihat status "active (running)".

3. **Instal MySQL:**

  ```bash
  sudo apt install mysql-server
  ```

  Setelah instalasi, amankan instalasi MySQL dengan:
  ```bash
  sudo mysql_secure_installation
  ```

  Ikuti petunjuk untuk mengatur kata sandi root dan opsi keamanan lainnya.

4. **Instal PHP:**

  ```bash
  sudo apt install php libapache2-mod-php php-mysql
  ```

  Verifikasi instalasi PHP dengan membuat file `info.php` di direktori root web:
  ```bash
  echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
  ```

  Kemudian, buka `http://localhost/info.php` di browser Anda untuk melihat informasi PHP.
    • Langkah 2: Membuat Basis Data dan Tabel Pengguna**

1. **Masuk ke MySQL:**

  ```bash
  sudo mysql -u root -p
  ```

  Masukkan kata sandi root yang telah Anda atur sebelumnya.

2. **Buat basis data baru:**

  ```sql
  CREATE DATABASE login_system;
  ```

3. **Gunakan basis data tersebut:**

  ```sql
  USE login_system;
  ```

4. **Buat tabel `users`:**

  ```sql
  CREATE TABLE users (
      id INT AUTO_INCREMENT PRIMARY KEY,
      username VARCHAR(50) NOT NULL UNIQUE,
      password VARCHAR(255) NOT NULL
  );
  ```

  Tabel ini akan menyimpan nama pengguna dan kata sandi yang telah di-hash.
    • Langkah 3: Membuat Formulir Login dengan PHP**

1. **Buat file `index.php` di direktori root web:**

  ```php
  <?php
  session_start();
  ?>
  <!DOCTYPE html>
  <html>
  <head>
      <title>Login</title>
      <style>
          body {
              font-family: Arial, sans-serif;
              background-color: #f2f2f2;
              display: flex;
              justify-content: center;
              align-items: center;
              height: 100vh;
          }
          .container {
              background-color: #fff;
              padding: 20px;
              border-radius: 5px;
              box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
          }
          input[type="text"], input[type="password"] {
              width: 100%;
              padding: 10px;
              margin: 5px 0 15px 0;
              border: 1px solid #ccc;
              border-radius: 4px;
          }
          button {
              background-color: #4CAF50;
              color: white;
              padding: 10px 15px;
              border: none;
              border-radius: 4px;
              cursor: pointer;
          }
          button:hover {
              background-color: #45a049;
          }
          .error {
              color: red;
          }
      </style>
  </head>
  <body>

Login

          <?php
          if (isset($_SESSION['error'])) {
echo '

' . $_SESSION['error'] . '

';
              unset($_SESSION['error']);
          }
          ?>
          <form action="login.php" method="post">
              <label for="username">Username</label>
              <input type="text" id="username" name="username" required>
              <label for="password">Password</label>
              <input type="password" id="password" name="password" required>
              <button type="submit">Login</button>
          </form>
  </body>
  </html>
  ```

  Kode di atas membuat formulir login dengan bidang untuk nama pengguna dan kata sandi.

2. **Buat file `login.php` untuk memproses login:**

  ```php
  <?php
  session_start();
  $mysqli = new mysqli("localhost", "root", "", "login_system");
  if ($mysqli->connect_error) {
      die("Koneksi gagal: " . $mysqli->connect_error);
  }
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
      $username = $mysqli->real_escape_string($_POST['username']);
      $password = $_POST['password'];
      $result = $mysqli->query("SELECT * FROM users WHERE username='$username'");
      if ($result->num_rows == 1) {
          $user = $result->fetch_assoc();
          if (password_verify($password, $user['password']))