
Membuat CRUD dengan Upload Gambar
Tutorial langkah demi langkah membuat aplikasi CRUD (Create, Read, Update, Delete) dengan fitur upload gambar menggunakan PHP dan MySQL.
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:
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:
<?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:
<?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:
<?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! 🚀