0% menganggap dokumen ini bermanfaat (0 suara)
17 tayangan

Modul Jaringan

Dokumen ini membahas tentang pertemuan praktikum penerapan bahasa pemrograman PHP dengan database MySQL. Tujuan praktikum adalah mahasiswa dapat memahami penggunaan PHP dan MySQL serta dapat menggabungkan keduanya dalam pembuatan website. Praktikum ini meliputi penjelasan teori arsitektur monolith dan microservice, serta CRUD pada produk dan role management untuk latihan.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
17 tayangan

Modul Jaringan

Dokumen ini membahas tentang pertemuan praktikum penerapan bahasa pemrograman PHP dengan database MySQL. Tujuan praktikum adalah mahasiswa dapat memahami penggunaan PHP dan MySQL serta dapat menggabungkan keduanya dalam pembuatan website. Praktikum ini meliputi penjelasan teori arsitektur monolith dan microservice, serta CRUD pada produk dan role management untuk latihan.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

Pertemuan 11

Penerapan bahasa pemrograman PHP dengan database MySQL

TUJUAN PRAKTIKUM

1. Mahasiswa dapat mengerti kegunaan dan penggunaan PHP


2. Mahasiswa dapat mengerti kegunaan dan penggunaan database MySQL
3. Mahasiswa dapat menggunakan bahasa pemrograman PHP dengan database MySQL dalam
pembuatan website

TEORI PENUNJANG DAN MATERI PRAKTIKUM

1. Pada modul-modul sebelumnya kita pernah membahas mengenai bahasa pemrograman PHP
dan database MySQL secara terpisah. Dalam pengembangan suatu website terdapat 2
arsitektur, yaitu:
a. Monolith
Dimana monolith merupakan arsitektur yang terdiri dari komponen yang digabung,
sebagai gambaran frontend dan backend tidak dipisah dan dalam pengambilan data
dari database nya dilakukan secara langsung tanpa melalui API.
b. Microservice
Dimana microservice merupakan arsitektur yang komponen komponennya di pisah,
sebagai contohnya adalah pemisahan frontend dan backend dalam berbeda project,
biasanya juga backend dipisah menjadi modul modul yang lebih kecil lagi dan
memiliki database sendiri sendiri.
2. Dalam manipulasi data dalam database, pasti terdapat manipulasi data berupa penambahan
(Create), melihat data (Read), mengubah data (Update), menghapus data (Delete), biasanya
manipulasi data ini disebut sebagai CRUD:

PRAKTIKUM

Pada pertemuan kali ini, kita akan melanjutkan dalam pemrograman kemarin, dimana pada
pertemuan kali ini kita akan membuat CRUD untuk produk dan role management sederhana.
1. Melanjutkan dari kemarin, import database yang diberikan ke dalam database local kalian
2. Modifikasi proses_register.php menjadi berikut, agar Ketika user mendaftar, maka rolenya
otomatis menjadi user biasa
<?php
// Cek apakah form telah disubmit
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Lakukan operasi penyimpanan data ke database
require_once('connect.php');

// Query untuk menyimpan data pengguna baru ke tabel pengguna


$query = "INSERT INTO user (role_id, nama_lengkap, no_hp, email, password)
VALUES (2, '$_POST[nama_lengkap]', '$_POST[no_hp]', '$_POST[email]',
'$_POST[password]')";

if ($conn->query($query) === TRUE) {


header("Location: login.php");
exit();
} else {
echo "Error: " . $query . "<br>" . $conn->error;
}

// Tutup koneksi database


$conn->close();
}
?>

3. Modifikasi admin/produk.php menjadi berikut


<?php
session_start();

include '../connect.php';

// mendapatkan data role untuk user yang sedang login


$query = "SELECT * FROM user JOIN role ON user.role_id = role.role_id";
$datas = $conn->query($query);
$data = $datas->fetch_assoc();

// jika nama role bukan admin atau bukan penjual maka di alihkan ke ../index.php
if ($data['name'] != 'admin' || $data['name'] != 'penjual') {
header("Location: ../index.php");
exit;
}
?>

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Dashboard</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>

<body>
<!-- Sidebar -->
<div class="container-fluid">
<div class="row">
<nav class="col-md-2 d-none d-md-block bg-light sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" href="#">Riwayat Pembelian</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pengguna</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Produk</a>
</li>
</ul>
</div>
</nav>

<!-- Content -->


<main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-4">
<div class="d-flex justify-content-between align-items-center">
<h2>Produk</h2>
<button type="button" class="btn btn-primary" data-toggle="modal"
data-target="#tambahDataModal">
Tambah Data
</button>
</div>

<div class="table-responsive mt-3">


<table class="table table-bordered">
<thead>
<tr>
<th>Email Pengguna</th>
<th>Nama</th>
<th>Harga</th>
<th>Stok</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php
include '../connect.php';

// menggunakan query sql agar menampilkan data produk dan


join kedalam tabel user agar mendapatkan siapa pemilik produk
$query = "SELECT * FROM produk LEFT JOIN user ON
produk.user_id = user.user_id";
$datas = $conn->query($query);

foreach ($datas as $data):


?>
<tr>
<td>
<?= $data['email'] ?>
</td>
<td>
<?= $data['nama'] ?>
</td>
<td>
<?= $data['harga'] ?>
</td>
<td>
<?= $data['stok'] ?>
</td>
<td>
<button type="button" class="btn btn-primary btn-sm"
data-toggle="modal"
data-target="#editDataModal<?= $data['produk_id']
?>">Edit</button>
<button type="button" class="btn btn-danger btn-sm"
data-toggle="modal"
data-target="#hapusDataModal<?= $data['produk_id']
?>">Hapus</button>
</td>
</tr>

