Membuat
Aplikasi CRUD Sederhana dengan PHP dan MySQL.
Seperti judulnya yaitu Membuat Aplikasi CRUD (Create, Read, Update, Delete)
Sederhana dengan PHP dan MySQL. Jadi nanti kita akan membuat Aplikasi
sederhanya bagaimana cara Create/insert data ke database,
Read/Select/Menampilkan data dari database, Update/edit data dari database, dan
Delete/hapus data dari database dengan menggunakan bahasa pemrograman PHP dan
database MySQL.
Tutorial
ini saya buat sangat mudah agar Anda yang pemula bisa mempelajarinya dengan
mudah. Karena ini hanya basicnya saja, jadi tidak ada yang namanya kemanan
dalam query ke database, saya bua sangat sederhana agar mudah dipelajari dengan
mudah.
Syarat-syarat:
1. System operasi
windows 7
2. Memiliki
Program XAMPP
3. Mengetahui
dasar-dasar XAMPP
# Step
1. Database
Buatlah database pada XAMPP
dengan nama Sesuai Keinginan anda akan tetapi saat ini saya contohkan adalah crud
Setelah Database dibuat maka
buatlah table dengan kode script dibawah ini:
CREATE
TABLE `siswa` (
`siswa_id` int(11) NOT NULL auto_increment,
`siswa_nis` int(20) NOT NULL,
`siswa_nama` varchar(50) NOT NULL,
`siswa_kelas` varchar(10) NOT NULL,
`siswa_jurusan` varchar(30) NOT NULL,
PRIMARY KEY
(`siswa_id`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8
AUTO_INCREMENT=7 ;
Dari script
SQL di atas Anda akan mendapatkan sebuah table dengan namasiswa dengan
field siswa_id,
siswa_nis, siswa_nama, siswa_kelas, siswa_jurusan.
# Step 2.
Koneksi Ke Database
Tahap selanjutnya adalah
melakukan koneksi ke database, file untuk koneksi ke database adalah koneksi.php.
Cara menyimpannya buka
c://xampp/htdocs/ dan buat folder “crud” simpan file tersebut didalam c://xampp/htdocs/crud/
Silahkan
buat file baru dan beri nama koneksi.php kemudian isi dari file ini seperti di bawah
ini:
<?php
$host
= "localhost";
$user
= "root";
$pass
= "root";
$name
= "crud";
$koneksi
= mysql_connect($host, $user, $pass) or die("Koneksi ke database
gagal!");
mysql_select_db($name,
$koneksi) or die("Tidak ada database yang dipilih!");
?>
Silahkan
simpan dengan nama koneksi.php dan jangan lupa merubah detail koneksinya, misalkan
passwordnya beda ya silahkan diganti dengan password Anda.
# Step 3. Menampilkan
Data / Read
Tahap
ketiga adalah menampilkan data dari database atau jika dalam singkatan CRUD
maka kali ini adalah R -> Read.
Untuk
menampilkan data, kita akan membuat file dengan nama index.php. Dan isi dari file index.php adalah script
di bawah ini:
<html>
<head>
<title>Simple CRUD by
jarkom-iwanriopurba.web.id</title>
</head>
<body>
<h2>Simple CRUD by
jarkom-iwanriopurba.web.id</h2>
<p><a
href="index.php">Beranda</a> / <a
href="siswa/tambah.php">Tambah Data Siswa</a> / <a
href="guru/tambahguru.php">Tambah Data Guru</a></p>
<h3>Data Siswa</h3>
<table cellpadding="5"
cellspacing="0" border="1">
<tr bgcolor="#CCCCCC">
<th>No.</th>
<th>NIS</th>
<th>Nama Lengkap</th>
<th>Kelas</th>
<th>Jurusan</th>
<th>Opsi</th>
</tr>
<?php
//iclude file koneksi ke database
include('koneksi.php');
//query ke database dg SELECT table siswa
diurutkan berdasarkan NIS paling besar
$query = mysql_query("SELECT * FROM
siswa ORDER BY siswa_nis DESC") or die(mysql_error());
//cek, apakakah hasil query di atas
mendapatkan hasil atau tidak (data kosong atau tidak)
if(mysql_num_rows($query) == 0){ //ini artinya jika data hasil query
di atas kosong
//jika data kosong, maka akan
menampilkan row kosong
echo '<tr><td
colspan="6">Tidak ada data!</td></tr>';
}else{ //else
ini artinya jika data hasil query ada (data diu database tidak kosong)
//jika data tidak kosong, maka
akan melakukan perulangan while
$no = 1; //membuat variabel $no untuk membuat nomor urut
while($data =
mysql_fetch_assoc($query)){ //perulangan
while dg membuat variabel $data yang akan mengambil data di database
//menampilkan row
dengan data di database
echo '<tr>';
echo
'<td>'.$no.'</td>'; //menampilkan
nomor urut
echo
'<td>'.$data['siswa_nis'].'</td>'; //menampilkan
data nis dari database
echo
'<td>'.$data['siswa_nama'].'</td>'; //menampilkan
data nama lengkap dari database
echo
'<td>'.$data['siswa_kelas'].'</td>'; //menampilkan data kelas dari database
echo
'<td>'.$data['siswa_jurusan'].'</td>'; //menampilkan data jurusan dari database
echo
'<td><a href="siswa/edit.php?id='.$data['siswa_id'].'">Edit</a>
/ <a href="siswa/hapus.php?id='.$data['siswa_id'].'"
onclick="return confirm(\'Yakin?\')">Hapus</a></td>'; //menampilkan link edit dan hapus
dimana tiap link terdapat GET id -> ?id=siswa_id
echo '</tr>';
$no++; //menambah jumlah nomor urut setiap
row
}
}
?>
</table>
<h3>Data Guru</h3>
<table cellpadding="5"
cellspacing="0" border="1">
<tr bgcolor="#CCCCCC">
<th>No.</th>
<th>NIP</th>
<th>Nama Lengkap</th>
<th>Mata
Pelajaran</th>
<th>Opsi</th>
</tr>
<?php
//iclude file koneksi ke database
include('koneksi.php');
//query ke database dg SELECT table siswa
diurutkan berdasarkan NIS paling besar
$query = mysql_query("SELECT * FROM guru
ORDER BY guru_nip DESC") or die(mysql_error());
//cek, apakakah hasil query di atas
mendapatkan hasil atau tidak (data kosong atau tidak)
if(mysql_num_rows($query) == 0){ //ini artinya jika data hasil query
di atas kosong
//jika data kosong, maka akan
menampilkan row kosong
echo '<tr><td
colspan="6">Tidak ada data!</td></tr>';
}else{ //else
ini artinya jika data hasil query ada (data diu database tidak kosong)
//jika data tidak kosong, maka
akan melakukan perulangan while
$no = 1; //membuat variabel $no untuk membuat nomor urut
while($data =
mysql_fetch_assoc($query)){ //perulangan
while dg membuat variabel $data yang akan mengambil data di database
//menampilkan row
dengan data di database
echo '<tr>';
echo
'<td>'.$no.'</td>'; //menampilkan
nomor urut
echo
'<td>'.$data['guru_nip'].'</td>'; //menampilkan
data nip dari database
echo
'<td>'.$data['guru_nama'].'</td>'; //menampilkan
data nama lengkap dari database
echo
'<td>'.$data['guru_mapel'].'</td>'; //menampilkan
data mapel dari database
echo
'<td><a
href="guru/editguru.php?id='.$data['guru_id'].'">Edit</a> /
<a href="guru/hapusguru.php?id='.$data['guru_id'].'"
onclick="return confirm(\'Yakin?\')">Hapus</a></td>'; //menampilkan link edit dan hapus
dimana tiap link terdapat GET id -> ?id=siswa_id
echo '</tr>';
$no++; //menambah jumlah nomor urut setiap
row
}
}
?>
</table>
</body>
</html>
Jangan
lupa disimpan za..
Untuk penjelasan Script sudah saya masukkan pada Script di atas,
silahkan di baca sendiri kegunaan tiap-tiap baris kode.
Tampilan
dari file index.php bisa terlihat seperti gambar di bawah ini:
Seperti
terlihat pada gambar di atas terdapat tulisan “Tidak ada data!” yang artinya
memang data pada database masih kosong.
# Step 4. Memasukkan
Data / Create
Tahap
ke empat adalah meng-insertkan data ke database dengan perintan INSERT INTO.
Pertama tertu saja kita buat Form utuk memasukkan datanya.
Simpan file
ini di c://xampp/htdocs/crud/siswa.
Jadi didalam
folder “crud” buat folder lagi bernama “siswa” dan simpanlah file tersebut
didalam folder “siswa”
Form
ini akan kita simpan dalam file tambah.php dengan script seperti di bawah ini:
<!DOCTYPE html>
<html>
<head>
<title>Simple
CRUD by jarkom-iwanriopurba.web.id</title>
</head>
<body>
<h2>Simple
CRUD by jarkom-iwanriopurba.web.id</h2>
<p><a
href="../index.php">Beranda</a> / <a
href="../siswa/tambah.php">Tambah Data Siswa</a> / <a
href="../guru/tambahguru.php">Tambah Data Guru</a></p>
<h3>Tambah
Data Siswa</h3>
<form
action="tambah-proses.php" method="post">
<table
cellpadding="3" cellspacing="0">
<tr>
<td>NIS</td>
<td>:</td>
<td><input
type="text" name="nis" required></td>
</tr>
<tr>
<td>Nama
Lengkap</td>
<td>:</td>
<td><input
type="text" name="nama" size="30"
required></td>
</tr>
<tr>
<td>Kelas</td>
<td>:</td>
<td>
<select
name="kelas" required>
<option
value="">Pilih Kelas</option>
<option
value="X">X</option>
<option
value="XI">XI</option>
<option
value="XII">XII</option>
</select>
</td>
</tr>
<tr>
<td>Jurusan</td>
<td>:</td>
<td>
<select
name="jurusan" required>
<option
value="">Pilih Jurusan</option>
<option
value="Teknik Komputer dan Jaringan">Teknik Komputer dan
Jaringan</option>
<option
value="Multimedia">Multimedia</option>
<option
value="Akuntansi">Akuntansi</option>
<option
value="Perbankan">Perbankan</option>
<option
value="Pemasaran">Pemasaran</option>
</select>
</td>
</tr>
<tr>
<td> </td>
<td></td>
<td><input
type="submit" name="tambah"
value="Tambah"></td>
</tr>
</table>
</form>
</body>
</html>
Dari Form
tidak ada yang spesial, hanya form tersebut action nya tambah-proses.php.
Tampilannya
seperti gambar di bawah ini:
Nah ketika form tersebut di
isi, dan tombol Tambah di klik, maka akan menjalankan file tambah-proses.php.
Simpan file
ini di c://xampp/htdocs/crud/siswa.
sehingga
didalam folder “crud” buat folder lagi bernama “siswa” dan simpanlah file
tersebut didalam folder “siswa”
Jadi
selanjutnya buat file baru dengan nama tambah-proses.php dan isinya adalah script di bawah ini:
<?php
//mulai proses tambah
data
//cek dahulu, jika
tombol tambah di klik
if(isset($_POST['tambah'])){
//inlcude atau memasukkan file koneksi ke database
include('../koneksi.php');
//jika tombol tambah benar di klik maka lanjut prosesnya
$nis =
$_POST['nis']; //membuat variabel
$nis dan datanya dari inputan NIS
$nama =
$_POST['nama']; //membuat variabel $nama
dan datanya dari inputan Nama Lengkap
$kelas =
$_POST['kelas']; //membuat variabel
$kelas dan datanya dari inputan dropdown Kelas
$jurusan =
$_POST['jurusan']; //membuat
variabel $jurusan dan datanya dari inputan dropdown Jurusan
//melakukan query dengan perintah INSERT INTO untuk
memasukkan data ke database
$input = mysql_query("INSERT INTO siswa VALUES(NULL,
'$nis', '$nama', '$kelas', '$jurusan')") or die(mysql_error());
//jika query input sukses
if($input){
echo 'Data berhasil di tambahkan! '; //Pesan jika proses tambah
sukses
echo '<a href="../siswa/tambah.php">Kembali</a>'; //membuat Link untuk kembali ke halaman
tambah
}else{
echo 'Gagal menambahkan data! '; //Pesan jika proses tambah
gagal
echo '<a
href="../siswa/tambah.php">Kembali</a>'; //membuat Link untuk kembali ke halaman tambah
}
}else{ //jika tidak terdeteksi tombol tambah di klik
//redirect atau dikembalikan ke halaman tambah
echo
'<script>window.history.back()</script>';
}
?>
Beres
deh untuk tambah data atau Insert data ke database.
Penjelasan kode juga sudah saya masukkan pada file tersebut,
silahkan baca sendiri
# Step 5. Update
Data (Update/Edit)
Tahap ini adalah untuk
melakukan edit data pada database. File yang akan kita buat adalah file edit.php.
Link
untuk menuju halaman edit adalah pada file index.php dimana disana pada tabel kolom Opsi ada
Link edit dan hapus. Dimana untuk Link edit yang di
klik Anda akan mendapatkan Link seperti <a href=”crud/guru/edit.php?id=12″>Edit</a> dimanaid ini
adalah nilai dari siswa_id. Jika
id tersebut adalah 12, maka akan menampilkan data siswa dimana siswa_id=12.
Oke,
silahkan buat file edit.php dan paste script di bawah ini:
Simpan file ini di c://xampp/htdocs/crud/siswa.
<!DOCTYPE html>
<html>
<head>
<title>Simple CRUD
by jarkom-iwanriopurba.web.id</title>
</head>
<body>
<h2>Simple CRUD by
jarkom-iwanriopurba.web.id</h2>
<p><a
href="../index.php">Beranda</a> / <a
href="../siswa/tambah.php">Tambah Data Siswa</a> / <a
href="../guru/tambahguru.php">Tambah Data Guru</a></p>
<h3>Edit Data
Siswa</h3>
<?php
//proses mengambil data
ke database untuk ditampilkan di form edit berdasarkan siswa_id yg didapatkan
dari GET id -> edit.php?id=siswa_id
//include atau
memasukkan file koneksi ke database
include('../koneksi.php');
//membuat variabel $id
yg nilainya adalah dari URL GET id -> edit.php?id=siswa_id
$id = $_GET['id'];
//melakukan query ke
database dg SELECT table siswa dengan kondisi WHERE siswa_id = '$id'
$show =
mysql_query("SELECT * FROM siswa WHERE siswa_id='$id'");
//cek apakah data dari
hasil query ada atau tidak
if(mysql_num_rows($show)
== 0){
//jika tidak
ada data yg sesuai maka akan langsung di arahkan ke halaman depan atau beranda
-> index.php
echo
'<script>window.history.back()</script>';
}else{
//jika data
ditemukan, maka membuat variabel $data
$data =
mysql_fetch_assoc($show); //mengambil
data ke database yang nantinya akan ditampilkan di form edit di bawah
}
?>
<form
action="../siswa/edit-proses.php" method="post">
<input
type="hidden" name="id" value="<?php echo $id;
?>"> <!-- membuat
inputan hidden dan nilainya adalah siswa_id -->
<table
cellpadding="3" cellspacing="0">
<tr>
<td>NIS</td>
<td>:</td>
<td><input
type="text" name="nis" value="<?php echo
$data['siswa_nis']; ?>" required></td> <!-- value diambil dari hasil query -->
</tr>
<tr>
<td>Nama
Lengkap</td>
<td>:</td>
<td><input
type="text" name="nama" size="30"
value="<?php echo $data['siswa_nama']; ?>"
required></td> <!-- value diambil dari hasil query -->
</tr>
<tr>
<td>Kelas</td>
<td>:</td>
<td>
<select
name="kelas" required>
<option
value="">Pilih Kelas</option>
<option
value="X" <?php if($data['siswa_kelas'] == 'X'){ echo 'selected';
} ?>>X</option> <!-- jika
data di database sama dengan value maka akan terselect/terpilih -->
<option
value="XI" <?php if($data['siswa_kelas'] == 'XI'){ echo
'selected'; } ?>>XI</option> <!--
jika data di database sama dengan value maka akan terselect/terpilih -->
<option
value="XII" <?php if($data['siswa_kelas'] == 'XII'){ echo
'selected'; } ?>>XII</option> <!--
jika data di database sama dengan value maka akan terselect/terpilih -->
</select>
</td>
</tr>
<tr>
<td>Jurusan</td>
<td>:</td>
<td>
<select
name="jurusan" required>
<option
value="">Pilih Jurusan</option>
<option
value="Teknik Komputer dan Jaringan" <?php
if($data['siswa_jurusan'] == 'Teknik Komputer dan Jaringan'){ echo 'selected';
} ?>>Teknik Komputer dan Jaringan</option> <!-- jika data di database sama dengan value maka akan terselect/terpilih
-->
<option
value="Multimedia" <?php if($data['siswa_jurusan'] ==
'Multimedia'){ echo 'selected'; } ?>>Multimedia</option> <!-- jika data di database sama
dengan value maka akan terselect/terpilih -->
<option
value="Akuntansi" <?php if($data['siswa_jurusan'] == 'Akuntansi'){
echo 'selected'; } ?>>Akuntansi</option> <!-- jika data di database sama dengan value maka akan
terselect/terpilih -->
<option
value="Perbankan" <?php if($data['siswa_jurusan'] == 'Perbankan'){
echo 'selected'; } ?>>Perbankan</option> <!-- jika data di database sama dengan value maka akan
terselect/terpilih -->
<option
value="Pemasaran" <?php if($data['siswa_jurusan'] == 'Pemasaran'){
echo 'selected'; } ?>>Pemasaran</option> <!-- jika data di database sama dengan value maka akan
terselect/terpilih -->
</select>
</td>
</tr>
<tr>
<td> </td>
<td></td>
<td><input
type="submit" name="simpan"
value="Simpan"></td>
</tr>
</table>
</form>
</body>
</html>
Jika sudah
silahkan simpan, dan hasil tampilan dari script di atas seperti gambar di bawah
ini:
Nah, form edit diatas jika di
klik tombol Simpan, maka akan menjalankan file edit-proses.php, dimana file ini adalah proses
untuk melakukan update data ke database.
Buat
file edit-proses.php dan paste script di bawah ini:
Simpan file ini di c://xampp/htdocs/crud/siswa.
<?php
//mulai proses edit data
//cek dahulu, jika tombol
simpan di klik
if(isset($_POST['simpan'])){
//inlcude atau memasukkan file koneksi ke database
include('../koneksi.php');
//jika tombol tambah benar di klik maka lanjut prosesnya
$id =
$_POST['id']; //membuat variabel
$id dan datanya dari inputan hidden id
$nis =
$_POST['nis']; //membuat variabel
$nis dan datanya dari inputan NIS
$nama =
$_POST['nama']; //membuat variabel $nama
dan datanya dari inputan Nama Lengkap
$kelas =
$_POST['kelas']; //membuat variabel
$kelas dan datanya dari inputan dropdown Kelas
$jurusan =
$_POST['jurusan']; //membuat
variabel $jurusan dan datanya dari inputan dropdown Jurusan
//melakukan query dengan perintah UPDATE untuk update
data ke database dengan kondisi WHERE siswa_id='$id' <- diambil dari inputan
hidden id
$update = mysql_query("UPDATE siswa SET
siswa_nis='$nis', siswa_nama='$nama', siswa_kelas='$kelas',
siswa_jurusan='$jurusan' WHERE siswa_id='$id'") or die(mysql_error());
//jika query update sukses
if($update){
echo 'Data berhasil di simpan! '; //Pesan jika proses simpan sukses
echo '<a
href="../siswa/edit.php?id='.$id.'">Kembali</a>'; //membuat Link untuk kembali ke halaman
edit
}else{
echo 'Gagal menyimpan data! '; //Pesan jika proses simpan gagal
echo '<a
href="../siswa/edit.php?id='.$id.'">Kembali</a>'; //membuat Link untuk kembali ke halaman
edit
}
}else{ //jika tidak terdeteksi tombol simpan di klik
//redirect atau dikembalikan ke halaman edit
echo
'<script>window.history.back()</script>';
}
?>
Silahkan
simpan. Dan seperti biasa penjelasan tiap baris kode sudah saya masukkan di
dalamnya, silahkan baca.
# Step 6. Hapus
Data (Delete)
Tahap
ke enam ini adalah yang terakhir, yaitu melakukan perintah Delete untuk
menghapus data dari database.
Simpan file ini di c://xampp/htdocs/crud/siswa.
file yang akan kita buat adalah hapus.php, dan isi scriptnya seperti di bawah ini:
<?php
//memulai proses hapus data
//cek dahulu, apakah benar URL
sudah ada GET id -> hapus.php?id=siswa_id
if(isset($_GET['id'])){
//inlcude atau memasukkan file koneksi ke database
include('../koneksi.php');
//membuat variabel $id yg bernilai dari URL GET id ->
hapus.php?id=siswa_id
$id = $_GET['id'];
//cek ke database apakah ada data siswa dengan
siswa_id='$id'
$cek = mysql_query("SELECT siswa_id FROM siswa WHERE
siswa_id='$id'") or die(mysql_error());
//jika data siswa tidak ada
if(mysql_num_rows($cek) == 0){
//jika data tidak ada, maka redirect atau
dikembalikan ke halaman beranda
echo
'<script>window.history.back()</script>';
}else{
//jika data ada di database, maka melakukan
query DELETE table siswa dengan kondisi WHERE siswa_id='$id'
$del = mysql_query("DELETE FROM siswa
WHERE siswa_id='$id'");
//jika query DELETE berhasil
if($del){
echo 'Data siswa berhasil di
hapus! '; //Pesan jika
proses hapus berhasil
echo '<a
href="../index.php">Kembali</a>'; //membuat Link untuk kembali ke halaman beranda
}else{
echo 'Gagal menghapus data! '; //Pesan jika proses hapus gagal
echo '<a
href="../index.php">Kembali</a>'; //membuat Link untuk kembali ke halaman beranda
}
}
}else{
//redirect atau dikembalikan ke halaman beranda
echo
'<script>window.history.back()</script>';
}
?>
Jangan lupa
disimpan.
Sedikit
penjelasan untuk script hapus di atas. Jika Anda mengklik tombol/link hapus
pada file index.php, Anda akan mendapatkan Link seperti in localhost/crud/siswa/hapus.php?id=12, ini artinya Script akan mendeteksi dari URL
tersebut berapa id nya, misalkan disana id=12, maka script akan menghapus data
siswa dimana siswa_id=12.
S E K I A N
sumber:http://tutorialweb.net/membuat-aplikasi-crud-sederhana-dengan-php-dan-mysql/