Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Membuat CRUD dengan PHP dan MySQL

Selamat Datang di KodeRaya dalam tutorial ini saya akan membuat sebuah proyek sederhana kita akan belajar membuat CRUD Menggunakan PDO objek data PHP
Lengkap dengan Source Code dan database sql (Gratis Hanya Untuk Pembejalaran)

CRUD PDO (Create, Read, Update, Delete) adalah sebuah pendekatan dalam pengembangan aplikasi web menggunakan PHP dengan menggunakan PDO (PHP Data Objects) sebagai layer abstraksi database. CRUD PDO objek data PHP mengacu pada implementasi CRUD yang menggunakan PDO dan memanipulasi data dalam bentuk objek.

Berikut adalah penjelasan singkat tentang setiap operasi CRUD menggunakan PDO objek data PHP:

Create (Buat) :
Operasi ini digunakan untuk membuat entri baru dalam database. Dalam PDO, Anda menggunakan objek PDOStatement untuk mengeksekusi pernyataan SQL INSERT yang memasukkan data baru ke dalam tabel.

Read (Baca) : Operasi ini digunakan untuk membaca atau mengambil data dari database. Anda dapat menggunakan objek PDOStatement untuk mengeksekusi pernyataan SQL SELECT yang mengambil data dari tabel. Hasilnya dapat diterima dalam bentuk array asosiatif atau objek, bergantung pada preferensi Anda.

Update (Perbarui) : Operasi ini digunakan untuk memperbarui data yang ada dalam database. Dalam PDO, Anda menggunakan objek PDOStatement untuk mengeksekusi pernyataan SQL UPDATE yang memperbarui nilai-nilai tertentu dalam tabel.

Delete (Hapus) : Operasi ini digunakan untuk menghapus data dari database. Anda dapat menggunakan objek PDOStatement untuk mengeksekusi pernyataan SQL DELETE yang menghapus entri yang sesuai dari tabel.

Dengan menggunakan PDO, Anda dapat memanipulasi data dalam database dengan lebih aman dan efisien. PDO memberikan lapisan abstraksi yang memungkinkan Anda untuk bekerja dengan berbagai sistem database, seperti MySQL, PostgreSQL, SQLite, dan banyak lagi, dengan sintaks yang serupa. Selain itu, menggunakan objek data dalam PDO memungkinkan Anda untuk mengelola data dengan lebih terstruktur menggunakan objek dan metode terkait.

 ini adalah Tampilan Awal Dari Proyek Tersebut


dan ini adalah Tampilan Jika Data tabel di Perbarui 


Masih ada Lagi Fitur Seperti Tambah Data, Hapus Data, Edit Data. 

Ok Lanjut Untuk Membuat CRUD PHP terlebih dahulu buat Stuktur Folder Seperti ini:

1. Folder:  classes/
                  config.php
                  DB.php
                  student.php

2. Folder:  css/
                  style.css
3. Folder:  img/
                  foto.png
4. Folder:  inc/
                  footer.php
                  header.php


Atau Lebih Jelas Seperti gambar dibawah ini:



Setelah itu Langsung Saja Copas Source Code dibawah ini lalu paste ke text editor kalian