<!-- Modal ubah data -->


<div class="modal fade" id="editDataModal<?=
$data['produk_id'] ?>" tabindex="-1"
role="dialog" aria-labelledby="editDataModalLabel" aria-
hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="editDataModalLabel">Tambah Data Pengguna</h5>
<button type="button" class="close" data-
dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form method="POST" action="produk/ubah.php">
<div class="modal-body">
<input type="hidden" name="produk_id"
value="<?= $data['produk_id'] ?>">
<div class=" form-group">
<label for="nama">Nama</label>
<input required type="text" class="form-
control" id="nama"
name="nama" value="<?= $data['nama']
?>">
</div>
<div class="form-group">
<label for="harga">Harga</label>
<input required type="number" class="form-
control" id="harga"
name="harga" value="<?= $data['harga']
?>">
</div>
<div class="form-group">
<label for="number">Stok</label>
<input required type="number" class="form-
control" id="number"
name="stok" value="<?= $data['stok'] ?>">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-dismiss="modal">Tutup</button>
<button type="submit" class="btn btn-
primary">Simpan</button>
</div>
</form>
</div>
</div>
</div>

<!-- Modal Hapus Data -->


<div class="modal fade" id="hapusDataModal<?=
$data['produk_id'] ?>" tabindex="-1"
role="dialog" aria-labelledby="hapusDataModalLabel<?=
$data['produk_id'] ?>"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="hapusDataModalLabel<?= $data['produk_id'] ?>">
Konfirmasi Penghapusan</h5>
<button type="button" class="close" data-
dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Apakah Anda yakin ingin menghapus data pengguna
ini?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-dismiss="modal">Batal</button>
<a href="produk/hapus.php?id=<?=
$data['produk_id'] ?>"
class="btn btn-danger">Hapus</a>
</div>
</div>
</div>
</div>
<?php endforeach ?>
</tbody>
</table>
</div>
</main>
</div>
</div>

<!-- Modal tambah data -->


<div class="modal fade" id="tambahDataModal" tabindex="-1" role="dialog"
aria-labelledby="tambahDataModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="tambahDataModalLabel">Tambah Data
Produk</h5>
<button type="button" class="close" data-dismiss="modal" aria-
label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form method="POST" action="produk/tambah.php">
<div class="modal-body">
<div class="form-group">
<label for="nama">Nama</label>
<input required type="text" class="form-control" id="nama"
name="nama">
</div>
<div class="form-group">
<label for="harga">Harga</label>
<input required type="number" class="form-control" id="harga"
name="harga">
</div>
<div class="form-group">
<label for="number">Stok</label>
<input required type="number" class="form-control"
id="number" name="stok">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-
dismiss="modal">Tutup</button>
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
</div>

<!-- Bootstrap JS -->


<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></
script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script
>
</body>

</html>

4. Tambahkan file baru di folder admin/produk/


a. tambah.php
<?php
session_start();
include '../../connect.php';

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

// mengambil data user_id dari user yang sedang login


$userId = $_SESSION['user_id'];

// mengambil data dari inputan user


$nama = $_POST['nama'];
$harga = $_POST['harga'];
$stok = $_POST['stok'];

// memasukan data menggunakan query sql


$query = "INSERT INTO produk (user_id, nama, harga, stok) VALUES
('$userId', '$nama', '$harga', '$stok')";

// jika berhasil maka dialihkan ke halamaan produk


if ($conn->query($query)) {
header("Location: ../produk.php");
exit;
} else {
echo "Error executing query: " . $conn->error;
}
}
?>

b. hapus.php
<?php
session_start();

include '../../connect.php';

if (isset($_GET['id'])) {
// mengambil data dari parameter url
$id = $_GET['id'];

// menghapus data menggunakan query sql


$query = "DELETE FROM produk WHERE produk_id = $id";

// jika berhasil maka dialihkan ke halaman produk


if ($conn->query($query)) {
header("Location: ../produk.php");
exit;
} else {
echo "Error executing query: " . $conn->error;
}
}
?>

c. ubah.php
<?php
session_start();
include '../../connect.php';

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


// mengambil data dari inputan user
$produk_id = $_POST['produk_id'];
$nama = $_POST['nama'];
$harga = $_POST['harga'];
$stok = $_POST['stok'];

// mengubah data menggunakan query sql


$query = "UPDATE produk SET nama = '$nama', harga = '$harga', stok
= '$stok' WHERE produk_id = '$produk_id'";

// jika berhasil maka dialihkan ke halamaan produk


if ($conn->query($query)) {
header("Location: ../produk.php");
exit;
} else {
echo "Error executing query: " . $conn->error;
}
}
?>
TUGAS PRAKTIKUM

1. Buat CRUD untuk data user dan transaksi


2. Buat role management berikut
a. Jika user yang sedang login rolenya adalah user, maka tidak boleh mengakses
halaman /admin
b. Jika user yang sedang login rolenya adalah penjual, maka boleh mengakses halaman
/admin/produk.php dan /admin/transaksi.php, tetapi tidak boleh akses /admin
c. Jika user yang sedang login rolenya adalah admin, maka boleh mengakses seluruh
halaman
3. Buat agar user dapat membeli produk pada halaman index.php, lalu jika sudah membeli maka
data akan disimpan kedalam table transaksi dan stok barang akan berkurang

Anda mungkin juga menyukai