Pemrograman web Lengkap

Modul Pemrograman Web Lanjut

 πŸ“˜ Modul Pemrograman Web Lanjut (14 Pertemuan) Untuk: Mahasiswa Semester 4–6 Stack: PHP + MySQL Proyek Akhir: Website E-Commerce Sederhana --- 🧩 Struktur Pertemuan Pertemuan 1 – Pengantar Pemrograman Web Lanjut 🎯 Tujuan: Mahasiswa memahami arsitektur web modern, peran frontend–backend, dan setup lingkungan kerja. πŸ“š Materi: Arsitektur client-server Review HTML5, CSS3, JavaScript dasar Instalasi XAMPP, phpMyAdmin, dan VS Code πŸ’» Praktik: Membuat folder project di htdocs Menjalankan server lokal (localhost) Uji file index.php sederhana 🧠 Tugas: Tuliskan diagram arsitektur web (frontend–backend–database). --- Pertemuan 2 – Dasar PHP Lanjutan 🎯 Tujuan: Mahasiswa memahami konsep PHP lanjutan dan struktur aplikasi modular. πŸ“š Materi: Variabel global ($_GET, $_POST, $_SESSION) Include & require Penanganan form πŸ’» Praktik: Form input produk dan tampilkan hasilnya Gunakan include("header.php") & footer.php 🧠 Tugas: Buat form biodata dengan validasi sederhana. --- Pertemu...

Perancangan Website Jasa Pelatihan Bisnis

 Membuat website jasa pelatihan dengan fitur login membutuhkan beberapa komponen, termasuk frontend, backend, dan database. Di bawah ini adalah contoh sederhana menggunakan HTML, CSS, JavaScript untuk frontend, PHP untuk backend, dan MySQL untuk database.


### 1. Struktur Folder

```

/project-pelatihan

├── /css

│   └── style.css

├── /js

│   └── script.js

├── /php

│   ├── config.php

│   ├── login.php

│   ├── register.php

│   └── dashboard.php

├── index.html

└── register.html

```


### 2. Database (MySQL)

Buat database dengan nama `pelatihan_db` dan tabel `users`.


```sql

CREATE DATABASE pelatihan_db;


USE pelatihan_db;


CREATE TABLE users (

    id INT AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(50) NOT NULL,

    email VARCHAR(100) NOT NULL,

    password VARCHAR(255) NOT NULL

);

```


### 3. File `config.php`

```php

<?php

$host = 'localhost';

$db   = 'pelatihan_db';

$user = 'root';

$pass = '';

$charset = 'utf8mb4';


$dsn = "mysql:host=$host;dbname=$db;charset=$charset";

$opt = [

    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,

    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

    PDO::ATTR_EMULATE_PREPARES   => false,

];

$pdo = new PDO($dsn, $user, $pass, $opt);

?>

```


### 4. File `index.html` (Halaman Login)

```html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Login - Jasa Pelatihan</title>

    <link rel="stylesheet" href="css/style.css">

</head>

<body>

    <div class="login-container">

        <h2>Login</h2>

        <form id="loginForm">

            <div class="form-group">

                <label for="username">Username</label>

                <input type="text" id="username" name="username" required>

            </div>

            <div class="form-group">

                <label for="password">Password</label>

                <input type="password" id="password" name="password" required>

            </div>

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

        </form>

        <p>Belum punya akun? <a href="register.html">Daftar disini</a></p>

    </div>

    <script src="js/script.js"></script>

</body>

</html>

```


### 5. File `register.html` (Halaman Daftar)

```html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Register - Jasa Pelatihan</title>

    <link rel="stylesheet" href="css/style.css">

</head>

<body>

    <div class="register-container">

        <h2>Register</h2>

        <form id="registerForm">

            <div class="form-group">

                <label for="username">Username</label>

                <input type="text" id="username" name="username" required>

            </div>

            <div class="form-group">

                <label for="email">Email</label>

                <input type="email" id="email" name="email" required>

            </div>

            <div class="form-group">

                <label for="password">Password</label>

                <input type="password" id="password" name="password" required>

            </div>

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

        </form>

        <p>Sudah punya akun? <a href="index.html">Login disini</a></p>

    </div>

    <script src="js/script.js"></script>

</body>

</html>

```


### 6. File `login.php` (Backend Login)

```php

<?php

session_start();

require 'config.php';


if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $username = $_POST['username'];

    $password = $_POST['password'];


    $stmt = $pdo->prepare('SELECT * FROM users WHERE username = ?');

    $stmt->execute([$username]);

    $user = $stmt->fetch();


    if ($user && password_verify($password, $user['password'])) {

        $_SESSION['user_id'] = $user['id'];

        header('Location: dashboard.php');

        exit;

    } else {

        echo "Username atau password salah!";

    }

}

?>

```