Buat tabel 'pegawai'
CREATE TABLE `pegawai` (
  `id` int(10) NOT NULL,
  `nama` varchar(50) NOT NULL,
  `jabatan` varchar(50) NOT NULL,
  `umur` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci; 

index.php
<?php include "inc/header.php"; ?>


<?php
spl_autoload_register(function($classnama){
  include 'classes/'.$classnama.'.php';
});
?>

<?php $user = new Student(); ?>



<section class="mainleft">

  <?php
  //untuk memasukkan...
  if(isset($_POST['submit'])){
    $nama = $_POST['nama'];
    $jabatan = $_POST['jabatan'];
    $umur  = $_POST['umur'];

    $user->setnama($nama);
    $user->setjabatan($jabatan);
    $user->setumur($umur);

    if($user->insert()){
      echo "<span class='insert'>Data Berhasil Dimasukkan...</span>";
    }

  }
  ?>

  <?php
  // untuk pembaruan data
  if(isset($_POST['update'])){
    $nama = $_POST['nama'];
    $jabatan = $_POST['jabatan'];
    $umur  = $_POST['umur'];
    $id  = $_POST['id'];

    $user->setnama($nama);
    $user->setjabatan($jabatan);
    $user->setumur($umur);

    if($user->update($id)){
      echo "<span class='insert'>Data Berhasil Diperbarui...</span>";
    }

  }

  ?>

  <?php
  //untuk edit data
  if(isset($_GET['action']) && $_GET['action']=='update') {
    $id = (int)$_GET['id'];
    $result = $user->readById($id);
    ?>

    <form action="" method="post">
      <table>
        <input type="hidden" name="id" value="<?php echo $result['id']; ?>" />
        <tr>
          <td >nama: </td>
          <td><input type="text" name="nama" value="<?php echo $result['nama']; ?>" required="1"/></td>
        </tr>

        <tr>
          <td>jabatan: </td>
          <td><input type="text" name="jabatan"  value="<?php echo $result['jabatan']; ?>" required="1"/></td>
        </tr>

        <tr>
          <td>umur: </td>
          <td><input type="text" name="umur"  value="<?php echo $result['umur']; ?>" required="1"/></td>
        </tr>
        <tr>
          <td></td>
          <td>
            <input type="submit" name="update" value="Update"/>
            <input type="reset" value="Reset"/>
          </td>
        </tr>
      </table>
    </form>
  </section>
  <?php


} else{
  ?>

  <form action="" method="post">
    <table>
      <tr>
        <td>Nama: </td>
        <td><input type="text" name="nama" required="1"/></td>
      </tr>

      <tr>
        <td>Jabatan: </td>
        <td><input type="text" name="jabatan" required="1"/></td>
      </tr>

      <tr>
        <td>Umur: </td>
        <td><input type="text" name="umur" required="1"/></td>
      </tr>
      <tr>
        <td></td>
        <td>
          <input type="submit" name="submit" value="Simpan"/>
          <input type="reset" value="Reset"/>
        </td>
      </tr>
    </table>
  </form>
</section>

<?php
}

?>

<section class="mainright">
  <?php
  // for delete data
  if(isset($_GET['action']) && $_GET['action'] == 'delete'){
    $id = (int)$_GET['id'];

    if($user->delete($id)){
      echo "<span class='delete'> Data berhasil dihapus...</span>";
    }
  }

  ?>
  <table class="tblone">
    <tr>
      <th>No.</th>
      <th>Nama</th>
      <th>Jabatan</th>
      <th>Umur</th>
      <th>Ubah Data</th>
    </tr>

    <?php
    $i= 0;
    if(is_array($user->readAll()) || is_object($user->readAll())){
      foreach($user->readAll() as $value){
        $i++;
        ?>
        <tr>
          <td><?php echo $i; ?></td>
          <td><?php echo $value['nama'];  ?></td>
          <td><?php echo $value['jabatan'];  ?></td>
          <td><?php echo $value['umur'];  ?></td>
          <td>
            <a href="index.php?action=update&id=<?php echo $value['id']; ?>">Edit</a> ||
            <a href="index.php?action=delete&id=<?php echo $value['id']; ?>">Hapus</a>
          </td>
        </tr>
        <?php
      }
    } else {
      echo "Tidak ada data yang ditemukan";
    }
    ?>

  </table>
</section>

<?php include "inc/footer.php"; ?>
 

/classes/config.php
<?php

define('DB_HOST', 'nama_host');
define('DB_NAME', 'nama_db');
define('DB_USER', 'nama_user');
define('DB_PASS', 'kata_sandi'); 

/classes/DB.php
<?php
include 'config.php';

class DB{
    public static $pdo;

    public static function connection(){
        if(!isset(self::$pdo)){
            try{
                self::$pdo = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME, DB_USER, DB_PASS);
            } catch(PDOException $e){
                echo "Connection Failed";
            }
        }
        return self::$pdo;
    }

    public function prepared($sql){
        return self::connection()->prepare($sql);
    }

} 

/classes/student.php
<?php

class Student{
    private $table = 'pegawai';

    private $nama, $jabatan, $umur;

    public function setnama($nama){
        $this->nama = $nama;
    }
    public function setjabatan($jabatan){
        $this->jabatan = $jabatan;
    }
    public function setumur($umur){
        $this->umur = $umur;
    }

    public function insert(){
        $sql = "INSERT INTO $this->table(nama, jabatan, umur) VALUES(:nama,:jabatan,:umur)";
        $stmt = DB::prepared($sql);
        $stmt->bindParam(':nama', $this->nama);
        $stmt->bindParam(':jabatan', $this->jabatan);
        $stmt->bindParam(':umur', $this->umur);
        return $stmt->execute();
    }

    public function readById($id){
        $sql = "SELECT * FROM $this->table WHERE id=:id";
        $stmt = DB::prepared($sql);
        $stmt -> bindParam(':id', $id);
        $stmt -> execute();
        return $stmt->fetch();
    }

