Sabtu, 25 April 2020

Belajar PHP CRUD Dengan MySql-Part1

Tags

Membuat PHP CRUD (Create Read Update Delete) adalah tugas yang sangat umum dalam pengembangan web. Biasanya diterapkan dalam sistem manajemen konten, sistem stok barang, atau software akuntansi. Jika kita belajar memulai pengembangan web, pasti akan mengalami banyak pekerjaan CRUD nantinya.

Tujuan utama dari CRUD adalah memungkinkan pengguna untuk membuat / membaca / memperbarui / menghapus data. Biasanya data disimpan dalam MySQL Database. PHP akan menjadi bahasa sisi server yang memanipulasi tabel Database MySQL dan nantinya ditampilkan ke pengguna di sisi front-end untuk melakukan tindakan CRUD.

Dalam tutorial ini, kita akan mempelajari langkah-langkah membuat PHP CRUD dengan MySql. Saya akan menunjukkan bagaimana PHP sebagai bahasa sisi server, berkomunikasi dengan backend MySQL, dan merender tampilan HTML front-end.

1. Membuat Tabel Database


CREATE TABLE  `pelanggan` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`nama` VARCHAR( 100 ) NOT NULL ,

`email` VARCHAR( 100 ) NOT NULL ,

`nomorhp` VARCHAR( 100 ) NOT NULL

) ENGINE = INNODB;

Diatas adalah contoh tabel yang sederhana untuk menyimpan informasi pelanggan (nama, email, dan nomor ponsel).

2. Koneksi ke Database

Buat file "database.php". File ini berisi kelas PHP bernama "Database". Keseluruhan aplikasi ini, Database menangani semua hal yang berhubungan dengan koneksi basis data, seperti menghubungkan dan memutuskan sambungan.

<?php
class Database
{
    private static $dbName = 'crud_tutorial' ;
    private static $dbHost = 'localhost' ;
    private static $dbUsername = 'root';
    private static $dbUserPassword = '';
     
    private static $cont  = null;
     
    public function __construct() {
        die('Init function is not allowed');
    }
     
    public static function connect()
    {
       // One connection through whole application
       if ( null == self::$cont )
       {     
        try
        {
          self::$cont =  new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword); 
        }
        catch(PDOException $e)
        {
          die($e->getMessage()); 
        }
       }
       return self::$cont;
    }
     
    public static function disconnect()
    {
        self::$cont = null;
    }
}
?>

Disini saya menggunakan PDO untuk akses basis data. Ada banyak manfaat menggunakan PDO. Salah satu manfaat paling signifikan adalah menyediakan metode yang seragam untuk akses ke banyak basis data.

Untuk menggunakan kelas ini, Kita harus memberikan nilai untuk $dbName, $dbHost, $dbUsername, $dbUserPassword.

$dbName: Nama database yang digunakan untuk menyimpan tabel 'pelanggan'.
$dbHost: Host database biasanya "localhost".
$dbUsername: Nama pengguna database.
$dbUserPassword: Kata sandi pengguna database.

Mari kita lihat tiga fungsi dari kelas ini:
  • __construct (): Ini adalah konstruktor dari kelas Database. Karena ini adalah kelas statis, maka kelas ini tidak diperbolehkan diinisialisasi. Untuk mencegah penyalahgunaan kelas, saya menggunakan fungsi "die" untuk mengingatkan pengguna.
  • connect: Ini adalah fungsi utama dari kelas ini. Ini menggunakan pola singleton untuk memastikan hanya ada satu koneksi PDO di seluruh aplikasi. Karena ini adalah metode statis. Saya menggunakan Database::connect() untuk membuat koneksi.
  • disconnect: Putuskan sambungan dari database. Ini hanya mengatur koneksi ke NULL. Kita perlu memanggil fungsi ini untuk menutup koneksi.

3. Buat Twitter Bootstrap powered tabel

