Anda di halaman 1dari 15

TUGAS Pemrograman Web II

Program Web Pariwisata

OLEH

NAMA : Yohan Dwi Bachtiar

NIM : 202165008

PROGRAM STUDI S1 INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PAPUA

MANOKWARI

2023
Pada project web pariwisata ini class login, Register, Add Wisata, Config/koneksi, Dashboard, Delete
Wisata, Edit wisata, home, login, logout, manage wisata, pencarian.

Alurnya yaitu pengguna di bedakan menjadi 2 yaitu user dan administrator, dimana user hanya bias
masuk di home dan user hanya bias melihat data wisata yang tertampil pada home, pada dasarnya user
hanya bias login kalau belum memiliki akun bias register dulu baru bias login, dan setelah itu user di
alihkan ke home, dan user bias logout dari akunnya.

Sedangkan administrator bisa melakukan login dan jika belum mempunyai akun bisa rregistrasi dahulu,
setelah itu baru bisa login, setelah login administrator di alihkan ke dashboard dan pada dashboard ada
pilihan untuk manage wisata, dan logout, jika administrator me milih menu manage wisata, maka
administrator di alihkan ke menu manage wisata, dimana di manage wisata administrator bisa melihat
semua data wisata serta keterangan mencakup semuanya dan administrator di menu ini di beri hak
khusus untuk mengedit, mengapus, serta menambah data wisata yang terdapat pada manage wista,
pada dasarrnya di menu manage administrator bisia mengaplikasikan CRUD pada data yang terdapat
pada manage wisata, jika sudah administrator bisa logout dari akunnya, berikut code serta kerangka
progrrram dan penjelasan dari proses code-code yang tertera.
Login.php

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>
    <form action="login_process.php" method="post">
        <label for="username">Username:</label>
        <input type="text" name="username" id="username">
        <label for="password">Password:</label>
        <input type="password" name="password" id="password">
        <input type="submit" value="Login">
    </form>
</body>
</html>

Pada class login.php saya membuat label unttuk menginputkan suatu karater yang di tulis sendiri oleh
pengguna yaitu memasukkan username dan password untuk login , dan data tersebut di teruskan ke
login_process.php
Login_proccess.php

<?php
session_start();
require 'config.php';

$username = $_POST['username'];
$password = $_POST['password'];

$query = "SELECT * FROM users WHERE username='$username' AND


password='$password'";
$result = mysqli_query($conn, $query);

if (mysqli_num_rows($result) == 1) {
    $row = mysqli_fetch_assoc($result);
    $_SESSION['user_id'] = $row['user_id'];
    $_SESSION['username'] = $row['username'];
    $_SESSION['role'] = $row['role'];
    if ($row['role'] == 'admin') {
        header("Location: dashboard.php");
        exit();
    } else {
        header("Location: home.php");
        exit();
    }
} else {
    echo "Username atau password salah!";
}
?>

Pada Login_process.php kita membutuhkan koneksi ke database uuntuk mencocokan akun yang berada
di database, dimana karakter user dan password yang telah kita input di login.php akan di tamping
sementara pada id, dan di sini kita panggil id tersebut yang telah membawa data dari username dan
password tersebut ke login_process.php dan pada proses ini querry akan mencocokan username dan
password yang telah kita input ke database user serta mencocokan akun kita memiliki role sebagai
administrator atau user, jika data akun cocok kita akan di alihkan ke dua hal yang berbeda,, jika akun
kita sebagai administrator, maka kita akan di aliihkan ke dashboard.php, jika akun kita adalah user, maka
kita akan di alihkan ke home.php, dan jika ternyata mendapat peringatan “Username Atau Pasword
Salah” entah kita harus kembali untuk melakukan login dengan benar, dan kalau kita ternyata kita belum
memiliki akun jadi kita harus daftar akun dulu ke register.php
Register.php

<!DOCTYPE html>
<html>
<head>
    <title>Register</title>
</head>
<body>
    <h2>Register</h2>
    <form method="post" action="register_process.php">
        <label for="name">Name:</label>
        <input type="text" name="name" required><br><br>
        <label for="email">Email:</label>
        <input type="email" name="email" required><br><br>
        <label for="username">Username:</label>
        <input type="text" name="username" required><br><br>
        <label for="password">Password:</label>
        <input type="password" name="password" required><br><br>
        <label for="confirm_password">Confirm Password:</label>
        <input type="password" name="confirm_password" required><br><br>
        <label for="role">Role:</label>
        <select name="role" required>
            <option value="">--Select Role--</option>
            <option value="admin">Admin</option>
            <option value="user">User</option>
        </select><br><br>
        <input type="submit" name="submit" value="Register">
    </form>
</body>
</html>

Pada code ini saya memberikan beberapa label inputan untuk mengisi nama, email, username,
password, confirm_password, role (pada role ini kita bisa memilih sebagai admin/user), dan submit.

Ketika dimana kita menekan submit maka kita akan beralih ke register_proocess.php

Register_process.php

<?php
require 'config.php';