    public function update($id){
        $sql  = "UPDATE $this->table SET nama=:nama, jabatan=:jabatan, umur=:umur WHERE id=:id";
        $stmt = DB::prepared($sql);
        $stmt->bindParam(':id', $id);
        $stmt->bindParam(':nama', $this->nama);
        $stmt->bindParam(':jabatan', $this->jabatan);
        $stmt->bindParam(':umur', $this->umur);
        return $stmt->execute();
    }

    public function readAll(){
        $sql = "SELECT * FROM $this->table";
        $stmt = DB::prepared($sql);
        $stmt->execute();
        $result = $stmt->fetchAll();

         if($stmt-> rowCount() > 0){
            // echo $stmt-> rowCount();
            // echo "Yes";
            // var_dump($result);
             return $result;
         }
    }

    public function delete($id){
        $sql = "DELETE FROM $this->table WHERE id=:id";
        $stmt = DB::prepared($sql);
        $stmt -> bindParam(':id', $id);
        return $stmt->execute();
    }


} 

/css/style.css
nav {
  background-color: #333;
  height: 50px;
  border: 3px solid #313932;
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

nav ul li {
  display: inline;
}

nav ul li a {
  display: inline-block;
  color: #fff;
  text-decoration: none;
  padding: 15px;
}

nav ul li a:hover {
  background-color: #555;
} 

/inc/footer.php
</div>

  <footer class="footeroption">
	  <section class="footerone">

	  
	  </section>
	  <section class="footerone">

	  </section>
  </footer>

</body>
</html> 

/inc/header.php

 <!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>CRUD Dengan PHP Dan MySQL</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
<style>
body {font-family: arial;font-size: 15px;line-height: 18px;margin: 0 auto;width: 850px;}
a{color:#3399FF;}
.headeroption {background: #313932 url("img/koderaya.png") no-repeat scroll 0px 0px;border: 3px solid #313932;height: 62px;overflow: hidden;padding-left: 160px;}
.headeroption h2 {color: #fff;font-size: 30px;padding-top: 5px;text-shadow: 0 1px 1px #fff;}
.content{background: #f1f1ff;border: 6px solid #313932;font-size: 16px;line-height: 22px;margin-bottom: 3px;margin-top: 3px;min-height: 400px;overflow: hidden;padding: 10px;}
.subject {border-bottom: 1px solid #313932;font-size: 20px;margin-bottom: 10px;padding-bottom: 10px;}
.subject p{margin:0;}

.insert{color:#06960E;font-weight:bold;} 
.delete{color:#DE5A24;font-weight:bold;}

.btn2{font-size: 14px;padding: 7px 10px;background-color: #313932;color: white;border: none;cursor: pointer}
.mainleft{border-right: 1px dotted #999;float: left;margin-right: 16px;width: 350px;}
.mainright{float:right;width:450px;}

.tblone{width:100%;border:1px solid #fff;}
.tblone td{padding:5px 10px;text-align:center;}

table.tblone tr:nth-child(2n+1){background:#fff;height:30px;}
table.tblone tr:nth-child(2n){background:#edededf0 none repeat scroll 0 0;height:30px;}
input[type="text"] {border:1px solid #ddd;margin-bottom:5px;padding:5px;width:228px;font-size:16px}
input[type="submit"]{padding: 10px 20px;background-color: #313932;color: white;border: none;cursor: pointer}
input[type="reset"]{padding: 10px 20px;background-color: #313932;color: white;border: none;cursor: pointer}

.footeroption{height:90px;background:#313932;overflow:hidden;padding-top:10px;overflow: hidden;}
.footerone {background: #313932;border-radius: 5px;float: left;font-size: 18px;line-height: 23px;margin-left: 10px;padding: 6px 10px;text-align: center;text-shadow: 1px 0 2px #fff;width: 390px;overflow: hidden;}
.footerone p{margin:0;}
</style>
</head>
<body>
  <header class="headeroption">
  </header>
   <nav>
    <ul>
      <li><a href="#">Beranda</a></li>
      <li><a href="#">Tentang</a></li>
      <li><a href="#">Layanan</a></li>
      <li><a href="#">Kontak</a></li>
    </ul>
  </nav>
<div class="content">
<section class="subject">
<p>Ubah Data Karyawan<span style="float:right"><a class="btn2" href="index.php">Tambah Data</a></span><p>
</section>
 
Proyek sederhana dari operasi CRUD menggunakan PDO objek data php 
Oke Sekian Terimakasih Semoga Bermanfaat, Sampai Jumpa Untuk Selanjutnya.

Posting Komentar untuk "Cara Membuat CRUD dengan PHP dan MySQL"