### 7. File `register.php` (Backend Daftar)

```php

<?php

require 'config.php';


if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $username = $_POST['username'];

    $email = $_POST['email'];

    $password = password_hash($_POST['password'], PASSWORD_BCRYPT);


    $stmt = $pdo->prepare('INSERT INTO users (username, email, password) VALUES (?, ?, ?)');

    if ($stmt->execute([$username, $email, $password])) {

        header('Location: index.html');

        exit;

    } else {

        echo "Gagal mendaftar!";

    }

}

?>

```


### 8. File `dashboard.php` (Halaman Dashboard)

```php

<?php

session_start();

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

    header('Location: index.html');

    exit;

}

?>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Dashboard - Jasa Pelatihan</title>

    <link rel="stylesheet" href="css/style.css">

</head>

<body>

    <div class="dashboard-container">

        <h2>Selamat Datang di Jasa Pelatihan</h2>

        <p>Ini adalah halaman dashboard Anda.</p>

        <a href="logout.php">Logout</a>

    </div>

</body>

</html>

```


### 9. File `logout.php` (Logout)

```php

<?php

session_start();

session_destroy();

header('Location: index.html');

exit;

?>

```


### 10. File `css/style.css` (Styling)

```css

body {

    font-family: Arial, sans-serif;

    background-color: #f4f4f4;

    display: flex;

    justify-content: center;

    align-items: center;

    height: 100vh;

    margin: 0;

}


.login-container, .register-container, .dashboard-container {

    background-color: #fff;

    padding: 20px;

    border-radius: 8px;

    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);

    width: 300px;

    text-align: center;

}


h2 {

    margin-bottom: 20px;

}


.form-group {

    margin-bottom: 15px;

    text-align: left;

}


label {

    display: block;

    margin-bottom: 5px;

}


input {

    width: 100%;

    padding: 8px;

    box-sizing: border-box;

    border: 1px solid #ccc;

    border-radius: 4px;

}


button {

    width: 100%;

    padding: 10px;

    background-color: #28a745;

    color: #fff;

    border: none;

    border-radius: 4px;

    cursor: pointer;

}


button:hover {

    background-color: #218838;

}


p {

    margin-top: 15px;

}


a {

    color: #007bff;

    text-decoration: none;

}


a:hover {

    text-decoration: underline;

}

```


### 11. File `js/script.js` (JavaScript)

```javascript

document.getElementById('loginForm').addEventListener('submit', function(e) {

    e.preventDefault();

    const formData = new FormData(this);

    fetch('php/login.php', {

        method: 'POST',

        body: formData

    })

    .then(response => response.text())

    .then(data => {

        if (data === "Username atau password salah!") {

            alert(data);

        } else {

            window.location.href = 'php/dashboard.php';

        }

    })

    .catch(error => console.error('Error:', error));

});


document.getElementById('registerForm').addEventListener('submit', function(e) {

    e.preventDefault();

    const formData = new FormData(this);

    fetch('php/register.php', {

        method: 'POST',

        body: formData

    })

    .then(response => response.text())

    .then(data => {

        if (data === "Gagal mendaftar!") {

            alert(data);

        } else {

            window.location.href = 'index.html';

        }

    })

    .catch(error => console.error('Error:', error));

});

```


### 12. Penjelasan Singkat

- **Frontend**: HTML dan CSS digunakan untuk membuat tampilan yang menarik, sementara JavaScript digunakan untuk menangani form submission secara asinkron.

- **Backend**: PHP digunakan untuk menangani logika server, seperti autentikasi dan registrasi pengguna.

- **Database**: MySQL digunakan untuk menyimpan data pengguna.


### 13. Cara Menjalankan

1. Pastikan Anda memiliki server lokal seperti XAMPP atau MAMP.

2. Simpan semua file di folder `htdocs` (XAMPP) atau `www` (MAMP).

3. Buka phpMyAdmin dan buat database `pelatihan_db` serta tabel `users`.

4. Buka browser dan akses `http://localhost/project-pelatihan/index.html`.


### 14. Catatan

- Pastikan untuk mengamankan aplikasi dengan validasi input, sanitasi data, dan penggunaan HTTPS.

- Anda dapat menambahkan fitur-fitur lain seperti manajemen pelatihan, pembayaran, dll.


Dengan script ini, Anda memiliki dasar untuk membuat website jasa pelatihan dengan fitur login dan registrasi. Selamat mencoba!

Comments

Popular posts from this blog

Pelatihan Digital Marketing Pembuatan Web Dengan Merancang Artificial Intelegence Pakai Chatbot

Pemrograman Web Pemula Dengan PHP Dan Latihan Tugas