Aplikasi CRUD ( Create, Read, Uppdate, Delete ) Sederhana Dengan PHP OOP PDO bagian 2

Selamat Sore,

Lama rasanya sudah tidak update tentang source code lagi, hmmm jadi kangen rasanya. Langsung saja, ini merupakan contoh aplikasi CRUD ( Create, Read, Uppdate, Delete ), perbedaannya kali ini adalah kita menggunakan driver PDO yang telah tersedia dari PHP di gabungkan dengan sedikit sentuhan OOP. Sehingga akan dihasilkan kode yang lumayan rumit di bobol tetapi mudah dipahami kodenya.

Untuk susunan directori adalah sebagai berikut :
-database.php // class utama untuk CRUD
-index.php // berisi form input yang akan diproses oleh file insert.php dan kode select
-insert.php // melanjutkan proses penyimapanan ke database dari inputan form
-update.php // form untuk edit date
-update-proses.php // file yang memproses hasil dari inputan file update.php
-delete.php // menghapus data

1. Persiapan Database
Buat Database sesuai keinginan anda, untuk contoh saya beri nama 'project1'
Lalu buat tabel dengan kode:
CREATE TABLE IF NOT EXISTS 'alamat' (
    'id' int(5) NOT NULL AUTO_INCREMENT,
    'nama' varchar(125) NOT NULL,
    'alamat' varchar(1024) NOT NULL,
    PRIMARY_KEY ('id'),
    )
    ENGINE=MyISAM DEFAUTL CHARSET=latin1 AUTO_INCREMENT ;

 2. database.php
Ini merupakan file yang berisi sekumpulan kode-kode CRUD yang terbungkus di dalam class Database.
<?php
class Database extends PDO {
    protected $dsn = 'mysql:dbhost=localhost;dbname=project1'; // server dan nama db
    protected $user = 'root'; // username db
    protected $password = ''; // paswword db
   
    public function __construct(){
        // koneksi database  
        try{
            $this->dbh = new PDO($this->dsn,$this->user,$this->password);
        // test koneksi
        //    echo 'Koneksi Berhasil <br />';
        }
        catch(PDOException $e){
        // test error
        //    echo 'Gagal Koneksi '.$e->getMessage();
        }
    }
   
    public function Create($nama,$alamat){
        // fungsi insert ke database
        $this->nama = $nama;
        $this->alamat = $alamat;
        $this->data = array(
        'nama' => $this->nama,
        'alamat' => $this->alamat
        );
        $this->statement = $this->dbh->prepare('INSERT INTO alamat( nama, alamat ) VALUES( :nama, :alamat )');
        $this->statement->execute($this->data);
    }
   
    public function Select(){
        // fungsi menampilkan data dari database
        $this->statement = $this->dbh->prepare('SELECT * FROM alamat');
        $this->statement->execute();
        return $this->statement->fetchAll();
    }
   
    public function Update($id){
        // fungsi mengambil salah satu data untuk di update dari database
        $this->id = $id;
        $this->statement = $this->dbh->prepare('SELECT * FROM alamat WHERE id=:id');
        $this->statement->bindParam(':id', $this->id);
        $this->statement->execute();
        return $this->statement->fetchAll();
    }
   
    public function UpdateSave($id,$nama,$alamat){
        // proses penyimpanan data setelah di update
        $this->id = $id;
        $this->nama = $nama;
        $this->alamat = $alamat;
        $this->data = array(
        'id' => $this->id,
        'nama' => $this->nama,
        'alamat' => $this->alamat
        );
        $this->statement = $this->dbh->prepare('UPDATE alamat SET nama=:nama, alamat=:alamat WHERE id=:id');
        $this->statement->execute($this->data);
    }
   
    public function Delete($id){
        // fungsi menghapus data dari database
        $this->id = $id;
        $this->statement = $this->dbh->prepare('DELETE FROM alamat WHERE id=:id');
        $this->statement->bindParam(':id', $this->id);
        $this->statement->execute();
    }
}

// instansi class
$test = new Database;
?>

