Modul Praktikum Pemrograman Web Lanjut (Si118) 2021 - p7
Modul Praktikum Pemrograman Web Lanjut (Si118) 2021 - p7
2022
Modul Praktikum
Pemrograman Web Lanjut
PENGESAHAN
1. KATA PENGANTAR 2
2. DAFTAR ISI 3
Pada CRUD sebelumnya, proses yang terjadi adalah input data melalui halaman PHP yang
sudah terkoneksi dengan database, kemudian data yang diinputkan akan disimpan di tabel-tabel
yang telah dipersiapkan sebelumnya. Akan tetapi ada sedikit perbedaan untuk proses CRUD
dengan upload/download. Pada proses ini, selain data yang dikirimkan oleh method PHP,
terdapat berkas/file yang dilampirkan dan harus disimpan di server.
Konsep pengiriman data adalah sebagai berikut : Pada Gambar 1, proses input tidak hanya
mengirim dan menyimpan data, tetapi juga menyimpan file yang dilampirkan. Data dan file
tersebut disimpan/dikirim dalam waktu yang bersamaan, kemudian perintah-perintah PHP
memisahkan data tersebut. Sehingga data input dan nama file akan disimpan di database,
sedangkan file fisik yang dilampirkan akan disimpan pada sebuah folder yang telah dipersiapkan
di sever..
1.4. Instruksi Modul
Cobalah CRUD berikut ini :
1. Gunakan database yang telah dibuat sebelumnya, dengan ketentuan sebagai berikut.
b. Cobalah mengakses admin melalui localhost hingga muncul tampilan login. Pada
contoh menggunakan alamat http://localhost/PC/Berita2019/Admin/
4. Bukalah kembali script welcome.php yang pernah anda buat dan tambahkan
script berikut untuk membuat Link Halaman User dan Halaman Berita.
5. Tampilan setelah ditambahkan Link Halaman Berita dan Halaman User.
6. Buatlah folder uploads. Folder uploads berfungsi sebagai tempat menyimpan file-file gambar
yang telah diupload . Folder uploads terletak di dalam folder Admin.
7. Selanjutnya buatlah perintah CRUD untuk tabel berita, simpan pada folder admin.
a. berita_tambah.php
<?php
session_start(); //memulai session
?>
<!DOCTYPE html>
<html>
<head>
<title>Halaman Input Berita</title>
</head>
<body>
<h2>Tambah Berita</h2>
<form method="POST" action="berita_tambah_action.php"
enctype="multipart/form-data">
<table>
<tr>
<td width="150">Judul Berita</td>
<td>:</td>
<td><input type="text" name="judul" size="60"></td>
</tr>
<tr>
<td>Isi Berita</td>
<td>:</td>
<td><textarea name="isi" rows="6"
cols="60"></textarea></td>
</tr>
<tr>
<td>Gambar</td>
<td>:</td>
<td><input type="file" name="gambar"> </td>
</tr>
<tr>
<td>Tanggal</td>
<td>:</td>
<td><input type="date" name="tanggal"> </td>
</tr>
<tr>
<td>Nama User / Admin</td>
<td>:</td>
<td>
<input type="text" name="user_nama" size="60"
value="<?php echo $_SESSION['username'];?>" readonly>
</td>
</tr>
<tr>
<td colspan="3">
<input type="submit" name="simpan" value="simpan">
<input type="reset" value="reset">
</td>
</tr>
</table>
</form>
</body>
</html>
$judul = $_POST["judul"];
$isiberita = $_POST["isi"];
$tgl_upload = $_POST["tanggal"];
$usernama = $_POST["user_nama"];
c. halamanberita.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Data Berita</title>
</head>
<body>
<p align="left">Anda Login Sebagai "<?php echo
$_SESSION['username']; ?>" | Klik <a
href="logout.php">disini</a> untuk logout.</p>
<h3>Data Berita</h3>
<p><a href="berita_tambah.php">[+Tambah Berita]</a> </p>
<table width='900' border='1' cellpadding="5" cellspacing="0">
<tr>
<th width='30'>No.</th>
<th width='100'>Judul Berita</th>
<th width='300'>Isi Berita</th>
<th width='200'>Tanggal Upload</th>
<th width='350'>Gambar</th>
<th width="100">Kelola</th>
</tr>
<?php
include "config.php";
$no=1;
while ($data=mysqli_fetch_array($hasil)){
?>
<tr>
<td><?php echo $no;?></td>
<td><?php echo $data['berita_judul']?></td>
<td><?php echo $data['berita_isi']?></td>
<td><?php echo $data['berita_tanggal']?></td>
<td><img src="<?php echo $data['berita_gambar']?>"
width="100%"></td>
<td align="center">
<a href="berita_ubah.php?berita_id=<?php echo
$data['berita_id'];?>">Edit</a> |
<a href="berita_hapus.php?berita_id=<?php echo
$data['berita_id'];?>">Hapus</a>
</td>
</tr>
<?php
$no++;
}
echo "</table>";
?>
</body>
</html>
d. berita_ubah.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Halaman Edit Berita</title>
</head>
<body>
<?php
include 'config.php';
$berita_id = $_GET['berita_id'];
$sql = "SELECT * FROM berita WHERE berita_id=$berita_id";
$hasil = mysqli_query($config, $sql);
$data = mysqli_fetch_assoc($hasil);
?>
<h2>Edit Berita</h2>
<form method="POST" action="berita_ubah_action.php"
enctype="multipart/form-data">
<table>
<tr>
<td width="100">Judul Berita</td>
<td>:</td>
<td>
<input type="hidden" name="berita_id"
value="<?php echo $data['berita_id']?>">
<input type="text" name="judul" size="50"
value="<?php echo
$data['berita_judul']?>"></td>
</tr>
<tr>
<td>Isi Berita</td>
<td>:</td>
<td><textarea name="isi" rows="6"
cols="45"><?php echo
$data['berita_isi']?></textarea>
</td>
</tr>
<tr>
<td>Tanggal</td>
<td>:</td>
<td><input type="date" name="tanggal"></td>
</tr>
<tr>
<td>Gambar</td>
<td>:</td>
e. berita_ubah_action.php
<?php
session_start();
include "config.php";
$berita_id = $_POST["berita_id"];
$judul = $_POST["judul"];
$isiberita = $_POST["isi"];
$tgl_upload = $_POST["tanggal"];
$usernama = $_POST["user_nama"];
$lokasifile = $_FILES['gambar']['tmp_name'];
//nama file temporary yang akan disimpan di server
$namafile = $_FILES['gambar']['name'];
//membaca nama file yang akan diupload
if(!empty($lokasifile)){
$sql = "UPDATE berita SET berita_judul='$judul',
berita_isi='$isiberita', berita_tanggal='$tgl_upload',
berita_gambar='$uploadfile', user_nama='$usernama' WHERE
berita_id='$berita_id'";
$hasil = mysqli_query($config, $sql);
if($hasil){
move_uploaded_file($lokasifile, $uploadfile);
echo "<script> alert('Data berhasil diubah')</script>";
echo "Nama File : <b>$namafile</b> sukses di
upload<br/><br/>";
echo "<a href='halamanberita.php'>kembali</a>";
} else {
echo "Data gagal disimpan";
}
} else {
$sql = "UPDATE berita SET berita_judul='$judul',
berita_isi='$isiberita', user_nama='$usernama' WHERE
berita_id=$berita_id";
$hasil = mysqli_query($config, $sql);
header('location:halamanberita.php');
}
?>
f. berita_hapus.php
2. Membuat File index.php simpan di folder anda (contoh berita2019) – index ini untuk
tampilan halaman user
<!DOCTYPE html>
<html lang="en">
<head>
<title>BERITA AMIKOM</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstr
ap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.mi
n.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/
popper.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap
.min.js"></script>
<style>
.fakeimg {
height: 200px;
background: #aaa;
}
</style>
</head>
<body>
<div class="jumbotron text-center" style="margin-bottom:0;
background: url('images/nature.jpg') center center fixed no-
repeat; background-size: cover;">
<h1>BERITA AMIKOM</h1>
<p>Berita Terkini</p>
</div>
</div>
<div class="col-sm-4">
<h3>Topik Populer</h3>
<div class="list-group">
<a href="#" class="list-group-item list-group-item-
action">Ramadan 2018</a>
<a href="#" class="list-group-item list-group-item-
action">LIGA 1 2018</a>
<a href="#" class="list-group-item list-group-item-
action">WAISAK 2018</a>
</div>
<hr class="d-sm-none">
</div>
</div>
</body>
</html>