Aplikasi CRUD Upload
Pada blog ini saya membuat aplikasi CRUD untuk menambah, mengubah, dan menghapus data mahasiswa. Berikut adalah hasil aplikasi CRUD.
Data Siswa
Tambah Data
Ubah Data
File php bisa didownload di sini (github)
Source Code
index.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>Aplikasi CRUD Plus Upload Gambar dengan PHP</title> | |
</head> | |
<body> | |
<h1>Data Siswa</h1> | |
<a href="form_simpan.php">Tambah Data</a><br><br> | |
<table border="1" 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 | |
// Load file koneksi.php | |
include "koneksi.php"; | |
// Buat query untuk menampilkan semua data siswa | |
$sql = $pdo->prepare("SELECT * FROM siswa"); | |
$sql->execute(); // Eksekusi querynya | |
while($data = $sql->fetch()){ // Ambil semua data dari hasil eksekusi $sql | |
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> |
form_simpan.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>Aplikasi CRUD dengan PHP</title> | |
</head> | |
<body> | |
<h1>Tambah Data Siswa</h1> | |
<form method="post" action="proses_simpan.php" enctype="multipart/form-data"> | |
<table cellpadding="8"> | |
<tr> | |
<td>NIS</td> | |
<td><input type="text" name="nis"></td> | |
</tr> | |
<tr> | |
<td>Nama</td> | |
<td><input type="text" name="nama"></td> | |
</tr> | |
<tr> | |
<td>Jenis Kelamin</td> | |
<td> | |
<input type="radio" name="jenis_kelamin" value="Laki-laki"> Laki-laki | |
<input type="radio" name="jenis_kelamin" value="Perempuan"> Perempuan | |
</td> | |
</tr> | |
<tr> | |
<td>Telepon</td> | |
<td><input type="text" name="telp"></td> | |
</tr> | |
<tr> | |
<td>Alamat</td> | |
<td><textarea name="alamat"></textarea></td> | |
</tr> | |
<tr> | |
<td>Foto</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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>Aplikasi CRUD dengan PHP</title> | |
</head> | |
<body> | |
<h1>Ubah Data Siswa</h1> | |
<?php | |
// Load file koneksi.php | |
include "koneksi.php"; | |
// Ambil data NIS yang dikirim oleh index.php melalui URL | |
$id = $_GET['id']; | |
// Query untuk menampilkan data siswa berdasarkan ID yang dikirim | |
$sql = $pdo->prepare("SELECT * FROM siswa WHERE id=:id"); | |
$sql->bindParam(':id', $id); | |
$sql->execute(); // Eksekusi query insert | |
$data = $sql->fetch(); // Ambil semua data dari hasil eksekusi $sql | |
?> | |
<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> | |
koneksi.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$host = "localhost"; // Nama hostnya | |
$username = "root"; // Username | |
$password = ""; // Password (Isi jika menggunakan password) | |
$database = "database_mahasiswa"; // Nama databasenya | |
// Koneksi ke MySQL dengan PDO | |
$pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password); | |
?> |
proses_hapus.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Load file koneksi.php | |
include "koneksi.php"; | |
// Ambil data NIS yang dikirim oleh index.php melalui URL | |
$id = $_GET['id']; | |
// Query untuk menampilkan data siswa berdasarkan ID yang dikirim | |
$sql = $pdo->prepare("SELECT foto FROM siswa WHERE id=:id"); | |
$sql->bindParam(':id', $id); | |
$sql->execute(); // Eksekusi query insert | |
$data = $sql->fetch(); // Ambil semua data dari hasil eksekusi $sql | |
// Cek apakah file fotonya ada di folder images | |
if(is_file("images/".$data['foto'])) // Jika foto ada | |
unlink("images/".$data['foto']); // Hapus foto yang telah diupload dari folder images | |
// Query untuk menghapus data siswa berdasarkan ID yang dikirim | |
$sql = $pdo->prepare("DELETE FROM siswa WHERE id=:id"); | |
$sql->bindParam(':id', $id); | |
$execute = $sql->execute(); // Eksekusi / Jalankan query | |
if($execute){ // Cek jika proses simpan ke database sukses atau tidak | |
// Jika Sukses, Lakukan : | |
header("location: index.php"); // Redirect ke halaman index.php | |
}else{ | |
// Jika Gagal, Lakukan : | |
echo "Data gagal dihapus. <a href='index.php'>Kembali</a>"; | |
} | |
?> |
proses_simpan.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Load file koneksi.php | |
include "koneksi.php"; | |
// Ambil Data yang Dikirim dari Form | |
$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']; | |
// Rename nama fotonya dengan menambahkan tanggal dan jam upload | |
$fotobaru = date('dmYHis').$foto; | |
// Set path folder tempat menyimpan fotonya | |
$path = "images/".$fotobaru; | |
// Proses upload | |
if(move_uploaded_file($tmp, $path)){ // Cek apakah gambar berhasil diupload atau tidak | |
// Proses simpan ke Database | |
$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(); // Eksekusi query insert | |
if($sql){ // Cek jika proses simpan ke database sukses atau tidak | |
// Jika Sukses, Lakukan : | |
header("location: index.php"); // Redirect ke halaman index.php | |
}else{ | |
// Jika Gagal, Lakukan : | |
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database."; | |
echo "<br><a href='form_simpan.php'>Kembali Ke Form</a>"; | |
} | |
}else{ | |
// Jika gambar gagal diupload, Lakukan : | |
echo "Maaf, Gambar gagal untuk diupload."; | |
echo "<br><a href='form_simpan.php'>Kembali Ke Form</a>"; | |
} | |
?> |
proses_ubah.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Load file koneksi.php | |
include "koneksi.php"; | |
// Ambil data ID yang dikirim oleh form_ubah.php melalui URL | |
$id = $_GET['id']; | |
// Ambil Data yang Dikirim dari Form | |
$nis = $_POST['nis']; | |
$nama = $_POST['nama']; | |
$jenis_kelamin = $_POST['jenis_kelamin']; | |
$telp = $_POST['telp']; | |
$alamat = $_POST['alamat']; | |
// Ambil data foto yang dipilih dari form | |
$foto = $_FILES['foto']['name']; | |
$tmp = $_FILES['foto']['tmp_name']; | |
// Cek apakah user ingin mengubah fotonya atau tidak | |
if(empty($foto)){ // Jika user tidak memilih file foto pada form | |
// Lakukan proses update tanpa mengubah fotonya | |
// Proses ubah data ke Database | |
$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(); // Eksekusi / Jalankan query | |
if($sql){ // Cek jika proses simpan ke database sukses atau tidak | |
// Jika Sukses, Lakukan : | |
header("location: index.php"); // Redirect ke halaman index.php | |
}else{ | |
// Jika Gagal, Lakukan : | |
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database."; | |
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>"; | |
} | |
}else{ // Jika user memilih foto / mengisi input file foto pada form | |
// Lakukan proses update termasuk mengganti foto sebelumnya | |
// Rename nama fotonya dengan menambahkan tanggal dan jam upload | |
$fotobaru = date('dmYHis').$foto; | |
// Set path folder tempat menyimpan fotonya | |
$path = "images/".$fotobaru; | |
// Proses upload | |
if(move_uploaded_file($tmp, $path)){ // Cek apakah gambar berhasil diupload atau tidak | |
// Query untuk menampilkan data siswa berdasarkan ID yang dikirim | |
$sql = $pdo->prepare("SELECT foto FROM siswa WHERE id=:id"); | |
$sql->bindParam(':id', $id); | |
$sql->execute(); // Eksekusi query insert | |
$data = $sql->fetch(); // Ambil semua data dari hasil eksekusi $sql | |
// Cek apakah file foto sebelumnya ada di folder images | |
if(is_file("images/".$data['foto'])) // Jika foto ada | |
unlink("images/".$data['foto']); // Hapus file foto sebelumnya yang ada di folder images | |
// Proses ubah data ke Database | |
$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(); // Eksekusi / Jalankan query | |
if($sql){ // Cek jika proses simpan ke database sukses atau tidak | |
// Jika Sukses, Lakukan : | |
header("location: index.php"); // Redirect ke halaman index.php | |
}else{ | |
// Jika Gagal, Lakukan : | |
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database."; | |
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>"; | |
} | |
}else{ | |
// Jika gambar gagal diupload, Lakukan : | |
echo "Maaf, Gambar gagal untuk diupload."; | |
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>"; | |
} | |
} | |
?> |
Comments
Post a Comment