Aplikasi guestbook kita kali ini dilengkapi dengan fasilitas menampilkan data, menambah data, merubah serta menghapus data yang sudah pernah tersimpan di database. Jadi secara keseluruhan 4 operasi dasar database yaitu : SELECT, INSERT, UPDATE dan DELETE akan diuji cobakan.
Tole : "Pakdhe..pakdhe, kok ada database klasik segala to?"To nde poin saja ya, pertama-tama
Pakdhe : "Itu istilah pakdhe aja, gak perlu bingung ya..soalnya kan saat iniden bagusPHP menyediakan beberapa cara untuk koneksi dan mengoperasikan database. Dari dulu sebenarnya PHP sudah menyediakan teknik pengoperasian database dan sampai saat ini masih banyak yang menggunakan. Teknik ini sengaja pakdhe kasih nama klasik karena sudah ada dari jaman dulu kala. Nah sekarang, si PHP menyediakan juga teknik pengoperasian database yang full Object Oriented Pogramming (OOP) dan selanjutnya dinamakan PDO"
Tole :"Trus pas nanti kita bikin program apakah ada perbedaan antara database klasik dan PDO pakdhe?
Pakdhe :"Tenang saja, khusus untuk framework ini antara yang klasik dan PDO tadi, sudah pakdhe bungkus secara rapi sehingga para pengguna framework ini tidak merasakan perbedaan tata cara pengorasian database-nya Tole..Biar tidak penasaran, coba dengarkan dongengan pakdhe dulu ya.."
- CREATE TABLE IF NOT EXISTS `guestbook` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `nama` varchar(50) NOT NULL,
- `email` varchar(50) NOT NULL,
- `isi` text NOT NULL,
- `tgl_posting` datetime NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Sebenarnya tata cara pembuatan folder aplikasi guestbook ini sama saja dengan aplikasi uji coba kita tempo hari. Kalau dalam uji coba tempo hari kita bikin folder welcome dalam folder directories, sekarang kita bikin folder bukutamu. Untuk lebih jelasnya lihat gambar disamping.
Sebelum lebih jauh ke pembuatan controller, model dan view, pertama kali yang harus kita kerjakan adalah melakukan konfigurasi database. Coba anda perhatikan lingkaran nomor 1 warna merah pada gambar disamping. Konfigurasi ini mutlak harus kita kerjakan terlebih dahulu agar aplikasi kita dapat terkoneksi ke database. Untuk uji coba yang pertama, kita manfaatkan dulu operasi database klasik nanti kalau aplikasi sudah jadi kita akan uji coba operasi database dengan PDO.
Step by step pembuatan aplikasi akan saya bahas dibawah ini.
1. Konfigurasi Database Klasik
Silakan buka file database.php pada folder application/config. Atau kalau belum ada filenya, silahkan dibuat terlebih dahulu. Kemudian copas script konfigurasi seperti dibawah ini.Yang harus anda perhatikan pada konfigurasi ini adalah pada baris ke 11 (user), baris ke 14 (password) dan baris ke 17 (database). Pada baris ke 11 bisa anda rubah kalau anda menggunakan user lain untuk koneksi ke mysql. Untuk contoh kali ini sengaja saya gunakan user default bawaan dari mysql yaitu root. Jika mysql anda di-password jangan lupa masukkan password koneksi mysql pada baris ke 14. Sedangkan baris ke-17 adalah nama database yang baru saja kita bikin diatas. Kalau tadi anda tidak menamakan database-nya dengan nama coba, maka anda diwajibkan mengganti nama database tadi sesuai dengan nama database yang anda buat.
- <?php
- $config = array();
- // jika ingin menggunakan PDO ubah mejadi 'mysql_pdo'
- $config['db']['type'] = 'mysql';
- // jika anda menggunakan PDO, ubah menjadi '127.0.0.1'
- $config['db']['server'] = 'localhost';
- //sesuaikan dengan user yang ada di database mysql anda
- $config['db']['user'] = 'root';
- //sesuaikan dengan password mysql anda
- $config['db']['password'] = '';
- //sesuaikan dengan nama database yang anda buat
- $config['db']['database'] = 'coba';
- ?>
2. Aplikasi Buku Tamu
Seperti biasa, untuk membuat aplikasi yang perlu kita sediakan adalah Controller, Model dan View terlebih dahulu. Struktur folder-nya bisa anda lihat pada gambar diatas. Satu per satu coba kita bahas ya..2.1 Controller
Controller kita kali ini sengaja dinamakan page. Oleh karena itu nama filenya juga page.php. Dalam controller ini terdapat 5 fungsi yaitu:l
- __construct : adalah fungsi konstruktor yang berisi deklarasi perintah yang jalan otomatis ketika pertama kali aplikasi dijalankan
- index : adalah fungsi default yang akan menampilkan data dan tampilan awal dari aplikasi
- edit : adalah fungsi yang bertugas menampilkan data yang akan di-edit/dirubah
- simpan : adalah fungsi yang menangani penyimpanan data, baik itu data baru ataupun data lama yang akan diubah/update
- hapus : adalah fungsi yang menangani penghapusan data dari database
- <?php defined('SYS') or exit('Access Denied!');
- class page extends controller
- {
- public function __construct()
- {
- parent::__construct();
- loader::model('guestbook_model');
- }
- public function index()
- {
- $this->output->cache(1);
- $data = array(
- 'id' => '',
- 'nama' => '',
- 'email' => '',
- 'isi' => '',
- 'tgl_posting' => '',
- 'status' => 'data_baru',
- 'daftar_bukutamu' => $this->guestbook_model->GetData()
- );
- echo view("guestbook_view", $data, false);
- }
- function edit($id){
- $data_lama = $this->guestbook_model->GetData("WHERE id=$id");
- $temp = array();
- foreach($data_lama as $key => $val){
- $temp[$key] = $val;
- }
- $data = array(
- 'id' => $id,
- 'nama' => $temp[0]['nama'],
- 'email' => $temp[0]['email'],
- 'isi' => $temp[0]['isi'],
- 'tgl_posting' => $temp[0]['tgl_posting'],
- 'status' => 'edit',
- 'daftar_bukutamu' => $this->guestbook_model->GetData()
- );
- echo view("guestbook_view", $data, false);
- }
- function simpan()
- {
- $id = isset($_POST['id']) ? $_POST['id'] : NULL;
- $nama = isset($_POST['nama']) ? $_POST['nama'] : '';
- $email = isset($_POST['email']) ? $_POST['email'] : '';
- $isi = isset($_POST['isi']) ? $_POST['isi'] : '';
- $status = isset($_POST['status']) ? $_POST['status'] : 'data_baru';
- $data = array(
- 'id' => $id,
- 'nama' => $nama,
- 'email' => $email,
- 'isi' => $isi,
- 'tgl_posting' => date('Y-m-d H:i:s')
- );
- if($status == 'data_baru'){
- $result = $this->guestbook_model->InsertData($data);
- if($result==1) {
- echo "<h2>Sukses Menambah Buku Tamu</h2>";
- echo "<p><a href='".this()->base_url."/bukutamu/page'>Kembali ke halaman depan</a></p>";
- }
- } else if($status == 'edit'){
- $result = $this->guestbook_model->UpdateData($data, array('id'=> $id));
- if($result==1) {
- echo "<h2>Sukses Merubah Buku Tamunya $nama</h2>";
- echo "<p><a href='".this()->base_url."/bukutamu/page'>Kembali ke halaman depan</a></p>";
- }
- }//end if edit
- }//end simpan
- function hapus($id){
- $result = $this->guestbook_model->DeleteData(array('id'=> $id));
- if($result==1) {
- echo "<h2>Sukses Menghapus Buku Tamu</h2>";
- echo "<p><a href='".this()->base_url."/bukutamu/page'>Kembali ke halaman depan</a></p>";
- }
- }
- }
- ?>
Sedangkan model kita kali ini dinamakan guestbook_model. Oleh karena itu nama file PHP nya sama dengan nama kelasnya yaitu guestbook_model.php. Terdapat 5 fungsi dalam class model ini yaitu:
- __construct : adalah konstruktor yang berisi deklarasi perintah untuk me-load sistem database. Sedangkan config yang dibaca adalah db (konfigurasi "db" sudah saya bahas pada sub bab 1 diatas)
- GetData : bertugas untuk meng-eksekusi perintah SELECT yang berfungsi untuk mengambil data dari database
- InserData : bertugas meng-eksekusi perintah penyimpanan data baru(INSERT)
- UpdateData : bertugas untuk mengeksekusi perintah perubahan (UPDATE) data
- DeleteData : bertugas untuk mengeksekusi perintah penghapusan (DELETE) data
- <?php defined('SYS') or exit('Access Denied!');
- class guestbook_model extends model {
- public function __construct(){
- loader::database("db");
- }
- function GetData($where=""){
- $this->db->select("SELECT * FROM `guestbook` ".$where);
- return $this->db->fetch_array();
- }
- function InsertData($data){
- return $this->db->insert('guestbook', $data);
- }
- function UpdateData($data, $where){
- return $this->db->update('guestbook', $data, $where);
- }
- function DeleteData($where){
- return $this->db->delete('guestbook', $where);
- }
- }
- ?>
Terakhir yang perlu kita bikin adalah tampilannya (view). View kita kali ini dinamakan guestbook_view.php. Script lengkapnya seperti berikut ini.
- <html>
- <head>
- <title>Buku Tamu Sederhana</title>
- </head>
- <body>
- <h2>Buku Tamu Sederhana</h2>
- <h3>Isi Buku Tamu</h3>
- <form method="POST" action="<?php echo this()->base_url;?>/bukutamu/page/simpan">
- <p><input type="text" name="nama" size="40" value="<?php echo $nama;?>" /><label>Nama</label></p>
- <p><input type="text" name="email" size="40" value="<?php echo $email;?>" /><label>Email</label></p>
- <label>Isi</label>
- <p><textarea name="isi" rows="5" cols="40"><?php echo $isi;?></textarea></p>
- <input type="hidden" name ="id" value="<?php echo $id;?>" />
- <input type="hidden" name ="status" value="<?php echo $status;?>" />
- <p><input type="submit" value="simpan"></p>
- </form>
- <h3>Daftar Buku Tamu</h3>
- <table border="1" width="100%" style="border-collapse:collapse;">
- <tr>
- <th>ID</th>
- <th>Nama</th>
- <th>Email</th>
- <th>Isi</th>
- <th>Tgl Posting</th>
- <th>Operasi</th>
- </tr>
- <?php
- foreach($daftar_bukutamu as $d) {
- ?>
- <tr>
- <td><?php echo $d['id'];?></td>
- <td><?php echo $d['nama'];?></td>
- <td><?php echo $d['email'];?></td>
- <td><?php echo $d['isi'];?></td>
- <td><?php echo $d['tgl_posting'];?></td>
- <td align="center">
- <a href="<?php echo this()->base_url.'/bukutamu/page/edit/'.$d['id'];?>">Edit</a> -
- <a href="<?php echo this()->base_url.'/bukutamu/page/hapus/'.$d['id'];?>" onclick="return confirm('Anda yakin akan menghapus data ini?')">Hapus</a>
- </td>
- </tr>
- <?php
- }//end foreach
- ?>
- </table>
- <p>Waktu komputasi 0.0591 detik. Kebutuhan memory 1.76 MB</p>
- </body>
- </html>
Operasi databasePDO ini akan jalan jika modul PDO sudah terpasang/ter-install pada web service anda. Untuk mengetahui PDO-nya sudah terpasang apa belum coba gunakan fungsi phpinfo(). Hati-hati kalau anda masih menggunakan jasa web hosting. Tidak semua web hosting menyediakan modul PDO ini. Jika hosting anda belum memasang modul PDO jangan memaksakan diri menggunakan operasi database PDO, kecuali anda pingin nasibnya sama dengan pakdhe Sakiyun..hehe.. |
- <?php
- $config = array();
- // jika ingin menggunakan klasik ubah mejadi 'mysql'
- $config['db']['type'] = 'mysql_pdo';
- // jika anda menggunakan klasik, ubah menjadi 'localhost'
- $config['db']['server'] = '127.0.0.1';
- //sesuaikan dengan user yang ada di database mysql anda
- $config['db']['user'] = 'root';
- //sesuaikan dengan password mysql anda
- $config['db']['password'] = '';
- //sesuaikan dengan nama database yang anda buat
- $config['db']['database'] = 'coba';
- ?>
sumber: http://www.blogkomputer.com/sampul-tutorial-membangun-hmvc-php-framework.html
No comments:
Post a Comment