GRACE SINURAT - Modul Pemrograman Web II
GRACE SINURAT - Modul Pemrograman Web II
GRACE SINURAT
192406099
KOM B 19
Puji dan syukur saya panjatkan kepada Tuhan Yang Maha Esa karena dengan
berkatnya saya dapat menyelesaikan penyusunan modul ini dengan judul materi
“Pemrograman Web II”.
Terima kasih saya sampaikan kepada pihak yang sudah mendukung saya
dalam penyusunan modul ini. Terkhusus saya sampaikan terimakasih kepada asisten
laboratorium yaitu Alfredo Patricius Tarigan yang telah membimbing saya untuk
menyelesaikan modul ini. Adapun pembahasan dalam modul ini adalah mengenai
implementasi penggunaan database beserta dengan komponen-komponen lainnya.
Saya menyadari bahwa modul saya ini masih jauh dari kata sempurna. Oleh
karena itu jika terdapat kritik/saran yang dapat membangun kelancaran modul ini
saya berterimakasih dan saya akan merevisi kembali pembuatan modul ini di tugas
lainnya dan di waktu berikutnya.
Penulis
DAFTAR ISI
Halaman
KATA PENGANTAR i
DAFTAR ISI ii
BAB 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Tujuan 2
BAB 2 PENGENALAN PHP
2.1 Pengertian PHP 3
2.2 Keunggulan Bahasa PHP 3
2.3 Penggunaan PHP 4
BAB 3 PHP BOOTSTRAP 5
3.1 Pengertian Bootstrap 5 5
3.2 Penggunaan Bootstrap 5
BAB 4 GET AND POST
4.1 Get and Post 9
4.2 Penggunaan Get dan Post 9
BAB 5 CRUD
5.1 Pengertian CRUD 13
5.2 Membuat CRUD 14
BAB 6 AUTENTIKASI
6.1 Membuat Sistem Register 19
6.2 Membuat Sistem Login 23
6.3 Membuat Script Logout 26
BAB 7 PROJEK
7.1 Input Projek 27
7.2 Ouput Projek 33
BAB 8 PENUTUP
8.1 Kesimpulan 36
8.2 Saran 36
DAFTAR PUSTAKA
BAB 1
PENDAHULUAN
1.3 Tujuan
Adapun tujuan dari penulisan modul ini adalah sebagai berikut.
1. Memberikan ilmu tambahan untuk memperdalam pengetahuan lebih tentang
bahasa pemrograman PHP
2. Menambah wawasan lebih dalam mengenai tentang bagaimana penggunaan PHP
dalam membuat sebuah website
3
4. Sebagian besar server web hosting mendukung PHP secara default tidak seperti
bahasa lain seperti ASP yang membutuhkan IIS. Ini menjadikan PHP pilihan yang
hemat biaya.
5. PHP diperbarui secara teratur untuk mengikuti tren teknologi terbaru.
<!DOCTYPE html>
<html>
<head>
<title>Contoh list dengan PHP</title>
</head>
<body>
<h2>Daftar Absensi Mahasiswa</h2>
<ol>
<?php
for ($i= 1; $i <= 1000; $i++)
{
echo "<li>Nama Mahasiswa ke-$i</li>";
}
?>
</ol
</body>
</html>
2. Mengatur tampilan gambar dengan bootstrap dimana jika menggunakan ini maka
gambarnya akan lebih responsive, berikut ini adalah beberapa desainnya.
a. “.img-responsive”: class ini memungkinkan Anda membuat gambar yang dapat
dibuka di berbagai macam resolusi layar. Class .img-responsive membuka ukuran
gambar dapat menyesuaikan dengan ukuran elemen inti. Anda dapat melihat
efeknya ketika melakukan resize pada browser.
b. .alert-warning: Class alert box ini dapat untuk mengindikasikan pesan warning
dan mungkin butuh perbaikan.
<div class=”alert alert-warning”>.
c. .alert-danger: Class alert box ini dapat mengindikasikan pesan penting dan
kemungkinan efek buruk.
f. .btn-warning: Class ini digunakan untuk membuat tombol warning dengan warna
kuning.
g. .btn-danger: Class ini digunakan untuk membuat tombol warning warna merah
tua.
h. .btn-link: Selain tombol persegi, Bootstrap juga menyediakan tombol untuk link.
Anda bisa menggunakan class ini.
9
BAB 4
GET AND POST
<!DOCTYPE html>
<html>
<head>
<title>GET</title>
10
</head>
<body>
<form action="get.php" method="get">
<center>
<h1>Ayo ngoding get</h1>
<p><input type="text" name="nama" placeholder="inputkan nama"></p>
<p><input type="submit" name="" value="Simpan"></p>
</center>
</form>
</body>
</html>
<?php
echo "<h1>Hasil input GET</h1><br>";
echo $_GET['nama'];
?>
Maka output yang akan dihasilkan dari dua file kode diatas adalah sebagai
berikut.
<!DOCTYPE html>
<html>
<head>
<title>POST</title>
</head>
<body>
<form action="post.php" method="post">
<center>
<h1>Ayo ngoding post</h1>
<p><input type="text" name="nama" placeholder="inputkan nama"></p>
<p><input type="submit" name="" value="Simpan"></p>
</center>
</form>
</body>
</html>
Untuk source code post.phpnya adalah sebagai berikut.
<?php
echo "<h1>Hasil input POST</h1><br>";
echo $_POST['nama'];
?>
12
4. Delete (D) adalah proses untuk menghapus data yang ada di database. Proses ini
mirip dengan Update, bedanya, proses Delete akan mengubah data yang ada di
database menjadi ‘tidak ada’.
5.2 Membuat CRUD
1. Membuat tabel database, dimana untuk melakukan operasi CRUD tentu saja
memerlukan data. Untuk membuat database, berikut ini adalah cara pembuatan
atau source code yang digunakan.
use crud_db;
<?php
/**
* using mysqli_connect for database connection
*/
$databaseHost = 'localhost';
$databaseName = 'crud_db';
$databaseUsername = 'root';
$databasePassword = '';
15
?>
3. Membuat file index.php dimana ini merupakan file utama yang menyertakan file
konfigurasi untuk koneksi database. Kemudian menampilkan semua daftar
pengguna menggunakan MySQL Select Query. Berikut ini adalah source code
yang digunakan.
<?php
// Create database connection using config file
include_once("config.php");
<html>
<head>
<title>Homepage</title>
</head>
<body>
<a href="add.php">Add New User</a><br/><br/>
<tr>
<th>Name</th> <th>Mobile</th> <th>Email</th>
<th>Update</th>
</tr>
<?php
while($user_data = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$user_data['name']."</td>";
echo "<td>".$user_data['mobile']."</td>";
echo "<td>".$user_data['email']."</td>";
echo "<td><a href='edit.php?id=$user_data[id]'>Edit</a> |
<a href='delete.php?id=$user_data[id]'>Delete</a></td></tr>";
}
?>
</table>
</body>
</html>
16
<html>
<head>
<title>Add Users</title>
</head>
<body>
<a href="index.php">Go to Home</a>
<br/><br/>
<?php
5. Membuat file edit.php dimana digunakan untuk mengedit data pengguna serta
bisa mengubah data pengguna dan memperbaharuinya. File ini akan mengarahkan
pengguna kembali ke hompage, setelah update sukses. Berikut ini adalah source
code yang digunakan.
<?php
// include database connection file
include_once("config.php");
$name=$_POST['name'];
$mobile=$_POST['mobile'];
$email=$_POST['email'];
while($user_data = mysqli_fetch_array($result))
{
$name = $user_data['name'];
$email = $user_data['email'];
$mobile = $user_data['mobile'];
}
?>
<html>
<head>
<title>Edit User Data</title>
</head>
<body>
<a href="index.php">Home</a>
<br/><br/>
6. Membuat file delete.php diaman hanya dipanggil saat kita klik link ‘Delete’ untuk
pengguna maupun yang dipilih. Berikut ini adalah source codenya.
<?php
// include database connection file
include_once("config.php");
$id = $_GET['id'];
2. Membuat file config dimana ini berfungsi untuk menghubungkan PHP ddengan
MySQLnya. Berikut ini adalah source code yang digunakan.
<?php
/* Database credentials. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'password');
define('DB_NAME', 'niagahoster');
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
?>
3. Membuat form registrasi dimana terlebih dahulu untuk membuat file dengan
nama register,php kemudian tambahkan source code yang digunakan di bawah
ini.
<?php
// Include config file
20
require_once "config.php";
// Validate username
if(empty(trim($_POST["username"]))){
$username_err = "Please enter a username.";
} else{
// Prepare a select statement
$sql = "SELECT id FROM users WHERE username = ?";
// Set parameters
$param_username = trim($_POST["username"]);
if(mysqli_stmt_num_rows($stmt) == 1){
$username_err = "This username is already
taken.";
} else{
$username = trim($_POST["username"]);
}
} else{
echo "Oops! Something went wrong. Please try
again later.";
}
}
// Close statement
mysqli_stmt_close($stmt);
}
// Validate password
if(empty(trim($_POST["password"]))){
$password_err = "Please enter a password.";
} elseif(strlen(trim($_POST["password"])) < 6){
$password_err = "Password must have atleast 6
characters.";
} else{
$password = trim($_POST["password"]);
}
21
// Set parameters
$param_username = $username;
$param_password = password_hash($password,
PASSWORD_DEFAULT); // Creates a password hash
// Close statement
mysqli_stmt_close($stmt);
}
// Close connection
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
22
<title>Sign Up</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstr
ap.css">
<style type="text/css">
body{ font: 14px sans-serif; }
.wrapper{ width: 350px; padding: 20px; }
</style>
</head>
<body>
<div class="wrapper">
<h2>Sign Up</h2>
<p>Please fill this form to create an account.</p>
<form action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!
empty($username_err)) ? 'has-error' : ''; ?>">
<label>Username</label>
<input type="text" name="username" class="form-
control" value="<?php echo $username; ?>">
<span class="help-block"><?php echo
$username_err; ?></span>
</div>
<div class="form-group <?php echo (!
empty($password_err)) ? 'has-error' : ''; ?>">
<label>Password</label>
<input type="password" name="password"
class="form-control" value="<?php echo $password; ?>">
<span class="help-block"><?php echo
$password_err; ?></span>
</div>
<div class="form-group <?php echo (!
empty($confirm_password_err)) ? 'has-error' : ''; ?>">
<label>Confirm Password</label>
<input type="password" name="confirm_password"
class="form-control" value="<?php echo $confirm_password; ?>">
<span class="help-block"><?php echo
$confirm_password_err; ?></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary"
value="Submit">
<input type="reset" class="btn btn-default"
value="Reset">
</div>
<p>Already have an account? <a href="login.php">Login
here</a>.</p>
</form>
</div>
</body>
</html>
23
1. Membuat form login dimana pertama membuat file dengan nama login.php dan
<?php
// Initialize the session
session_start();
// Validate credentials
if(empty($username_err) && empty($password_err)){
// Prepare a select statement
$sql = "SELECT id, username, password FROM users WHERE
username = ?";
// Set parameters
$param_username = $username;
// Close statement
mysqli_stmt_close($stmt);
}
// Close connection
25
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstr
ap.css">
<style type="text/css">
body{ font: 14px sans-serif; }
.wrapper{ width: 350px; padding: 20px; }
</style>
</head>
<body>
<div class="wrapper">
<h2>Login</h2>
<p>Please fill in your credentials to login.</p>
<form action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<div class="form-group <?php echo (!
empty($username_err)) ? 'has-error' : ''; ?>">
<label>Username</label>
<input type="text" name="username" class="form-
control" value="<?php echo $username; ?>">
<span class="help-block"><?php echo
$username_err; ?></span>
</div>
<div class="form-group <?php echo (!
empty($password_err)) ? 'has-error' : ''; ?>">
<label>Password</label>
<input type="password" name="password"
class="form-control">
<span class="help-block"><?php echo
$password_err; ?></span>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary"
value="Login">
</div>
<p>Don't have an account? <a href="register.php">Sign
up now</a>.</p>
</form>
</div>
</body>
</html>
26
<?php
// Initialize the session
session_start();
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-7">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384
-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" c
rossorigin="anonymous">
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-
bundle.min.css" />
<link rel="stylesheet" href="./public/assets/css/styles.css">
<title>JOB VACANCY</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- Nav goes here -->
<nav class="navbar navbar-expand-lg navbar-light bg-transparent">
<div class="container-fluid mt-3">
<a class="navbar-brand" href="http://localhost/Studi Kasus/index.php
">JOB VACANCIES INFORMATION</a>
<button class="navbar-toggler" type="button" data-bs-
toggle="collapse" data-bs-target="#navbarNavAltMarkup" aria-
controls="navbarNavAltMarkup" aria-expanded="false" aria-
label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-link active" aria-current="page" href="http://
localhost/Projek/pages/home.php">Home</a>
<a class="nav-link" href="pages/contact.php" >Contact</a>
<a class="nav-link" href="pages/about.php">About</a>
<a class="nav-link" href="auth/login.php">Login</a></li>
<a class="nav-link" href="auth/register.php">Register</a></l
i>
28
</div>
</div>
</div>
</nav>
<!-- End of Nav -->
<div class="container pt-5">
<div class="row justify-content-between align-items-
center">
<div class="col-lg-5 col-md-6 col-sm-12">
<img src="public/Img/picture2.jpg" alt="XYZ" cla
ss="img-fluid">
</div>
<div class="col-lg-5 col-md-6 col-sm-12 mb-3 mb-lg-0
mb-md-0">
<div class="fs-2 text-white fw-bold mt-5">YOU NE
ED A JOB?</div>
<p class="leading-relaxed gray-purple">
<h3>Welcome to our website !</h3>
Here you can find information about the job v
acancies of your dreams
</p>
<nav class="navbar navbar-light">
<div class="container-fluid">
<form class="d-flex">
<input class="form-control me-2" type="s
earch" placeholder="Find your Job" aria-label="Search">
<button class="btn btn-outline-
secondary" type="submit">Search </button>
</form>
</div>
</nav>
</div>
</div>
</div>
<!-- Carousel -->
<!-- Slider main container -->
<div class="bg-second mt-5">
<div class="text-center mb-4">
<p class="purple-dark fs-4 fw-bold pt-5">Latest Job Vaca
ncies</p>
<p class="leading-relaxed purple-dark">You can find Job
Vacancies Information here</p>
</div>
<div class="swiper-container">
<!-- Additional required wrapper -->
<div class="swiper-wrapper">
<!-- Slides -->
<div class="swiper-slide card">
<div class="text-center">
<img src="public/Img/nurse.jpg" width="100">
</div>
<div class="card-body text-center">
29
<h5 class="card-title ">Nurse</h5>
<p class="card-text ">Dewi Sri Hospital</p>
<a href="enquirement/enquirement1.php" class
="btn btn-outline-secondary">Enquirement</a>
</div>
</div>
<div class="swiper-slide card">
<div class="text-center">
<img src="public/Img/engineer.jpg" width="1
00">
</div>
<div class="card-body text-center">
<h5 class="card-title ">Engineering</h5>
<p class="card-text ">Pertamina</p>
<a href="enquirement/enquirement2.php" class
="btn btn-outline-secondary">Enquirement</a>
</div>
</div>
<div class="swiper-slide card">
<div class="text-center">
<img src="public/Img/officer2.png" width="1
40">
</div>
<div class="card-body text-center">
<h5 class="card-title ">Community Officer</h
5>
<p class="card-text ">Syariah BTPN</p>
<a href="enquirement/enquirement3.php" class
="btn btn-outline-secondary">Enquirement</a>
</div>
</div>
<div class="swiper-slide card">
<div class="text-center">
<img src="public/Img/apoteker.png" width="14
0">
</div>
<div class="card-body text-center">
<h5 class="card-title ">Apoteker</h5>
<p class="card-text ">Kimia Farma</p>
<a href="enquirement/enquirement4.php" class
="btn btn-outline-secondary">Enquirement</a>
</div>
</div>
<div class="swiper-slide card">
<div class="text-center">
<img src="public/Img/hrd.jpg" width="210">
</div>
<div class="card-body text-center">
<h5 class="card-title ">Staff HRD</h5>
<p class="card-text ">PT.Eka Sari Lorena Tra
nsport</p>
<a href="enquirement/enquirement5.php" class
="btn btn-outline-secondary">Enquirement</a>
</div>
30
</div>
</div>
<!----Recommendation ---->
<div class="bg-second mt-5">
<div class="text-center mb-4">
<p class="purple-dark fs-5 fw-bold pt-5">Our Rec
ommendation Company</p>
</div>
<div class="row mt-5">
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo1.jpg" width="1
50">
<br><h7>PT Pertamina</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo2.jpg" width="5
0" >
<br><h7>PT Jasaraharja Putera</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo3.png" width="11
0">
<br><h7>PT Elang Mahkota Teknologi</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo4.png" width="6
2">
<br><h7>PT Bank Mega, Tbk</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
31
<div class="card-body text-center">
<img src="public/Img/logo5.png" width="15
0">
<br><h7>Kimia Farma</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo6.png" width="10
5">
<br><h7>PT SCTV</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo7.png" width="3
2">
<br><h7>PT Warung Pintar Sekali</h7>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="card border-dark mb-3" style="ma
x-width: 18rem;">
<div class="card-body text-center">
<img src="public/Img/logo8.png" width="1
70">
<br><h7>OTO Group</h7>
</div>
</div>
</div>
</div>
<!----End Reccomd ---->
<!-- If we need navigation buttons -->
<div class="swiper-pagination"></div>
</div>
</div>
<!-- End Carousel -->
<div class="pt-5">
<div class="d-flex align-items-center mt-5">
<div class="col-lg-5 col-md-6 col-sm-12 mb-3 mb-lg-0 mb-
md-0">
32
<div class="fs-2 text-dark fw-bold mt-5">Post yo
ur ad here!</div>
<p class="leading-relaxed gray-dark">
Now you can post your ad with many advantages
</p>
</div>
<div class="card bg-transparent border-3 border-hot
mx-4" style="width: 18rem; height: 18rem;">
<div class="card-body">
<h5 class="card-title">Best Package</h5>
<hr>
<div class="fs-3 fw-bold">IDR 300.000</div>
<p>Per month / Paid Anually</p>
<a href="#" class="btn btn-outline-secondary
text-dark">Check Here</a>
<p class="mt-3"></p>
</div>
</div>
<div class="card bg-transparent border-3 border-hot"
style="width: 18rem; height: 18rem;">
<div class="card-body">
<h5 class="card-title">Simple Package</h5>
<hr>
<div class="fs-3 fw-bold">IDR 150.000</div>
<p>Per month / Paid Anually</p>
<a href="#" class="btn text-dark btn-
outline-secondary">Check Here</a>
</div>
</div>
</div>
</div>
</div>
<script src="./public/assets/js/bootstrap.min.js"></script>
<script src="https://unpkg.com/swiper/swiper-
bundle.min.js"></script>
<script>
var swiper = new Swiper('.swiper-container', {
slidesPerView: 2,
slidesPerColumn: 1,
spaceBetween: 30,
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
320: {
slidesPerView: 1,
spaceBetween: 20,
},
1024: {
slidesPerView: 2,
slidesPerColumn: 1,
33
}
}
});
</script>
</div>
<hr>
<div class="judul1 text-danger text-center" >
<p>Copyright 2021 -Kelompok 3</p></div>
<!-- Optional JavaScript; choose one of the two! -->
<!-- Option 1: Bootstrap Bundle with Popper -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-
b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" cr
ossorigin="anonymous"></script>
<!-- Option 2: Separate Popper and Bootstrap JS -->
<!--
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/d
ist/umd/popper.min.js" integrity="sha384-
KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" cr
ossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]
beta2/dist/js/bootstrap.min.js" integrity="sha384-
nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" cr
ossorigin="anonymous"></script>
-->
</body>
</html>
8.1 Kesimpulan
Berdasarkan modul diatas dapat disimpulkan bahwa pemrograman web
merupakan salah satu hal yang penting di era sekarang ini. Apalagi jika kita ingin
membangun sebuah website. Kita bisa menggunakan bahasa pemrograman PHP
dimana cara penggunaannya sudah dijelaskan pada modul ini. Dan dengan bantuan
bootstrap yang memudahkan kita untuk mendesain website kita menjadi lebih
responsive dan lebih indah untuk dilihat. Pada bootstrap terdapat banyak desain-
desain yang sangat membantu jika ingin membuat sebuah website
8.2 Saran
Penulis menyadari bahwa pembuatan modul ini jauh dari kata sempurna. Oleh
karena itu penulis meminta kritik ataupun saran yang dapat membangun agar dalam
penulisan modul selanjutnya penulis bisa memberikan yang lebih baik dari
sebelumnya.
DAFTAR PUSTAKA