Cara Membuat Input, View, Update, Delete Data (CRUD) dengan PDO PHP & MySQL
Ketika kita kuliah di jurusan yang ada hubungannya dengan coding, pasti
suatu saat kita akan mengambil mata kuliah yang ada hubungannya dengan
database alias basis data. Tentu saja dalam mata kuliah tersebut kita
wajib mempelajari SQL (Structured Query Language), sebuah bahasa query
untuk membuat RDBMS (Relational Database Management Systems) bertekuk
lutut di hadapan kita.
Setelah kita paham tentang SQL tiba saatnya sang
dosen memberi hadiah berupa tugas, tentu saja tugas yang diberikan tak
pernah kita kerjakan sebelumnya yaitu mengaplikasikan SQL yang telah
kita kuasai ke dalam sebuah bahasa pemrograman yang biasa disebut dengan
PHP. Tapi tenang saja, berbekal ilmu dari mbah Google dan sedikit
kreatifitas kita akan menjawab tantangan dosen tersebut.
A. Persiapan, Apa dan Bagaimana?
![](http://www.apachefriends.org/images/5600.jpg)
Jika
kita berhadapan dengan bahasa pemrograman web mau tidak mau kita harus
tau tentang HTML. Selain itu kita juga harus menginstal web server di
komputer (atau laptop) kita. Web server PHP yang paling banyak digunakan
dan mudah pengoperasiannya adalah XAMPP. XAMPP adalah software web
server dimana Apache (server PHP) dan MySQL terintegrasi didalamnya,
sehingga kita tidak perlu repot-repot menginstal Apache dan MySQL secara
terpisah. Mengenai cara instalasi XAMPP silakan cari di Google karena
di artikel ini hanya fokus pada masalah membuat aplikasi input, view,
update dan delete data berbasis web dengan menggunakan PHP dan MySQL.
1. Pertama, buka XAMPP yang sudah kita instal lalu kita klik tombol
start di sebelah Apache dan tombol start di sebelah MySQL sampai muncul
tanda running. kemudian kita buka browser kesayangan kita baik itu
Mozilla Firefox, Google Chrome atau lainnya, lalu arahkan ke alamat
http://localhost/phpmyadmin, sampai disini kita telah berada di halaman
PHPMyAdmin.
2. Buatlah sebuah database sesuai keinginan kita misalnya kita beri nama
'biodata' (tanpa tanda petik). Setelah itu, kita buat table baru yang
kita beri nama 'tabel_biodata' misalnya. contoh SQLnya seperti berikut
ini:
1
2
3
4
5
6
7
8
|
CREATE TABLE IF NOT EXISTS `tabel_biodata` (
`id` int (11) NOT NULL AUTO_INCREMENT,
`nama` varchar (50) NOT NULL ,
`jenis_kelamin` enum( 'Laki-Laki' , 'Perempuan' ) NOT NULL ,
`alamat` varchar (100) NOT NULL ,
`no_hp` varchar (12) NOT NULL ,
PRIMARY KEY (`id`)
);
|
3. buat sebuah folder di folder C:\xampp\htdocs\ misalnya kita beri nama
'biodata'. Kemudian buka text editor kesayangan kita baik itu
Notepad++, Adobe Dreamweaver, Geany, Gedit atau yang lainnya. Sekarang
kita buat file untuk koneksi ke database mysql, Ketikkan
mantra-mantra code program berikut ini (jangan di copy-paste loch!):
1
2
3
4
5
6
7
8
9
10
11
|
<?php
$dsn = "mysql:dbname=biodata;host=localhost" ;
$user = "root" ;
$pass = "" ;
try {
$dbh = new PDO( $dsn , $user , $pass );
} catch (PDOException $e ) {
echo "Koneksi ke database gagal: " . $e ->getMessage();
}
?>
|
lalu kita simpan dengan nama 'connect.php' di dalam folder 'C:\xampp\htdocs\biodata'.
4. Selanjutnya kita buat file baru untuk input data, ketikkan code program berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<h1 align= "center" >Input Biodata</h1>
<fieldset style= "width: 50%; margin: auto;" >
<legend>Form Input Biodata</legend>
<form action= "simpan.php" method= "post" >
<p>
Nama Lengkap
<input type= "text" name= "nama" required />
</p>
<p>
Jenis Kelamin
<input type= "radio" name= "jenis_kelamin" value= "Laki-Laki" id= "laki-laki" /><label for = "laki-laki" >Laki-Laki</label>
<input type= "radio" name= "jenis_kelamin" value= "Perempuan" id= "perempuan" /><label for = "perempuan" >Perempuan</label>
</p>
<p>
Alamat Lengkap
<textarea name= "alamat" cols= "50" required></textarea>
</p>
<p>
Nomor Handphone
<input type= "text" name= "no_hp" required />
</p>
<p>
<input type= "submit" value= "Simpan" />
<input type= "reset" value= "Reset" onclick= "return confirm('hapus data yang telah diinput?')" >
</p>
</form>
</fieldset>
<center><a href= "index.php" >≪ Tabel Biodata</a></center>
|
kita simpan dengan nama 'input.php', lalu coba kita akses di alamat
'http://localhost/biodata/input.php'. Tapi ini masih belum bisa
menyimpan data, agar data kita bisa tersimpan kita lanjut ke langkah
berikutnya.
5. Setelah kita membuat tampilan untuk input data, kita buat file untuk
menyimpan data yang kita inputkan. Code programnya seperti berikut ini :
1
2
3
4
5
6
7
8
9
10
|
<?php
include 'connect.php' ;
if (isset( $_POST )) {
$sql = "INSERT INTO tabel_biodata VALUE ('', '$_POST[nama]', '$_POST[jenis_kelamin]', '$_POST[alamat]', '$_POST[no_hp]')" ;
$dbh -> exec ( $sql );
}
header( "location:index.php" );
?>
|
lalu kita simpan dengan nama 'simpan.php'. Lalu bagaimana untuk menampilkan datanya? lanjut ke langkah berikutnya.
6. Setelah diinput, kita akan melihat data kita dalam bentuk tabel. code program untuk menampilkan datanya seperti berikut ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<?php
include 'connect.php' ;
?>
<style>
tbody > tr:nth-child(2n+1) > td, tbody > tr:nth-child(2n+1) > th {
background-color: #ededed;
}
table{
width: 70%;
margin: auto;
border-collapse: collapse;
box-shadow: darkgrey 3px;
}
thead tr {
background-color: #36c2ff;
}
</style>
<h1 align= "center" >Tabel Biodata</h1>
<center><a href= "input.php" >Input Biodata ≫ </a></center>
<table border= "1" >
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Alamat</th>
<th>No Hp</th>
<th>Pilihan</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM tabel_biodata ORDER BY id" ;
$no = 1;
foreach ( $dbh ->query( $sql ) as $data ) :
?>
<tr>
<td><?php echo $no ++; ?></td>
<td><?php echo $data [ 'nama' ] ?></td>
<td><?php echo $data [ 'jenis_kelamin' ] ?></td>
<td><?php echo $data [ 'alamat' ] ?></td>
<td><?php echo $data [ 'no_hp' ] ?></td>
<td align= "center" >
<a href= "edit.php?id=<?php echo $data['id'] ?>" >edit</a>
<a href= "hapus.php?id=<?php echo $data['id'] ?>" onclick= "return confirm('Anda yakin akan menghapus data?')" >hapus</a>
</td>
</tr>
<?php
endforeach ;
?>
</tbody>
</table>
|
lalu simpan dengan nama 'index.php' agar jika kita buka alamat 'http://localhost/biodata' langsung tampil tabel datanya.
7. Selanjutnya kita akan membuat file agar data kita yang sudah masuk ke
database bisa di edit lagi. Berikut ini code programnya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
<?php
include 'connect.php' ;
if (isset( $_GET [ 'id' ])) {
$query = $dbh ->query( "SELECT * FROM tabel_biodata WHERE id = '$_GET[id]'" );
$data = $query ->fetch(PDO::FETCH_ASSOC);
} else {
echo "ID tidak tersedia!
<a href= 'index.php' >Kembali</a>";
exit ();
}
if ( $data === false) {
echo "Data tidak ditemukan!
<a href= 'index.php' >Kembali</a>";
exit ();
}
?>
<h1 align= "center" >Edit Biodata</h1>
<fieldset style= "width: 50%; margin: auto;" >
<legend>Form Input Biodata</legend>
<form action= "update.php" method= "post" >
<input type= "hidden" name= "id" value= "<?php echo $data['id']; ?>" />
<p>
Nama Lengkap
<input type= "text" name= "nama" required value= "<?php echo $data['nama']; ?>" />
</p>
<p>
Jenis Kelamin
<?php if ( $data [ 'jenis_kelamin' ] === "Laki-Laki" ) : ?>
<input type= "radio" name= "jenis_kelamin" value= "Laki-Laki" id= "laki-laki" checked /><label for = "laki-laki" >Laki-Laki</label>
<input type= "radio" name= "jenis_kelamin" value= "Perempuan" id= "perempuan" /><label for = "perempuan" >Perempuan</label>
<?php else : ?>
<input type= "radio" name= "jenis_kelamin" value= "Laki-Laki" id= "laki-laki" /><label for = "laki-laki" >Laki-Laki</label>
<input type= "radio" name= "jenis_kelamin" value= "Perempuan" id= "perempuan" checked /><label for = "perempuan" >Perempuan</label>
<?php endif ; ?>
</p>
<p>
Alamat Lengkap
<textarea name= "alamat" cols= "50" required><?php echo $data [ 'alamat' ]; ?></textarea>
</p>
<p>
Nomor Handphone
<input type= "text" name= "no_hp" required value= "<?php echo $data['no_hp']; ?>" />
</p>
<p>
<input type= "submit" value= "Simpan" />
<input type= "reset" value= "Reset" onclick= "return confirm('hapus data yang telah diinput?')" >
</p>
</form>
</fieldset>
<center><a href= "index.php" >≪ Tabel Biodata</a></center>
|
lalu kita simpan dengan nama 'edit.php'.
8. Selanjutnya kita akan membuat file yang bertugas mengupdate data yang telah kita edit. berikut code programnya :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php
include 'connect.php' ;
if (isset( $_POST )) {
$sql = "UPDATE tabel_biodata SET nama = '$_POST[nama]' ,
jenis_kelamin = '$_POST[jenis_kelamin]' ,
alamat = '$_POST[alamat]' ,
no_hp = '$_POST[no_hp]'
WHERE id = '$_POST[id]' ";
$dbh -> exec ( $sql );
}
header( "location:index.php" );
?>
|
lalu kita simpan dengan nama 'update.php'.
9. Nah, bagian terakhir adalah membuat file yang bertugas untuk
menghapus data yang kita pilih untuk dihapus, code programnya seperti
berikut ini:
1
2
3
4
5
6
7
|
<?php
include 'connect.php' ;
if (isset( $_GET [ 'id' ])) {
$dbh -> exec ( "DELETE FROM tabel_biodata WHERE id = '$_GET[id]'" );
}
header( "location:index.php" )
?>
|
kita simpan file tersebut dengan nama 'hapus.php'.