$name = $_POST['name'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
$role = $_POST['role'];

if ($password != $confirm_password) {
    echo "Error: Passwords do not match";
    exit();
}

$query = "INSERT INTO users (name, email, username, password, role) VALUES
('$name', '$email', '$username', '$password', '$role')";
$result = mysqli_query($conn, $query);

if ($result) {
    echo "Registration successful";
} else {
    echo "Error: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

Pada code proses ini data yang kita input pada menu login.php akan di panggil dan query akan me
masukkan ke database sesuai pada table-tabel yang sebelumnya kita buat, dan ini akan bermanfaat
untuk ketika pengguna akan melakukan login dan data nya akan di verifikasi dari database sehingga
ketika kita punya akun dan ketika kita akan login akan di lanjutkan ke dua halaman berbeda sesuai role
administrator atau user.

Home.php

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

<!DOCTYPE html>
<html>
<head>
    <title>Halaman User</title>
</head>
<body>

<form action="pencarian.php" method="get">


  <label for="search">Cari Objek Wisata:</label>
  <input type="text" id="search" name="search">
  <button type="submit">Cari</button>
</form>

    <h1>Selamat datang, <?php echo $_SESSION['username']; ?>!</h1>


    <p>Ini adalah halaman user yang menampilkan informasi objek wisata</p>
    <a href="logout.php">Logout</a>

    <h2>Daftar Objek Wisata</h2>


    <table>
        <thead>
            <tr>
                <th>Nama Wisata</th>
                <th>Lokasi</th>
                <th>Gambar</th>
                <th>Rating</th>
                <th>Deskripsi</th>
            </tr>
        </thead>
        <tbody>
            <?php
                // Membuat koneksi ke database
                require 'config.php';

                // Query untuk menampilkan data wisata


                $query = "SELECT * FROM wisata";
                $result = mysqli_query($conn, $query);

                // Looping untuk menampilkan data wisata


                while ($row = mysqli_fetch_assoc($result)) {
            ?>
                <tr>
                    <td><?php echo htmlspecialchars($row['nama_wisata']); ?
></td>
                    <td><?php echo htmlspecialchars($row['lokasi']); ?></td>
                    <td><img src="<?php echo $row['gambar']; ?>"
width="500px"></td>
                    <td><?php echo htmlspecialchars($row['rating']); ?></td>
                    <td><?php echo htmlspecialchars($row['deskripsi']); ?></td>
                    <td><?php echo htmlspecialchars($row['tanggal']); ?></td>
                </tr>
            <?php
                }

                // Menutup koneksi ke database


                mysqli_close($conn);
            ?>
        </tbody>
    </table>
</body>
</html>

Pada menu ini ketika kita login sebagai user akan di arahkan ke halaman home.php, dan jjika ternyata
kita masuk pada halaman home.php ini belum melakukan login, kita secara otomatis akan di pindakan
ke login.php terlebih dahulu untuk melakukan login akun.

Pada halaman home.php ini kita sebagai user di beri hak untuk melakukan fitur pencarian data/wisata
yang ada di halaman home.php ini, dan pada halaman hhome.php ini akan menampilkan semua data
wisata yang ada di database yang telah di atur/program oleh administrator.

Ketika user menekan logout. Maka akan di arahkan ke login.php


Dasborad.php

<?php
session_start();
if (!isset($_SESSION['username'])) {
    header('Location: login.php');
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Dashboard Admin</title>
</head>
<body>
<h1>Selamat datang, <?php echo $_SESSION['username']; ?>!</h1>
    <p>Selamat datang, Admin !</p>
    <nav>
        <ul>
            <li><a href="manage_wisata.php">Kelola Objek Wisata</a></li>
            <li><a href="logout.php">Logout</a></li>
<li><a href="home.php">Home</a></li>

        </ul>
    </nav>
</body>
</html>

Pada halaman dashboard.php ini ketika kita login dan akun kita mempunyai role admin, maka kita akan
di alihkan ke halaman dashboard.php ini, di halaman ini administrator memiliki hak untuk memanage
data/wista yang berada di database wisata ketika kita memilih menu “kelola objek wisata”

Dan keika administrartor menekan menu “Logout” maka akan keluar akun dan di alihkan ke login.php,
dan jika administrator menekan menu home, maka administrator akan di alihkan ke halaman home
dimana tindakan administrator di sini sama ketika user login, di sini administrator bisa melihat hasil
data-data yang sudah di edit/proses.

Manage_wisata.php

<?php
require 'config.php';
// Ambil kata kunci pencarian dari parameter GET
$q = isset($_GET['q']) ? $_GET['q'] : '';

// Modifikasi query untuk menambahkan kondisi pencarian


$query = "SELECT * FROM wisata WHERE nama_wisata LIKE '%$q%' OR lokasi LIKE '%$q
%' OR deskripsi LIKE '%$q%'";
$result = mysqli_query($conn, $query);
?>
<!DOCTYPE html>
<html>
<head>
    <title>Kelola Objek Wisata</title>
</head>
<body>

<form action="pencarian.php" method="get">


  <label for="search">Cari Objek Wisata:</label>
  <input type="text" id="search" name="search">
  <button type="submit">Cari</button>
</form>

    <h1>Kelola Objek Wisata</h1>


    <table>
        <thead>
            <tr>
                <th>Nama Wisata</th>
                <th>Lokasi</th>
                <th>Gambar</th>
                <th>Rating</th>
                <th>Deskripsi</th>
                <th>Tanggal</th>
                <th>Aksi</th>
            </tr>
        </thead>
        <tbody>
            <?php
            require 'config.php';

            $query = "SELECT * FROM wisata";


            $result = mysqli_query($conn, $query);

            while ($row = mysqli_fetch_assoc($result)) {


            ?>
                <tr>
                    <td><?php echo htmlspecialchars($row['nama_wisata']); ?
></td>
                    <td><?php echo htmlspecialchars($row['lokasi']); ?></td>
                    <td><img src="<?php echo $row['gambar']; ?>"
width="500px"></td>
                    <td><?php echo htmlspecialchars($row['rating']); ?></td>
                    <td><?php echo htmlspecialchars($row['deskripsi']); ?></td>
                    <td><?php echo htmlspecialchars($row['tanggal']); ?></td>
                    <td><a href="edit_wisata.php?id=<?php echo
htmlspecialchars($row['id_wisata']); ?>">Edit</a> | <a href="delete_wisata.php?
id=<?php echo htmlspecialchars($row['id_wisata']); ?>">Hapus</a></td>
                </tr>
            <?php
            }

            mysqli_close($conn);
            ?>
        </tbody>
    </table>
    <a href="add_wisata.php">Tambah Objek Wisata</a>
    <br><br>
    <a href="dashboard.php">Kembali ke Dashboard</a>
</body>
</html>

Pada code manage_wisata.php ini administrator bisa melihat semua data yang ada di ddatabase dan di
tampilkan di halaman ini, dan dalam halaman ini terdapat juga fitur pencarian data/wisata yang
terdapat pada database wisata, dan juga di sini administrator di beri hak khusus untuk
mengedit/merubah data dalam halaman ini sesuai data yang berrada di database (CRUD), dan terdapat
opsi menu “Kembali Ke Dashboard” dimana ketika administrator menekan menu ini maka akan di
alihkan ke halaman dashboard.php

Edit_wisata.php
<!DOCTYPE html>
<html>
<head>
    <title>Edit Objek Wisata</title>
</head>
<body>
    <h1>Edit Objek Wisata</h1>
    <?php
    require 'config.php';

    $id_wisata = $_GET['id'];

    $query = "SELECT * FROM wisata WHERE id_wisata='$id_wisata'";


    $result = mysqli_query($conn, $query);
    $row = mysqli_fetch_assoc($result);
    ?>
    <form action="edit_wisata_process.php" method="post"
enctype="multipart/form-data">
        <input type="hidden" name="id_wisata" value="<?php echo
$row['id_wisata']; ?>">
        <label for="nama_wisata">Nama Wisata:</label>
        <input type="text" name="nama_wisata" id="nama_wisata" value="<?php echo
$row['nama_wisata']; ?>">
        <label for="lokasi">Lokasi:</label>
        <input type="text" name="lokasi" id="lokasi" value="<?php echo
$row['lokasi']; ?>">
        <label for="deskripsi">Deskripsi:</label>
        <textarea name="deskripsi" id="deskripsi"><?php echo $row['deskripsi'];
?></textarea>
        <label for="gambar">Gambar:</label>
        <input type="file" name="gambar" id="gambar">
        <img src="<?php echo $row['gambar']; ?>" width="100"><br><br>
        <label for="rating">Rating:</label>
        <input type="number" name="rating" id="rating" min="1" max="5" value="<?
php echo $row['rating']; ?>">
        <label for="tanggal">Tanggal:</label>
        <input type="date" name="tanggal" id="tanggal" value="<?php echo
$row['tanggal']; ?>">
        <input type="submit" value="Simpan">
    </form>
    <br>
    <a href="manage_wisata.php">Kembali ke Kelola Objek Wisata</a>
</body>
</html>

Pada halaman ini ketika administrator memilih menu aksi edit, maka akan di alihkan ke halaman
edit_wisata.php.

Di halaman ini akan menampilkan isian data yang kita pilih sesuai urutan yang ada di
manage_wisata.php akan membawa data dari $row[‘ id_wisata’] agar ketika kita menuju edit_wisata
membawa data sesuai id yang kita pilih.

Dan pada halaman ini akan menampilkan isian data yang telah kita pilih sesuai id untuk di edit seperti
kemauan kita untuk memperbaikinya entah data apapun itu, setelah administrator selesai
mengedit/merubah data tersebut , maka kita bisa memilih option untuk simpan data yang telah kita
ubah, atau kalau tidak jadi maka kita bisa memilih opsi untuk “kembali ke kelola wisata” maka kita akan
di alihkan kembali ke manage_wisata.php tanpa merubah data tersebut

Anda mungkin juga menyukai