Karena operasi CRUD umumnya dilakukan ketika ada tabel, maka pertama-tama kita perlu membanguan sebuah grid atau tabel. Dari sana kita selanjutnya dapat menambahkan halaman "Create", "Read", halaman "Update" dan akhirnya halaman "Delete".

Buka halaman resmi Bootstrap, dan unduh salinannya. Dalam tutorial ini, saya menggunakan versi 2.3.2. Setelah itu, buat file PHP "index.php".

Jika telah mengikuti langkah-langkah dengan benar, struktur file saat ini akan terlihat seperti di bawah ini:


Sekarang buka file "index.php". Dan salin kode di bawah ini:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <link   href="css/bootstrap.min.css" rel="stylesheet">
    <script src="js/bootstrap.min.js"></script>
</head>
 
<body>
    <div class="container">
            <div class="row">
                <h3>PHP CRUD Basic</h3>
            </div>
            <div class="row">
                <table class="table table-striped table-bordered">
                  <thead>
                    <tr>
                      <th>Nama</th>
                      <th>Email</th>
                      <th>Telpon</th>
                    </tr>
                  </thead>
                  <tbody>
                  <?php
                   include 'database.php';
                   $pdo = Database::connect();
                   $sql = 'SELECT * FROM pelanggan ORDER BY id DESC';
                   foreach ($pdo->query($sql) as $row) {
                            echo '<tr>';
                            echo '<td>'. $row['nama'] . '</td>';
                            echo '<td>'. $row['email'] . '</td>';
                            echo '<td>'. $row['nomorhp'] . '</td>';
                            echo '</tr>';
                   }
                   Database::disconnect();
                  ?>
                  </tbody>
            </table>
        </div>
    </div> <!-- /container -->
  </body>
</html>

Mari kita pelajari kodenya.

Di bagian <head> dari file ini, saya menyertakan CSS Bootstrap dan file JavaScript. Setelah itu pertama-tama buat tabel dengan header yang sesuai dengan bidang database tabel "pelanggan" yang antara lain "Nama", "Email", "Telpon":

<thead>
           <tr>
             <th>Nama</th>
             <th>Email</th>
             <th>Telpon</th>
           </tr>
</thead>

Kemudian include "database.php", membuat koneksi PDO ke database, dan menggunakan statement "SELECT" untuk mengambil data. Terakhir, melakukan loop ke setiap baris untuk mencetak konten. Jangan lupa untuk menutup koneksi.

<?php
           include 'database.php';
           $pdo = Database::connect();
           $sql = 'SELECT * FROM pelanggan ORDER BY id DESC';
           foreach ($pdo->query($sql) as $row) {
                    echo '<tr>';
                    echo '<td>'. $row['nama'] . '</td>';
                    echo '<td>'. $row['email'] . '</td>';
                    echo '<td>'. $row['nomorhp'] . '</td>';
                    echo '</tr>';
           }
           Database::disconnect();
?>

Buka browser dan navigasikan ke "index.php". Jika mengikuti dengan benar, browser seharusnya memiliki tabel kosong seperti di bawah ini.

php_tabel


Tabel kosong karena kita belum mengisi data di dalam tabel "pelanggan". Untuk menguji apakah benar-benar berfungsi, Silahkan masukkan data secara manual ke dalam tabel "pelanggan".

Karena posting ini bisa terlalu panjang, saya lanjutkan ke posting berikutnya Belajar PHP CRUD Dengan MySql-Part2. Saya akan menjelaskan cara membuat halaman "Buat" dan "Baca".

Belajar PHP CRUD Dengan MySql-Part2
Belajar PHP CRUD Dengan MySql-Part3

1 komentar:

  1. terimakasih tutorialnya kak... saya jadi mengerti bikin crud setelah mengikuti tutorial ini. lanjutkan lagi kak tutorial php yang lainnya.

    kunjungi juga blog saya ya kak darsono.blogspot.com

    BalasHapus


EmoticonEmoticon