PDKT CodeIgniter : Model [Part 4]


Model adalah class PHP yang digunakan untuk berhubungan dengan database. Terdapat beberapa aturan Model sebagai berikut :

  • Diletakkan di folder \application\models (C:\xampp\htdocs\CI\system\application\models).
  • Huruf pertama nama suatu class didalam model harus capital dan yang lainnya huruf kecil.
  • Nama class harus sama dengan nama file.
  • Model yang kita buat harus extends terhadap kelas model parent sehingga dapat meng-inherit semua fungsinya.
  • Nama constructor harus sama persis dengan nama class dan didalam constructor harus terdapat script parent::Model();

Untuk dapat koneksi ke database dapat dilakukan dengan cara autoload atau dengan cara manual. Setelah connect, kita bisa melakukan operasi insert, update, delete, retrieve data dari database. File model juga bisa terletak didalam suatu subfolder dan untuk meloadnya dengan menyebutkan nama sub-foldernya (*jika ada). Buatlah satu buah database dengan nama ci_db dengan satu buah table dengan nama biodata. Table biodata terdiri 4 field (*id(bigint, auto increment), nama[varchar 100], alamat[varchar 1000], tgl_lahir[date]). Kemudian masukkan beberapa data kedalamnya.

Database Configuration

CodeIgniter memiliki konfigurasi database pada file database.php yang terletak di folder application/config (C:\xampp\htdocs\CI\system\application\config). Isikan configurasi seperti berikut ini :

  $db['default']['hostname'] = "localhost";
  $db['default']['username'] = "root";
  $db['default']['password'] = "";
  $db['default']['database'] = "ci_db";
  $db['default']['dbdriver'] = "mysql";
  $db['default']['dbprefix'] = "";
  $db['default']['pconnect'] = TRUE;
  $db['default']['db_debug'] = FALSE;
  $db['default']['cache_on'] = FALSE;
  $db['default']['cachedir'] = "";
  $db['default']['char_set'] = "utf8";
  $db['default']['dbcollat'] = "utf8_general_ci";

Connecting Database

Koneksi database secara otomatis melalui file autoload.php (C:\xampp\htdocs\CI\system\application\config) atau secara manual dengan menggunakan script ini : $this->load->database(); di file controller.

Example

Buatlah sebuah model dengan nama hello_model.php dan letakkan di folder application/models (C:\xampp\htdocs\CI\system\application\models). Contohnya seperti dibawah ini :

<?php
  class Hello_model extends Model{
    function Hello_model() {
      parent::Model();
    }
    function select_all() {
      $query = $this->db->query('SELECT * FROM biodata');
      return $query->result();
    }
  }
?>

Ubahlah file controller hello.php seperti dibawah ini :

<?php
  class Hello extends Controller {
    function Hello() {
      parent::Controller();
      $this->load->database();
      $this->load->model('Hello_model');
    }
    function index() {
      $data['judul'] = "My Webpage";
      $data['isi_heading'] = 'Keluarga : ';
      $data['family'] = array ('Ayah','Bunda', 'Anak', 'Kakek','Nenek');
      $data['query'] = $this->Hello_model->select_all();
      $this->load->view('hello_view',$data);
    }
  }
?>

Ubahlah file view hello_view.php seperti dibawah ini :

<html>
  <head>
    <title><?php echo $judul;?></title>
  </head>
  <body>
    <h1 style="color:blue"><?php echo $isi_heading; ?></h1>
    <ul>
      <?php foreach ($family as $item): ?>
      <li style="color:red"><?php echo $item;?></li>
      <?php endforeach;?>
    </ul>
    <hr/>
    <table border="1">
      <tr>
        <th>ID</th><th>NAMA</th><th>ALAMAT</th><th>TGL LAHIR</th>
      </tr>
      <?php foreach ($query as $row): ?>
      <tr>
        <td><?php echo $row->id;?></td>
        <td><?php echo $row->nama;?></td>
        <td><?php echo $row->alamat;?></td>
        <td><?php echo $row->tgl_lahir;?></td>
      </tr>
      <?php endforeach;?>
    </table>
  </body>
</html>

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s