Assalamualaikum Wr. Wb.
Hai Kawan J
Saya akan berbagi mengenai apa itu PDO dan CRUD. Apa sih itu PDO ?? PDO (PHP Data Objects) adalah
interface universal yang disediakan PHP untuk “berkomunikasi” dengan database
server. Maksud istilah “interface universal” disini adalah bahwa
PDO tidak terikat dengan aplikasi database tertentu. Apabila saat ini kita
menggunakan database MySQL dan dikemudian hari ingin bermigrasi
menggunakan PostgreSQL, kita hanya tinggal mengganti cara pemanggilan
awal PDO dan seluruh kode program yang ada bisa langsung digunakan untuk
database baru.
Kondisi ini berbeda jika menggunakan mysql
extension atau mysqli extension. Kedua extension ini hanya bisa
bekerja dengan database MySQL. Karena alasan inilah banyak sebaiknya kita mulai
beralih menggunakan PDO dibandingkan mysqli.
Di blog kali ini saya juga akan membahas tentang
bagaimana cara Create, Read, Update, dan Delete atau biasa disebut CRUD.
Sebenarnya apa sih CRUD itu?? Anda
sudah tahu kepanjangan dari istilah CRUD tersebut, namun untuk penjelasanya ada
4 karakter yaitu :
- C
(Create): yang berarti membuat sebuah data baru, contoh kita sedang
melakukan registrasi disebuah web itu sudah merupakan Create dari CRUD
karena kita membuat dan menyimpan data registrasi ke database.
- R (Read):
Membaca atau menampilkan suatu data yang tadinya berada didatabase MySQL
misalnya, kemudian ditampilkan di WEB menggunakan bahasa pemrograman Php
- U
(Update): nah untuk yang satu ini prosesnya adalah mengedit sebuah data
dari database yang kemudian di edit menggunakan bahasa pemrograman Php
berupa WEB. Contoh edit profil facebook.
- D
(Delete): Pastinya Anda tahu fungsinya apa bukan? Fungsinya hampir sama
dengan Update akan tetapi proses ini adalah untuk melakukan penghapusan
data di database melalui bahasa Php. Contoh pada sebuah blog terkadang ada
komentar, kemudian kita hapus komentar tersebut, nah itu sudah termasuk
proses delete dalam CRUD.
Setelah kita mengetahui apa itu crud, sekarang kita
masuk ke inti dari pembahasan kita yang satu ini, yaitu cara CRUD menggunakan
PDO.
Berikut cara CRUD menggunakan PDO :
1. Pertama buatlah database terlebih dahulu dengan
nama crud_oop di phpmyadmin.
2. Setelah membuat database, buatlah tabel.
Silahkan
masukan script dibawah ini :
DROP TABLE IF EXISTS `mahasiswa`;
CREATE TABLE `mahasiswa` (
`id` int(11)
NOT NULL,
`nim`
varchar(20) NOT NULL,
`nama`
varchar(30) NOT NULL,
`tempat_lahir`
varchar(30) NOT NULL,
`tanggal_lahir`
date NOT NULL,
`jenis_kelamin`
enum('Laki-laki','Perempuan') NOT NULL,
`agama`
varchar(20) NOT NULL,
`alamat`
varchar(100) NOT NULL,
`no_telepon`
varchar(12) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
3. Jika tabel sudah dibuat, selanjutnya buatlah
field-field dari tabel tersebut.
Silahkan masukkan script dibawah ini :
INSERT INTO `mahasiswa` (`id`, `nim`, `nama`,
`tempat_lahir`, `tanggal_lahir`, `jenis_kelamin`, `agama`, `alamat`,
`no_telepon`) VALUES
(1, '16001', 'Danang Kusuma', 'Bandar Lampung',
'1990-02-01', 'Laki-laki', 'Islam', 'Jalan Gatot Subroto No. 10, Bandar
Lampung', '085758857775'),
(2, '16002', 'Isyana Sarasvati', 'Jakarta',
'1993-05-02', 'Perempuan', 'Islam', 'Jalan Pagar Alam No. 15, Kedaton, Bandar
Lampung', '085789892909'),
(3, '16003', 'Indra Styawantoro', 'Purbolinggo',
'1991-05-15', 'Laki-laki', 'Islam', 'Perum Griya Gedung Meneng Blok C2 No. 2,
Rajabasa, Bandar Lampung', '085669919769'),
(4, '16004', 'Maudy Ayunda', 'Jakarta', '1994-12-19',
'Perempuan', 'Islam', 'Jalan Radin Intan No. 77, Tanjung Karang, Bandar
Lampung', '089977955772'),
(5, '16005', 'Valentino Rossi', 'Metro', '1979-03-16',
'Laki-laki', 'Islam', 'Jalan Zaenal Abidin Pagaralam No. 1, Bandar Lampung',
'081922919212'),
(6, '16006', 'Raisa Andriana', 'Jakarta',
'1990-06-06', 'Perempuan', 'Islam', 'Jalan Yos Sudarso No. 135, Bandar
Lampung', '081388955767'),
(7, '16007', 'Cristiano Ronaldo', 'Teluk Betung',
'1986-02-25', 'Laki-laki', 'Islam', 'Jalan Teuku Umar No. 52, Kedaton Bandar
Lampung', '081269962201'),
(8, '16008', 'M Muzaqi', '', '0000-00-00', '', '', '',
''),
(9, '099023022', 'Nia Ramadhani', 'Jakarta',
'1996-02-01', 'Perempuan', 'Islam', 'Cengkareng Barat', '12345678'),
(10, '109209381', 'Frienly Faisal', '', '0000-00-00',
'Laki-laki', '', '', '');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `mahasiswa`
--
ALTER TABLE `mahasiswa`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `mahasiswa`
--
ALTER TABLE `mahasiswa`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,
AUTO_INCREMENT=11;
/*!40101 SET
CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET
CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET
COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
<strong>
</strong>
4. Setelah selesai membuat database dan tabelnya, buat
folder dengan nama pdo.
5. Buat file pada text editor, contoh text editor yang
saya pakai adalah sublime text. yang beri nama index.php kemudian bisa
ketik atau paste source code dibawah ini:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CRUD PDO</title>
<!-- Latest compiled and minified CSS -->
<link
rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h2>Tambah Mahasiswa Baru</h2>
<form action="index.php" method="POST"
class="form-group row">
NIM : <input type="text" name="nim"
required="required" class="form-control" >
Nama : <input type="text" name="nama"
required="required" class="form-control">
Tempat Lahir : <input type="text" name="tempat_lahir"
class="form-control">
Tanggal Lahir : <input type="text" name="tanggal_lahir"
class="form-control">
Jenis Kelamin : <input type="text" name="jenis_kelamin"
class="form-control">
Agama : <input type="text" name="agama"
class="form-control">
No. Telepon : <input type="text" name="no_telepon"
class="form-control">
Alamat : <textarea name="alamat" class="form-control"></textarea>
<input type="submit" name="tambahMhs"
value="Tambah" class="btn btn-success">
<input type="reset" value="Batal"
class="btn btn-warning">
</form>
</div>
</body>
</html>
<?php
require('library.php');
if(isset($_POST['tambahMhs'])){
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$tempat_lahir=$_POST['tempat_lahir'];
$tanggal_lahir=$_POST['tanggal_lahir'];
$jenis_kelamin=$_POST['jenis_kelamin'];
$agama=$_POST['agama'];
$alamat=$_POST['alamat'];
$no_telepon=$_POST['no_telepon'];
$Lib = new Library();
$add = $Lib->tambahMhs($nim, $nama,
$tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon);
if($add == "Success"){
header('Location: List.php');
}
}
?>
6. Buat file baru dengan nama edit.php.
Kemudian ketik atau paste source code dibawah ini :
<?php
require('library.php');
if(isset($_GET['id'])){
$Lib = new Library();
$id = $Lib->editMhs($_GET['id']);
$edit = $id->fetch(PDO::FETCH_OBJ);
echo '
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit Data Mahasiswa</title>
<link
rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript
-->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h2>Ubah Data Mahasiswa</h2>
<form action="edit.php" method="POST"
class="form-group">
NIM : <input type="text" name="nim"
value="'.$edit->nim.'" required="required" class="form-control">
Nama : <input type="text" name="nama"
value="'.$edit->nama.'" class="form-control">
Tempat Lahir : <input type="text" value="'.$edit->nama.'"
name="tempat_lahir" class="form-control">
Tanggal Lahir : <input type="text" value="'.$edit->tanggal_lahir.'"
name="tanggal_lahir" class="form-control">
Jenis Kelamin : <input type="text" value="'.$edit->jenis_kelamin.'"
name="jenis_kelamin" class="form-control">
Agama : <input type="text" name="agama"
value="'.$edit->agama.'" class="form-control">
No. Telepon : <input type="text" value="'.$edit->no_telepon.'"
name="no_telepon" class="form-control">
Alamat : <textarea name="alamat" class="form-control">'.$edit->alamat.'</textarea>
<input type="submit" name="updates"
value="Update" class="btn btn-info">
<input type="reset" value="Batal"
class="btn btn-warning">
</form>
</div>
</body>
</html>
';
}
if(isset($_POST['updateMhs'])){
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$tempat_lahir=$_POST['tempat_lahir'];
$tanggal_lahir=$_POST['tanggal_lahir'];
$jenis_kelamin=$_POST['jenis_kelamin'];
$agama=$_POST['agama'];
$alamat=$_POST['alamat'];
$no_telepon=$_POST['no_telepon'];
$Lib = new Library();
$upd = $Lib->updateMhs($id, $nim, $nama,
$tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon);
if($upd == "Success"){
header('Location: list.php');
}
}
?>
7. Buat file baru dengan nama library.php.
Kemudian ketik atau paste source code dibawah ini :
<?php
class Library{
public function __construct(){
$this->db = new
PDO('mysql:host=localhost;dbname=crud_oop','root','');
}
public function tambahMhs($nim, $nama, $tempat_lahir,
$tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon){
$sql = "INSERT INTO mahasiswa (nim, nama,
tempat_lahir, tanggal_lahir, jenis_kelamin, agama, alamat, no_telepon)
VALUES('$nim', '$nama', '$tempat_lahir', '$tanggal_lahir', '$jenis_kelamin',
'$agama', '$alamat', '$no_telepon')";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}
public function editMhs($id){
$sql = "SELECT * FROM mahasiswa";
$query = $this->db->query($sql);
return $query;
}
public function updateMhs($nim, $nama, $tempat_lahir,
$tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon){
$sql = "UPDATE mahasiswa SET nim='$nim',
nama='$nama', tempat_lahir='$tempat_lahir', tanggal_lahir='$tanggal_lahir',
jenis_kelamin='$jenis_kelamin', agama='$agama', alamat='$alamat',
no_telepon='$no_telepon' WHERE nim='$nim'";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}
public function showmahasiswa(){
$sql = "SELECT * FROM mahasiswa order by id
desc";
$query = $this->db->query($sql);
return $query;
}
public function deleteMhs($nim){
$sql = "DELETE FROM mahasiswa WHERE
nim='$nim'";
$query = $this->db->query($sql);
}
}
?>
8. Dan yang terakhir adalah buat file baru dengan nama
list.php.
Kemudian ketik atau paste source code dibawah ini :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>List Mahasiswa</title>
<!-- Latest compiled and minified CSS -->
<link
rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
<h2>Daftar Nama Mahasiswa</h2>
<table class="table">
<tr>
<td>NIM</td>
<td>Nama</td>
<td>Jenis Kelamin</td>
<td>Alamat</td>
<td>Edit</td>
<td>Delete</td>
</tr>
<?php
require("library.php");
$Lib = new Library();
$show = $Lib->showmahasiswa();
while($data = $show->fetch(PDO::FETCH_OBJ)){
echo "
<tr>
<td>$data->nim</td>
<td>$data->nama</td>
<td>$data->jenis_kelamin</td>
<td>$data->alamat</td>
<td><a class='btn btn-info' href='edit.php?nim=$data->id'>Edit</td>
<td><a class='btn btn-danger' href='list.php?delete=$data->nim'>Delete</a></td>
</tr>
";
};
?></table>
<a href="index.php" class="btn
btn-success">Tambah Mahasiswa Baru</a>
</div>
</body>
</html>
<?php
if(isset($_GET['delete'])){
$del = $Lib->deleteMhs($_GET['delete']);
}
?>
9. Setelah mengetik/mempaste semua source code diatas.
Kemudian panggil file index.php di web browser contohnya web browser
chrome. Ketikkan localhost/pdo/index.php maka akan muncul tampilan seperti ini
:
10. Kemudian kita inputkan data mahasiswa baru, lalu
klik button “Tambah”.
Setelah menambahkan data, selanjutnya akan menuju
tampilan list.php. Untuk mengedit data mahasiswa, klik button “Edit” seperti
yang dibawah ini:
setelah klik button “Edit”, namun tampilannya kosong
seperti yang dibawah ini :
Mengapa tampilan kosong? karena ada kesalahan pada source code yang sudah dicopynya tadi. Untuk mengatasi
masalah seperti ini, saya akan memberikan cara mengatasinya. Langsung
saja kita lihat file List.php baris 35
<td><a
class='btn btn-info' href='edit.php?nim=$data->id'>Edit</td>
diubah menjadi seperti dibawah ini:
<td><a
class='btn btn-info' href='edit.php?id=$data->id'>Edit</td>
Kemudian kita lihat juga file Edit.php baris 24
Tempat Lahir :
<input type="text" value="'.$edit->nama.'" name="tempat_lahir"
diubah menjadi :
Tempat Lahir :
<input type="text" value="'.$edit->tempat_lahir.'
Setelah file Edit.php baris 24 tadi sudah dirubah,
maka akan muncul tampilan seperti dibawah ini :
Setelah muncul tampilan diatas, silahkan ubah data
misalkan pada nama yang akan dirubah, kemudian klik Button “Update”. Namun ada
kesalahan lagi apabila di klik button “update” masih belum mau mengupdate
datanya. Cara mengatasinya adalah kembali buka file Edit.php baris 32
dirubah yang tadinya :
<input
type="submit" name="updates" value="Update" class="btn
btn-info">
dirubah menjadi :
<input
type="submit" name="updateMhs" value="Update"
class="btn btn-info">
Kemudian pada baris 52 samakan parameter di file edit.php
dengan library.php supaya tidak error. Berikut source code baris 52 pada
file edit.php :
$upd = $Lib->updateMhs($id, $nim, $nama,
$tempat_lahir, $tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon);
dirubah supaya sama dengan parameter pada file
library.php menjadi:
$upd = $Lib->updateMhs($nim, $nama, $tempat_lahir,
$tanggal_lahir, $jenis_kelamin, $agama, $alamat, $no_telepon);
Setelah menyamakan parameter di file edit.php
baris 52 coba refresh web browsernya. Maka akan muncul tampilan seperti dibawah
:
Kemudian klik button “Delete” untuk menghapus data
yang akan dihapus. Tetapi datanya tidak bisa dihapus, cara mengatasinya adalah
buka file list.php pada setelah baris 48 tambahkan source code berikut :
header('Location:
list.php');
fungsi source code teakhir itu adalah supaya bisa
menghapus data. Selanjutnya kita mencoba refresh kembali web browsernya kini
sudah tidak ada lagi kesalahan pada list mahasiswa.
Demikian tutorial CRUD di PHP menggunakan PDO serta cara
mengatasi masalah-masalah apabila ada error seperti penjelasan yang sudah saya
sampaikan diatas.
Semoga bermanfaat bagi kalian yah J
0 komentar:
Posting Komentar