Berikut adalah Tahap-Tahap yang terdapat pada Tutorial Tutorial Dasar Menggunakan Framework Code Igniter
Prerequisite
Prerequisite
-
Wajib untuk memahami konsep pemrograman dasar web (HTML dan CSS). Ini merupakan modul yang paling fundamental. Kalau anda tidak memahami ini, anda akan sangat kesulitan dalam memahami tutorial ini, karena disini tidak akan dijelaskan mengenai HTML dan CSS.
-
Wajib untuk memahami konsep database, khususnya MySQL. Di tutorial ini tidak akan dijelaskan mengenai konsep database, jadi anda harus sudah paham sebelumnya.
-
Sebaiknya anda memahami pemrograman menggunakan PHP prosedural, karena tutorial ini akan lebih menekankan perbedaan konsep PHP procedural dan PHP CI. Anda bisa saja langsung belajar CI tanpa memahami PHP procedural terlebih dahulu, namun mungkin anda perlu effort yang lebih besar.
-
Sebaiknya anda sudah familiar dengan konsep pemrogranan OOP dan MVC. Karena di CI ini menggunakan konsep MVC semi-OOP. Penjelasan tentang MVC utk CI dapat anda lihat disini http://rifanmfauzi.com/2013/04/mvc-pada-codeigniter/.
-
Dan yang terakhir, mungkin anda sebaiknya memahami dulu Codeigniter itu apa, kenapa harus menggunakan CI, dan apa kelebihan dan kekurangannya. Baca artikel ini http://rifanmfauzi.com/2013/04/codeigniterkelebihan-dan-kekurangan/.
-
Persiapkan alat tempur untuk belajar web development menggunakan codeigniter
- Framework codeigniter (http://ellislab.com/codeigniter)
- Text editor (notepad++,
sublime, dreamweaver, atau yang lainnya) - Local server (xampp, atau yang lainnya)
-
Extract codeigniter.zip ke folder htdocs, sehingga dapat diakses melalui web browser. Jika berhasil maka tampilannya akan seperti ini.
-
Disini kita akan membuat sebuah portal sederhana untuk menampilkan artikel blog. Sebelumnya mari kita buat terlebih dahulu databasenya. Tabel yg pertama dibuat ialah tabel utk menyimpan tulisan-tulisan (artikel)
-
Nah sekarang mari kita memulai utk belajar menggunakan framework CI ini. Hal pertama yang harus dilakukan ialah mengatur konfigurasi portal.Pertama, setting database. Buka folder application -> config -> database.php. Masukan settingan database anda.
-
$db[‘default’][‘hostname’] = ‘localhost’;
-
$db[‘default’][‘username’] = ‘root’;
-
$db[‘default’][‘password’] = ‘rifan’;
-
$db[‘default’][‘database’] = ‘ci_portal’;
$autoload['libraries'] = array(‘database’, ‘session’);
$autoload['helper'] = array(‘url’);
Disini kita hanya menggunakan library ‘database’ & ‘session’, serta helper ‘url’. Karena ketiga modul ini akan sering kita gunakan nantinya.
Untuk menggunakan library session, kita harus terlebih dahulu mengeset encryption key. Di application -> config -> config.php.
$config[‘encryption_key’] = ‘pauiwnydksndlfieotmrebkrtd’;Key yang diisikan bebas, terserah anda
-
- Tentunya untuk memahami codeigniter dengan baik anda perlu memahami terlebih dahulu konsep pemrograman MVC (model-view-controller). Model bertugas untuk berhubungan langsung dengan database. View bertugas untuk menampilkan di browser. Dan controller bertugas untuk mengatur model dan view.
-
Nah selanjutnya mari kita membuat agar web portal kita mampu menampilkan data yang ada di table tulisan. Pertama buat model untuk mengambil data tulisan pada database. Buatlah file baru (tulisan_m.php) pada folder application->model.
-
<?php
-
class tulisan_m extends CI_Model{
-
function get_tulisan(){
-
//$s=”SELECT * FROM tulisan WHERE aktif=’1′ ORDER BY waktu DESC LIMIT 0,10″;
-
$this->db->select()->from(‘tulisan’)->where(‘aktif’,1)->order_by(‘waktu’,‘desc’)->limit(20,0);
-
//$q=mysql_query($s);
-
$query=$this->db->get();
-
return $query->result_array();
-
}
-
}
-
?>
Baris yang saya beri komentar merupakan syntax pada PHP biasa, dan syntax itu pada CI dapat diubah menjadi bentuk yang lebih sederhana. Kata extends wajib digunakan agar kelas yang kita buat memiliki sifat seperti induknya (dari codeigniter).Pada setiap nama file dan nama kelas, pastikan tulis _m, _c, _v agar lebih memudahkan kita dalam memenej source code. Diatas kita gunakan tulisan_m, karena kelas tulisan tersebut berada di model. Dan selanjutnya kita akan membuat kelas tulisan di controller, maka sebaiknya penulisannya tulisan_c. Sebenarnya aturan ini bukanlah aturan dari CI, tetapi hanya utk memudahkan programmer saja agar tidak bingung ketika nanti ada ratusan file php. -
-
Selanjutnya buat controllernya. Application->controller->tulisan_c.php. Disini kita akan coba memanggil kelas pada model yang sudah dibuat.
-
<?php
-
class tulisan_c extends CI_Controller{
-
function index(){
-
$this->load->model(‘tulisan_m’); //me-load kelas tulisan_m pada model
-
$data[‘tulisan’]=$this->tulisan_m->get_tulisan();
-
//memanggil fungsi pada kelas yang sudah dipanggil
-
echo “<pre>”;
-
print_r($data[‘tulisan’]);
-
echo “</pre>”;
-
}
-
}
-
?>
Function index() ialah fungsi yang akan selalu dipanggil ketika kelasnya di panggil jika tidak ada anak dari kelas tersebut. Jadi ketika kita mengakses kelas tulisan_c via browser, maka secara otomatis fungsi index ini akan dijalankan.Code echo “<pre>”….echo “</pre>” hanya digunakan agar kita dapat melihat, apakah source code yang kita tulis sudah berjalan atau belum. Jika sudah berjalan, maka tampilannya akan seperti ini.Alamat http://localhost/ci_portal/index.php/tulisan_c merupakan aturan dari CI sendiri. Jadi untuk mengakses setiap page, kita harus memanggil nama kelasnya pada controller. Kita bisa saja mengubah alamat ini menjadi alamat index dengan mengubah routes.php pada application->config.
$route[‘default_controller’] = “tulisan_c”;
Sehingga ketika kita mengakses http://localhost/ci_portal/index.php atau http://localhost/ci_portal/ secara otomatis sistem akan memanggil kelas tulisan_c.Lalu Kenapa isinya Cuma “Array ()” saja? Ya itu karena pada databse, table tulisan masih kosong. Sekarang coba kita isi data pada table tersebut. Lalu lihat hasilnya. Berikut ini SQL yang kita masukan untuk mengisi table tulisan.-
INSERT INTO `ci_portal`.`tulisan` (`id_tulisan`, `judul`, `id_penulis`, `waktu`, `isi`, `aktif`) VALUES (”, ‘Asteroid Sebesar 45 Meter Akan Mendekati Bumi’, ’1′, CURRENT_TIMESTAMP, ’Sebuah asteroid berukuran setengah lapangan sepak bola akan mendekati Bumi pada hari Jumat, dan pada saat mendekat, jaraknya akan lebih dekat dari satelit cuaca. Tapi sama sekali tidak ada kemungkinan batu luar angkasa tersebut akan menghantam planet ini, kata NASA.
-
Asteroid 2012 DA14 akan melintas dengan jarak hanya 27 ribu kilometer dari Bumi pada Jumat, 15 Februari. Jalurnya akan 8000 kilometer lebih dekat dari satelit cuaca, komunikasi dan navigasi GPS yang mengorbit Bumi, tetapi tidak menimbulkan dampak ancaman, ujar ilmuwan NASA meyakinkan.
-
Sejak ditemukan tahun lalu, asteroid 2012 DA14 “mungkin akan berada pada jalur tabrakan dengan Bumi,” menurut para pejabat NASA dalam sebuah pernyataan.‘, ’1‘), (”, ’SBY bangga dengan Ibas, sosok yang bertanggung jawab‘, ’1‘, CURRENT_TIMESTAMP, ’MERDEKA.COM. Presiden Susilo Bambang Yudhoyono menghormati keputusan sang anak, Edhie Baskoro Yudhoyono mundur sebagai anggota DPR. Ibas panggilan Edhie mundur karena ingin lebih fokus di Partai Demokrat.
-
“Saya mungkin subjektif, tapi saya sebagai ayah bangga, Ibas tanggung jawab,” ujar ujar SBY di Istana Negara, Kamis (14/2).
-
Menurut SBY, keluarga besar awalnya tidak mudah menerima keputusan Ibas. Tetapi, setelah berdiskusi cukup panjang, akhirnya keluarga mendukung penuh keputusan suami Aliya Rajasa itu.
-
“Namun saya hormati keputusan itu dan bulat keluarga mendukung, dengan argumentasi dan alasan yang sudah kita dengar semua,” tandasnya.
-
Edhie Baskoro Yudhoyono atau Ibas secara resmi mengumumkan pengunduran dirinya sebagai anggota DPR. Ibas mengaku, saat ini tidak bisa menjalankan tugas sebagai anggota dewan karena banyak pekerjaan lain. Dia juga ingin fokus untuk menjalankan tugas sebagai Sekjen Partai Demokrat.
-
Sumber: Merdeka.com‘, ’1′)
Dan hasilnya akan seperti ini..Akan terlihat bahwa Array sudah terisi. Kita tinggal mengolahnya sehingga tampilannya tidak buruk seperti tampilan diatas. -
-
Setelah membuat controller, sekarang kita akan coba membuat view. Untuk mebuat view ini tentunya harus memahami HTML dan CSS agar tampilan website menjadi menarik. Application->views->tulisan_v
-
<html>
-
<head>
-
<title>Portal Artikel Berita</title>
-
</head>
-
<body>
-
<h1>Portal Artikel Berita</h1>
-
<hr>
-
<?php
-
if (!isset($tulisan)){
-
echo
“Tidak ada berita”;
-
}else{
-
foreach ($tulisan as $row) {
-
?>
-
<h3><?=$row[‘judul’]?></h3>
-
<p><?=$row[‘isi’]?></p>
-
<?php
-
}
-
}?>
-
</body>
-
</html>
if (!isset($tulisan)) merupakan pengecekan apakah ada isi didalam variable $tulisan. Selanjutnya jika, ada isi pada variable tersebut maka dilakukan looping untuk menampilkan semua isi dalam variable tersebut. Penamaan variable $tulisan sesuai dengan controllernya $data[‘tulisan’]. Lalu selanjutnya
<?=$row[‘judul’]?> Digunakan untuk mengambil field judul (nama field sesuai dengan nama field pada database) pada array. Begitupun sama halnya dengan cara untuk mengambil data dari field ‘isi’.Setelah itu kita perlu memanggil view dari controller. Application->controller->tulisan_v.php
-
<?php
-
class tulisan_c extends CI_Controller{
-
function index(){
-
$this->load->model(‘tulisan_m’); //me-load kelas tulisan_m pada model
-
$data[‘tulisan’]=$this->tulisan_m->get_tulisan();
-
//memanggil fungsi pada kelas yang sudah dipanggil
-
$this->load->view(‘tulisan_v’,$data); //load view
-
}
-
}
-
?>
$this->load->view(‘tulisan_v’,$data) Menunjukan bahwa kita akan me-load view tulisan_v dan mengirim $data kedalam view tersebut, sehingga $tulisan dapat diakses pada view. Jika semuanya dilakukan dengan benar, maka tampilannya akan jadi seperti ini.
-
-
Agar lebih standar, kita dapat sedikit mengubah controller/tulisan_c.php menjadi seperti ini.
-
<?php
-
class tulisan_c extends CI_Controller{
-
function __construct(){
-
parent::__construct();
-
$this->load->model(‘tulisan_m’); //me-load kelas tulisan_m pada model
-
}
-
function index(){
-
$data[‘tulisan’]=$this->tulisan_m->get_tulisan();
-
//memanggil fungsi pada kelas yang sudah dipanggil
-
$this->load->view(‘tulisan_v’,$data); //load view
-
}
-
}
-
?>
Function __construct() adalah konstruktor yang berfungsi sama seperti konstruktor di bahasa pemrograman java. -
-
Tentu project ini akan kita lanjutkan, tapi pada tutorial berikutnya (part 2) yaaa