. .

Latihan 1

Latihan 1

Simple CRUD dengan PHP Framework (CodeIgniter)

Perpustakaan – Data Buku
Download File Latihan1
(Sumber: http://bernard-very.com/2012/08/15/simple-crud-dengan-php-framework-codeigniter/)

Membangun web site menggunakan CodeIgniter.

  1. Persiapan awal
  2. Konfigurasi CodeIgniter
  3. Membuat Controller
  4. Membuat Model
  5. Membuat View

 

Persiapan Awal

Dalam tahap ini ada beberapa hal yang perlu disiapkan mulai dari XAMPP (Paket instalasi Apache, MySQL, PHP), persiapan database-tabel dan download-extract CodeIgniter pada folder project.

Konfigurasi CodeIgniter

Setelah persiapan awal selesai, lakukan persiapan berikutnya yaitu konfigurasi CodeIgniter untuk aplikasi perpustakaan yang akan kita buat. Beberapa file konfigurasi yang perlu kita rubah adalah:

  • File ‘autoload.php’,  untuk mengatur packages, libraries, file helper, file custom config, file language dan models untuk diload otomatis secara default.
    Lokasi: htdocs\workshop_ci\application\config\autoload.php

Konfigurasi untuk library ‘database’

$autoload[‘libraries’] = array(‘database’);

Konfigurasi untuk helper ‘form’, ‘url’

$autoload[‘helper’] = array(‘form’,’url’);
  • File ‘config.php’, untuk mengatur beberapa konfigurasi utama dalam aplikasi yang kita buat.
    Lokasi: htdocs\workshop_ci\application\config\config.php

Konfigurasi ‘Base Site URL’ à url web yang kita gunakan

$config[‘base_url’] = ‘http://localhost/workshop_ci/‘;
  • File ‘database.php’ , untuk mengatur konfigurasi MySQL Server dan database yang akan kita gunakan.
    Lokasi: htdocs\workshop_ci\application\config\database.php

Konfigurasi server MySQL & database

$db[‘default’][‘hostname’] = ‘localhost’;
$db[‘default’][‘username’] = ‘root’;

 

$db[‘default’][‘password’] = ”;
$db[‘default’][‘database’] = ‘ci’;

 

$db[‘default’][‘dbdriver’] = ‘mysql’;
  • File ‘routes.php’, untuk mengatur routing dari CodeIgniter.
    Lokasi: htdocs\workshop_ci\application\config\routes.php

Konfigurasi default_controller: ‘perpustakaan ‘ agar dipanggil ketika ‘Base Site URL’ diload

$route[‘default_controller’] = “perpustakaan”;

Info tentang routing: Application Flow Chart (CodeIgniter User Guide)

Gambar berikut menjelaskan bagaimana alur data dari sistem pada CodeIgniter:

  1. File index.php berlaku sebagai controller terdepan, yang akan meng-inisialisasi sumber daya dasar yang diperlukan untuk menjalankan CodeIgniter.
  2. Bagian Router akan memeriksa HTTP request untuk kemudian menentukan apa yang seharusnya dilakukan terhadap permintaan tersebut.
  3. Jika file cache ada, maka akan dikirim langsung ke browser, tanpa melewati tahapan eksekusi normal sistem.
  4. Security. Sebelum controller aplikasi diload, HTTP request dan sembarang data user yang dikirim akan difilter untuk keamanan.
  5. Bagian Controller akan meload model, core libraries, helpers, dan sumber daya lain yang dibutuhkan untuk permintaan yang spesifik.
  6. View final akan dirender kemudian dikirim ke web browser untuk dapat dilihat. Jika proses chacing berjalan, view akan di chache terlebih dahulu sehingga pada permintaan beikutnya akan cepat dilayani.

Membuat Controller

Dalam konsep pemrograman MVC, karakter ‘C’ itu merupakan ‘Controller’ yang menjembatani antara model dan view. Controller berisi perintah-perintah yang berfungsi untuk memproses suatu data (dengan me-load model) dan mengirimkan hasilnya ke halaman web (dengan me-load view). Dalam aplikasi perpustakaan ini kita membuat satu file controller yaitu perpustakaan.php sebagai controller utama. Berikut langkahnya:

  • Buat file controller dengan nama file ‘perpustakaan.php.
    Lokasi: htdocs\workshop_ci\application\controllers\perpustakaan.php
<?php
class Perpustakaan extends CI_Controller
{
 function __construct()
 {
     parent::__construct();
 }
 function index()
    {
  $this->load->view(‘perpustakaan’);
    }
 function tampil_buku()
    {
     $kode=’all’;
 $this->load->model(‘buku’);
     $data_buku[‘databuku’]=$this->buku->tampil_data_buku($kode);
     $this->load->view(‘tampilbuku’,$data_buku);
    }
 function tambah_buku()
 {
  $this->load->view(‘tambahbuku’);
 }
 function simpan_buku()
 {
  if (isset($_POST[‘mysubmit’])){
  $data = array(
  ‘kode_buku’ => $this->input->post(‘kode_buku’),
                ‘judul_buku’    => $this->input->post(‘judul_buku’),
                ‘penerbit’    => $this->input->post(‘penerbit’),
  ‘isbn’         => $this->input->post(‘isbn’),
                ‘stok_buku’ => $this->input->post(‘stok_buku’),
  ‘mode’  => $this->input->post(‘mode’)
  );
   $this->load->model(‘buku’);
   $hasil=$this->buku->simpan_data_buku($data);
   if ($hasil){
    echo “Simpan data berhasil”;
   }else{
    echo “Simpan data gagal”;
   }
   echo “<br/>”;
   echo anchor(‘perpustakaan’, ‘Kembali’);
  }
 }
 function koreksi_buku($kd)
 {
  $this->load->model(‘buku’);
             $data_buku[‘databuku’]=$this->buku->tampil_data_buku($kd);
  $this->load->view(‘koreksibuku’,$data_buku);
 }
 function konfirm_hapus_buku($kd)
 {
  $this->load->model(‘buku’);
          $data_buku[‘databuku’]=$this->buku->tampil_data_buku($kd);
  $this->load->view(‘konfirmhapus’,$data_buku);
 }
 function hapus_buku($kd)
 {
  $this->load->model(‘buku’);
         $hasil=$this->buku->hapus_data_buku($kd);
  if ($hasil){
    echo “Hapus data berhasil”;
  }else{
    echo “Hapus data gagal”;
  }
  echo “<br/>”;
  echo anchor(‘perpustakaan’, ‘Kembali’);
 }
}
?>
  • Penjelasan:
    • function __construct(), controller untuk memanggil constructor pada class parent. Fungsi constructor untuk melakukan set nilai default atau menjalankan proses default ketika class di load.
    • function index(), controller untuk memanggil halaman utama. Fungsi ini akan me-load view ‘perpustakaan.php’ dengan sintak: $this->load->view(‘perpustakaan’)(lihat pada bagian bagan alur).
    • function tampil_buku(), controller untuk melayani proses tampil buku. Fungsi ini akan me-load view model ‘buku’ dengan sintak: $this->load->model(‘buku’) kemudian memanggil fungsi tampil_data_buku($kode) yang terdapat pada model ‘buku’ lalu mengirimkan hasilnya ke view dengan me-load view ‘tampilbuku.php’ dan ditampilkan ke browser dengan sintak: $this->load->view(‘tampilbuku’,$data_buku).
    • function tambah_buku(), controller untuk melayani proses tambah buku. Fungsi ini akan memanggil view ‘tambahbuku.php’.
    • function simpan_buku(), controller untuk melayani proses simpan buku. Fungsi ini akan menangkap data yang dikirim user melalui form, baik tambah buku atau koreksi buku melalui variabel POST kemudian memanggil model ‘buku.php’ dan menjalankan fungsi simpan_data_buku($data) dengan nilai return status simpan buku berhasil atau tidak.
    • function koreksi_buku($kd) , controller untuk melayani proses koreksi buku. Fungsi ini akan me-load view model ‘buku’ dan menjalankan fungsi tampil_data_buku($kode) lalu mengirimkan hasilnya ke view dengan me-load view ‘koreksibuku.php’ dan ditampilkan ke browser.
    • function konfirm_hapus_buku($kd) , controller untuk melayani proses konfirm hapus buku. Fungsi ini akan me-load view model ‘buku’ dan menjalankan fungsi tampil_data_buku($kode) lalu mengirimkan hasilnya ke view dengan me-load view ‘konfirmhapus.php’ dan ditampilkan ke browser.
    • function hapus_buku($kd) , controller untuk melayani proses hapus buku. Fungsi ini akan memanggil model ‘buku.php’ dan menjalankan fungsi hapus_data_buku($data) dengan nilai return status simpan buku berhasil atau tidak.

Membuat Model

Model mewakili struktur data. Model berisi fungsi-fungsi untuk pengelolaan basis data seperti ambil tambah, koreksi dan hapus data. Karena tulisan ini membahas tentang data buku, maka fungsi-fungsi untuk memanipulasi tabel buku kita buat pada model ‘buku.php’. Berikut langkahnya:

  • Buat file model dengan nama file ‘buku.php’
    Lokasi: htdocs\workshop_ci\application\models\buku.php
<?php
class Buku extends CI_Model
{
    public function tampil_data_buku($kode)
    {
  if ($kode==’all’){
   $hasil=$this->db->get(‘tabel_buku’);
  }else{
   $this->db->where(‘kode_buku’,$kode);
   $hasil=$this->db->get(‘tabel_buku’);
  }
        return $hasil->result();
    }
 public function simpan_data_buku($data)
 {
  if ($data[‘mode’]==’baru’){
   unset($data[‘mode’]);
   $hasil=$this->db->insert(‘tabel_buku’, $data);
  }else{
   unset($data[‘mode’]);
   $this->db->where(‘kode_buku’,$data[‘kode_buku’]);
   $hasil=$this->db->update(‘tabel_buku’, $data);
  }
  return $hasil;
 }
 public function hapus_data_buku($kode)
 {
  $this->db->where(‘kode_buku’, $kode);
  $hasil=$this->db->delete(‘tabel_buku’);
  return $hasil;
 }
}
?>
  • Penjelasan:
    • public function tampil_data_buku($kode), model untuk proses tampil data. Fungsi ini akan memangg
PDF Printer    Send article as PDF   

Comments are closed.

Sorry, comments are closed for this post.