MEMBUAT WEBSITE ETICKETING UNTUK PESAWAT
Halo hari ini saya membuat aplikasi website untuk pembelian tiket pesawat.
Dengan 3 aktor user, admin, maskapai semua.
LANGKAH - LANGKAH :
- PERTAMA
MEMBUAT DATABASE- KEDUA
MEMBUAT KONEKSI DAN FUNCTION
CODING
<?php
$db = mysqli_connect("localhost", "root", "", "tiket_penerbangan");
function query($query)
{
global $db;
$result = mysqli_query($db, $query);
$rows = [];
while ($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
}
function tambah($data)
{
$nama_maskapai = htmlspecialchars($data["nama_maskapai"]);
$tanggal_penerbangan = htmlspecialchars($data["tanggal_penerbangan"]);
$kuota_penerbangan = htmlspecialchars($data["kuota_penerbangan"]);
$bandara_asal = htmlspecialchars($data["bandara_asal"]);
$bandara_tujuan = htmlspecialchars($data["bandara_tujuan"]);
$jam_berangkat = htmlspecialchars($data["jam_berangkat"]);
$jam_tiba = htmlspecialchars($data["jam_tiba"]);
$harga_tiket = htmlspecialchars($data["harga_tiket"]);
$foto_flight = upload();
if (!$foto_flight) {
exit;
}
$query = "INSERT INTO flight VALUES
(NULL, '$bandara_asal', '$bandara_tujuan', '$nama_maskapai', '$tanggal_penerbangan', '$jam_berangkat'
, '$jam_tiba', '$kuota_penerbangan', '$harga_tiket', '$foto_flight')";
global $db;
mysqli_query($db, $query);
return mysqli_affected_rows($db);
}
function upload()
{
$namaFile = $_FILES['foto_flight']['name'];
$ukuranFile = $_FILES['foto_flight']['size'];
$error = $_FILES['foto_flight']['error'];
$tmpName = $_FILES['foto_flight']['tmp_name'];
$ekstensGambarValid = ['jpg', 'jpeg', 'png'];
$ekstensGambar = explode('.', $namaFile);
$ekstensGambar = strtolower(end($ekstensGambar));
if (!in_array($ekstensGambar, $ekstensGambarValid)) {
echo "<script>
alert('Yang Anda upload bukan gambar!');
</script>";
return false;
}
if ($ukuranFile > 1000000) {
echo "<script>
alert('Ukuran gambar terlalu besar!');
</script>";
return false;
}
$destination = '../img/' . $namaFile;
if (move_uploaded_file($tmpName, $destination)) {
return $namaFile;
} else {
echo "<script>
alert('Gagal mengupload gambar!');
</script>";
return false;
}
}
function hapus($id)
{
global $db;
mysqli_query($db, "DELETE FROM flight WHERE flight_id = $id");
return mysqli_affected_rows($db);
}
function ubah($data)
{
$id = $data["id"];
$foto_flight = htmlspecialchars($data["foto_flight"]);
$nama_maskapai = htmlspecialchars($data["nama_maskapai"]);
$tanggal_penerbangan = htmlspecialchars($data["tanggal_penerbangan"]);
$kuota_penerbangan = htmlspecialchars($data["kuota_penerbangan"]);
$bandara_asal = htmlspecialchars($data["bandara_asal"]);
$bandara_tujuan = htmlspecialchars($data["bandara_tujuan"]);
$jam_berangkat = htmlspecialchars($data["jam_berangkat"]);
$jam_tiba = htmlspecialchars($data["jam_tiba"]);
$harga_tiket = htmlspecialchars($data["harga_tiket"]);
//query insert data
$query = "UPDATE flight SET
foto_flight = '$foto_flight',
nama_maskapai = '$nama_maskapai',
tanggal_penerbangan = '$tanggal_penerbangan',
kuota_penerbangan = '$kuota_penerbangan',
bandara_asal = '$bandara_asal',
bandara_tujuan = '$bandara_tujuan',
jam_berangkat = '$jam_berangkat',
jam_tiba = '$jam_tiba',
harga_tiket = '$harga_tiket'
WHERE flight_id = $id
";
global $db;
mysqli_query($db, $query);
return mysqli_affected_rows($db);
}
function registrasi($data)
{
global $db;
$username = strtolower(stripslashes($data['username']));
mysqli_real_escape_string
$password = mysqli_real_escape_string($db, $data["password"]);
$password2 = mysqli_real_escape_string($db, $data["password2"]);
$email = htmlspecialchars($data['email']);
if ($password !== $password2) {
echo "<script>
alert('Konfirmasi password tidak sesuai!');
</script>";
return false;
}
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
$result = mysqli_query($db, "SELECT username FROM user WHERE username = '$username'");
if (mysqli_fetch_assoc($result)) {
echo "<script>
alert('Username sudah terdaftar!');
</script>";
return false;
}
mysqli_query($db, "INSERT INTO user (username, email, password, role) VALUES ('$username', '$email', '$hashedPassword', 'user')");
return mysqli_affected_rows($db);
}
function getUserIdFromCookie()
{
if (isset($_COOKIE['user_id'])) {
return $_COOKIE['user_id'];
} else {
return null;
}
}- KETIGAMEMBUAT TAMPILAN REGISTERCODING
<?php
require 'functions.php';
include 'mainheader.php';
if (isset($_POST["register"])) {
if (registrasi($_POST) > 0) {
echo "
<script>
alert('registrasi berhasil!');
document.location.href = 'login.php';
</script>
";
} else {
echo mysqli_error($db);
}
}
?>
<body>
<br>
<br>
<form action="" method="post">
<div class="container-sm">
<div class="row mb-3">
<label for="username" class="col-sm-2 col-form-label">Username</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" name="username" placeholder="Username">
</div>
</div>
<div class="row mb-3">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="email" name="email" placeholder="Email">
</div>
</div>
<div class="row mb-3">
<label for="password" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" name="password" placeholder="Password">
</div>
</div>
<div class="row mb-3">
<label for="password2" class="col-sm-2 col-form-label">Konfirmasi Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password2" name="password2" placeholder="Konfirmasi Password">
</div>
</div>
<div class="row">
<div class="col-sm-10 offset-sm-2">
<button type="submit" name="register" class="btn btn-primary">Registrasi</button>
</div>
</div>
</div>
</form></body>
- KEEMPATMEMBUAT TAMPILAN LOGINCODING
<?php
require 'functions.php';
include 'mainheader.php';
// cek cookie
if (isset($_COOKIE['id']) && isset($_COOKIE['key'])) {
$id = $_COOKIE['id'];
$key = $_COOKIE['key'];
// ambil username berdasarkan id
$result = mysqli_query($db, "SELECT username FROM user WHERE user_id = $id");
$row = mysqli_fetch_assoc($result);
}
if (isset($_POST["login"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$result = mysqli_query($db, "SELECT * FROM user WHERE username = '$username'");
if (mysqli_num_rows($result) === 1) {
$row = mysqli_fetch_assoc($result);
if (password_verify($password, $row["password"])) {
setcookie('user_id', $row['user_id'], time() + 3600, '/');
if (isset($_POST['remember'])) {
//buat coookie
setcookie('id', $row['user_id'], time() + 3600, '/');
setcookie('key', $row['username'], time() + 3600, '/');
}
if ($row["role"] == "user") {
header("Location: /Penerbangan/User/index.php");
exit;
} elseif ($row["role"] == "admin") {
header("Location: /Penerbangan/Admin/index.php");
exit;
} elseif ($row["role"] == "maskapai") {
header("Location: /Penerbangan/Maskapai/dashboard.php");
exit;
} else {
echo "Role tidak valid";
}
} else {
echo "<script>alert('Password salah!');</script>";
}
} else {
echo "<script>alert('Username tidak ditemukan!');</script>";
}
}
?>
<body>
<br>
<br>
<form action="" method="post">
<div class="container-sm">
<div class="row mb-3">
<label for="username" class="col-sm-2 col-form-label">Username</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" name="username" placeholder="username">
</div>
</div>
<div class="row mb-3">
<label for="password" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password" name="password" placeholder="password">
</div>
</div>
<div class="row mb-3">
<div class="col-sm-10 offset-sm-2">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="remember" id="remember">
<label class="form-check-label" for="checkRemember">Remember me</label>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-10 offset-sm-2">
<button type="submit" name="login" class="btn btn-primary">Sign in</button>
</div>
</div>
</div>
</form>
<script src="./Style/js/bootstrap.bundle.min.js"></script>
</body>- KELIMABUAT INDEX ADMINCODING<?phprequire '../functions.php';include 'adminheader.php';$flight = mysqli_query($db, "SELECT * FROM flight");?><body><div class="container mt-4"><a href="tambah.php" class="btn btn-primary">Add +</a><br><table class="table table-striped"><thead><tr><th class="col-1">No.</th><th class="col-2">Aksi</th><th class="col-1">Foto</th><th class="col-2">Nama Maskapai</th><th class="col-1">Tanggal Penerbangan</th><th class="col-1">Kuota Penerbangan</th><th class="col-1">Bandara Asal</th><th class="col-1">Bandara Tujuan</th><th class="col-1">Jam Berangkat</th><th class="col-1">Jam Tiba</th><th class="col-2">Harga Tiket</th></tr></thead><tbody><?php $i = 1; ?><?php foreach ($flight as $row) : ?><tr><td><?= $i; ?></td><td><a href="ubah.php?id=<?= $row["flight_id"]; ?>" class="btn btn-warning btn-sm">Edit</a><a href="hapus.php?id=<?= $row["flight_id"]; ?>" class="btn btn-danger btn-sm" onclick=" return confirm('yakin nich?');">hapus</a></td><td><img src="../img/<?= $row["foto_flight"]; ?>" width="50"></td><td><?= $row["nama_maskapai"]; ?></td><td><?= $row["tanggal_penerbangan"]; ?></td><td><?= $row["kuota_penerbangan"]; ?></td><td><?= $row["bandara_asal"]; ?></td><td><?= $row["bandara_tujuan"]; ?></td><td><?= $row["jam_berangkat"]; ?></td><td><?= $row["jam_tiba"]; ?></td><td><?= $row["harga_tiket"]; ?></td></tr><?php $i++; ?><?php endforeach; ?></tbody></table></div><script src="../Style/js/bootstrap.bundle.min.js"></script></body></html>MEMBUAT KONFIRMASI MASKAPAICODING<?phprequire '../functions.php';include 'maskapaiheader.php';if (isset($_GET['action'])) {$action = $_GET['action'];$order_id = $_GET['order_id'];if ($action == 'confirm') {$status = 'Confirmed';} elseif ($action == 'cancel') {$status = 'Cancelled';}$update_query = "UPDATE `order` SET status='$status' WHERE order_id='$order_id'";mysqli_query($db, $update_query);}?><body><div class="container mt-4"><div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4"><?php$query = "SELECT * FROM `order`JOIN flight ON `order`.flight_id = flight.flight_id";$result = mysqli_query($db, $query);foreach ($result as $row) :?><div class="card" style="width: 18rem; margin-bottom: 20px;"><img class="card-img-top" src="../img/<?= $row["foto_flight"]; ?>" alt="Card image cap"><div class="card-body"><h5 class="card-title">Ms/Mr <?= $row["nama"]; ?></h5></div><ul class="list-group list-group-flush"><li class="list-group-item">Tanggal Keberangkatan: <?= $row["tanggal_penerbangan"]; ?></li><li class="list-group-item">Bandara Asal: <?= $row["bandara_asal"]; ?></li><li class="list-group-item">Bandara Tujuan: <?= $row["bandara_tujuan"]; ?></li><li class="list-group-item">Jam Berangkat: <?= $row["jam_berangkat"]; ?></li><li class="list-group-item">Jam Tiba: <?= $row["jam_tiba"]; ?></li><li class="list-group-item text-danger">Status: <?= $row['status']; ?></li></ul><div class="card-body"><!-- Tambahkan parameter action dan order_id di URL --><a href="?action=confirm&order_id=<?= $row['order_id']; ?>" class="btn btn-warning btn-sm">Konfirmasi</a><a href="?action=cancel&order_id=<?= $row['order_id']; ?>" class="btn btn-warning btn-sm">Cancel</a></div></div><?php endforeach; ?></div></div><script src="../Style/js/bootstrap.bundle.min.js"></script></body></html>- KEENAMMEMBUAT INDEX USERCODING<?phprequire '../functions.php';include 'userheader.php';?><body><div class="container mt-4"><div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4"><?php$flight = mysqli_query($db, "SELECT * FROM flight");foreach ($flight as $row) :?><div class="card" style="width: 18rem; margin-bottom: 20px;"><img class="card-img-top" src="../img/<?= $row["foto_flight"]; ?>" alt="Card image cap"><div class="card-body"><h5 class="card-title"><?= $row["nama_maskapai"]; ?></h5><p class="card-text">Tanggal Penerbangan: <?= $row["tanggal_penerbangan"]; ?></p></div><ul class="list-group list-group-flush"><li class="list-group-item">Kuota Penerbangan: <?= $row["kuota_penerbangan"]; ?></li><li class="list-group-item">Bandara Asal: <?= $row["bandara_asal"]; ?></li><li class="list-group-item">Bandara Tujuan: <?= $row["bandara_tujuan"]; ?></li></ul><div class="card-body"><p>Jam Berangkat: <?= $row["jam_berangkat"]; ?></p><p>Jam Tiba: <?= $row["jam_tiba"]; ?></p><p>Harga Tiket: <?= $row["harga_tiket"]; ?></p></div><a href="Order.php?id=<?= $row['flight_id']; ?>" class="btn btn-danger">Pesan</a></div><?php endforeach; ?></div></div><script src="../Style/js/bootstrap.bundle.min.js"></script></body>SISANYA DAPAT DILIHAT DI GDRIVE DI BAWAH INIhttps://shorturl.at/ijLR4

Comments
Post a Comment