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:

  1. form_simpan.php
  2. form_ubah.php
  3. index.php
  4. koneksi.php
  5. proses_hapus.php
  6. proses_simpan.php
  7. proses_ubah.php
  8. 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


Sekian dari blog ini, terima kasih sudah membaca!




Komentar

Postingan populer dari blog ini

Tugas 1 (Membuat Curriculum Vitae dengan HTML)

CRUD - 2 Pendaftaran Siswa Baru

Evaluasi Akhir Semester Pemrograman Web 2022 (Kelompok)