Membuat CRUD menggunakan PDO di PHP

 Membuat CRUD menggunakan PDO di PHP



Assalamualaikum Wr. Wb.

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 sebaiknya kita mulai beralih menggunakan PDO dibandingkan mysqli.

Dari pengertian diatas sekarang saya akan memberikan langkah-langkah untuk membuat CRUD menggunakan PDO di PHP. Berikut adalah langkah-langkah untuk membuat CRUD PDO di PHP :
  • Buatlah database dengan nama crud_pdo pada XAMPP Control Panel, ketik pada url link localhost/phpmyadmin kemudian buat database baru dengan nama crud_pdo. Kemudian Import source code dibawah ini:
 -- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Oct 18, 2016 at 08:38 AM
-- Server version: 10.1.10-MariaDB
-- PHP Version: 5.6.19
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `crud_pdo`
--
-- --------------------------------------------------------
--
-- Table structure for table `mahasiswa`
--
DROP TABLE IF EXISTS `mahasiswa`;
CREATE TABLE `mahasiswa` (
  `id` int(11NOT NULL,
  `nim` varchar(20NOT NULL,
  `nama` varchar(30NOT NULL,
  `tempat_lahir` varchar(30NOT NULL,
  `tanggal_lahir` date NOT NULL,
  `jenis_kelamin` enum('Laki-laki','Perempuan'NOT NULL,
  `agama` varchar(20NOT NULL,
  `alamat` varchar(100NOT NULL,
  `no_telepon` varchar(12NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `mahasiswa`
--
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(11NOT 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 */;

  • Setelah selesai membuat ddatabase, buat folder dengan nama crud_pdo di htdocs.
  • Buat file pada text editor, contoh text editor yang saya pakai adalah visual studio code. 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" ><br/>
                Nama : <input type="text" name="nama" required="required" class="form-control"><br/>
                Tempat Lahir : <input type="text" name="tempat_lahir" class="form-control"><br/>
                Tanggal Lahir : <input type="text" name="tanggal_lahir" class="form-control"><br/>
                Jenis Kelamin : <input type="text" name="jenis_kelamin" class="form-control"><br/>
                Agama : <input type="text" name="agama" class="form-control"><br/>
                No. Telepon : <input type="text" name="no_telepon" class="form-control"><br/>
                Alamat : <textarea name="alamat" class="form-control"></textarea><br/>
                <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');
        }
    }

?>
  • 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"><br>
Nama : <input type="text" name="nama" value="'.$edit->nama.'" class="form-control"><br>
Tempat Lahir : <input type="text" value="'.$edit->tempat_lahir.'" name="tempat_lahir" class="form-control"><br/>
                Tanggal Lahir : <input type="text" value="'.$edit->tanggal_lahir.'" name="tanggal_lahir" class="form-control"><br/>
                Jenis Kelamin : <input type="text" value="'.$edit->jenis_kelamin.'" name="jenis_kelamin" class="form-control"><br/>
                Agama : <input type="text" name="agama" value="'.$edit->agama.'" class="form-control"><br/>
                No. Telepon : <input type="text" value="'.$edit->no_telepon.'" name="no_telepon" class="form-control"><br/>
                Alamat : <textarea name="alamat" class="form-control">'.$edit->alamat.'</textarea><br/>
                
                
<input type="submit" name="updateMhs" 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($nim$nama$tempat_lahir$tanggal_lahir$jenis_kelamin$agama$alamat$no_telepon);
if($upd == "Success"){
header('Location: list.php');
}
}

?>
  • 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_crud','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 where id='$id'";
            $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_teleponWHERE 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);
        }
    }
    ?>
  • 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?id=$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']);
header('Location: list.php');
}
?>

Setelah mengetik/mempaste semua source code diatas. Kemudian panggil file index.php di web browser contohnya web browser chrome. ketikkan
localhost/crud_pdo  maka akan muncul tampilan seperti ini :



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 muncul tampilan diatas, silahkan ubah data misalkan pada alamat yang akan dirubah, kemudian klik Button “Update”.




Setelah itu akan muncul tampilan seperti dibawah :




Kemudian klik button “Delete” untuk menghapus data yang akan dihapus.




Jika hapus berhasil maka data yang kita hapus akan hilang.




Demikian cara membuat CRUD PDO di PHP. 
Silahkan komen dan beri tanggapan ya
wa : 083141025824
Wassalamualaikum Wr. Wb.

Komentar

Posting Komentar

Postingan populer dari blog ini

Crack dan Assets Construct 2 by Madun

PROJEK C2 MATERI SHALAT

Membuat Portofolio dengan HTML dan CSS