3. index.php
Perlu diingat bahwa aplikasi CRUD selalu berhubungan dengan form, maka dari itu kita buat form dahulu secara sederhana yg diletakan di file index.php
// ini adalah form input yang nantinya akan diproses oleh file insert.php
<b>Input Alamat Penduduk</b>
<form action="insert.php" method="get">
  <table border="0">
    <tr>
      <td>Nama</td>
      <td>:</td>
      <td><input type="text" value="" name="nama" /></td>
    </tr>
    <tr>
      <td>Alamat</td>
      <td>:</td>
      <td><input type="text" value="" name="alamat" /></td>
    </tr>
    <tr>
      <td><input type="submit" value="Kirim" name="kirim" /></td>
    </tr>
  </table>
</form>

// ini merupakan kode untuk menampilkan data dari database.
<?php
require( 'database.php' );
?>
<b>Daftar Alamat Penduduk</b>
<table border="1" style="border-collapse:collapse;text-align:left;" width="500px;">
  <tr>
    <th>Nama</th>
    <th>Alamat</th>
    <th colspan="2">Action</th>
  </tr>
  <?php foreach($test->Select() as $value){ ?>
  <tr>
    <td><?php echo $value['nama']; ?></td>
    <td><?php echo $value['alamat']; ?></td>
    <td><a href="update.php?id=<?php echo $value['id']; ?>">Edit</a></td>
    <td><a href="delete.php?id=<?php echo $value['id']; ?>">Delete</a></td>
  </tr>
  <?php } ?>
</table>

4. insert.php
Setelah data di submit dari form input, maka selanjutnya yang akan memproses datat tersebut untuk dimasukan kedalam database adalah file insert ini.
<?php
require( 'database.php' );
$nama = isset($_GET['nama']) ? $_GET['nama'] : '';
$alamat = isset($_GET['alamat']) ? $_GET['alamat'] : '';

// eksekusi class
$test->Create($nama,$alamat);
?>

Kembali ke : <a href="index.php">Home</a>

5. update.php
Adakalanya kita ingin meng-edit suatu data di dalam Database, lalu gimana codenya. Ini adalah code sederhananya.
<?php
require( 'database.php' );
$id = isset($_GET['id']) ? $_GET['id'] : '';
$test->Update($id);

// tampilkan data berdasarkan where
foreach($test->Update($id) as $value){
    $nama = $value['nama'];
    $alamat = $value['alamat'];
    $id = $value['id'];
}
?>

// Form edit data, yang diambil berdasakan sintaks WHERE
<b>Edit Alamat Penduduk</b>
<form action="update-proses.php" method="get">
  <input type="hidden" value="<?php echo $id; ?>" name="id" />
  <table border="0">
    <tr>
      <td>Nama</td>
      <td>:</td>
      <td><input type="text" value="<?php echo $nama; ?>" name="nama" /></td>
    </tr>
    <tr>
      <td>Alamat</td>
      <td>:</td>
      <td><input type="text" value="<?php echo $alamat; ?>" name="alamat" /></td>
    </tr>
    <tr>
      <td><input type="submit" value="Update" name="Update" /></td>
    </tr>
  </table>
</form>

6. update-proses.php
Setelah data di edit, maka harus ada kode yang memprosesnya unruk meng-set value yang diganti kedalam database.
<?php
require( 'database.php' );
$id = isset($_GET['id']) ? $_GET['id'] : '';
$nama = isset($_GET['nama']) ? $_GET['nama'] : '';
$alamat = isset($_GET['alamat']) ? $_GET['alamat'] : '';

$test->UpdateSave($id,$nama,$alamat);
?>
Kembali ke : <a href="index.php">Home</a>

7. delete.php
Yang terakhir adalah, suatu ketika kita ingin meng-hapus data, maka kita dapat menggunakan perintah code sebagia berikut :
<?php
require( 'database.php' );
$id = isset($_GET['id']) ? $_GET['id'] : '';
$test->Delete($id);
?>
Kembali ke : <a href="index.php">Home</a>

Karena penulis masih belajar, jadi jangan dimarahi yah bila ada yang salah, tapi tolong dikoreksi supaya penulis lebih teliti lagi dalam menulis. Sedikit saja tutorial di atas agar mudah dipahami oleh teman-temanyang ingin belajar.

Untuk yang bingung terhadap source code diatas, mungkin anda bisa contact admin atau tinggalkan komentar dibawah. Thank's......

3 komentar :

tombol share icon
tombol kembali ke atas
Wait . . . !!!
tampilan ads aktif