CRUD Database Menggunakan CakePHP

Buat: 08/06/2013 - 14:33
Pojok Programmer - CRUD Database Menggunakan CakePHP

Pada tutorial sebelumnya http://phpindonesia.net/artikel/teknik-scaffolding-pada-cakephp kita telah membahas tentang teknik scaffolding pada CakePHP, tujuan dari teknik tersebut adalah kita membuat aplikasi CRUD Database sederhana dengan singkat dan tidak membutuhkan waktu yang lama.

Nah, setelah kita belajar tentang hal tersebut, maka pada tutorial ini penulis akan mencoba membuatkan tutorial tentang pembuatan operasi CRUD Database pada CakePHP secara manual. Sebagai catatan bahwa database dan tabel yang kita gunakan adalah database dan tabel pada tutorial sebelumnya yaitu database company dan table employes

Baik untuk menyingkat waktu kita langsung saja praktekan bersama

1. Kita ekstrak installer cakePHP (saya menggunakan versi 2.3.8) ke dalam folder htdocs kita, kemudian kita ubah nama folder tersebut menjadi crud-cake

2. Kita buka folder database.php.default yang berada di folder \htdocs\crud-cake\app\Config kemudian kita save as file tersebut pada lokasi folder yang sama dan kita ganti namanya menjadi database.php, kemudian kita ubah konfigurasinya seperti berikut

class DATABASE_CONFIG {

    public $default = array(
       'datasource' => 'Database/Mysql',
       'persistent' => false,
        'host' => 'localhost',
      'login' => 'root',
      'password' => '',
       'database' => 'company',
        'prefix' => '',
     //'encoding' => 'utf8',
);

    public $test = array(
      'datasource' => 'Database/Mysql',
       'persistent' => false,
        'host' => 'localhost',
      'login' => 'user',
      'password' => 'password',
       'database' => 'test_database_name',
     'prefix' => '',
     //'encoding' => 'utf8',
);
}

3. Membuat Model, kita tambahkan file baru bernama Employee.php kemudian kita simpan pada folder \htdocs\crud-cake\app\Model, lalu ketikkan source code berikut

<?php
class Employee extends AppModel {
}
?>

4. Membuat Controller, kita tambahkan file baru bernama EmployeesController.php kemudian kita simpan pada folder \htdocs\crud-cake\app\Controller, lalu ketikkan source code berikut

<?php
class EmployeesController extends AppController {
  public $helpers = array ('Html', 'Form');
 
   public function index() {
      $this->set('employees', $this->Employee->find('all'));
    }
 
   function tambah() {
        if(!empty($this->data)) {
           $this->Employee->create();
           if($this->Employee->save($this->data)) {
              $this->Session->setFlash('Data berhasil ditambah');
                $this->redirect(array('action'=>'index'), null, true);
           }
          else {
             $this->Session->setFlash('Data gagal ditambah, silakan coba lagi..');
          }
      }
  }
 
   function ubah($id=null) {
      if(!$id) {
         $this->Session->setFlash('Data tidak valid');
          $this->redirect(array('action'=>'index'), null, true);
       }
      if(empty($this->data)) {
            $this->data = $this->Employee->findById($id);
     }
      else {
         if($this->Employee->save($this->data)) {
              $this->Session->setFlash('Data berhasil diupdate');
                $this->redirect(array('action'=>'index'), null, true);
           }
          else {
             $this->Session->setFlash('Data gagal diupdate, silakan coba lagi..');
          }
      }
  }
 
   function hapus($id=null) {
     if(!$id) {
         $this->Session->setFlash('Data tidak valid');
          $this->redirect(array('action'=>'index'), null, true);
       }
      if($this->Employee->delete($id)) {
           $this->Session->setFlash('Data dengan nama ' .$id. ' dihapus');
          $this->redirect(array('action'=>'index'), null, true);
       }
  }
}
?>


