CODE IGNITER (CI)
A. Pengenalan Code Igniter
CodeIgniter adalah sebuah web application framework yang bersifat open source digunakan untuk membangun aplikasi php dinamis. Dengan framework CodeIgniter, pengembang dapat sangat mudah menggunakan framework ini untuk membuat suatu aplikasi web. Aplikasi ini dikembangkan dengan menggunakan arsitektur Model-View-Controller yang telah tersedia di framework CI dan ada banyak library dan helper yang berguna didalamnya dan tentunya mempermudah proses development.
Tujuan utama pengembangan CodeIgniter adalah untuk membantu developer untuk mengerjakan aplikasi lebih cepat daripada menulis semua code dari awal. Manfaatnya mempermudah dalam pengembangan karena CodeIgniter menyediakan berbagai macam library yang ada. Didalam sebuah framework biasanya sudah tersedia struktur aplikasi yang baik, standar coding (1), best practice (2) dan design pattern (3), dan common function (4). Dengan menggunakan framework kita dapat langsung fokus kepada business process yang dihadapi tanpa harus berfikir banyak masalah stuktur aplikasi, standar coding dan lain-lain. Selain kemudahan dan kecepatan dalam membangun sistem, dengan menggunakan framework tertentu kita juga dapat “menyeragamkan” cara kita mengimplementasikan kode program.
B. Fitur pada CodeIgniter
CodeIgniter adalah sebuah web application framework yang bersifat open source digunakan untuk membangun aplikasi php dinamis. CodeIgniter dikembangkan oleh Rick Ellis (htyp://www.ellislab.com). Kelebihan CodeIgniter adalah sangat ringan, terstruktur, mudah dipelajari, dokumentasi lengkap dan selain itu CodeIgniter juga memiliki fitur-fitur lainnya yang sangat bermanfaat antara lain :
Menggunakan pattern MVC
Dengan menggunakan pattern MVC ini, struktur kode yang dihasilkan menjadi lebih terstruktur dan memiliki standar yang jelas.
URL yang dihasilkan sangat URL friendly. Pada CodeIgniter diminimalisasi penggunaan $_GET dan di gantikan URL.
Kemudahan
Kemudahan dalam mempelajari, membuat library dan helper, memodifikasi serta meng-integrasikan library dan helper.
C. Keunggulan CodeIgniter
1. Gratis 2. Ringan
Inti sistem CodeIgniter hanya membutuhkan sangat sedikit library, hal ini merupakan perbedaan kontras dengan framework lain. Library lainnya dapat digunakan dinamis berdasarkan kebutuhan.
3. Cepat
Sampai saat ini CodeIgniter masih diakui sebagai framework yang paling cepat. 4. Menggunakan konsep MVC
5. Clean URL
URL yang digunakan CodeIgniter bersifat search-engine friendly. Menggunakan pendekatan segment-based.
6. Library yang lengkap 7. Dapat diperluas
Developer dapat dengan mudah mengembangkan (extend) library, helper atau bahkan perluasan class inti CodeIgniter.
8. Dukungan teknis yang lengkap di forum CodeIgniter
D. Instalasi dan Struktur CodeIgniter
Instalasi CodeIgniter sangat mudah. Meskipun namanya instalasi tetapi karena CodeIgniter adalah aplikasi berbasis website maka sebenarnya yang perlu dilakuka adalah meng-copy folder aplikasi CodeIgniter ke dalam folder htdocs atau DocumentRoot dari web server. Dengan menggunakan konfigurasi default saja maka CodeIgniter sudah dapat berjalan di web server kita. Adapun struktur utama dari CodeIgniter terbagi menjadi dua bagian, yaitu application dan sistem/core CodeIgniter. Application adalah tempat pengguna meletakkan code yang akan dibuat (berwarna merah dan biru sedangkan
sistem/core CodeIgniter berwarna oren). Folder sistem berisi library-library dan helper bawaan CodeIgniter.
Gambar 1. Struktur direktori CodeIgniter
Folder application : disinilah aplikasi yang akan kita bangun diletakkan.
Folder config
tempat menyimpan semua file konfigurasi yang ada di dalam aplikasi, mulai dari database, router dan autoload aplikasi.
Folder controllers
Tempat menyimpan semua fole controller. Folder errors
Tempat menyimpan semua template error aplikasi. Folder helpers
Tempat menyimpan helper-helper yang bukan berasal dari CI. Folder hooks
Tempat menyimpan hook yang digunakan untuk mengubah alur fungsi dari core CI.
Folder language
Tempat menyimpan bahasa-bahasa yang akan di gunakan. Folder libraries
Tempat menyimpan semua library buatan kita sendiri. Folder models
Tempat menyimpan semua model. Folder views
Folder system : menyimpan semua file baik itu file aplikasi yang dibuat mauoun core
frameworknya. Folder cache
tempat menyimpan semua cache yang dibuat caching library. Folder database
Tempat menyimpan semua driver database drivers dan class yang akan digunakan.
Folder fonts
Tempat menyimpan semua font yang digunakan image manipulation library. Folder helpers
Tempat menyimpan semua helper core CI. Folder language
Tempat menyimpan semua language core CI. Folder language
Tempat menyimpan semua language core CI. Folder libraries
Tempat menyimpan semua library core CI. Folder logs
Tempat menyimpan semua logs generated oleh CI. Folder plugin
Tempat menyimpan semua plugin core CI. Folder scaffolding
Tempat menyimpan semua file yang berfungsi sebagai scaffolding.
Folder user_guide : berisi userguide/manual penggunaan CI.
Folder index.php : file yang akan menghandle semua request yang dilakukan oleh
client.
Folder index.html : merupakan gerbang utama untuk masuk dan mengakses segala
resource pada aplikasi CodeIgniter
E. Konsep MVC
Secara sederhana konsep MVC terdiri dari tiga bagian yaitu bagian Model, bagian View dan bagian Controller. Didalam website dinamis setidaknya terdiri dari 3 hal yang paling pokok, yaitu basis data, logika aplikasi dan cara menampilkan halaman website. 3 hal tersebut dipresentasikan dengan MVC yaitu model untuk basis data, view untuk cara menampilkan halaman website dan controller untuk logika aplikasi.
1. Model
Biasanya didalam model akan berisi class dan fungsi untuk mengambil, melakukan update dan menghapus data website. Karena sebuah website biasanya menggunakan basis data dalam menyimpan data maka bagian Model biasanya akan berhubungan dengan perintah-perintah query SQL.
2. View
Merupakan informasi yang ditampilkan kepada pengunjung website. Sebisa mungkin didalam View tidak berisi logika-logika kode tapi hanya berisi variabel-variabel yang berisi data yang siap ditampilkan. View hanya dikhususkan untuk menampilkan data-data hasil dari model dan controller.
3. Controller
Controller merupakan penghubung antara Model dan View. Didalam Controller inilah terdapat class dan fungsi-fungsi yang memproses permintaan dari View kedalam struktur data didalam Model. Controller juga tidak boleh berisi kode untuk mengakses basis data. Tugas Controller adalah menyediakan berbagai variabel yang akan ditampilkan di view, memanggil model untuk melakukan akses ke basis data, menyediakan penanganan error, mengerjakan proses logika dari aplikasi serta melakukan validasi atau cek terhadap input.
F. CONTOH PROGRAM
Contoh programnya dengan penerapan menggunakan database :
Pertama kali kita membuat sebuah database bernama mahasiswa dan table bernama mahasiswa yang terdiri dari 3 field npm(int) nama(varchar) dan kota(varchar) seperti gambar diatas. $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'root'; $db['default']['password'] = ''; $db['default']['database'] = 'mahasiswa'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE;
Penggalan code diatas merupakan bagian dari code database.php yg terdapat pada folder config/ dimana code ditas digunakan untuk mengkonfigurasi database , dengan hostname adalah locahost, username root dana database yang digunkana adalah mahasiswa.
<?php if ( !defined('BASEPATH')) exit('No direct script access allowed'); class Crud extends CI_Controller{
function __construct(){ parent::__construct(); $this->load->model('M_crud'); } function index() { $data['record'] = $this->M_crud->getDataMahasiswa(); $this->load->view('v_index',$data); } function tambahdata(){ $this->load->view('v_tambahdata'); } function actiontambah(){ $this->M_crud->actiontambah(); } function hapusdata($npm){ $this->M_crud->hapusdata($npm);
} function edit ($npm = 0){ $mhs = $this->M_crud->getSingleMahasiswa($npm); $data['npm'] = $mhs->npm; $data['nama'] = $mhs->nama; $data['kota'] = $mhs->kota; $this->load->view('v_editdata',$data); } function actionupdate() { $this->M_crud->actionupdate(); } }
Code diatas merupakan code dari file Crud.php yang terdapat pada controllers dimana code tersebut digunakan untuk memanggil atau menghubungkan file pada view dengan file pada model memberikan fungsi untuk operasi tambah edit dan hapus data yang ada pada m_crud.php . Dimana pada codingan ini index atau awal tampilan nya itu adalah v_index sebagai index utama.
<?php if ( ! defined ('BASEPATH')) exit ('no direct script access allowed'); class m_crud extends CI_Controller{
function getDataMahasiswa(){
return$this->db->get('mahasiswa'); }
function actiontambah(){
$npm =$this->input->post('npm', TRUE); $nama =$this->input->post('nama', TRUE); $kota =$this->input->post('kota', TRUE); $this->db->insert('mahasiswa', array('npm'=>$npm,'nama'=>$nama,'kota'=>$kota)); redirect('crud'); } function hapusdata($npm){ $this->db->delete('mahasiswa', array('npm'=>$npm)); redirect ('crud'); } function getSingleMahasiswa($npm){ $query = $this->db->get_where('mahasiswa', array('npm'=>$npm)); return $query->row(); } function actionupdate(){ $npm=$this->input->post('npm', TRUE); $nama=$this->input->post('nama',TRUE); $kota=$this->input->post('kota', TRUE); $this->db->where('npm',$npm); $this->db->update('mahasiswa', array( 'nama'=>$nama, 'kota'=>$kota )); redirect('crud');
} }
Code diatas merupakan code yang terdapat pada m_crud.php yang ada pada folder model/ . Code diatas digunakan untuk memberikan fungsi-fungsi seperti tambahdata, hapus data atau update data informasi yang terhubung dengan database.
<
<center><h1>Latihan CRUD</h1><center><hr/> <div class="table">
<?php
if($record->num_rows () == 0){
echo "<center><strong>tidak ada data tersedia</strong></center>";
} else { ?>
<center><h3><strong>Data Mahasiswa</strong></h3></center> <a href="crud/tambahdata">Tambah data</a>
<table class="table table-striped"> <tr> <td>NPM</td> <td>Nama</td> <td>Kota</td> <td colspan="2">Action</td> </tr> <?php foreach($record->result_array() as $key){ echo"<tr>"; echo"<td>".$key['npm']."</td>"; echo"<td>".$key['nama']."</td>"; echo"<td>".$key['kota']."</td>"; echo"<td><a href='crud/edit/".$key['npm']."'>Edit</a>"; echo"<td><a href='crud/hapusdata/". $key['npm']."'>Hapus</a>"; echo"</tr>"; }
?> </table> <?php } ?> </div> </body> </html>
Code diatas merupakan code dari file v_index.php yang ada pada folder view/ . code ini digunakan untuk merancang tampilan pada browser . Dimana file ini menjadi tampilan utama yang dirancang menggunakan table yang terdiri dari 5 kolom yaitu , npm nama kota edit dan hapus dan juga terdapat menu tambah data .
<!DOCTYPE html> <html>
<head>
<title>Latihan CRUD</title>
<link rel="stylesheet" href="../../../assets/bootstrap.min.css" /> <style> .tabel { width: 700px; margin: 0 auto; padding: 0; } </style> </head> <body> <center> <h1>Latihan CRUD</h1> </center> <hr/> <div class="tabel"> <center>
<h3><strong>Edit Data Mahasiswa</strong></h3> </center>
<form role="form" action="../actionupdate" method="post"> <div class="form-group">
<label for="npm">NPM</label>
<input type="text" name="npm1" class="form-control" id="npm" placeholder="NPM Mahasiswa" value="<?php echo $npm;?>" disabled>
<input type="hidden" name="npm" class="form-control" id="npm2" placeholder="NPM Mahasiswa" value="<?php echo $npm;?>">
</div>
<div class="form-group">
<label for="npm">Nama</label>
<input type="text" name="nama" class="form-control" id="nama" value="<?php echo $nama;?>" placeholder="Nama">
</div>
<div class="form-group">
<label for="kota">Kota</label>
<input type="text" name="kota" class="form-control" id="kota" value="<?php echo $kota;?>" placeholder="Kota">
</div>
<button type="submit" class="btn btn-default"> Submit </button> </form> </div> </body> </html>
Code diatas merupakan code dari file v_editdata.php yang ada pada folder view/ . Code ini digunakan untuk merancang tampilan pada browser bagian edit data. Pada tampilan ini terdapat 3 form input/edit text npm nama dan kota , npm di disable atau tidak bisa diubah , sedangkan nama dan kota bisa diedit . juga terdapat button submit untuk memproses edit data
<!DOCTYPE html> <html>
<head>
<title>Latihan CRUD</title>
<link rel="stylesheet" href="../../assets/bootstrap.min.css"/> <style> .tabel{ width: 700px; margin: 0 auto; padding: 0; }
</style> </head> <body> <center><h1>Latihan CRUD</h1></center> <br> <div class="tabel"> <center>
<h3><strong>Input Data Mahasiswa</strong></h3> </center>
<form role="form" action="actiontambah" method="post"> <div class="form-group">
<label for="npm">NPM</label>
<input type="text" name="npm" class="form-control" id="npm" placeholder="NPM Mahasiswa" required>
</div>
<div class="form-group">
<label for="nama">Nama</label>
<input type="text" name="nama" class="form-control" id="nama" placeholder="Nama Mahasiswa" required>
</div>
<div class="form-group">
<label for="kota">Kota</label>
<input type="text" name="kota" class="form-control" id="kota" placeholder="Kota" required>
</div>
<button type="submit" class="btn-btn-default"> Submit </button> </form> </div> </body> </html>
Code diatas merupakan code dari file v_tambahdata.php yang ada pada folder view/ . Code ini digunakan untuk merancang tampilan pada browser bagian tambah data. Pada tampilan ini terdapat 3 form input/edit text npm nama dan kota diaman disi untuk menambah data. juga terdapat button submit untuk memproses tambah data yang nantinya dimasukan pada database .
G. OUTPUT PROGRAM
Gambar 4. Ketika mengetikkan localhost/4IA04/index.php/CRUD/tambahdata
Gambar 6. Ketika data mahasiswa berhasil di input
Gambar 8. Ketika klik action hapus data
DAFTAR PUSTAKA
http://fiftin.staff.uad.ac.id/file/framework4.pdf
http://ilmuti.org/wp-content/uploads/2014/03/mengenal-codeigniter-framework1.pdf http://pintarci.blogspot.com/2014/09/pengenalan-struktur-codeigniter.html