Membuat CRUD dengan Upload Gambar

Membuat CRUD dengan Upload Gambar

author

Teguh Bagas M

Web Developer

Tags

Share this post

Membuat CRUD dengan Upload Gambar di PHP dan MySQL

Pengenalan CRUD dengan Upload Gambar

CRUD adalah singkatan dari Create, Read, Update, dan Delete, yaitu operasi dasar dalam mengelola data dalam database. Dalam tutorial ini, kita akan menambahkan fitur upload gambar ke dalam aplikasi CRUD sederhana menggunakan PHP dan MySQL. Selain itu, kita akan menerapkan validasi untuk memastikan keamanan dan integritas data.

Persiapan Database

Pertama, buat database dan tabel yang diperlukan untuk menyimpan data beserta gambar:

database.sql
CREATE DATABASE db_kampus; USE db_kampus; CREATE TABLE mahasiswa ( id INT PRIMARY KEY AUTO_INCREMENT, nim VARCHAR(10) NOT NULL, nama VARCHAR(100) NOT NULL, jurusan VARCHAR(100) NOT NULL, alamat TEXT, gambar VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

Koneksi Database

Buat file koneksi.php untuk menghubungkan aplikasi dengan database:

koneksi.php
<?php $host = "localhost"; $user = "root"; $pass = ""; $db = "db_kampus"; $koneksi = mysqli_connect($host, $user, $pass, $db); if (!$koneksi) { die("Koneksi gagal: " . mysqli_connect_error()); } ?>

1. Create (Tambah Data dengan Upload Gambar)

Buat file tambah.php untuk form penambahan data:

tambah.php
<?php include 'koneksi.php'; if (isset($_POST['submit'])) { $nim = $_POST['nim']; $nama = $_POST['nama']; $jurusan = $_POST['jurusan']; $alamat = $_POST['alamat']; // Validasi file gambar $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["gambar"]["name"]); $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); $valid_extensions = array("jpg", "jpeg", "png", "gif"); if (!in_array($imageFileType, $valid_extensions)) { echo "Format gambar tidak valid. Hanya JPG, JPEG, PNG, dan GIF yang diperbolehkan."; exit(); } if (move_uploaded_file($_FILES["gambar"]["tmp_name"], $target_file)) { $gambar = basename($_FILES["gambar"]["name"]); } else { echo "Gagal mengupload gambar."; exit(); } $query = "INSERT INTO mahasiswa (nim, nama, jurusan, alamat, gambar) VALUES ('$nim', '$nama', '$jurusan', '$alamat', '$gambar')"; if (mysqli_query($koneksi, $query)) { header("Location: index.php"); } else { echo "Error: " . $query . "<br>" . mysqli_error($koneksi); } } ?> <!DOCTYPE html> <html> <head> <title>Tambah Mahasiswa</title> </head> <body> <h2>Tambah Data Mahasiswa</h2> <form method="POST" enctype="multipart/form-data"> <div> <label>NIM:</label> <input type="text" name="nim" required> </div> <div> <label>Nama:</label> <input type="text" name="nama" required> </div> <div> <label>Jurusan:</label> <input type="text" name="jurusan" required> </div> <div> <label>Alamat:</label> <textarea name="alamat"></textarea> </div> <div> <label>Upload Gambar:</label> <input type="file" name="gambar" required> </div> <button type="submit" name="submit">Simpan</button> </form> </body> </html>

2. Read (Tampil Data dengan Gambar)

Buat file index.php untuk menampilkan data:

index.php
<?php include 'koneksi.php'; $query = "SELECT * FROM mahasiswa"; $result = mysqli_query($koneksi, $query); ?> <!DOCTYPE html> <html> <head> <title>Data Mahasiswa</title> </head> <body> <h2>Data Mahasiswa</h2> <a href="tambah.php">Tambah Data</a> <table border="1"> <tr> <th>No</th> <th>NIM</th> <th>Nama</th> <th>Jurusan</th> <th>Alamat</th> <th>Gambar</th> <th>Aksi</th> </tr> <?php $no = 1; while ($row = mysqli_fetch_assoc($result)) { ?> <tr> <td><?php echo $no++; ?></td> <td><?php echo $row['nim']; ?></td> <td><?php echo $row['nama']; ?></td> <td><?php echo $row['jurusan']; ?></td> <td><?php echo $row['alamat']; ?></td> <td><img src="uploads/<?php echo $row['gambar']; ?>" width="100"></td> <td> <a href="edit.php?id=<?php echo $row['id']; ?>">Edit</a> <a href="hapus.php?id=<?php echo $row['id']; ?>" onclick="return confirm('Yakin hapus data?')">Hapus</a> </td> </tr> <?php } ?> </table> </body> </html>

Kesimpulan

Dengan mengikuti tutorial ini, Anda telah berhasil membuat CRUD sederhana dengan fitur upload gambar menggunakan PHP dan MySQL. Pastikan untuk menerapkan validasi dan keamanan tambahan seperti filter input dan autentikasi pengguna agar aplikasi lebih aman. Selamat mencoba! 🚀