5. Kita telah membuat Model dan Controller pada aplikasi ini, langkah selanjutnya adalah kita akan membuat View, di sini penulis akan membuat 3 (tiga) file view, antara lain index.ctp (untuk tampilan halaman awal), tambah.ctp (form untuk melakukan penambahan karyawan), dan ubah.ctp (form untuk melakukan perubahan data) ketiga file tersebut disimpan pada folder \htdocs\crud-cake\app\View lalu kita buat folder baru bernama Employees, sehingga lokasi penempatan folder untuk ketiga file tersebut adalah \htdocs\crud-cake\app\View\Employees.

Berikut ada source untuk index.ctp

<?php echo $this->Html->link('Tambah Data', array('controller'=>'employees', 'action'=>'tambah')); ?>
<table>
<tr>
     <th>NIP</th>
       <th>Nama</th>
      <th>Golongan</th>
      <th>Pangkat</th>
       <th>Action</th>
    </tr>
    <?php foreach ($employees as $employee) : ?>
<tr>
     <td><?php echo $employee['Employee']['nip'] ?></td>
      <td><?php echo $employee['Employee']['nama'] ?></td>
     <td><?php echo $employee['Employee']['golongan'] ?></td>
     <td><?php echo $employee['Employee']['pangkat'] ?></td>
      <td><?php echo $this->Html->link('Ubah', array('action' => 'ubah', $employee['Employee']['id'])); ?> |
          <?php echo $this->Html->link('Hapus', array('action' => 'hapus', $employee['Employee']['id']),
                                                 array('confirm'=>'Apakah Anda yakin akan menghapus data ini?')); ?></td>
</tr>
    <?php endforeach; ?>
</table>

Kemudian file tambah.ctp

<?php echo $this->Form->create('Employee'); ?>
<fieldset>
   <legend>Tambah Data</legend>
   <?php
       echo $this->Form->input('nip');
        echo $this->Form->input('nama');
       echo $this->Form->input('golongan');
       echo $this->Form->input('pangkat'); 
  ?>
</fieldset>
<?php echo $this->Form->end('Tambah'); ?>

<?php echo $this->Html->link('Lihat Data', array('controller'=>'employees', 'action'=>'index')); ?>

Lalu file ubah.ctp

<?php echo $this->form->create('Employee'); ?>
    <fieldset>
       <legend>Edit Data</legend>
     <?php
           echo $this->form->hidden('id');
            echo $this->form->input('nip');
            echo $this->form->input('nama');
           echo $this->form->input('golongan');
           echo $this->form->input('pangkat');
        ?>
  </fieldset>
<?php echo $this->form->end('Update'); ?>

<?php echo $this->Html->link('Lihat Data', array('controller'=>'employees', 'action'=>'index')); ?>


Setelah kita mengetikan source code diatas, kita buka browser kita, kemudian ketikkan url berikut ini http://localhost/crud-cake/employees, maka kita telah berhasil membuat aplikasi CRUD Database sederhana secara manual menggunakan CakePHP.

Programming adalah Seni Berlogika

About Author

See also

Tentang PHP Indonesia

PHP Indonesia adalah sebuah komunitas untuk semua orang yang mencintai PHP. Fokus utama kami adalah pemrograman menggunakan bahasa PHP, namun tidak menutup kemungkinan pembahasan yang mencakup keseluruhan LAMP stack. Topik bisa dari pemrograman PHP, penanganan memcached, optimasi database, konfigurasi server, tuning server web, application deployment, framework PHP, hosting pilihan dan sebagainya.

Petunjuk Penulisan

Berikut ini adalah beberapa petunjuk penulisan artikel. Petunjuk dibuat bukan untuk membatasi tetapi demi menjaga kualitas artikel yang terpublikasi di situs ini. Selain itu, keseragaman gaya bahasa dapat menjaga readibilitas (tingkat keterbacaan) sehingga pembaca akan lebih nyaman dalam membaca artikel di situs ini.