tutorial codeigniter dasar part v

58
 CodeIgniter VS CakePHP Guys,  kali ini Cheyuz bakal ngebahas tentang FW (Framework) PHP… Mungkin ini  bermanfaat buat t emen-temen semua (khususnya il kom [ilmu komputer] yang sejurusa n,  bahkan sekelas denga nku di kampus…  Waktu itu kita udah sedikit ngebahas ttg CodeIgniter, walopun blm secara detail dijelasin CodeIgniter (selanjutnya CI) itu apa… CodeIgniter (CI) adalah salah satu framework PHP yang cukup populer, bahkan bisa sangat  populer karena ser ing dipakai di kalangan perusa haan IT dalam bidang p engembangan Web (Web Development). Tetapi sebelumnya, apa itu PHP Framework? Gampangnya framework adalah kumpulan fungsi-fungsi dan class untuk tujuan tertentu yang sudah siap pakai sehingga bisa lebih mempermudah pekerjaan pemrograman, tanpa harus reinvent wheel. Untuk lebih lengkapnya anda bisa membacanya di  wikipedia atau situs lain yang sejenis (googling aja ).  Nah, kenapa kita harus memakai FW??  Mempercepat dan mempermudah pembangunan sebuah aplikasi PHP  Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)  Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu membangun dari awal (misalnya validasi, ORM, pagination, multiple database, scaffolding, pengaturan session, error handling, dll  Lebih bebas dalam pengembangan jika dibandingkan CMS  Nah, framework yang popu ler dan sering dipakai di lapanga n salah dua- nya adalah CodeIgniter dan CakePHP. Tetapi kalian tau ga keunggulan dan kelebihan kedua framework ini? ok, kita bahas di sini… Kalo kalian baca dokumentasi dan bahkan memakai CI, maka terlihat keunggulan CI ini adalah sebagai berikut…\ Kelebihan CI  Performa sangat cepat  : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.  Mendukung PHP4 dan PHP5  Konfigurasi yang sangat minim ( nearly zero configuration) : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu merubah sedikit saja file pada folder config.

Upload: saeful-man

Post on 15-Jul-2015

671 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 1/58

 

CodeIgniter VS CakePHP

Guys, kali ini Cheyuz bakal ngebahas tentang FW (Framework) PHP… Mungkin inibermanfaat buat temen-temen semua (khususnya ilkom [ilmu komputer] yang sejurusan,

  bahkan sekelas denganku di kampus… … 

Waktu itu kita udah sedikit ngebahas ttg CodeIgniter, walopun blm secara detail dijelasinCodeIgniter (selanjutnya CI) itu apa… 

CodeIgniter (CI) adalah salah satu framework PHP yang cukup populer, bahkan bisa sangatpopuler karena sering dipakai di kalangan perusahaan IT dalam bidang pengembangan Web(Web Development). Tetapi sebelumnya, apa itu PHP Framework? Gampangnya framework adalah kumpulan fungsi-fungsi dan class untuk tujuan tertentu yang sudah siap pakai

sehingga bisa lebih mempermudah pekerjaan pemrograman, tanpa harus reinvent wheel.Untuk lebih lengkapnya anda bisa membacanya di wikipedia atau situs lain yang sejenis(googling aja ).

Nah, kenapa kita harus memakai FW??

  Mempercepat dan mempermudah pembangunan sebuah aplikasi PHP  Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam

sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)  Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga

kita tidak perlu membangun dari awal (misalnya validasi, ORM, pagination, multipledatabase, scaffolding, pengaturan session, error handling, dll  Lebih bebas dalam pengembangan jika dibandingkan CMS

Nah, framework yang populer dan sering dipakai di lapangan salah dua-nya adalahCodeIgniter dan CakePHP. Tetapi kalian tau ga keunggulan dan kelebihan kedua framework ini? ok, kita bahas di sini…  

Kalo kalian baca dokumentasi dan bahkan memakai CI, maka terlihat keunggulan CI iniadalah sebagai berikut… \ 

Kelebihan CI

  Performa sangat cepat : salah satu alasan tidak menggunakan framework adalahkarena eksekusinya yang lebih lambat daripada PHP from the scracth, tapiCodeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakanframework yang paling cepat dibanding framework yang lain.

  Mendukung PHP4 dan PHP5   Konfigurasi yang sangat minim ( nearly zero configuration) : tentu saja untuk 

menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukankonfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atauautoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda

hanya perlu merubah sedikit saja file pada folder config.

Page 2: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 2/58

 

  Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertaiuser guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya punmudah dipahami bahkan untuk Cheyuz yang bahasa inggrisnya kurang baik, semogasaja kedepan ada yang mau menerjemahkannya ke bahasa Indonesia. Ditambah lagioficial video tutorial membuat blog dalam 20 menit yang disediakan di situsnya,

untuk mengaksesnya anda bisa menggunakan quick time atau bisa juga mendownloadvideo yang sudah diupload pada youtube.com seperti yang pernah Cheyuz jelaskan ditips belajar pemrograman melalui youtube.com.

  Mudah dipelajari : Mungkin pengaruh dokumentasi yang bagus sehinggacodeigniter mudah untuk dipelajari, atau memang framework ini benar-benar mudahdipelajari. Sebelumnya Cheyuz pernah mencoba-coba mempelajari Zend, Symfony,dan Prado, tiga framework yang memang lebih powerfull daripada codeigniter, tapi

 juga lebih sulit untuk dipelajari. Inilah alasan terkuat Cheyuz jatuh cinta padacodeigniter.

  Compatible dengan banyak hosting : tidak seperti kebanyakan framework lain yanghanya bisa berjalan di PHP 5, codeigniter bisa berjalan dengan lancar pada PHP 4,

meskipun ini saat ini sudah banyak hosting yang menggunakan PHP 5 tapi Cheyuzpernah mendapati ada beberapa yang masih menggunakan PHP 4. Juga codeignitertidak menggunakan PEAR atau tool CLI lainnya, sehingga memberi keleluasaan bagianda yang tidak mempunyai akses ke shell pada hosting anda.

Kekurangan:

  Terlalu Fleksibel, aturan yang sedikit, ini sangat mengganggu jika kita inginmengembangkan aplikasi yang besar oleh banyak programmer dengan waktu yangcepat. Karena terlalu fleksibel, kita bisa memodifikasi core CI dengan mudah,

sehingga programmer yang baru perlu waktu untuk belajar terlebih dahulu programyang sebelumnya.  Tidak OOP sepenuhnya, karena helper-helper pada CI berupa fungsi-fungsi yang

prosedural, tidak berorientasi objek. Dan ini melawan aturan OOP yangsesungguhnya.

Nah, ini kelebihan dan kekurangan CakePHP:

Kelebihan:

  Dukungan terhadap AJAX, ORM, library AJAX di dalam CakePHP sudah

disediakan, kita tinggal memakainya aja…   Automagic function, seperti adanya validasi input, dll, yang mempercepat coding.

Seperti helper untuk form, membuat form dengan menggunakan helper dari CakePHP(yang menurut Cheyuz lebih bagus dari helper CI) sangat berguna buat kita yangsering bekerja dengan banyak form. Banyak contoh lainnya… 

  Mendukung PHP4 dan PHP5   Lebih mencerminkan MVC yang sesungguhnya dibandingkan CI   Komunitas pengguna yang besar dan forum cukup baik 

Kekurangan:

  Manual yang ada tidak selengkap CI. Ini merupakan salah satu kekuranganCakePHP, oleh karena itu CakePHP mungkin bisa dipelajari lebih lama daripada CI.

Page 3: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 3/58

 

  Terlalu banyak aturan, dan tidak sefleksibel CI, seperti nama table harus plural,nama controller harus sama dengan nama folder untuk view… nama view harus samadengan nama action, dan lain2… 

  Butuh waktu belajar yang lebih lama untuk menguasai framework ini dibandingCI. Tapi jika sudah benar-benar mengerti, banyak kelebihan dibanding CI. Beberapa

situs menyarankan anda untuk belajar dan terbiasa dulu dengan CodeIgniter barukemudian mempelajari CakePHP

  (http://www.zenperfect.com/2007/07/15/faceoff-codeigniter-vs-cakephp/)

Kelebihan yang berasal dari kekurangan:

  Terlalu banyak aturan, dan tidak sefleksibel CI, dibalik kekurangan ini, CakePHPmengajak kita untuk bersama-sama membuat aplikasi yang rapid (cepat) dan dapatdikembangkan secara bersama-sama. Jika dibandingkan dengan CI yang terlalufleksibel, Cakephp lebih gampang dikembangkan karena programmer sudah tahuaturan-aturan di CakePHP yang baik. Karena CI terlalu fleksibel, makamengembangkan aplikasi dengan menggunakan CI malah menjadi susah jikadikerjakan oleh banyak orang, karena aturan-aturan setiap pengembang asal CI ituberbeda dengan pengembang selanjutnya. Oleh karena itu, untuk membuat aplikasidengan developer yang sering berganti-ganti, lebih baik menggunakan CakePHP.

  Butuh waktu belajar yang lebih lama untuk menguasai framework ini, tetapi jikakita sudah menguasai semua dokumentasi dan menguasai secara penuh penggunaancakePHP, maka pembangunan aplikasi dengan menggunakan CakePHP bisa lebihcepat dibandingkan CI.

Selebihnya sih terserah temen2 semua mau belajar yang mana aja… menurut info yang

didapat seperti itu.. go go go!

- Dari berbagai sumber -

Menghilangkan index.php di Code Igniter untuk di Berbagai

Kali ini, Cheyuz bakal ngasi tips buat temen2 semua pengguna Code Igniter (CI), berhubungaku sekarang lagi ngulik Framework ini, hehe… yaa sekedar berbagi pengalaman lah..  

Perlu dicatat bahwa kalo qta make Framework CI ini, kita bakal ngeliat kalo-kalo ternyata CIitu memakai tulisan index.php di URLnya, baru diikuti dengan /controller/action… nah inimerepotkan bagi kita yang suka dengan Pretty URL (URL yang cantik, indah, enak untuk dibaca )..

kalo misalnya ada controller Berita, kemudian nama actionnya add, misal nama situsnyahttp://www.cheyuz.com maka di URL harus seperti ini:

http://www.cheyuz.com/index.php/berita/add

Nah, biar URL itu lebih enak buat dibaca, mending kita hilangkan index.php nya… jadiseperti ini:

Page 4: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 4/58

 

 http://www.cheyuz.com/berita/add

Caranya sangat sederhana,, bagi pecinta maupun pengembang framework mungkin udah gaasing lagi memakai cara ini, cara yang dipake untuk ngerewrite URL, kita memakai 1 file

yang bernama .htaccess.

Kita buat file .htaccess di notepad:

RewriteEngine onRewriteRule ^$ index.php [L]RewriteCond $1 !^(index.php)RewriteRule ^(.*)$ index.php/$1 [L]

kemudian save file tersebut di webroot/base_url kamu…  sekarang kamu bisa memanggil halaman dengan URL seperti ini:

http://www.cheyuz.com/berita/add

yang pada hakikatnya sama dengan:

http://www.cheyuz.com/index.php/berita/add

TAPII,,,,, ada suatu masalah… sama seperti waktu kemaren aku nge-rombak  http://www.cheyuz.com..

Kan aku nge-rombak situs Cheyuz.com dari asalnya yang ga pake framework yang kini udahpake CI.. Nah pas kemaren itu aku ngupload hasil rombakanku ke hosting.. nah tau-tau pasdiupload, ternyata aneh, kenapa ketika aku ketik:

http://www.cheyuz.com/diary

ato yang lainnya ternyata ga bisa kebuka, yang keluar tampilan home terus… Tetapi kalo URL nya seperti ini bisa… 

http://www.cheyuz.com/index.php/diary

Nah, kalo temen2 juga ngalamin hal yang sama, ternyata masalahnya ada config CI sendiri,yaitu dengan memodifikasi config.php:

$config['uri_protocol'] = "AUTO";

Diganti dengan

$config['uri_protocol'] = "REQUEST_URI";

Cuman itu aja masalahnya, gila kemaren aku bingung kok kenapa bisa gini,, eh taunya cumansetting itu aja, hahaha

Page 5: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 5/58

 

Mudah2an bermanfaat..

Tutorial CodeIgniter Dasar Part V – User Accounts Chapter 2

Sudah lamaaaaaa sekali saya ga update blog.. Entah kenapa, rasanya susah banget waktudiluangkan untuk mengisi blog ini. Banyak pembaca yang meminta saya update blog ini, jadisebisa mungkin saya update lagi blog ini. Mudah-mudahan untuk ke depannya blog inigak mati, so saya akan sering mengupdate-nya.. hehe.

 By the way, sebenarnya saya pengen mengisi Harian Cheyuz ini dengan tutorial PHP lain,seperti CakePHP misalnya. Kenapa? soalnya kita tidak harus terpaku kepada satu framework,

tetapi kita harus tahu isi dari framework lain. Mungkin next post saya akan mengisi tutorialCakePHP. Coming soon ya

Pada tulisan kali ini saya akan meneruskan tutorial ini: Tutorial CodeIgniter Dasar Part V –  User Accounts Chapter 1, tentang account pada CI. Sesuai dengan janji saya, saya akanmeneruskan tutorial untuk tahap pembuatan form registrasi dan controller untuk login danlogout.

Sebelumnya, asumsikan bahwa root dari tutorial ini adalahhttp://localhost/aplikasi_keanggotaan/ Buka /application/config/autoload.php, kemudian lihat line 55. Di situ ada setting untuk load

library, default seperti ini:

$autoload['libraries'] = array(); 

Ubah jadi seperti ini:

$autoload['libraries'] = array('database','session'); 

supaya kita tidak usah meload library database dan session di controller.

Kemudian buka /application/config/config.php, cari $config['encryption_key']. Ubah nilainya

sesuai dengan keinginan Anda:

$config['encryption_key'] = '1d6ada56'; 

Seperti yang kita buat pada tutorial sebelumnya, kita buat terlebih dahulu fileaccount_model.php pada folder model di aplikasi kita.

 <?php 

/*** @author cheyuz*/  

class Account_model extends CI_Model{ 

 private $table = 'user'; //isi nama table user di sini 

Page 6: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 6/58

 

 function __construct() { 

parent::__construct(); } 

function register($data) { $this->db->insert($this->table, $data); 

function login($username, $password) { 

$data = $this->db ->where(array('username' => $username, 'password' => 

md5($password))) ->get($this->table); 

//dicek 

if ($data->num_rows() > 0) { $user = $data->row(); 

//data hasil seleksi dimasukkan ke dalam $session $session = array( 

'logged_in' => 1, 'id_user' => $user->id_user, 'group' => $user->group, 'username' => $user->username, 'nama_lengkap' => $user->nama_lengkap, 

); 

//data dari $session akhirnya dimasukkan ke dalam session(menggunakan library CI) $this->session->set_userdata($session); return true; 

} else { 

$this->session->set_flashdata('notification', 'Username danPassword tidak cocok'); 

return false; } 

function logout() { $this->session->sess_destroy(); 

} } 

Controller yang akan kita buat adalah controller Member, dengan nama file member.php.

Kita buat class Member di /application/controller/member.php seperti berikut:

 <?php 

/*** Description of member ** @author cheyuz

Page 7: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 7/58

 

*/  class Member extends CI_Controller{ 

function __construct() { 

parent::__construct(); $this->load->helper(array('form', 'url')); $this->load->model('account_model'); 

} } ... 

$this->load->helper(array('form', 'url')); ... 

Pada function __construct(), kita akan meload helper yang akan kita gunakan, yaituform, karena kita akan membuat halaman form registrasi menggunakan form bawaan CI, jadikita harus meload helper “form” CI. Selain helper “form”, kita juga akan menggunakan

helper “url”, buat apa? helper URL digunakan ketika kita mengalihkan halaman ke halamanlain, atau kita sebut dengan istilah “redirect()”. Jadi jika kita ingin menggunakan function“redirect()” pada CI, maka kita harus memanggil helper “url” terlebih dahulu.  

... $this->load->model('account_model'); 

... 

Di atas ditulis bahwa pada awal controller dipanggil yaitu function __construct(), selainmeload helper “form” dan “url”, kita juga meload model account yang akan kita gunakannanti untuk autentikasi (auth), yaitu model yang sudah dijelaskan pada tutorial Tutorial

CodeIgniter Dasar Part V – User Accounts Chapter 1 (silakan baca tutorialnya). Model iniakan digunakan ketika kita melakukan function register, login, dan logout.

Membuat Halaman Form Registrasi

OK, kita akan coba membuat halaman registrasi terlebih dahulu, kita akan membuat sebuahform sederhana mencakup nama lengkap, username, dan password. Sebagai catatan, tutorialini hanyalah contoh sederhana, jadi untuk form dan field Anda bisa membuat sesuaikreatifitas. Sebagai contoh, Anda dapat menambahkan field email, no_telp, alamat, dansebagainya. Untuk form, saya di sini menggunakan teknik div, bukan table, silakan cek padatutorial ini: Tips membuat Form HTML yang Rapi dan Efektif  

Inilah gambaran form yang harus kita buat:

Form Pendaftaran

Nama Lengkap

Username

Password

Hak Akses

Page 8: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 8/58

 

Untuk source code-nya, silakan copy kode di bawah ini, dan simpan di /application/views/ dengan nama member.php:

<h2>Form Pendaftaran</h2>

 <?php echo form_open('member/register') ?>  <div class="input">

 <?php echo form_label('Nama Lengkap'); echo form_input('data[nama_lengkap]'); ?>  

</div><div class="input">

 <?php echo form_label('Username'); echo form_input('data[username]'); ?>  

</div><div class="input">

 <?php echo form_label('Password'); echo form_password('data[password]'); ?>  

</div><div class="input select">

 <?php echo form_label('Hak Akses'); echo form_dropdown('data[group]', array('admin' => 'Administrator', 

'operator' => 'Operator')); ?>  

</div><div class="submit">

 <?php echo form_submit('register', 'Daftar'); echo form_reset('reset', 'Reset'); ?>  

</div> <?php echo form_close() ?>  

Bagi yang belum tahu, ini function2 helper form pada CI, sebenarnya masih kurang bagussoalnya masih prosedural, helpernya masih belum menggunakan OOP..

echo form_open('member/register'); 

Adalah kode dari helper “form” untuk pembuka form, HTML yang dihasilkan:  

<form action="http://namahost/namaaplikasi/member/register" > echo form_label('Nama Lengkap'); 

Adalah kode dari helper “form” untuk label pada form, HTML yang dihasilkan:

<label>Nama Lengkap</label> echo form_input('data[nama_lengkap]'); 

Adalah kode dari helper “form” untuk input pada form, HTML yang dihasilkan:  

<input name="data[nama_lengkap]" type="text" /> 

Page 9: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 9/58

 

echo form_password('data[password]'); 

Adalah kode dari helper “form” untuk password pada form, HTML yang dihasilkan:  

<input name="data[nama_lengkap]" type="password" /> echo form_dropdown('data[group]', array('admin' => 'Administrator', 'operator' => 'Operator')); 

Adalah kode dari helper “form” untuk password pada form, HTML yang dihasilkan:  

<select name="data[group]"> <option value="admin">Administrator</option> <option value="operator">Operator</option> 

</select> 

si form akan memanggil kembali action tersebut, dan akan dicek apakah data sudah terkirimatau belum, maka tambahkan kode berikut di bawah function __construct() di controller:

... function register() { 

$form_data = $this->input->post('data'); if (!empty($form_data)) { 

$form_data['password'] = md5($form_data['password']); $this->account_model->register($form_data); $this->session->set_flashdata('berhasil', 'Pendaftaran

berhasil, Anda dapat masuk ke dalam sistem'); redirect('member/login'); 

$this->load->view('register'); } 

... 

pada function register() (kita dapat memanggilnya dengan cara bukahttp://localhost/aplikasi_keanggotaan/index.php/register), di situ kita membuat variable$form_data, yaitu isi dari variable-variable pada form, yaitu element dari $data.Kita cek apakah data sudah terkirim atau belum? !empty($form_data) artinya “tidak kosong variable $form_data”, yang artinya sudah terkirim, maka lanjutkan dengan encryptpassword dengan function md5, dan panggil function register() pada model “account_model”.  

Jika sudah terdaftar, maka alihkan (redirect) ke halaman member/login untuk login.

Sekarang, coba cek halaman register dengan cara ketik address bar“http://localhost/aplikasi_keanggotaan/index.php/register”.  

Membuat Halaman Login

Sekarang kita akan membuat halaman login.Tampilannya adalah sebagai berikut:

Form Login

Username

Page 10: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 10/58

 

Password

Copy code berikut ini, kemudian simpan di /application/views/login.php 

<h2>Login Form</h2>

 <?php echo form_open('member/login') ?>  <div class="input">

 <?php echo form_label('Username'); echo form_input('data[username]'); ?>  

</div><div class="input">

 <?php echo form_label('Password'); echo form_password('data[password]'); 

?>  </div><div class="submit">

 <?php echo form_submit('login', 'Login'); ?>  

</div> <?php echo form_close() ?>  

Untuk form, saya rasa tidak usah dijelaskan lagi, karena saya sudah menjelaskannya di awal.Kita lihat action dari form tersebut adalah “member/login”, berarti memanggil halaman itusendiri. Tugas kita adalah mengecek apakah data form login tersebut sudah dikirim atau

 belum? Nah, berikut ini adalah function login yang diletakkan di controller “member.php”,tambahkan setelah function “register()”, sebenarnya di manapun ga ngaruh

... function login() { 

$form_data = $this->input->post('data'); if (!empty($form_data)) { 

if ($this->account_model->login($form_data['username'], $form_data['password'])) 

redirect('member/index'); } else { 

redirect('member/login'); } 

} $this->load->view('login'); 

} ... 

Di situ ada pengecekan, yaitu apakah $form_data sudah ada (terkirim/submit)? jika sudah adamaka cek lagi, program akan mencoba login dengan menggunakan function login() dari

account_model. Jika berhasil login, maka redirect ke “member/index”, jika tidak berhasil(username/password salah) maka kembali ke halaman login kembali (member/login).

Page 11: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 11/58

 

Untuk mencobanya, silakan ketikkan pada address bar browser Anda:http://localhost/aplikasi_keanggotaan/index.php/member/login  

Membuat Halaman Member

Sekarang kita akan membuat halaman member, yang hanya bisa diakses jika member sudahlogin.Buat sebuah file dengan isi sebagai berikut, dan simpan di folder

 /application/views/member.php

<p>Selamat datang di halaman member, <?php echo $this->session->userdata('username') ?> , Anda login sebagai <?php echo $this->session->userdata('group') ?> </p>

Untuk controllernya, buatlah function baru di /application/controllers/member.php

... function index() { 

if ($this->session->userdata('logged_in')) { 

$this->load->view('member'); } else { 

redirect('member/login'); } 

} ... 

Pada function index() ini, ada pengecekan, apakah user sudah login atau belum? jika sudah,maka load view html barusan, sedangkan jika belum, redirect ke halaman login().Untuk membuktikannya, silakan bukahttp://localhost/aplikasi_keanggotaan/index.php/member/  Jika Anda belum login, Anda tidak bisa mengakses halaman tersebut, untuk mengaksesnya,Anda akan dialihkan ke halaman login, dan masukkan username dan password yang benar.

Membuat Function Logout

Buat function logout, terakhir..

... function logout() { 

$this->account_model->logout(); redirect('member/login'); 

} ... 

Cara aksesnya adalahhttp://localhost/aplikasi_keanggotaan/index.php/member/logout  

Atau bisa ditambahkan di view member.php menjadi seperti ini:

Page 12: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 12/58

 

<p>Selamat datang di halaman member, <?php echo $this->session->userdata('username') ?> , Anda login sebagai <?php echo $this->session->userdata('group') ?> , <?php echo anchor('member/logout','Logout') ?> </p>

OK, untuk kode lengkapnya adalah sebagai berikut, saya sebutkan per file:

 /application/models/account_model.php

 <?php 

/*** @author cheyuz*/  class Account_model extends CI_Model{ 

 private $table = 'user'; //isi nama table user di sini 

function __construct() 

{ parent::__construct(); 

function register($data) { 

$this->db->insert($this->table, $data); } 

function login($username, $password) { 

$data = $this->db ->where(array('username' => $username, 'password' => 

md5($password))) ->get($this->table); 

//dicek if ($data->num_rows() > 0) { 

$user = $data->row(); 

//data hasil seleksi dimasukkan ke dalam $session $session = array( 

'logged_in' => 1, 'id_user' => $user->id_user, 'group' => $user->group, 

'username' => $user->username, 'nama_lengkap' => $user->nama_lengkap, 

); 

//data dari $session akhirnya dimasukkan ke dalam session(menggunakan library CI) 

$this->session->set_userdata($session); return true; 

} else { 

$this->session->set_flashdata('notification', 'Username danPassword tidak cocok'); 

return false; } } 

Page 13: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 13/58

 

 function logout() { 

$this->session->sess_destroy(); } 

application/controller/member.php

 <?php 

/*** Description of member ** @author cheyuz*/  class Member extends CI_Controller{ 

function __construct() { 

parent::__construct(); $this->load->helper(array('form', 'url')); $this->load->model('account_model'); 

function register() { 

$form_data = $this->input->post('data'); if (!empty($form_data)) { 

$form_data['password'] = md5($form_data['password']); $this->account_model->register($form_data); $this->session->set_flashdata('berhasil', 'Pendaftaran

berhasil, Anda dapat masuk ke dalam sistem'); redirect('member/login'); 

} $this->load->view('register'); 

function login() { 

$form_data = $this->input->post('data'); if (!empty($form_data)) { 

if ($this->account_model->login($form_data['username'], $form_data['password'])) 

{ redirect('member/index'); 

} else { 

redirect('member/login'); } 

} $this->load->view('login'); 

function logout() { 

Page 14: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 14/58

 

  $this->account_model->logout(); redirect('member/login'); 

function index() { 

if ($this->session->userdata('logged_in')) { $this->load->view('member'); 

} else { 

redirect('member/login'); } 

application/views/login.php

<h2>Login Form</h2>

 <?php echo form_open('member/login') ?>  <div class="input">

 <?php echo form_label('Username'); echo form_input('data[username]'); ?>  

</div><div class="input">

 <?php echo form_label('Password'); echo form_password('data[password]'); ?>  

</div><div class="submit">

 <?php echo form_submit('login', 'Login'); ?>  

</div> <?php echo form_close() ?>  

application/views/member.php

<p>Selamat datang di halaman member, <?php echo $this->session->userdata('username') ?> , Anda login sebagai <?php echo $this->session->userdata('group') ?> , <?php echo anchor('member/logout','Logout') ?> </p>

application/views/register.php

<h2>Form Pendaftaran</h2>

 <?php echo form_open('member/register') ?>  <div class="input">

 <?php echo form_label('Nama Lengkap'); 

echo form_input('data[nama_lengkap]'); ?>  

</div>

Page 15: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 15/58

 

<div class="input"> <?php echo form_label('Username'); echo form_input('data[username]'); ?>  

</div>

<div class="input"> <?php echo form_label('Password'); echo form_password('data[password]'); ?>  

</div><div class="input select">

 <?php echo form_label('Hak Akses'); echo form_dropdown('data[group]', array('admin' => 'Administrator', 

'operator' => 'Operator')); ?>  

</div>

<div class="submit"> <?php echo form_submit('register', 'Daftar'); echo form_reset('reset', 'Reset'); ?>  

</div> <?php echo form_close() ?>  

Untuk menjalankannya, buka http://localhost/aplikasi_keanggotaan/index.php/member.Keterangan: Jika Anda ingin menghilangkan “index.php” pada aplikasi Anda, silakan pelajaritutorial berikut ini:Menghilangkan index.php di Code Igniter untuk di Berbagai Server  

Selamat mencoba

~ Cheyuz

Tutorial CodeIgniter Dasar Part V – User Accounts Chapter 1

Sebenarnya ini adalah salah satu permintaan dari pembaca, yaitu membuat tutorial bagaimanamembuat penanganan akun di dalam CI.. Kali ini kita menggunakan Codeigniter versi 2.x keatas… (bukan untuk CI 1.7.x), lihat perbedaan CI 2.x dengan CI v1.7.x di sini 

Sebelum kita mengenal lebih jauh, sebaiknya kita mengenal pemahaman dari segi konsepbagaimana akun dibuat.. Mulai dari konsep session, register, login, dan logout..

Baik, kita jelaskan satu persatu ya.. Dengan bahasa saya sendiri, mudah2an temen2 mengertiya… hehe.. 

Session

Session adalah sebuah varibel yang diletakkan di server. Dengan begitu, PHP bisa mengambilnilai yang tersimpan di dalam variable tersebut meskipun kita membuka halaman baru di

Page 16: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 16/58

 

browser. Biasanya session akan hilang jika anda menutup browser atau dengan time out yangditentukan. Session sangat diperlukan untuk penanganan login user/pengguna, yang mananantinya beberapa data penting pengguna disimpan di dalam variable session, seperti statuslogin, id user, nama user, dan nama group (group = kategori user). Oleh karena itu, ketika tabbaru dibuka pun kita masih bisa mengakses data kita dengan asumsi kita sudah login ke

dalam aplikasi tersebut.

Register

Register adalah bagaimana kita mendaftarkan user ke dalam database. Database mempunyaidata user yang sewaktu2 dapat dipakai untuk login user. Proses dari register hanyalahpenambahan data user ke dalam database dari form registrasi yang nanti kita buat.

Login

Login adalah proses di mana proses pengecekan user dilakukan. Pengecekan dilakukan untuk 

memeriksa apakah username dan password cocok atau tidak, jika ada dalam database dancocok maka data akan dimasukkan ke dalam session, status login diset menjadi TRUE, dandata session lainnya akan diisikan dengan data user yang ada di dalam database.

Logout

Logout adalah sebaliknya dari Login. Logout adalah proses penghancuran data di variablesession, yang berarti data2 di variable session dihapus. Jika data session dihapus, makastatusnya sekarang adalah tidak login, jadi bisa disebut „keluar dari sistem‟.  

OK, langsung saja kita berangkat ke CI…

Buat Table

Sebelum ke pembuatan model, controller, dan view tentu saja yang harus dilakukan pertamakali adalah pembuatan database, dalam hal ini kita akan membuat sebuah table user yang

 berisi id_user, nama_lengkap, username, password, dan group… Saya kasih contohsederhana seperti ini, yang mana sebetulnya masih bisa dikembangkan, misalnya

 penambahan status, verifikasi email, reset password, dan sebagainya… Tapi berhubung tidak 

memungkinkan dan terlalu rumit, maka saya buat contoh sederhana aja..

Buat table user dengan mengcopy syntax SQL berikut ke PhpMyAdmin kamu beserta datasample:

CREATE TABLE  `user` ( `id_user` INT  NOT  NULL  AUTO_INCREMENT PRIMARY KEY , `nama_lengkap`  VARCHAR ( 100 )  NOT  NULL , `username`  VARCHAR ( 50 )  NOT  NULL , `password`  VARCHAR ( 50 )  NOT  NULL , `group`  VARCHAR ( 20 )  NOT  NULL ) ENGINE = INNODB;

INSERT INTO  `user` ( 

Page 17: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 17/58

 

`id_user` , `nama_lengkap` , `username` , `password` , `group` ) 

 VALUES ( NULL , 'Cecep Yusuf', 'cheyuz', MD5('cheyuz') , 'admin'), ( NULL , 'Ayu Dwi S', 'ayue', MD5('ayue') , 'operator');

Catatan: group adalah kategori dari user tersebut, misalnya: administrator, operator,member, dan sebagainya.

Buat Model Account

Sebelum kita membuat controller dan view untuk registrasi, login, dan logout, pertama2 kitaharus membuat modelnya terlebih dahulu.. model apakah itu? Yup, model untuk accountnya… kita buat account_model.php di direktori /application/models/  

account_model.php 

 <?php 

/*** @author cheyuz*/  class Account_model extends CI_Model{ 

 private $table = 'user'; //isi nama table user di sini 

function __construct() 

{ parent::__construct(); 

Di dalam class Account_model terdapat variable private $table, yang nantinya function2 dibawah akan mengakses variable itu, dari table mana data didapatkan.Setelah class dibuat, maka harus dibuat fungsi2 dalam class tersebut. Fungsi2 yg perlu kitabuat adalah function register, login, dan logout, juga ada fungsi2 tambahan lainnya.

Tambahkan function register di dalam class tersebut:

... function register($data) { } 

... 

di dalam function register terdapat parameter $data. Parameter ini adalah berupa array yangmana nantinya data dari form registrasi dimasukkan ke dalam database, maka di dalamfunction register() ditambahkan kode berikut ini:

... function register($data) { 

Page 18: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 18/58

 

  $this->db->insert($this->table, $data); } 

... 

Setelah function register dibuat, maka selanjutnya tambahkan function login di dalam classtersebut:

... function login($username, $password) { } 

... 

Di atas terlihat bahwa ada dua parameter, yaitu $username dan $password. Ini berguna buatnanti kita cek apakah usernamenya ada atau tidak, cocok atau tidak dengan passwordnya.Dan setelah itu isi function tersebut dengan kode di bawah ini:

... function login($username, $password) { 

$data = $this->db ->where(array('username' => $username, 'password' => 

md5($password))) ->get($this->table); 

} ... 

$data adalah seleksi dari syntax SQL:

SELECT * FROM  `user`  WHERE `username`= $username AND `password` = md5($password) 

Kemudian hasil tersebut dicek apakah ada dan cocok username dengan passwordnya atautidak, ada berarti jika banyak baris lebih dari 0 (nol menyatakan bahwa tidak ada yangterseleksi).

 Nah di bawah ini cara ngeceknya memakai if…  

.... 

if ($data->num_rows() > 0) { 

$user = $data->row(); 

//data hasil seleksi dimasukkan ke dalam $session $session = array( 

'logged_in' => 1, 'id_user' => $user->id_user, 'group' => $user->group, 'username' => $user->username 

); 

//data dari $session akhirnya dimasukkan ke dalam session(menggunakan library CI) 

$this->session->set_userdata($session); 

return true; } else 

Page 19: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 19/58

 

  { $this->session->set_flashdata('notification', 'Username dan

Password tidak cocok'); return false; 

.... 

berikut ini adalah function login() secara lengkap:

... function login($username, $password) { 

$data = $this->db ->where(array('username' => $username, 'password' => 

md5($password))) ->get($this->table); 

//dicek if ($data->num_rows() > 0) { 

$user = $data->row(); 

//data hasil seleksi dimasukkan ke dalam $session $session = array( 

'logged_in' => 1, 'id_user' => $user->id_user, 'group' => $user->group, 'username' => $user->username 

); 

//data dari $session akhirnya dimasukkan ke dalam session(menggunakan library CI) 

$this->session->set_userdata($session); return true; 

} else { 

$this->session->set_flashdata('notification', 'Username danPassword tidak cocok'); 

return false; } 

} ... 

 Nah, kemudian setelah itu dibuat function logoutnya… Ingat bahwa logout adalah menghapus session, maka scriptnya sederhana, cukup denganfunction $this->session->sess_destroy();

... function logout() { 

$this->session->sess_destroy(); } ... 

Sehingga kode PHP lengkapnya untuk class Account_model adalah sebagai berikut:

 <?php 

Page 20: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 20/58

 

 /*** @author cheyuz*/  class Account_model extends CI_Model{ 

 private $table = 'user'; //isi nama table user di sini 

function __construct() { 

parent::__construct(); } 

function register($data) { 

$this->db->insert($this->table, $data); } 

function login($username, $password) 

{  $data = $this->db ->where(array('username' => $username, 'password' => 

md5($password))) ->get($this->table); 

//dicek if ($data->num_rows() > 0) { 

$user = $data->row(); 

//data hasil seleksi dimasukkan ke dalam $session $session = array( 

'logged_in' => 1, 'id_user' => $user->id_user, 'group' => $user->group, 'username' => $user->username, 'nama_lengkap' => $user->nama_lengkap, 

); 

//data dari $session akhirnya dimasukkan ke dalam session(menggunakan library CI) 

$this->session->set_userdata($session); return true; 

} else 

{  $this->session->set_flashdata('notification', 'Username danPassword tidak cocok'); 

return false; } 

function logout() { 

$this->session->sess_destroy(); } 

Page 21: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 21/58

 

Untuk menggunakannya, caranya cukup dengan meload model tersebut, kemudian masukkanvariable post dari form login ke dalam parameter dari function login() di modelaccount_model… 

Salah satu contoh penggunaan di controller:

... function masuk() { 

$post = $this->input->post('login'); if($post== NULL) { 

$this->load->view('login'); } else { 

if($this->account_model->login($post['username'], $post['password'])) 

{ redirect('member'); 

} else { 

redirect('member/login'); } 

} } 

... } 

Kode di atas hanya contoh saja, contoh lengkapnya akan dilanjutkan pada tutorial ini juga(part II)… cape hehe mau lanjut kerja dulu..Pada tutorial selanjutnya saya lanjut lengkap dengan form registrasi, form login, controller:daftar, masuk, dan keluar sistem…. 

coming soon ya..

~ Cheyuz

Tutorial CodeIgniter Dasar Part IV–

Form Validation

Udah lama sekali saya tidak mengupdate Tutorial Codeigniter untuk dasar/basic ini…Untuk tutorial dasar ini, kita akan melanjutkan tutorial yang dulu. Waktu dulu kita udahsampai di tutorial dasar part III. Di Tutorial Dasar Part IV ini, kita akan belajar bagaimanamembuat sebuah validasi input pada sebuah form yang kita buat supaya pengguna harusmengisikan setiap input form dengan aturan dan ketentuan yang berlaku supaya inputan yangsudah dikirim (submit) adalah inputan yang benar2 sudah valid (tidak ada kesalahan inputan).

Validasi Input Form memang diperlukan untuk kebenaran nilai dari suatu data. Misalnya,untuk input E-Mail, kita harus mengisikan format yang sesuai/valid dengan format email,contohnya: [email protected], [email protected], [email protected], dan sebagainya.Untuk input Nama misalnya tidak boleh dikosongkan, jika isian kosong maka data tidak akan

Page 22: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 22/58

 

disubmit ke server, melainkan akan munculnya laporan bahwa data terdapat kesalahan, yaitubelum diisi.

Hampir semua input form menggunakan validasi. Untuk contoh pada tutorial ini, kita akanmembuat validasi untuk form Registrasi (Pendaftaran pada suatu situs), yang input dan

aturannya adalah sebagai berikut:

- Nama depan (wajib diisi)- Nama belakang (optional)- Alamat (wajib diisi)- E-Mail (wajib diisi, harus format E-Mail)- No Telepon (optional, harus nomor)- Pekerjaan (optional)- Username (wajib diisi, minimal 6 karakter)- Password (wajib diisi, minimal 6 karakter)- Konfirmasi Password (wajib diisi, harus sama dengan password)

Dengan menggunakan Codeigniter, Anda bisa membuat validasi form dengan mudah, karenaCodeigniter sudah menyediakan library untuk Form Validation.

Untuk mengikuti tutorial ini, diharapkan Anda sudah menghilangkan index.php yang ada ditutorial ini: http://harian.cheyuz.com/_other/menghilangkan-index-php-di-code-igniter-untuk-di-berbagai-server dan mengeset base_url() dengan http://localhost/webku dansedikitnya sudah paham semua materi yang ada di Tutorial Dasar CI Part I, Tutorial Dasar CIPart II, dan Tutorial Dasar CI Part III. 

Untuk tutorial ini, kita tidak akan fokus kepada database, tetapi kepada validasi form, jadisaya tidak akan membuat model registrasi_model, melainkan Anda explore sendiribagaimana cara memasukkan data ke dalam database yang sudah dipelajari di Tutorial DasarSebelumnya. 

OK, kita mulai aja, langkah pertama, buatlah sebuah controller kosong registrasi.php dengan isi file sebagai berikut:

 <?php 

/*** @author cheyuz

*/  class Registrasi extends Controller{ 

function __construct() { 

parent::Controller(); } 

//code } 

Kemudian, langkah pertama yang harus dilakukan adalah meload helper Form dan libraryform_validation yang sudah disediakan oleh Codeigniter ke dalam controller kita, caranya

tambahkan kode $this->load->helper('form') $this->load-

Page 23: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 23/58

 

>library('form_validation') di dalam function __construct() , jadi sekarang code didalam __construct menjadi seperti ini:

... 

function __construct() { 

parent::Controller(); $this->load->helper('form'); $this->load->library('form_validation'); 

... 

Sejauh ini Anda sudah menggunakan library Form Validation, sekarang tinggal buatfunction index() di dalam controller supaya kita bisa mengakses di dalam URL denganbentuk seperti ini: http://localhost/webku/registrasi . Tambahkan function index() setelahfunction __construct() dibuat.. jadi kode lengkapnya seperti ini:

 <?php 

/*** @author cheyuz*/  class Registrasi extends Controller{ 

function __construct() { 

parent::Controller(); 

$this->load->helper('form'); $this->load->library('form_validation'); } 

function index() { 

kemudian, buatlah view di dalam folder /system/application/views/ dengan nama:registrasi_view.php yang isinya berupa html form sebagai berikut:

<h2>Registrasi</h2>

 <?php echo form_open('registrasi') ?>  <table>

<tr><td>Nama depan</td><td> <?php echo form_input('nama_depan') ?> </td>

</tr><tr>

<td>Nama belakang</td><td> <?php echo form_input('nama_belakang') ?> </td>

</tr><tr>

<td>Alamat</td>

Page 24: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 24/58

 

<td> <?php echo form_textarea('alamat') ?> </td></tr><tr>

<td>E-Mail</td><td> <?php echo form_input('email') ?> </td>

</tr>

<tr><td>No Telepon</td><td> <?php echo form_input('no_telepon') ?> </td>

</tr><tr>

<td>Pekerjaan</td><td> <?php echo form_input('pekerjaan') ?> </td>

</tr><tr>

<td>Username</td><td> <?php echo form_input('username') ?> </td>

</tr><tr>

<td>Password</td><td> <?php echo form_password('password') ?> </td></tr><tr>

<td>Konfirmasi Password</td><td> <?php echo form_password('konfirmasi_password') ?> </td>

</tr><tr>

<td></td><td> <?php echo form_submit('daftar','Daftar') ?> </td>

</tr></table> <?php echo form_close() ?>  

Setelah view dibuat, baru kita tambahkan kode untuk meload view tersebut, yaitu: $this-

>load->view('registrasi'); ini kita simpan di function index().

Setelah itu, kita buat aturan untuk validation tadi, caranya yaitu dengan menambahkan arrayberupa rules2 tadi dengan bentuk seperti berikut:

$rules = array( array( 

'field'  => [nama input field] 'label'  => [label] 'rules'  => [aturan] 

), 

//dan seterusnya ... 

); 

Jadi, secara lengkap buatlah $rules tersebut sebelum view diload, lengkapnya sepertiberikut:

... $rules= array( 

array( 

'field' => 'nama_depan', 'label' => 'Nama Depan', 'rules' => 'required' 

Page 25: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 25/58

 

  ), array( 

'field' => 'alamat', 'label' => 'Alamat', 'rules' => 'required' 

), 

array( 'field' => 'email', 'label' => 'E-Mail', 'rules' => 'required|valid_email' 

), array( 

'field' => 'no_telepon', 'label' => 'No Telepon', 'rules' => 'numeric' 

), array( 

'field' => 'username', 'label' => 'Username', 

'rules' => 'required|min_length[6]' ), array( 

'field' => 'password', 'label' => 'Password', 'rules' => 

'required|min_length[6]|matches[konfirmasi_password]'  ), array( 

'field' => 'konfirmasi_password', 'label' => 'Konfirmasi Password', 'rules' => 'required' 

), 

); $this->form_validation->set_rules($rules); ... 

Setelah itu, ada pengecekan apakah data sudah dikirim atau belum dengan cara memakai if,kodenya seperti berikut:

if ($this->form_validation->run() == FALSE) { 

//jika belum dikirim/belum valid, masukkan kode di sini } else { 

//jika sudah valid, masukkan kode INSERT di sini } 

Di atas ada pengecekan jika belum dikirim/belum valid, di dalam bagian itu pindahkan kode

$this->load->view('registrasi'); ke dalam statemen ini.Jadi, jika kita lihat, code lengkapnya seperti ini:

function index() { 

$rules = array( array( 

'field' => 'nama_depan', 'label' => 'Nama Depan', 'rules' => 'required' 

Page 26: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 26/58

 

  ), array( 

'field' => 'alamat', 'label' => 'Alamat', 'rules' => 'required' 

), 

array( 'field' => 'email', 'label' => 'E-Mail', 'rules' => 'required|valid_email' 

), array( 

'field' => 'no_telepon', 'label' => 'No Telepon', 'rules' => 'numeric' 

), array( 

'field' => 'username', 'label' => 'Username', 

'rules' => 'required|min_length[6]' ), array( 

'field' => 'password', 'label' => 'Password', 'rules' => 

'required|min_length[6]|matches[konfirmasi_password]'  ), array( 

'field' => 'konfirmasi_password', 'label' => 'Konfirmasi Password', 'rules' => 'required' 

), 

); $this->form_validation->set_rules($rules); if ($this->form_validation->run() == FALSE) { 

$this->load->view('registrasi'); } else { 

echo 'Data berhasil dimasukkan'; //kode insert ke database di model--> contoh: $this-

>registrasi_model->insert(); } 

Kode di Controller sudah selesai, kini Anda tinggal buat daftar error dari validation di view,caranya yaitu dengan menambahkan kode di bawah sebelum tag form..

<h2>Registrasi</h2>

 <?php echo validation_errors(); ?>  

 <?php echo form_open('registrasi') ?>  <table>......

Tutorial selesai. Kini Validasi Form Anda siap digunakan, untuk mencobanya silakankosongkan atau salahkan isi inputan Anda, kemudian submit! Jika data sudah benar, maka

Page 27: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 27/58

 

muncul tulisan Data sudah dimasukkan. Jika data masih salah, maka browser akanmenampilkan form kembali dan menampilkan error yang ada dalam kesalahan inputan.

Selain itu, Anda bisa membuat rules di dalam config Anda, caranya buatlah sebuah file

bernama form_validation.php di dalam /system/application/config/ dengan isi sebuah

variable $config (HARUS $config) yg isinya adalah array rules yang sudah kita buat tadi.

form_validation.php 

 <?php 

$config = array( array( 

'field' => 'nama_depan', 'label' => 'Nama Depan', 'rules' => 'required' 

), 

array( 'field' => 'alamat', 'label' => 'Alamat', 'rules' => 'required' 

), 

... /* dan seterusnya sama seperti tadi */  

); 

Dan hapus kode $this->form_validation->set_rules($rules); di controller (jika memakaiconfig itu). Dengan demikian, code di Controller akan lebih sedikit dari sebelumnya.

Tutorial selesai,Selamat mencoba!

- Cheyuz

Menggunakan Pola HMVC di dalam Codeigniter

HMVC singkatan dari Hierarchical-Model-View-Controller, yang artinya pola MVC tetapiberupa Hirarki.Hampir sama dengan MVC, hanya saja di sini MVC tersebut disimpan di dalam banyak modul, jadi setiap modul terdapat Model, View, dan Controller.

Nah, selain framework lain seperti Kohana, Zend, dan lain-lain, kita juga dapat menerapkanpola seperti ini di dalam Framework Codeigniter, caranya yaitu dengan menggunakanModular Extensions, yang dapat Anda load di sini 

Instalasi

1.  Download modular extensions CI di sini. 2.  Di dalamnya, terdapat 3 buah file, yaitu:

Page 28: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 28/58

 

o  MY_Router.php o  Modules.php o  Controller.php 

3.  Simpan ketiga file itu di dalam folder library di CI Anda, yaitu/system/application/libraries/  

4.  Buatlah folder modules di dalam /system/application, sehingga terdapat folder

baru dengan path: /system/application/modules  

Setelah diinstall, berikut adalah cara penggunaan modular extensions.

Cara Menggunakan

Controller disimpan di dalam folder modules/nama_controller . Jadi, buatlah folder barusebagai nama modul di dalam modules, misalnya bukutamu. Kemudian, buatlah folderbaru bernama controllers dan simpan di dalam folder

/system/application/modules/bukutamu/ .

Buatlah nama controller yang akan Anda buat, misalnya bukutamu.php dan simpan di dalamfolder controllers yang ada di dalam folder bukutamu.

Kita tidak akan menggunakan folder controllers bawaan dari CI yang ada di folder/system/application/controllers , tetapi kita menggunakan controllers yg ada di dalammasing-masing modul yang ada di dalam folder modules, untuk kasus ini, controller bernama

bukutamu.php disimpan di dalam path:/system/application/modules/bukutamu/controllers/  

Begitu juga untuk model dan view, bahkan untuk modul yg berbeda, Anda simpan semua file

di dalam masing2 folder dengan nama modul Anda, dan disimpan di dalam foldermodules…. sehingga setiap modul mempunyai MVC (Model, View, dan Controller)  

Contoh

Untuk contoh, kita bisa ambil studi kasus untuk controller User.

Controller: user.php

 <?php class User extends Controller

function __construct() { 

parent::Controller(); } 

function index() { 

$this->load->view('user/user_view'); } 

// ... 

//............. Kode program Anda // ... 

Page 29: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 29/58

 

 } ?>  

Controller user.php disimpan di:/system/application/modules/user/controllers/user.php  

Model: user_model.php

 <?php class User_model extends Model{ 

function __construct() { 

parent::Model(); } 

// ... //............. Kode program Anda // ... 

} ?>  

Model user_model.php disimpan di:/system/application/modules/user/models/user_model.php  

View: user_view.php

Ini adalah view untuk user

View user_view.php harus disimpan di:/system/application/modules/user/views/user_view.php  

Catatan:Untuk penamaan file model dan view, tidak harus user_model.php atau user_view.php, itusesuai dengan style programming Anda, Anda dapat juga menggunakan nama ini misalnyamodel: m_user.php dengan view: index.php. Itu tergantung style coding Anda

Berikut ini contoh struktur path dengan menggunakan modules:

 /system/application/modules/user/controllers/user.php /system/application/modules/user/models/user_model.php /system/application/modules/user/views/user_view.php /system/application/modules/content/controllers/content.php /system/application/modules/content/models/content_model.php /system/application/modules/content/views/content_view.php /system/application/modules/bukutamu/controllers/bukutamu.php /system/application/modules/bukutamu/models/bukutamu_model.php /system/application/modules/bukutamu/views/bukutamu_view.php

dst….. 

Page 30: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 30/58

 

Catatan:Untuk Model, Anda direkomendasikan menyimpannya di luar modular, kenapa? karenapengalaman saya, 1 model itu bisa dipake beberapa modul, jadi untuk memudahkanpencarian, model mending disimpan di struktur default CI, yaitu/system/application/models  

Jika model berada di luar module, maka strukturnya adalah sperti berikut:

Apa Kelebihan Menggunakan Pola HMVC?

Kelebihan dari HMVC yaitu program menjadi modular, yang artinya programmer dapatmengerjakan masing2 module tanpa mengganggu direktori yang sedang orang lain kerjakan.Kedua, jika misalnya kita ingin menggabungkan hasil kerjaan kita dengan orang lain makasangat mudah, karena kita tinggal mengkopi modul kita ke direktori modules di komputermaster, sehingga dengan cara seperti ini kita tidak kesulitan dalam menangani konflik fileyang sedang sama-sama diedit (misalnya mengedit folder controller secara bersamaan).

Banyak kasus yang dapat dipermudah dengan menggunakan HMVC… 

Salam sukses..go Developer Indonesia!

- Cheyuz 

Menggunakan Pagination di Codeigniter

Kali ini, saya akan membuat tutorial tentang Pagination di dalam framework Codeigniter.Pagination adalah library yang sepele namun sangat2 penting tentunya buat Anda yang suka

Page 31: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 31/58

 

membuat aplikasi web/website dengan data yang sangat banyak, karena paginationmemungkinkan Anda untuk menyeleksi dan menampilkan data hanya sebagian data tertentuper halamannya.

Library Pagination secara default sudah ada di dalam framework Codeigniter, dan 100%

Customize, bisa diubah tampilannya sesuai yang kita inginkan.

OK, silakan ikuti tutorialnya…

Kita buat contoh kasus terlebih dahulu, kasus yang tentunya memerlukan pagination. Yup,BUKU TAMU! Buku tamu adalah fitur untuk pengunjung yang akan meninggalkan pesan diwebsite. Kalo pengunjungnya ada 1000 orang dan kita menampilkannya 1000 baris juga kanga mungkin, maka dari itu kita harus memakai pagination…

Untuk mengikuti tutorial ini, Anda harus sudah meload library database terlebih dahulu di/system/application/config/autoload.php  

Silakan copy SQL berikut untuk membuat table bukutamu dan memasukkan datanya:

CREATE TABLE IF  NOT EXISTS `bukutamu` ( `id` INT(11)  NOT  NULL  AUTO_INCREMENT, `nama`  VARCHAR (100)  NOT  NULL, `email`  VARCHAR (100)  NOT  NULL, `pesan` text NOT  NULL, `created` TIMESTAMP  NOT  NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) 

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

-- -- Dumping data for table `bukutamu` -- 

INSERT INTO `bukutamu` (`id`, `nama`, `email`, `pesan`, `created`)  VALUES (1, 'Albert Einstein', '[email protected]', 'Konten yang sangat menarikdan membantu saya dalam pemrograman web.. ;)', '2010-10-23 09:06:12'), (2, 'Sabrina', '[email protected]', 'Like this, web yang sangat membantusaya.. :)', '2010-10-23 20:58:01'), (3, 'zakky', '[email protected]', 'keren bos.. webnya sangat membantu.. ', '2010-10-23 21:22:37'), (4, 'Bernand Simamora', '[email protected]', 'Web Tutorial yang sangatbagus, nilai 100 dari saya.. Silakan kembangkan lebih jauh bakat Anda dalam

pemrograman Web ;)', '2010-10-24 08:16:47'), (5, 'Robert Dawn', '[email protected]', 'That''s good man!', '2010-10-2408:16:47'), (6, 'Rizal Juned', '[email protected]', 'bisaan euy, ajarkeun lah.... keren2wae blogna mah... :D', '2010-10-24 08:18:05'), (7, 'Andi Maulana', '[email protected]', 'Good luck!', '2010-10-2408:18:05'), (8, 'Pak Lurah', '[email protected]', 'Tutorialnya tambahin lagi dunkgan... :)', '2010-10-24 08:20:59'), (9, 'Luna Apridola', '[email protected]', 'bagus bgt tutorialnya!!!thankzz', '2010-10-24 08:20:59');

Setelah table dan data terbentuk, maka sekarang tinggal dibuat modelnya di CI…  

/system/application/models/bukutamu_model.php  

Page 32: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 32/58

 

 <?php 

/*** Description of bukutamu_model** @author cheyuz

*/  class Bukutamu_Model extends Model{ 

function __construct() { 

parent::Model(); } 

function get($limit = array()) { 

if ($limit ==  NULL) return $this->db->get('bukutamu')->result(); 

else return $this->db->limit($limit['perpage'], $limit['offset'])->get('bukutamu')->result(); 

?>  

Function get() yang ada dalam model tersebut adalah untuk mengambil semua data yang

ada di table bukutamu, dengan parameter $limit yang nantinya akan kita pergunakan untuk pagination. Jika $limit tidak diisi, maka data akan ditampilkan semuanya.

OK, setelah model sudah dibuat, maka langkah selanjutnya adalah membuat Controller.

/system/application/controllers/bukutamu.php  

 <?php 

/*** Description of bukutamu** @author cheyuz*/  class BukuTamu extends Controller{ 

function __construct() { 

parent::Controller(); $this->load->helper('url'); //load helper URL untuk memanggil

function base_url() $this->load->model('bukutamu_model'); 

function index($offset = 1) { 

//tentukan jumlah data per halaman $perpage = 3; 

Page 33: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 33/58

 

  //load library pagination $this->load->library('pagination'); 

//untuk konfigurasi pagination $config = array( 

'base_url' => base_url() . 'bukutamu/index/', 

'total_rows' => count($this->bukutamu_model->get()), 'per_page' => $perpage, ); 

//inisialisasi pagination dn config di atas $this->pagination->initialize($config); $data['bukutamu'] = $this->bukutamu_model->get(array('perpage' => 

$perpage, 'offset' => $offset)); 

//tampilkan data $this->load->view('bukutamu_view', $data); 

?>  

Untuk memanggil function base_url(), Anda harus meload terlebih dahulu URL Helper (di

atas sudah diload di constructor). Base_url() adalah function untuk mengambil string web

root kita, misalnya http://localhost/webku .

OK, untuk konfigurasi Pagination akan saya jelaskan satu2:

1.  base_url: adalah url di mana action untuk memanggil bukutamu ini, karena di sini

code terdapat di function index, maka base_url untuk pagination adalah:base_url().'bukutamu/index/'  2.  total_rows: adalah total data, yaitu semua data buku tamu yang diambil dari function

get() di bukutamu_model3.  per_page: adalah jumlah data perhalaman, kita set menjadi 3

  Banyak sekali konfigurasi yang dapat kita atur di library pagination, dan konfigurasi

itu sendiri bisa disimpan di folder /system/config/pagination.php , jadi Andatidak usah mengeset konfigurasi lagi di setiap Controller.

  Parameter $offset sangat diperlukan karena untuk menentukan limit dan offset untuk menampilkan isi data di setiap halaman

Sekarang kita buat view dengan nama bukutamu_view.php.

/system/application/views/bukutamu_views.php  

 <?php foreach ($bukutamu as $bt): ?>  <div>

<div><b> <?php echo $bt->nama ?> </b></div><span> <?php echo $bt->email ?> </span><p> <?php echo $bt->pesan ?> </p>

</div><hr />

 <?php endforeach; ?>  

Page 34: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 34/58

 

Silakan jalankan aplikasi Anda di browser… udah?“lho, lho, data kok cuman tampil 3?” 

Iya, emang seperti itu, hanya saja kita belum menampilkan link paginationnya. Untuk 

menampilkannya, tambahkan kode php berikut ini:

 <?php echo $this->pagination->create_links(); ?>  

 jadi kode di view lengkapnya seperti ini:

 <?php foreach ($bukutamu as $bt): ?>  <div>

<div><b> <?php echo $bt->nama ?> </b></div><span> <?php echo $bt->email ?> </span><p> <?php echo $bt->pesan ?> </p>

</div>

<hr /> <?php endforeach; ?>  

 <?php echo $this->pagination->create_links(); ?>  

Silakan jalankan browser Anda…Jika Anda mengikuti tutorial dengan benar, Anda akan melihat link Pagination di bawahdaftar bukutamu..

Untuk memanipulasi tampilan pagination, silakan ikuti cara saya berikut:Buatlah file pagination.php di dalam direktori /system/application/config , kemudian

tambahkan baris konfigurasi berikut:

 <?php $config['full_tag_open'] = '<div class="pagination">'; $config['full_tag_close'] = '</div>'; $config['next_link'] = 'Lanjut &raquo;'; $config['prev_link'] = '&laquo; Kembali'; $config['num_tag_open'] = '<div class="digit">'; $config['num_tag_close'] = '</div>'; $config['cur_tag_open'] = '<div class="digit current">'; $config['cur_tag_close'] = '</div>'; $config['num_links'] = 1; $config['last_link'] = '<b>Terakhir &rsaquo;</b>'; 

$config['first_link'] = '<b>&lsaquo; Pertama</b>'; ?>  

Kemudian tambahkan CSS berikut:

/**@author Cheyuz**/  .pagination{ background : #eee;  margin: 5px;  padding: 10px;} .pagination .digit{ padding: 0 10px 0 10px; display: inline;} .pagination .digit:hover, .pagination .current{ padding: 2px 10px 2px 10px;  background : #fff; font-weight: 900; -moz-border-radius:5px} 

maka tampilannya akan berubah menjadi seperti berikut:

Page 35: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 35/58

 

12 3 4 

Lanjut »  Terakhir › 

Selamat mencoba!Go Web Developer Indonesia!!!

Multiple Input Form dengan Menggunakan Codeigniter

Akhirnya aku bisa update blog ini lagi, hehe… mungkin temen2 udah ga sabar untuk menanti

tutorial2 komputer yang baru di blog ini, khususnya tutorial Codeigniter.

Untuk kali ini, Cheyuz akan membuat tutorial Codeigniter untuk membuat Multiple InputForm. Apa itu Multiple Input Form? Multiple Input Form adalah suatu bentuk form di manakita akan menginputkan banyak data ke dalam database melalui form secara sekaligus. Jadikita tidak menginputkan data satu persatu.

Form Input Mahasiswa

NIM:

 

0700335 

Nama: Cecep Yusuf  

Alamat: Cianjur 

Jika kita memakai cara yang di atas, maka kita harus menginputkan mahasiswa satu persatu.Bayangkan gimana kalo kita ingin menginputkan 50 data? Tentu kita harus mengisi formsebanyak 50 kali bukan?

Coba lihat form berikut ini:

Form Input Mahasiswa

NIM Nama Alamat

0700335 

Cecep Yusuf 

Cianjur 

0900634 

Sabrina 

Cianjur 

Coba Anda lihat, apa bedanya cara pertama dengan cara kedua? keliatan kan? Nah, jadibedanya apabila kita memakai cara kedua, kita dapat menginput beberapa siswa sekaligus.

Di sini kita akan membuat 3 bagian modul, yaitu:

Page 36: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 36/58

 

1.  Form untuk mengisi berapa data yang akan dimasukkan2.  Form untuk pengisian form multiple3.  Daftar data yang telah dimasukkan

Catatan: 

Diasumsikan base_url() untuk tutorial ini adalah http://localhost/webku  dan index.php telah dihilangkan..

tutorial untuk menghilangkan index.php ada di sini 

Pertama2 buat dulu database sebagai berikut:

CREATE TABLE IF NOT EXISTS mahasiswa ( id int(5)  NOT  NULL  AUTO_INCREMENT, `nim`  varchar(20)  NOT  NULL, `nama`  varchar(100)  NOT  NULL, `alamat` text  NOT  NULL, PRIMARY KEY (id) 

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; 

Jangan lupa cek koneksi ke database apakah sudah benar atau belum..

konfigurasi untuk koneksi database ada di /system/application/config/database.php .

Buatlah sebuah controller data_mahasiswa.php (atau Anda bisa melanjutkan tutorial dariTutorial Dasar Part I untuk membuat controller data_mahasiswa.php dan melanjutkannya).

Di controller tersebut, tambahkan function untuk membuat tampilan multiple input form:

 <?php class Data_mahasiswa extends Controller { 

... 

function add_multiple() { $this->load->view('add_multiple'); 

} } ?>  

Setelah kamu bikin controller di atas, kamu tinggal bikin „view‟ untuk tampilan formnya,

dengan cara membuat file add_multiple.php di folder /system/application/view  Isikan code HTML berikut di file tersebut:

<h2>Multiple Form Input Mahasiswa</h2><form action="" method="post">

Banyak mahasiswa yang ingin dimasukkan:<input name="banyak_data" size="3" /> orang<br /><input type="submit" value="Lanjut" />

</form>

Maka hasilnya seperti berikut:

Multiple Form Input Mahasiswa

Page 37: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 37/58

 

Banyak mahasiswa yang ingin dimasukkan:

orang

Kemudian tambahkan code berikut untuk function add_multiple() file controller

data_mahasiswa.php tadi, menjadi seperti berikut:

 <?php class Data_mahasiswa extends Controller { 

... 

//ADD MULTIPLE  function add_multiple() { 

if($_POST== NULL) { $this->load->view('add_multiple'); 

}else{ 

redirect('data_mahasiswa/add_multiple_post/' .$_POST['banyak_data']); } } 

} ?>  

Maksud dari function di atas adalah meload view add_multiple.php yang berisi halamaninput banyak data mahasiswa yang dimasukkan.. kemudian ketika disubmit (POST) maka

akan di-redirect/alihkan ke function add_multiple_post() dengan parameter banyaknyadata yg dimasukkan ($_POST['banyak_data'] ) yang akan kita buat nanti… yaitu halamanmunculnya multiple form.

Tambahkan function berikut di bawah function add_multiple():

class Data_mahasiswa extends Controller { 

... 

function add_multiple_post($banyak_data=0) { $data['banyak_data'] = $banyak_data; $this->load->view('add_multiple_form',$data); 

} } 

Kemudian, buatlah tampilan multiple form input seperti gambar table di atas.Berikut ini adalah kode HTML dari add_multiple_form.php, simpan di/system/application/views :

<h2>Multiple Form Input Mahasiswa</h2><form action="" method="post">

<table><tr>

<td>NIM</td><td>Nama</td><td>Alamat</td>

</tr>

<?php for($i=1;$i<=$banyak_data;$i++): ?><tr>

<td><input name="data[<?php echo $i ?>][nim]" /></td>

Page 38: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 38/58

 

<td><input name="data[<?php echo $i ?>][nama]" /></td><td><input name="data[<?php echo $i ?>][alamat]" /></td>

</tr><?php endfor ?>

</table><input type="submit" value="simpan" />

</form>

http://localhost/webku/data_mahasiswa/add_multiple_post/3  

Multiple Form Input Mahasiswa

No NIM Nama Alamat

1

2

3

http://localhost/webku/data_mahasiswa/add_multiple_post/5  

Multiple Form Input Mahasiswa

No NIM Nama Alamat

1

2

34

5

Kemudian, tambahkan „if‟ dan „foreach‟ di function add_multiple_post tadi, fungsinyaadalah untuk mengetahui apakah form udah disubmit atau belum… jadi kode PHPlengkapnya sbb:

 <?php class Data_mahasiswa extends Controller { 

... 

function add_multiple_post($banyak_data=0) { if($_POST== NULL) { 

$data['banyak_data'] = $banyak_data; $this->load->view('add_multiple_form',$data); 

}else { foreach($_POST['data'] as $d){ 

$this->db->insert('mahasiswa',$d); } redirect('data_mahasiswa/lihat_data'); 

} } ?>  

Page 39: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 39/58

 

OK, aku jelasin ya… untuk function add_multiple_post():

1.  Data dicek dulu apakah sudah disubmit ato belum ($_POST==NULL), kalo belum,

load view add_multiple_form.php dengan variable $banyak_data yang diambil dari

parameter berdasarkan data yg dimasukkan sebelumnya (di functionadd_multiple(), yaitu $_POST['banyak_data'])

2.  Kalo datanya udah disubmit, maka lakukan insert data yang berulang sebanyak elemen dari $_POST['data'] (berdasarkan $banyak_data) ke dalam table ‘mahasiswa’ dengan data dari $_POST['data'] (input-an dari multiple form)

3.  Kemudian redirect/alihkan ke function lihat_data untuk menampilkan seluruh datamahasiswa yang akan kita buat setelah ini.

 Nah, sekarang kita tinggal bikin daftar data „mahasiswa‟ yang sudah dimasukkan.. Caranya,

buat file list_mahasiswa.php di /system/application/views/dengan isi sebagaiberikut:

list_mahasiswa.php:

<h2>Daftar Mahasiswa</h2>

<table><tr>

<th>No</th><th>NIM</th><th>Nama</th><th>Alamat</th>

</tr>

<?php $i = 0 ?><?php foreach($mahasiswa as $m): ?><tr>

<td><?php echo $i++ ?></td><td><?php echo $m->nim ?></td><td><?php echo $m->nama ?></td><td><?php echo $m->alamat ?></td>

</tr><?php endforeach ?>

</table><?php echo anchor('data_mahasiswa/add_multiple','Tambah Data') ?>

Lalu buat function-nya di Controller data_mahasiswa.php:

 <?php class Data_mahasiswa extends Controller { 

... 

function lihat_data(){ $data['mahasiswa'] = $this->db->get('mahasiswa')->result(); $this->load->view('list_mahasiswa',$data); 

} } ?>  

Selesai.

Page 40: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 40/58

 

Berikut ini adalah source code lengkapnya:

/system/application/controllers/data_mahasiswa.php  

class Data_mahasiswa extends Controller { //... //... function2 yg ada di tutorial sebelumnya //... 

//ADD MULTIPLE  function add_multiple() { 

if($_POST== NULL) { $this->load->view('add_multiple'); 

}else { 

redirect('data_mahasiswa/add_multiple_post/' .$_POST['banyak_data']); } 

} function add_multiple_post($banyak_data=0) { 

if($_POST== NULL) { $data['banyak_data'] = $banyak_data; $this->load->view('add_multiple_form',$data); 

}else { foreach($_POST['data'] as $d){ 

$this->db->insert('mahasiswa',$d); } redirect('data_mahasiswa/lihat_data'); 

} } function lihat_data(){ 

$data['mahasiswa'] = $this->db->get('mahasiswa')->result(); $this->load->view('list_mahasiswa',$data); 

} } 

/system/application/views/add_multiple.php  

<h2>Multiple Form Input Mahasiswa</h2><form action="" method="post">

Banyak mahasiswa yang ingin dimasukkan:<input name="banyak_data" size="3" /> orang<br /><input type="submit" value="Lanjut" />

</form>

/system/application/views/add_multiple_form.php  

<h2>Multiple Form Input Mahasiswa</h2><form action="" method="post">

<table><tr>

<td>No</td><td>NIM</td><td>Nama</td><td>Alamat</td>

</tr><?php for($i=1;$i<=$banyak_data;$i++): ?><tr>

<td><?php echo $i ?></td><td><input name="data[<?php echo $i ?>][nim]" /></td>

Page 41: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 41/58

 

<td><input name="data[<?php echo $i ?>][nama]" /></td><td><input name="data[<?php echo $i ?>][alamat]" /></td>

</tr><?php endfor ?>

</table><input type="submit" value="simpan" />

</form>

/system/application/views/list_mahasiswa.php  

<h2>Daftar Mahasiswa</h2>

<table><tr>

<th>No</th><th>NIM</th><th>Nama</th><th>Alamat</th>

</tr>

<?php $i = 0 ?><?php foreach($mahasiswa as $m): ?><tr>

<td><?php echo $i++ ?></td><td><?php echo $m->nim ?></td><td><?php echo $m->nama ?></td><td><?php echo $m->alamat ?></td>

</tr><?php endforeach ?>

</table><?php echo anchor('data_mahasiswa/add_multiple','Tambah Data') ?>

Untuk contoh file nya klik link Download yang ada di bawah ini..

DOWNLOAD 

Tutorial CodeIgniter Dasar Part I

Udah lama aku ga ngupdate blog ini… yaa sekitar 3 minggu lah ya.. Mulai sekarang aku maumulai update lagi ini blog, dan pengennya sih blog ini up to date sehari sekali ato yaminimalnya seminggu sekali lah ya… 

OK, tutorial kali ini adalah tutorial CodeIgniter dasar, sangat dasar.. jadi di sini akandijelaskan tentang bagaimana cara konfigurasi nama situs, kemudian konfigurasi database,konfigurasi library, autoload, dan sebagainya… mudah2an temen2 mengikuti tutorial inidengan sebaik- baiknya, soalnya kalo kita ga mulai dari dasar/basic nantinya susah… kita bisaaja bikin aplikasi oleh CodeIgniter dengan meniru contoh, tetapi kita tidak faham, hanyamengikuti… bahayanya adalah gimana klo client minta ini itu dan itu misalnya tidak adadalam contoh? klo kita ga faham kita pasti ga bisa meneruskan aplikasi kita alias BUNTU..

Instalasi

Page 42: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 42/58

 

OK, kita mulai aja… kita di sini memakai XAMPP pertama-tama, extract file codeigniter.rarke C:\xampp\htdocs, file bisa didownload di sini. Misalnya kita namakan nama folder root(nama situs) kita adalah webku.

Konfigurasi

Kemudian, hal yang pertama harus dilakukan adalah konfigurasi awal, yaitu base_url, base_url adalah nama root situs kita… caranya edit file /webku/system/application/config/config.php, ubah $config['base_url'] =“http://example.com/“ menjadi:

$config['base_url']  = "http://localhost/webku/"; 

kemudian hilangkan index.php di $config['index_page'] sehingga menjadi:

$config['index_page'] = ""; 

Langkah kedua adalah konfigurasi routes, yaitu controller default apakah yang ingindiload…? jadi di sini adalah konfigurasi untuk controller „home‟, sehingga ketika kitamengetikkan url http://localhost/webku maka yang dipanggil adalah controller yang sudahdikonfigurasi di routes ini.. Cara konfigurasinya yaitu dengan mengedit file  

 /webku/system/application/config/routes.php, dan di bagian $route['default_controller']isi dengan „home‟ sehingga seperti ini: 

$route['default_controller'] = "home"; 

kita akan membuat supaya ketika kita menuju url http://localhost/webku maka controller

yang akan dijalankan adalah controller home .

Kemudian setelah itu adalah konfigurasi Databasenya… ada di file /webku/system/application/config/database.php, Di situ terlihat konfigurasi-konfigurasiseperti host, username, password, nama db, dsb.. silakan diisi seperti berikut:

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

Kemudian konfigurasi selanjutnya adalah konfigurasi untuk autoload, jadi ketika situsdibuka, library/helper/model/dsb apakah yang akan selalu diload.. file ada di

 /webku/system/application/config/autoload.php, tambahkan database di bagian$autoload['libraries'] menjadi seperti ini:

$autoload['libraries'] = array('database'); 

Page 43: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 43/58

 

Kemudian yang terakhir adalah penambahan .htaccess supaya kita tidak perlu mengetikkanindex.php di URL kita, cara untuk menghilangkan index.php (menggunakan .htaccess) adadi sini. 

Contoh Aplikasi Database Sederhana

Buatlah sebuah database bernama blog, kemudian copy SQL berikut:

CREATE TABLE IF  NOT EXISTS `buku_tamu` ( `id` INT(11)  NOT  NULL  AUTO_INCREMENT, `nama`  VARCHAR (100)  NOT  NULL, `email`  VARCHAR (20)  NOT  NULL, `situs`  VARCHAR (100)  NOT  NULL, `komentar` text NOT  NULL, PRIMARY KEY (`id`) 

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

INSERT INTO `buku_tamu` (`id`, `nama`, `email`, `situs`, `komentar`)  VALUES (1, 'Cecep Yusuf', '[email protected]', 'http://www.cheyuz.com', 'Iniadalah komentar pertama'), (2, 'Deddy Mizwar', '[email protected]', 'http://www.facebook.com', 'Iniadalah komentar kedua');

Kita buat sebuah contoh di mana kita akan menampilkan isi dari database di atas..

Pertama-tama, buatlah model terlebih dahulu di /webku/system/application/model/ dengannama file buku_tamu.php yang berisi code sebagai berikut:

 <?php 

class Buku_tamu extends Model{ function selectAll() { 

return $this->db->get('buku_tamu')->result(); } 

} ?>  

Di dalam folder /webku/system/application/controller/ bikin sebuah file bernamahome.php untuk membuat class controller yang bernama Home… isi dari home.php adalah:

 <?php 

class Home extends Controller{ function __construct() { 

parent::Controller(); $this->load->model('buku_tamu'); 

} function index() { 

$data['title'] = 'Ini adalah aplikasi sederhana'; 

//memanggil function selectAll di model buku_tamu, dimasukkan ke$data['buku_tamu'] 

$data['buku_tamu'] = $this->buku_tamu->selectAll(); 

//meload view bernama home_view.php dengan data variable adalah $data $this->load->view('home_view', $data); 

Page 44: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 44/58

 

  } } ?> ;

Nah, kemudian kita buat file home_view.php di folder /webku/system/application/view/ dengan isi sebagai berikut:

<h2> <?php echo $title ?> </h2>

<table border="1" cellpadding="5" cellspacing="0"><tr>

<td>No</td><td>Nama</td><td>Email</td><td>Situs</td><td>Komentar</td>

</tr>

 <?php $i = 0 ?>   <?php foreach ($buku_tamu as $bt): ?>  <tr>

<td> <?php echo $i++ ?> </td><td> <?php echo $bt->nama ?> </td><td> <?php echo $bt->email ?> </td><td> <?php echo $bt->situs ?> </td><td> <?php echo $bt->komentar ?> </td>

</tr> <?php endforeach ?>  

</table>

Silakan dibuka di browser url berikut: http://localhost/webku 

Hasilnya adalah sebagai berikut:

Ini adalah aplikasi sederhana

No  Nama  Email  Situs  Komentar 

1  Cecep Yusuf   [email protected]  http://www.cheyuz.com  Ini adalah komentar pertama 

2  Deddy Mizwar  [email protected]  http://www.cheyuz.com  Ini adalah komentar kedua 

Tutorial CodeIgniter Dasar Part II – CRUD chapter 1

Di tutorial yang kedua ini, kita akan bahas bagaimana cara membuat CRUD denganmenggunakan CI…. kenapa kita harus belajar membuat aplikasi CRUD? soalnya ini

Page 45: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 45/58

 

merupakan dasar kita untuk ke depannya.. untuk membuat aplikasi yang kompleks,sebenarnya kita hanya mengelola dan mengolah database, meliputi membuat database(Create), membaca (Read), mengubah (Update), menghapus (Delete), ato disingkat menjadiCRUD.

Adapun di sini kita akan belajar membuat model untuk data yang akan diolah, view untuk membuat interface, dan controller untuk mengolah model dan ngeload view..

OK, pertama-tama, kita buat sebuah database bernama tutorial_ci, dan buatlah sebuah tablebernama mahasiswa (kenapa selalu „mahasiswa‟? ga punya contoh lain ), isinya ada id,nim, nama, alamat.. OK segitu saja.. kamu tinggal copy SQL berikut:

CREATE TABLE IF  NOT EXISTS `mahasiswa` ( `id` INT(5)  NOT  NULL  AUTO_INCREMENT, `nim`  VARCHAR (20)  NOT  NULL, `nama`  VARCHAR (100)  NOT  NULL, `alamat` text NOT  NULL, PRIMARY KEY (`id`) 

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Jadi kita membuat tabel kosong bernama „mahasiswa‟ dengan field seperti di atas…  

Diharapkan kamu yang mengikuti tutorial ini udah pernah mengikuti tutorial sebelumnya.. kenapa?

karena konfigurasinya kita menggunakan konfigurasi di tutorial dasar part I, bisa klik di sini 

Seperti pada tutorial dasar part I, webroot kita ini diasumsikan bernama “webku”, dan

konfigurasinya diasumsikan sama, oleh karena itu silahkan baca tutorial dasar part I terlebih dahulu.

1. Menampilkan semua data

OK, langkah pertama adalah membuat sebuah model….  

Buatlah sebuah file mahasiswa_model.php di /system/application/models dengan isiadalah barisan kode seperti berikut:

 <?php /*** @author Cecep Yusuf */  

class Mahasiswa_model extends Model { 

} ?>  

Sejauh ini, kita sudah membuat sebuah model untuk mahasiswa, yang nantinya mempunyai banyak fungsi untuk mengolah table „mahasiswa‟… 

Di bawah ini, kita akan menambahkan function selectAll(), yang mana berfungsi untuk menyeleksi semua field di table mahasiswa (select * from mahasiswa), jadi code tadi

setelah ditambahkan menjadi seperti berikut:

 <?php 

Page 46: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 46/58

 

/*** @author Cecep Yusuf */  

class Mahasiswa_model extends Model { function selectAll(){ 

return $this->db->get('mahasiswa')->result(); } } ?>  

Nah, sejauh ini kita sudah bikin function selectAll() yang berfungsi untuk memilih semua

field dari table mahasiswa.

Setelah itu, model akan diolah oleh controller, jadi sekarang kita buat sebuah controller yang

berfungsi untuk memanipulasi objek mahasiswa_model… 

OK, buatlah sebuah controller bernama data_mahasiswa.php di/system/application/controllers dengan isi file sebagai berikut:

 <?php /*** @author Cecep Yusuf */  

class Data_mahasiswa extends Controller { function __construct() { 

parent::Controller(); } 

?>  

function __construct() adalah sebagai konstruktor… berbagai perintah yang ada di dalam

fungsi ini akan selalu dipanggil di saat objek Data_mahasiswa dibuat… jadi berbagai fungsiuntuk meload library, model, helper, dan sebagainya, kita tinggal masukkan di function inisupaya tidak diketik ulang di setiap fungsi…. 

Karena kita akan meload model mahasiswa_model setiap kali dibuat controller, maka kitaload modelnya di bagian __construct() di dalam controller Data_mahasiswa. Jadi kodelengkapnya seperti berikut:

 <?php /*** @author Cecep Yusuf */  

class Data_mahasiswa extends Controller { function __construct() { 

parent::Controller(); $this->load->model('mahasiswa_model'); 

} ?>  

Page 47: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 47/58

 

Kemudian, kita buat function index() sebagai penampil semua data yang ada di tablemahasiswa, jadi URLnya akan berbentuk 

http://localhost/webku/data_mahasiswa/index ATAU

http://localhost/webku/data_mahasiswa (Index tidak perlu dituliskan)

 <?php /*** @author Cecep Yusuf */  class Data_mahasiswa extends Controller { 

function __construct() { parent::Controller(); $this->load->model('mahasiswa_model'); 

} function index(){ 

$data['mahasiswa'] = $this->mahasiswa_model->selectAll(); $this->load->view('data_mahasiswa_view', $data); 

} ?>  

Di dalam function index() di atas, kita lihat ada script seperti ini:$data['mahasiswa'] = $this->mahasiswa_model->selectAll(); 

kode tersebut berarti data hasil keluaran dari function selectAll() di modelmahasiswa_model berupa array dan disimpan di dalam array $data['mahasiswa'] , yangnantinya data tersebut bisa diakses di view..

Kemudian kita lihat lagi, ada script berikut:$this->load->view('data_mahasiswa_view');  

function view() dalam objek „load‟ adalah untuk meload view yang sudah kita buat di/system/application/views , dengan mengeset variable hasil ekstrak dari variable $data,sehingga nanti bisa diakses dari view..

OK, kita buat view-nya dengan nama file data_mahasiswa_view.php di

/system/application/views dengan isi sebagai berikut ini:

<h1>Data Mahasiswa</h1><table>

<thead><tr>

<th>No</th>

<th>NIM</th><th>Nama</th><th>Alamat</th><th>Aksi</th>

</tr></thead><tbody>

 <?php $i = 1 ?>   <?php foreach($mahasiswa as $m): ?>  <tr>

<td> <?php echo $i++ ?> </td><td> <?php echo $m->nim ?> </td><td> <?php echo $m->nama ?> </td>

<td> <?php echo $m->alamat ?> </td><td></td>

</tr>

Page 48: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 48/58

 

   <?php endforeach ?>  </tbody>

</table>

Sekarang, coba buka alamat di browser: http://localhost/webku/data_mahasiswa, keluar apa?table kan? dengan data KOSONG…. 

OK, sekarang kita lanjut ke sesi yg kedua.. yaitu MENAMBAHKAN DATA… 

2. Menambahkan data

Kita akan membuat tampilan seperti berikut:

Data Mahasiswa

No  NIM  Nama  Alamat  Aksi 

1  0700335 Cecep Yusuf  Cipanas, Cianjur edit | delete | detail 

2  0800113 Fitri Yuniar  Jakarta  edit | delete | detail 

Tambah data 

Silakan buat sebuah anchor() (a) di bawah table di dalam file data_mahasiswa_view.php..Jangan lupa sebelumnya load dulu url_helper di controller dengan cara menambahkan code

berikut:

 <?php ... 

$this->load->helper('url'); ... ?>  

anchor() adalah function helper yang udah tersedia di CI, untuk menggantikan tag ‘a’

Buatlah sebuah anchor sebagai link ke function add() di Controller (fungsi ini belum dibuat),caranya dengan menambahkan script berikut:

 <?php echo anchor('data_mahasiswa/add', 'Tambah Data') ?>  

 jadi kode lengkapnya di data_mahasiswa_view.php adalah sebagai berikut:

<h1>Data Mahasiswa</h1><table>

<thead><tr>

<th>No</th><th>NIM</th><th>Nama</th><th>Alamat</th>

<th>Aksi</th></tr></thead>

Page 49: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 49/58

 

<tbody> <?php $i = 1 ?>   <?php foreach($mahasiswa as $m): ?>  <tr>

<td> <?php echo $i++ ?> </td><td> <?php echo $m->nim ?> </td>

<td> <?php echo $m->nama ?> </td><td> <?php echo $m->alamat ?> </td><td></td>

</tr> <?php endforeach ?>  

</tbody></table> <?php echo anchor('data_mahasiswa/add', 'Tambah Data') ?>  

Langkah selanjutnya adalah membuat function add() di controller data_mahasiswa.php ,tambahkan function ini:

... function add(){ $this->load->view('add_view'); 

} ... 

Di sana terdapat code untuk meload file view yang bernama add_view.php… 

Silakan buat view add_view.php di folder /system/application/views dengan isi sebagaiberikut:

<h1>Tambah data</h1> <form action="" method="post"> 

<table> <tr> <th>NIM</th> <td><input name="nim" /></td> 

</tr> <tr> 

<th>Nama</th> <td><input name="nama" /></td> 

</tr> <tr> 

<th>Alamat</th> <td><textarea name="alamat"></textarea></td> 

</tr> 

<tr> <th></th> <td><input type="submit" value="tambah" /></td> 

</tr> </table> 

</form> 

Perlu diketahui bahwa cara di atas belum menggunakan library ‘form’ bawaan dari CI.. kita memakai

cara manual dulu, sebelum nanti kita bahas penggunaan helper di CI di tutorial selanjutnya…

Method yang digunakan yaitu POST, yang akan menghasilkan sebuah variable array$_POST… 

Sebelumnya, kita tambahkan function insert() di model mahasiswa_model.php sepertiberikut:

Page 50: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 50/58

 

... function insert($set){ 

$this->db->insert('mahasiswa', $set); } 

... 

function insert tersebut sudah ada di library database CI, jadi kita tidak usah membuat query„insert into….‟ lagi… 

sekarang, di Controller data_mahasiswa.php kita ubah function add() menjadi sepertiberikut:

... function add() { 

if($_POST== NULL) { $this->load->view('add_view'); 

}else { $this->mahasiswa_model->insert($_POST); redirect('data_mahasiswa/index'); 

} } 

... 

Kita jelasin, di sana ada fungsi If untuk mengecek apakah data dari $_POST sudah terSET  atau belum… kalo kita udah mengklik submit , berarti kita sudah mengeset variable$_POST… jika belum (=NULL), maka program hanya meload view saja…. 

di sana ada function redirect(), yaitu function bawaan CI, yang berfungsi untuk me-redirect halaman (mengalihkan), sehingga ketika kita menambahkan data, maka akan

dialihkan lagi ke index… 

Sejauh ini, kamu berhasil membuat aplikasi CI untuk menambahkan data ke database danmenampilkannya…. 

silakan ketik url berikut untuk melihat hasilnya: http://localhost/webku/data_mahasiswa  

Sementara segini aja dulu ya… Cheyuz-nya cape 2 jam ngetik trus nih,,, hahaha..tapi gpp, demi kalian

 Nanti di part III kita akan membuat untuk update dan delete nya…. selamat mencoba… 

SALAM WEB DEVELOPER! 

Tutorial CodeIgniter Dasar Part II – CRUD chapter 2

OK, malam ini kita lanjutkan tutorial kemarin… maaf kalo agak telat, soalnya koneksiCheyuz lagi bermasalah dan bentrok ngerjain tugas kuliah juga.. hehe…  

Page 51: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 51/58

 

Pada tutorial kemarin, kita udah bisa menambahkan data ke dalam database… (Create) danmenampilkannya (semua data)…. Sekarang, kita akan membuat aksi lainnya, yaituupdate/ubah dan delete/hapus pada setiap data di dalam sebuah table…  

Kita lanjutkan tutorial kemarin (Tutorial CodeIgniter Dasar Part II – CRUD Chapter 1

 

) yang

waktu itu kita udah membuat table mahasiswa dan membuat fungsi untuk menambahkandatanya.. sekarang mari kita buat fungsi/aksi lainnya, yaitu update dan delete…  

Kita review hasil kerjaan dari tutorial kemarin… 

<h1>Data Mahasiswa</h1><table>

<thead><tr>

<th>No</th><th>NIM</th><th>Nama</th>

<th>Alamat</th><th>Aksi</th>

</tr></thead><tbody>

 <?php $i = 1 ?>   <?php foreach($mahasiswa as $m): ?>  <tr>

<td> <?php echo $i++ ?> </td><td> <?php echo $m->nim ?> </td><td> <?php echo $m->nama ?> </td><td> <?php echo $m->alamat ?> </td><td></td>

</tr> <?php endforeach ?>  

</tbody></table>

Sebelumnya kita tambahkan 2 buah anchor (link) untuk membuat hyperlink menuju kemasing2 fungsi tersebut,.. yaitu anchor untuk edit dan delete.. (catatan: edit = update).Buatlah dua buah anchor dengan bentuk kode seperti ini di kolom paling kanan tabel:

 <?php echo anchor('data_mahasiswa/edit/'.$m->id, 'Ubah') . ' | ' . anchor('data_mahasiswa/delete/'.$m->id, 'Hapus'); ?>  

 jadi bentuknya seperti ini:

<h1>Data Mahasiswa</h1><table>

<thead><tr>

<th>No</th><th>NIM</th><th>Nama</th><th>Alamat</th><th>Aksi</th>

</tr>

</thead><tbody> <?php $i = 1 ?>  

Page 52: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 52/58

 

   <?php foreach($mahasiswa as $m): ?>  <tr>

<td> <?php echo $i++ ?> </td><td> <?php echo $m->nim ?> </td><td> <?php echo $m->nama ?> </td><td> <?php echo $m->alamat ?> </td>

<td> <?php echo anchor('data_mahasiswa/edit/'.$m->id, 'Ubah') . ' | ' . anchor('data_mahasiswa/delete/'.$m->id, 'Hapus'); ?> </td></tr> <?php endforeach ?>  

</tbody></table>

previewnya:

Data Mahasiswa

No  NIM  Nama  Alamat  Aksi 

1  0700335 Cecep Yusuf  Cipanas, Cianjur edit | delete 

2  0800113 Fitri Yuniar  Jakarta  edit | delete 

Tambah data 

1. Menghapus Data

Kemudian setelah itu, kita buat sebuah function di dalam model mahasiswa_model.php difolder /system/application/models :

 <?php ... 

function delete($id){ $this->db->delete('mahasiswa', array('id'=>$id)); 

} ... ?>  

Kemudian, di controller data_mahasiswa.php di /system/application/controllers  

tambahkan function berikut:

... function delete($id){ 

$this->mahasiswa_model->delete($id); redirect('data_mahasiswa'); 

} ... 

fungsi di atas memanggil fungsi dari objek Mahasiswa_model yaitu delete, yang akanmenghapus data dari table mahasiswa yang id nya adalah parameter dari function tersebut($id)… Kemudian setelah itu baru diredirect/dialihkan ke tampilan index dari controllerdata_mahasiswa.

Page 53: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 53/58

 

2. Mengubah Data

Nah, untuk mengubah data.. kita harus tahu fungsi untuk mengubah database dari Active

Record yang disediakan oleh CI.. yaitu $this->db->update($nama_table, $data)… 

Sekarang, kita tambahkan function update() dan select($id) untuk menyeleksi SATU

data yang akan dipilih berdasarkan id-nya… dibuat di model mahasiswa.php di

/system/application/models ,,,

... function update($id){ 

$this->db->where('id',$id)->update('mahasiswa', $_POST); } function select($id){ 

return $this->db->get_where('mahasiswa', array('id'=>$id))->row(); } 

... 

Di situ ada fungsi update(), yang equivalen dengan query update from mahasiswa where

id=$id set $_POST. Dan fungsi select yang nantinya akan kita gunakan ketika nilai daridata akan dimasukkan ke dalam sebuah form (untuk diedit) sehingga kita menggunakan

row() yang berfungsi meretrieve data menjadi objek, tetapi hanya SATU BARIS DATA...(segitunya sampe dipertebel hehe )

Setelah kita membuat modelnya… kemudian kita tambahkan function edit() di Controller

data_mahasiswa.php di /system/application/controller/:

... function edit($id){ $data['m'] = $this->mahasiswa_model->select($id); $this->load->view('edit_view',$data); 

} ... 

Di situ kita buat sebuah fungsi edit di controller data_mahasiswa.php dengan parameter$id.. karena kita akan mengubah data pada setiap data yang ada dengan mengambil id-nya…

dan dipanggillah fungsi update() dari model mahasiswa… Tetapi sebelumnya kita harusngambil sebuah data mahasiswa tertentu berdasarkan $id yang ada untuk dimasukkan ke

dalam form,, sehingga nantinya bisa diubah… makanya kita membuat fungsi select() 

Ini adalah view yang harus ada di /system/application/views dengan nama file

edit_view.php (yang udah kita masukkan ke dalam fungsi $this->load->view() dicontroller.

Ini adalah isi dari view-nya:

<h1>Ubah data</h1><form action="" method="post">

<table><tr>

<th>NIM</th><td><input name="nim" value=" <?php echo $m->nim ?> " /></td>

</tr>

Page 54: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 54/58

 

<tr><th>Nama</th><td><input name="nama" value=" <?php echo $m->nama ?> " /></td>

</tr><tr>

<th>Alamat</th>

<td><textarea name="alamat"> <?php echo $m->alamat ?> </textarea></td></tr><tr>

<th></th><td><input type="submit" value="ubah" /></td>

</tr></table>

</form>

Jadi, ketika view tersebut diload, maka form akan langsung terisi dengan data yang kita

panggil dengan $id yang ada di URL… (yang merupakan parameter) 

Kemudian, di controller kita tambahkan code berikut:

... function edit($id) { 

if($_POST== NULL) { $data['m'] = $this->mahasiswa_model->select($id); $this->load->view('edit_view',$data); 

}else { $this->mahasiswa_model->update($id); redirect('data_mahasiswa'); 

} } 

... 

Kita lihat, ada fungsi if else… buat apa tuh?? itu buat ngecek apakah data udah dikirim atau belum (NULL)? Nah, klo udah dikirim berarti

 bakal diupdate… kalo belum maka program akan mengambil data (select) dan dimasukkan kedalam form… 

Kemudian terdapat fungsi redirect (sama seperti add), ketika data sudah diubah, makahalaman langsung dialihkan ke dalam action yang ada di prameter redirect tersebut….  

 Nah, sejauh ini kita sudah membuat aplikasi CRUD lengkap… Create, Read, Update, dan

Delete…. 

Silakan cek program yang kita bikin sejauh ini dengan mengetikkan alamat url :http://localhost/webku/data_mahasiswa  

Mudah-mudahan ini bisa ngebantu kita dalam suatu kasus tertentu di mana misalnya tugasmaupun kerjaan meminta kita dibuatkan programnya dengan menggunakan CI,,,

Nanti kita lanjut tutorialnya di Part 3, tentang LAYOUTING dan TEMPLATING di CodeIgniter…. 

Coming Soon ya… 

Kalo ada pertanyaan, silakan komentar di bawah ini, insya Allah dibalas

Page 55: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 55/58

 

 

Tutorial CodeIgniter Dasar Part III – Page Template

Kali ini, Cheyuz akan ngebahas tentang Page Template, apa itu?

Page Template adalah sebuah pola layout pada sebuah halaman web di mana kita akan selalumemakai pola tersebut sesuai kebutuhan kita untuk meload halaman lengkap beserta header,content, dan footernya.. dengan menggunakan page template, kita tidak harus meload headerdan footer di setiap fungsi pada controller di CodeIgniter.

Contoh misalnya ada kasus seperti ini:Pada sebuah halaman web, ketika diload harus selalu load header, sidebar, content, footer,

dsb.. maka secara normal di program akan berbentuk seperti ini:

 <?php class Home extends Controller { 

function index() { $data['title'] = 'Webku'; $this->load->view('header'); $this->load->view('topmenu'); $this->load->view('home_view', $data); $this->load->view('footer'); 

} } ?>  

Di dalam function index, kode tersebut akan meload view header.php, sidebar.php,

home_view.php, dan footer.php. Cara ini sebenarnya kurang efektif, walaupun yangdihasilkan adalah sama, yaitu nge-load lengkap sebuah halaman web (dari tag [html] sampai[/html]). Kenapa kurang efektif? karena di setiap function kita harus meload lagi semuaelemen di atas… Ini baru satu function, bagaimana jika di dalam satu controller terdapat 50function? tentu hal ini dapat merepotkan, dan sangat tidak efektif karena membuat redudansikode.

Menggunakan Page Template Helper

Untuk mempermudah penggunaan code, kita akan membuat sebuah helper baru yang akankita namakan Page Template Helper (page_template_helper.php) yang akan kita gunakanuntuk merender layout yang sudah kita buat. Jadi layaknya seperti gabungan dari function

$this->layout() dan $this->render() di Framework CakePHP.

OK, pertama-tama buatlah layout untuk template kita, dan simpan di folder

/system/application/view/layout/ (seperti biasa, base_url() website kita adalah

‘webku’) dengan nama default.php, kodenya adalah sebagai berikut:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Page 56: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 56/58

 

<title>Webku <?php echo isset ($title)?" | ".$title:'' ?> </title></head><body>

<div id="header"> <?php $this->load->view('layout/element/header') ?>  

</div>

<div id="topmenu"> <?php $this->load->view('layout/element/topmenu') ?>  </div><div id="content">

 <?php $this->load->view($view) ?>  </div><div id="footer">

 <?php $this->load->view('layout/element/footer') ?>  </div>

</body></html>

Kode di atas adalah sebuah template default website kita, yang berarti setiap action/function

yang akan kita panggil akan selalu meload tag html di atas, mulai dari title, kemudian loadCSS atau JS misalnya, terus header-nya, topmenu, footer, dan sebagainya. Kita cukupmenambahkan elemen di file tersebut.

Contoh ini belum menggunakan CSS, pembahasan tentang CSS akan dijelaskan pada tutorial

selanjutnya

Setelah membuat file default.php, buatlah semua file „layout element‟ (header, topmenu,

dan footer) dan simpan di direktori /system/application/view/layout/element/.Berikut adalah isi dari masing-masing elemen:

Isi dari file-file di bawah ini hanya pemisalan/contoh

../view/layout/element/header.php

<img src="images/banner.jpg" /> Ini adalah HEADER 

../view/layout/element/topmenu.php

<a href="#">MENU 1</a> | <a href="#">MENU 2</a> | <a href="#">MENU 3</a> 

../view/layout/element/footer.php

Copyright &copy 2010 by Cheyuz

Jadi ketika file default.php dirender, maka element/header.php, element/topmenu.php, danelement/footer.php akan selalu diload.

Nah, untuk pemanggil template tersebut dan yang akan digunakan di controller adalah PageTemplate Helper… jadi rencananya kode kita yang sebelumnya: 

 <?php 

class Home extends Controller { function index() { 

Page 57: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 57/58

 

  $data['title'] = 'Webku'; $this->load->view('header'); $this->load->view('topmenu'); $this->load->view('home_view', $data); $this->load->view('footer'); 

} ?>  

menjadi seperti ini:

 <?php class Home extends Controller { 

function index() { $data['title'] = 'Webku'; show('home_view',$data); 

} } ?>  

Singkatnya, kita tidak menggunakan function $this->load->view() lagi di Controller,

tetapi kita menggunakan function show() yang berfungsi sama dan meload seluruh elemenyang kita tentukan.

Sekarang, kita buat sebuah helper page_template_helper.php di

/system/application/helper/ dengan kode seperti berikut:

 <?php if ( ! function_exists('element')) { 

function show($view, $data=array(), $template='default') { 

$ci = &get_instance(); $data['view'] = $view; $data = $ci->load->view('layout/'.$template, $data); 

} } 

/* End of file page_template_helper.php */  /* Location: ./system/helpers/page_template_helper.php */  

OK, akan Cheyuz jelaskan..Di kode itu terlihat bahwa $view yang ada di parameter 1 di function show() ini akandimasukkan ke dalam variable array $data, yang kemudian akan diload view yang bernama

$template (diubah sesuai nama layout, defaultnya adalah default.php) dengan $data tetap dariparameter ke-2.. dan parameter ke-3 ($default) adalah nama file template yang kita buat…secara default file template yang akan diload adalah ../layout/default.php.

Nah, di controller Home tadi, kita dapat mengubahnya menjadi seperti ini:

 <?php class Home extends Controller { 

function index() { $data['title'] = 'Webku'; show('home_view',$data); 

} function about(){ 

$data['title'] = 'About'; 

Page 58: Tutorial CodeIgniter Dasar Part V

5/13/2018 Tutorial CodeIgniter Dasar Part V - slidepdf.com

http://slidepdf.com/reader/full/tutorial-codeigniter-dasar-part-v 58/58

 

show('home_view',$data); } function other(){ 

$data['title'] = 'Other (layout tanpa topmenu)'; show('home_view',$data, 'other'); 

} ?>  

Ada function other(), yang akan memanggil halaman dengan template yang berbeda,yaitu menghilangkan topmenu.. karena kita sudah membuat helpernya, maka untuk membuattemplate baru untuk function other() tersebut, kita tinggal membuat file template bernama

other.php di /system/application/view/layout/ dengan isi file seperti berikut:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN"><html>

<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Webku <?php echo isset ($title)?" | ".$title:'' ?> </title></head><body>

<div id="header"> <?php $this->load->view('layout/header') ?>  

</div>

 <?php // menghilangkan topmenu untuk action tertentu ?>  

<div id="content">  <?php $this->load->view($view) ?>  

</div><div id="footer">

 <?php $this->load->view('layout/footer') ?>  </div>

</body></html>

Setelah semua langkah selesai, selanjutnya adalah meload helper tersebut. Karena kita akanselalu meload helper ini, maka kita atur konfigurasi autoloadnya di file/system/application/config/autoload.php  

Tambahkan „page_template‟ pada bagian kode berikut: 

.. $autoload['helper'] = array('page_template'); .. 

Tutorial selesai, selamat mencoba…bila ada pertanyaan, kritik saran, silakan comment/email…