Membuat Upload Pas Foto Pelengkap Pendaftaran
Nama: Azzura Mahendra Putra Malinus
NRP: 5025201211
Kelas: Pemrograman Web A
Tahun Ajaran: 2022/2023
Link repository: Repository
Tugas yang diberikan pada pertemuan ini adalah membuat sebuah website CRUD pendaftaran siswa yang memiliki tambahan fitur, yaitu mengupload pas foto. Bahasa yang akan digunakan adalah PHP dan HTML untuk membuat struktur dan backend serta SQL untuk melakukan query. Gambar-gambar yang diupload akan disimpan di dalam folder images. Selain itu, database yang akan digunakan adalah phpmyadmin. File-file yang diperlukan adalah sebagai berikut:
- form_simpan.php
- form_ubah.php
- index.php
- koneksi.php
- proses_hapus.php
- proses_simpan.php
- proses_ubah.php
- DDL.sql
form_simpan.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CRUD Upload Gambar</title>
</head>
<body>
<h1>Tambah Data Siswa</h1>
<form method="post" action="proses_simpan.php" enctype="multipart/form-data">
<table cellpadding="5">
<tr>
<td><label for="nis">NIS</label></td>
<td><input type="text" name="nis"></td>
</tr>
<tr>
<td><label for="nama">Nama</label></td>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<td><label for="jenis_kelamin">Jenis kelamin</label></td>
<td>
<label><input type="radio" name="jenis_kelamin" value="Laki-laki"> Laki-laki</label>
<label><input type="radio" name="jenis_kelamin" value="Perempuan"> Perempuan</label>
</td>
</tr>
<tr>
<td><label for="telp">Telepon</label></td>
<td><input type="text" name="telp"></td>
</tr>
<tr>
<td><label for="alamat">Alamat</label></td>
<td><textarea name="alamat"></textarea></td>
</tr>
<tr>
<td><label for="foto">Foto</label></td>
<td><input type="file" name="foto"></td>
</tr>
</table>
<hr>
<input type="submit" value="Simpan">
<a href="index.php"><input type="button" value="Batal"></a>
</form>
</body>
</html>
form_ubah.php
<html>
<head>
<title>Aplikasi CRUD dengan PHP</title>
</head>
<body>
<h1>Ubah Data Siswa</h1>
<?php
include "koneksi.php";
$id = $_GET['id'];
$sql = $pdo->prepare("SELECT * FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$sql->execute();
$data = $sql->fetch();
?>
<form method="post" action="proses_ubah.php?id=<?php echo $id; ?>" enctype="multipart/form-data">
<table cellpadding="8">
<tr>
<td>NIS</td>
<td><input type="text" name="nis" value="<?php echo $data['nis']; ?>"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" value="<?php echo $data['nama']; ?>"></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>
<?php
if($data['jenis_kelamin'] == "Laki-laki"){
echo "<input type='radio' name='jenis_kelamin' value='laki-laki' checked='checked'> Laki-laki";
echo "<input type='radio' name='jenis_kelamin' value='perempuan'> Perempuan";
}else{
echo "<input type='radio' name='jenis_kelamin' value='laki-laki'> Laki-laki";
echo "<input type='radio' name='jenis_kelamin' value='perempuan' checked='checked'> Perempuan";
}
?>
</td>
</tr>
<tr>
<td>Telepon</td>
<td><input type="text" name="telp" value="<?php echo $data['telp']; ?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><textarea name="alamat"><?php echo $data['alamat']; ?></textarea></td>
</tr>
<tr>
<td>Foto</td>
<td>
<input type="file" name="foto">
</td>
</tr>
</table>
<hr>
<input type="submit" value="Ubah">
<a href="index.php"><input type="button" value="Batal"></a>
</form>
</body>
</html>
index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CRUD Upload Gambar</title>
</head>
<body>
<h1>Data Siswa</h1>
<a href="form_simpan.php">Tambah Data</a> <br> <br>
<table border="1" cellpadding="7" width="100%">
<tr>
<th>Foto</th>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Telepon</th>
<th>Alamat</th>
<th colspan="2">Aksi</th>
</tr>
<?php
include("koneksi.php");
$sql = $pdo->prepare("SELECT * FROM siswa");
$sql->execute();
while ($data = $sql->fetch()) {
echo "<tr>";
echo "<td><img src='images/".$data['foto']."' width='100' height='100'></td>";
echo "<td>".$data['nis']."</td>";
echo "<td>".$data['nama']."</td>";
echo "<td>".$data['jenis_kelamin']."</td>";
echo "<td>".$data['telp']."</td>";
echo "<td>".$data['alamat']."</td>";
echo "<td><a href='form_ubah.php?id=".$data['id']."'>Ubah</a></td>";
echo "<td><a href='proses_hapus.php?id=".$data['id']."'>Hapus</a></td>";
echo "</tr>";
}
?>
</table>
</body>
</html>
koneksi.php
<?php
$host = "localhost";
$username = "root";
$password = "";
$database = "siswa";
$pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password);
?>
proses_hapus.php
<?php
include "koneksi.php";
$id = $_GET['id'];
$sql = $pdo->prepare("SELECT foto FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$sql->execute();
$data = $sql->fetch();
if(is_file("images/".$data['foto']))
unlink("images/".$data['foto']);
$sql = $pdo->prepare("DELETE FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$execute = $sql->execute();
if($execute){
header("location: index.php");
}else{
echo "Data gagal dihapus. <a href='index.php'>Kembali</a>";
}
?>
proses_simpan.php
<?php
include "koneksi.php";
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$telp = $_POST['telp'];
$alamat = $_POST['alamat'];
$foto = $_FILES['foto']['name'];
$tmp = $_FILES['foto']['tmp_name'];
$fotobaru = date('dmYHis').$foto;
$path = "images/".$fotobaru;
if(move_uploaded_file($tmp, $path)){
$sql = $pdo->prepare("INSERT INTO siswa(nis, nama, jenis_kelamin, telp, alamat, foto) VALUES(:nis,:nama,:jk,:telp,:alamat,:foto)");
$sql->bindParam(':nis', $nis);
$sql->bindParam(':nama', $nama);
$sql->bindParam(':jk', $jenis_kelamin);
$sql->bindParam(':telp', $telp);
$sql->bindParam(':alamat', $alamat);
$sql->bindParam(':foto', $fotobaru);
$sql->execute();
if($sql){
header("location: index.php");
}else{
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
echo "<br><a href='form_simpan.php'>Kembali Ke Form</a>";
}
}else{
echo "Maaf, Gambar gagal untuk diupload.";
echo "<br><a href='form_simpan.php'>Kembali Ke Form</a>";
}
?>
proses_ubah.php
<?php
include "koneksi.php";
$id = $_GET['id'];
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$telp = $_POST['telp'];
$alamat = $_POST['alamat'];
$foto = $_FILES['foto']['name'];
$tmp = $_FILES['foto']['tmp_name'];
if(empty($foto)){
$sql = $pdo->prepare("UPDATE siswa SET nis=:nis, nama=:nama, jenis_kelamin=:jk, telp=:telp, alamat=:alamat WHERE id=:id");
$sql->bindParam(':nis', $nis);
$sql->bindParam(':nama', $nama);
$sql->bindParam(':jk', $jenis_kelamin);
$sql->bindParam(':telp', $telp);
$sql->bindParam(':alamat', $alamat);
$sql->bindParam(':id', $id);
$execute = $sql->execute();
if($sql){
header("location: index.php");
}else{
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>";
}
}else{
$fotobaru = date('dmYHis').$foto;
$path = "images/".$fotobaru;
if(move_uploaded_file($tmp, $path)){
$sql = $pdo->prepare("SELECT foto FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$sql->execute();
$data = $sql->fetch();
if(is_file("images/".$data['foto']))
unlink("images/".$data['foto']);
$sql = $pdo->prepare("UPDATE siswa SET nis=:nis, nama=:nama, jenis_kelamin=:jk, telp=:telp, alamat=:alamat, foto=:foto WHERE id=:id");
$sql->bindParam(':nis', $nis);
$sql->bindParam(':nama', $nama);
$sql->bindParam(':jk', $jenis_kelamin);
$sql->bindParam(':telp', $telp);
$sql->bindParam(':alamat', $alamat);
$sql->bindParam(':foto', $fotobaru);
$sql->bindParam(':id', $id);
$execute = $sql->execute();
if($sql){
header("location: index.php");
}else{
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>";
}
}else{
echo "Maaf, Gambar gagal untuk diupload.";
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>";
}
}
?>
DDL.sql
CREATE TABLE siswa (
id INT(11) NOT NULL AUTO_INCREMENT,
nis VARCHAR(11) NOT NULL,
nama VARCHAR(50) NOT NULL,
jenis_kelamin VARCHAR(10) NOT NULL,
telp VARCHAR(15) NOT NULL,
alamat TEXT NOT NULL,
foto VARCHAR(200) NOT NULL,
CONSTRAINT PK_id_siswa PRIMARY KEY (id)
);
Tampilan Website
Daftar siswa
Form tambah
Form edit
Komentar
Posting Komentar