Kategori
PHP

Code Igniter : Export Data ke File PDF

Studi Kasus : Export Data Mysql Database ke dalam file PDF dalam Code Igniter.
Kebutuhan :
1. Webserver package, already installed.
2. Code Igniter Bundle.
3. Cezpdf library –> download here

Adakalanya, ketika kita membuat aplikasi, kita akan membutuhkan untuk mengexport data ke dalam file pdf (selain dari file excel), misalkan untuk membuat surat atau laporan tertentu. Dengan library cezpdf (karya Wayne Munro ), membuat laporan dalam bentuk pdf tidak akan terlalu sulit.

A. Mempersiapkan Database
1. Buat database dengan nama db_tutorial.
2. Buat tabel dengan nama tb_member, dengan struktur tabel dibawah ini,

3. Insert-kan beberapa sample data dalam tb_member, misal seperti data dibawah ini,

4. Okay, done with database.

B. Mempersiapkan file dan struktur direktori
1. Install Codeigniter, dengan mengekstrak bundle CI dan menempatkannya dalam document root anda.
2. Atur setting database (system-application-config-database.php) dengan setting database yang akan digunakan (db name : db_tutorial)
3. Atur config base url (system-application-config-config.php)
4. Letakkan file cezpdf.php dan class.pdf.php (hasil download Cezpdf library diatas) dalam folder system-application-libraries
5. Letakkan file pdf_helper.pdf dalam folder system-application-helper.
6. Ok πŸ˜€

C. Membuat model
1. Ketikkan script berikut ini,
[sourcecode language=”php”]
<?php
class Member_model extends Model {
function Member_Model() {
parent::Model();
}
function alldata()
{
$this->db->select(‘*’);
$this->db->from(‘tb_member’);
$this->db->order_by(‘no’,’ASC’);
$getData = $this->db->get();
if($getData->num_rows() > 0)
return $getData->result_array();
else return null;
}
}
?>
[/sourcecode]
2. Simpan dengan nama member_model.php dalam folder system-application-models

D. Membuat Controller
1. Ketikkan script berikut ini,
[sourcecode language=”php”]
<?php
class Member_con extends Controller {
public function __construct() {
parent::__construct();
$this->load->model(‘member_model’);
$this->load->helper(‘url’);
}
public function index() {
$data[‘member’] = $this->member_model->alldata();
$this->load->view(‘member_view’, $data);
}

function topdf () {
$this->load->library(‘cezpdf’);
$this->load->helper(‘pdf’);
prep_pdf();
$data[‘member’]= $this->member_model->alldata();
$titlecolumn = array(
‘no’ => ‘no’,
‘name’ => ‘name’,
‘address’ => ‘address’
);
$this->cezpdf->ezTable($data[‘member’], $titlecolumn,’Member Data’);
$this->cezpdf->ezStream();
}
}
?>
[/sourcecode]
2. Simpan dengan nama member_model.php dalam folder system-application-models

E. Membuat View
1. Ketikkan script berikut ini,
[sourcecode language=”php”]
<h4>Member Data</h4>
<?php if(count($member) > 0) { ?>
<table border="1">
<tr>
<th>No</th>
<th>Name</th>
<th>Address</th>
</tr>
<?php
foreach($member as $rows) {
echo "<tr>";
echo "
<td>". $rows[‘no’]."</td>
<td>". $rows[‘name’] ."</td>
<td>". $rows[‘address’] ."</td>
"; } ?>
</table>
<?php } ?>
<br> <br>
<a href='<?php echo base_url(); ?>index.php/member_con/topdf’><span

style=’color:green;’>Export to Pdf</span></a>
[/sourcecode]2. Simpan dengan nama member_model.php dalam folder system-application-models

F. Testing code
1. Buka http://localhost/ci_tutor/index.php/member_con. Anda akan melihat data yang ada dalam tb_member seperti gambar dibawah ini,

2. Klik link export to pdf untuk mengeksport data ke dalam file pdf.
3. Maka secara otomatis browser anda (atau download manager) akan men-download file pdf.
4. Buka file pdf, anda akan melihat data dari tb_member tertampil dalam file pdf tersebut πŸ™‚ Lihat gambar dibawah.

Happy coding πŸ˜€

Kategori
PHP

Sistem Login simple MD5 (+Logout) dengan CodeIgniter

Studi Kasus : Membuat sistem login (+logout) dengan codeigniter

Kebutuhan : Webserver Package, already installed. CodeIgniter bundle.

Login (dan juga Logout) hampir selalu ada dalam semua sistem / aplikasi yang didevelop dengan bahasa pemrograman tertentu, dalam kasus kali ini adalah PHP dengan framework CodeIgniter. Konsep dasar dari Login adalah mencocokkan username dan password yang dimasukkan oleh user dengan daftar username+password yang tersimpan dalam database. Dengan alasan keamanan, biasanya password disimpan dalam database dengan menggunakan fungsi MD5. MD5 adalah salah satu fungsi hash (satu arah) yang cukup terkenal dalam kriptografi, biasa digunakan untuk autentifikasi user.

Sedangkan Logout memiliki konsep dasar yang cukup sederhana, yaitu dengan men-destroy session dari user yang login tersebut.

Anyway… just let trying it πŸ™‚

Step 1 : Konfigurasi CI (selalu dimulai dengan ini)

  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/cimaka ubah baris $config['base_url']="http://example.com/";dengan
    $config['base_url'] = "http://localhost/ci/";
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_tutorial";

Step 2 : Siapkan Database

  1. Buat database dengan nama db_tutorial (via phpmyadmin)
  2. Siapkan tabel dengan nama tb_user (untuk strukturnya, lihat gambar dibawah ini)
  3. Insertkan beberapa sample data untuk user yang akan login, sebagai contoh insertkan data seperti tabel dibawah ini. INGAT : ketika memasukkan password, pilih fungsi MD5 (lihat gambar dilingkari merah)
  4. Maka hasil dari insert sample data (dengan password dikenai fungsi MD5) adalah seperti gambar dibawah,
  5. Done with database !

Step 3 : Membuat Form Login (view)

  1. Ketikkan script berikut,
    [sourcecode language=”php”]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html><head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>Login with CI</title>
    <center>
    <h2> <b> Login with CI </b> <h2>
    <form action="<?=base_url();?>login/proseslogin" method="post">
    <table border="0" align="center">
    <tr>
    <td> Username</td>
    <td> <input name="username" type="text"> </td>
    </tr>
    <tr>
    <td> Password</td>
    <td> <input name="password" type="password"> </td>
    </tr>
    <tr>
    <td> &nbsp; </td>
    <td> <input name="submit" type="submit" value="login"> </td>
    </tr>
    </table>
    </form>
    <?php if(isset($error)) echo "<b><span style=’color:red;’>$error</span></b>";
    if(isset($logout)) echo "<b><span style=’color:red;’>$logout</span></b>"; ?>
    </center>
    </body></html>[/sourcecode]
  2. Simpan dengan nama login_view.php, dalam folder system-application-views

Step 4 : Membuat Controller Pemrosesan Login + Logout

  1. Ketikkan script berikut,
    [sourcecode language=”php”]
    <?php
    class Login extends Controller {
    //constructor
    function login() {
    parent::Controller();
    $this->load->helper(‘url’);
    $this->load->helper(‘form’);
    $this->load->library(‘form_validation’);
    $this->load->library(‘session’);
    }
    //index for showing the login form
    function index() {
    $this->load->view(‘login_view’);
    }
    //this function will do the login process
    function proseslogin() {
    $username = $this->input->post(‘username’); //read the username that filled by the user
    $password = $this->input->post(‘password’); //read the password that filled by the user
    $passwordx = md5($password); //this is for change $password into MD5 form
    //the query is to matching the username+password user with username+password from database
    $q = $this->db->query("SELECT * FROM tb_user WHERE username=’$username’ AND userpass=’$passwordx’");
    if ($q->num_rows() == 1) {
    // if the query is TRUE, then save the username into session and load the welcome view
    $nama = $q->row()->username;
    $this->session->set_userdata(‘username’,$nama);
    $data[‘welcome’] = "Welcome $nama";
    $this->load->view(‘welcome_view’, $data);
    }
    else {
    // query error
    $data[‘error’]=’!! Wrong Username or Password !!’;
    $this->load->view(‘login_view’, $data);
    }
    }
    //to do logout process
    function logout() {
    $this->session->sess_destroy();
    $data[‘logout’] = ‘You have been logged out.’;
    $this->load->view(‘login_view’, $data);
    }
    }
    ?>
    [/sourcecode]
  2. Simpan dengan nama login.php dalam folder system-application-controllers
  3. Untuk keterangan dari script diatas, bisa dilihat dari script comment.

Step 5 : Membuat tampilan sukses login (view)

  1. Ketikkan script berikut,
    [sourcecode language=”php”]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html><head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>Login with CI</title>
    <center>
    <?php if(isset($welcome)) echo "<h2><span style=’color:red;’>$welcome</span></h2>";
    echo "<br/>";
    echo anchor("login/logout", ‘Logout’) ?>
    </center>
    </body></html>
    [/sourcecode]
  2. Simpan dengan nama welcome_view.php dalam folder system-application-views

Step 6 : Testing Code

  1. Buka browser, pergi ke http://localhost/namaFolderCIkamu/login
  2. Akan muncul tampilan seperti dibawah,
  3. Masukkan username+password yang benar, yaitu yang ada didatabase (username : june, password : june)
  4. Maka anda akan diarahkan menuju halaman sukses login,yaitu halaman welcome seperti dibawah,
  5. Klik logout untuk keluar dari halaman welcome.
  6. Sekarang masukkan username+password salah (misal username : admin, password : admin)
  7. Maka akan ditampilkan warning seperti gambar dibawah.

Okay, Happy Coding πŸ™‚

Kategori
PHP

Membuat Pagination dalam CodeIgniter

Studi Kasus : Membuat Pagination dalam CodeIgniter
Kebutuhan : Webserver Package, already installed. CodeIgniter Bundle.
Jika anda tidak familiar dengan istilah “pagination”, pagination merujuk pada link yang berguna untuk navigasi dari page ke page, seperti gambar dibawah ini,

Pagination dalam CI sangat mudah digunakan, tutorial ini akan memberikan contoh membuat pagination dalam aplikasi CI.
Okay then, prepare for a cup of tea πŸ™‚


Step 1 : Konfigurasi CI

  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
    maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_tutorial";

Step 2 : Siapkan Database

  1. Buat database dengan nama db_tutorial (via phpmyadmin)
  2. Siapkan tabel dengan nama tb_book (untuk strukturnya, lihat gambar dibawah ini)
  3. Insertkan beberapa sample data, sebagai contoh insertkan data seperti tabel dibawah ini.
  4. Ok, we’re done with database !

Step 3 : Membuat Controller

  1. Ketikkan script berikut,
    <?php
    class Buku_con extends Controller {
    public function Buku_con()
    {
    parent::__construct();
    $this->load->model('buku_model');
    $this->load->library('pagination'); //call pagination library
    }
    function getBuku() {
    //count the total rows of tb_book
    $this->db->select('*');
    $this->db->from('tb_book');
    $getData = $this->db->get('');
    $a = $getData->num_rows();
    $config['base_url'] = base_url().'index.php/Buku_con/getBuku/'; //set the base url for pagination
    $config['total_rows'] = $a; //total rows
    $config['per_page'] = '2'; //the number of per page for pagination
    $config['uri_segment'] = 3; //see from base_url. 3 for this case
    $config['full_tag_open'] = '<p>';
    $config['full_tag_close'] = '</p>';
    $this->pagination->initialize($config); //initialize pagination
    $data['title'] = 'menampilkan isi buku';
    $data['detail'] = $this->buku_model->getBuku($config['per_page'],$this->uri->segment(3));
    $this->load->view('buku_view', $data);
    }
    }
    ?>
  2. Simpan dengan nama buku_con dalam folder system-application-controllers
  3. Penjelasan : function getBuku() akan mengambil isi dari tb_book via model. Dalam controller ini, pagination diinisialisasi dan diatur settingannya seperti pada script diatas (lihat komentar pada script untuk keterangannya).

Step 4 : Membuat Model

  1. Ketikkan script berikut,
    <?php
    class Buku_model extends Model {
    function Buku_model()
    {
    parent::Model();
    }
    function getBuku($perPage,$uri) { //to get all data in tb_book
    $this->db->select('*');
    $this->db->from('tb_book');
    $this->db->order_by('id','DESC');
    $getData = $this->db->get('', $perPage, $uri);
    if($getData->num_rows() > 0)
    return $getData->result_array();
    else
    return null;
    }
    }
    ?>
  2. Simpan dalam folder system-application-models, dengan nama buku_model.php

Step 5 : Membuat View

  1. Ketikkan script berikut,

    <h4>Book Data</h4>
    <?php if(count($detail) > 0) { ?>
    <table border="1">
    <tr>
    <th>ID</th>
    <th>Title</th>
    <th>Author</th>
    </tr>
    <?php
    foreach($detail as $rows) {
    echo "<tr>";
    echo "
    <td>". $rows['id']."</td>
    <td>". $rows['title'] ."</td>
    <td>". $rows['author'] ."</td>
    "; } ?>
    </table>
    <?php } ?>
    <div> <?php echo $this->pagination->create_links(); ?> </div>
  2. Simpan dalam folder system-application-views, dengan nama buku_view.php
  3. Penjelasan : $detail didapatkan dari controller, variabel ini berisi data dari tb_book (hasil dari model). Kemudian data ditampilkan dalam bentuk arrays.

Step 6 : Testing Code

  1. Buka browser, pergi ke http://localhost/namaFolderCIKamu/buku_con/getBuku
  2. Anda akan melihat tampilan seperti berikut,
  3. Klik pada link pagination ke halaman 2, maka anda akan melihat tampilan seperti dibawah


So easy right?
πŸ˜€ Silahkan mencoba, and… happy coding πŸ™‚

Kategori
PHP

Form Validation on CodeIgniter

Case Study : Create a Form and its validation with CodeIgniter.

System Requirements : CodeIgniter PHP Framework, download here. And Webserver Package.

User Requirements : PHP skills, Mysql skills, HTML skills, and (few, enough) CodeIgniter skills.

When developing a web application, like it or not sure we will often use a form. Form is very useful to make an interface for inputing data into the database. In order to prevent the data input that saved to database is correct, or desirable, we need a validation. In PHP programming language, in general, validation is made by using the ereg functions, using regular expression (regex). And believe me, regex is very complicated. Hahahah

With CodeIgniter, validation is much easier to make when compared with normal php.

Ohya, this is a server-side validation. Clearly, validation is performed from the server side so that automatic validation system will be more secure than the client-side validation (usually made with javascript)

Okay, here we go…

Step 1 : CI Configuration

  1. Open the config.php file located in the system-application-config-config.php folder
  2. Change base url, adjust to the location where your CI folders are (ci extract folder). For example : Your CI folder is in the www/ciso change the line $config['base_url']="http://example.com/";
    with
    $config['base_url'] = "http://localhost/ci/";
  3. Database setting. Open database.php file located in the same folder with config.php. Change hostname, username, password, dan nama database. Adjust according your Mysql setting. For Example :$db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_code";

Step 2 : Prepare the database

  1. Create a database with name db_code (via phpmyadmin)
  2. Prepare a table with name tb_student (for the structure, see picture below)

    tb_student's structure
  3. Ok, we’re done with database !

Step 3 : Make Controller

  1. Type the following script with your favorite text editor
    <?php
    class Student extends Controller {function Student(){
    parent::Controller();
    $this->load->library(array('table','validation'));
    $this->load->helper('url');
    }
    function index() {
    $this->_set_fields();
    $data['title'] = 'Add New Student';
    $data['message'] = '';
    $data['action'] = site_url('student/addStudent');
    $this->load->view('addStudent_view', $data);
    }
    function addStudent(){
    $data1['title'] = 'Add New Student';
    $data1['action'] = site_url('student/addStudent');
    $this->_set_fields();
    $this->_set_rules();
    // run the validation
    if ($this->validation->run() == FALSE){
    $data['message'] = '';
    }else{
    // saving data
    $data= array('id' => $this->input->post('id'),
    'nama' => $this->input->post('nama'),
    'email' => $this->input->post('email')
    );
    $this->db->insert('tb_student', $data);
    $data1['message'] = 'Sukses';
    }
    // load view
    $this->load->view('addStudent_view', $data1);
    }
    function _set_fields(){
    $fields['id'] = 'id';
    $fields['nama'] = 'nama';
    $fields['email'] = 'email';
    $this->validation->set_fields($fields);
    }
    // rules for validation
    function _set_rules(){
    $rules['id'] = 'trim|required|numeric';
    $rules['nama'] = 'trim|required';
    $rules['email'] = 'trim|required|valid_email';
    $this->validation->set_rules($rules);
    $this->validation->set_message('required', '* required');
    $this->validation->set_message('numeric', '* numeric only');
    $this->validation->set_message('valid_email', '* email not valid');
    $this->validation->set_error_delimiters('<p>', '</p>');
    }
    }
    ?>
  2. Save in the system-application-controllers folder, with the name student.php

Step 4 : Create View

  1. Type the script below,
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Form Validation CI</title>
    </head>
    <body>
    <h1><?php echo $title; ?></h1>
    <?php if (isset($message)) echo $message; ?>
    <form method="post" action="<?php echo $action; ?>">
    <table>
    <tr>
    <td valign="top">ID*</td>
    <td><input type="text" name="id" value="<?php echo $this->validation->id; ?>"/>
    <span style="color:red;"> <?php echo $this->validation->id_error; ?></span></td>
    </tr>
    <tr>
    <td valign="top">Nama<span style="color:red;">*</span></td>
    <td><input type="text" name="nama" value="<?php echo $this->validation->nama; ?>"/>
    <span style="color:red;"> <?php echo $this->validation->nama_error; ?></span></td>
    </tr>
    <tr>
    <td valign="top">Email<span style="color:red;">*</span></td>
    <td><input type="text" name="email" value="<?php echo $this->validation->email; ?>"/>
    <span style="color:red;"> <?php echo $this->validation->email_error; ?></span></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Save"/></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
  2. Save in the system-application-views folder, with the name addStudent_view.php

Step 5 : Testing Code

  1. Open your browser, goto http://localhost/YourCIFolder/student
  2. You will see a display like the following,

    Input Form
  3. Try fill out the form with incorrect input (example, ID : AAA; Nama : (empty); Email : AAA)

    Wrong Input (example)
  4. Click Save. Then you will see the error is displayed as shown below,

    Validation Confirmation
  5. Now try to fill out the form with the correct input, as in the picture below, then Save. You will see a confirmation of success πŸ˜€ Also check your database, you should see the data you just entered in the tb_student πŸ˜€
    Correct Input (example)

    and this…

    Success Confirmation

p.s. Maybe there will be a question, this is a MVC, but, where is the model?

And the answer is : in CI, we are not always required to use models. Using code like $this->db->insert('tb_student', $data); is enough, according to complexity of your code..

Okay, (always) Happy Coding πŸ˜€

Kategori
PHP

Validasi Form dalam CodeIgniter

Studi Kasus : Membuat form beserta validasinya dengan CodeIgniter.

Kebutuhan Sistem : CodeIgniter PHP Framework, bisa didownload di sini. Dan Webserver Package.

Kebutuhan User : Kemampuan PHP, kemampuan Mysql, Kemampuan HTML, dan (sedikit saja cukuplah) kemampuan CodeIgniter.

Dalam men-develop sebuah aplikasi berbasis web, mau tidak mau pasti kita akan sering menggunakan form. Form sangat berguna untuk membuat antarmuka penginputan data ke dalam database. Untuk mem-prevent agar data input yang masuk ke database benar, atau sesuai dengan yang diinginkan, maka diperlukan suatu validasi. Pada bahasa pemrograman PHP, pada umumnya validasi dibuat dengan menggunakan fungsi ereg, dengan memanfaatkan regular expression (regex). Dan percayalah, kalau regex ini sangat rumit. Hahahah

Dengan menggunakan CodeIgniter, validasi jauh lebih mudah dibuat apabila dibandingkan dengan php biasa.

Ohya, ini adalah sebuah validasi server-side. Jelasnya, validasi dilakukan dari sisi server sehingga secara otomatis sistem validasi ini akan lebih aman dibandingkan dengan client-side validation (biasanya dibuat dengan javascript)

Okay, langsung praktikum…

Step 1 : Konfigurasi CI

  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci

    maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";

  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database. Sesuaikan dengan pengaturan mysql anda. Contoh :

    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_code";

Step 2 : Siapkan database

  1. Buat database dengan nama db_code (via phpmyadmin)
  2. Siapkan tabel dengan nama tb_student (untuk strukturnya, lihat gambar dibawah ini)
    tb_student's structure
  3. Ok, we’re done with database !

Step 3 : Membuat Controller

  1. Ketikkan script dibawah ini dengan teks editor kesukaan anda,

    <?php
    class Student extends Controller {function Student(){
    parent::Controller();
    $this->load->library(array('table','validation'));
    $this->load->helper('url');
    }
    function index() {
    $this->_set_fields();
    $data['title'] = 'Add New Student';
    $data['message'] = '';
    $data['action'] = site_url('student/addStudent');
    $this->load->view('addStudent_view', $data);
    }
    function addStudent(){
    $data1['title'] = 'Add New Student';
    $data1['action'] = site_url('student/addStudent');
    $this->_set_fields();
    $this->_set_rules();
    // menjalankan validasi
    if ($this->validation->run() == FALSE){
    $data['message'] = '';
    }else{
    // menyimpan data
    $data= array('id' => $this->input->post('id'),
    'nama' => $this->input->post('nama'),
    'email' => $this->input->post('email')
    );
    $this->db->insert('tb_student', $data);
    $data1['message'] = 'Sukses';
    }
    // load view
    $this->load->view('addStudent_view', $data1);
    }
    function _set_fields(){
    $fields['id'] = 'id';
    $fields['nama'] = 'nama';
    $fields['email'] = 'email';
    $this->validation->set_fields($fields);
    }
    // berikut adalah rule-rule untuk validasi
    function _set_rules(){
    $rules['id'] = 'trim|required|numeric';
    $rules['nama'] = 'trim|required';
    $rules['email'] = 'trim|required|valid_email';
    $this->validation->set_rules($rules);
    $this->validation->set_message('required', '* harus diisi');
    $this->validation->set_message('numeric', '* hanya boleh diisi dengan angka');
    $this->validation->set_message('valid_email', '* email tidak valid');
    $this->validation->set_error_delimiters('<p>', '</p>');
    }
    }
    ?>

  2. Simpan dalam folder system-application-controllers, dengan nama student.php

Step 4 : Membuat View

  1. Ketikkan script dibawah ini,

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Form Validation CI</title>
    </head>
    <body>
    <h1><?php echo $title; ?></h1>
    <?php if (isset($message)) echo $message; ?>
    <form method="post" action="<?php echo $action; ?>">
    <table>
    <tr>
    <td valign="top">ID*</td>
    <td><input type="text" name="id" value="<?php echo $this->validation->id; ?>"/>
    <span style="color:red;"> <?php echo $this->validation->id_error; ?></span></td>
    </tr>
    <tr>
    <td valign="top">Nama<span style="color:red;">*</span></td>
    <td><input type="text" name="nama" value="<?php echo $this->validation->nama; ?>"/>
    <span style="color:red;"> <?php echo $this->validation->nama_error; ?></span></td>
    </tr>
    <tr>
    <td valign="top">Email<span style="color:red;">*</span></td>
    <td><input type="text" name="email" value="<?php echo $this->validation->email; ?>"/>
    <span style="color:red;"> <?php echo $this->validation->email_error; ?></span></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Save"/></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

  2. Simpan dalam folder system-application-views, dengan nama addStudent_view.php

Step 5 : Testing Code

  1. Buka browser, pergi ke http://localhost/namaFolderCIKamu/student
  2. Anda akan melihat tampilan seperti berikut,
    Input Form
  3. Coba isi form dengan input salah (contoh, ID : AAA; Nama : (kosongi saja); Email : AAA)
    Wrong Input (example)
  4. Pilih Save. Maka anda akan melihat eror ditampilkan seperti gambar dibawah,
    Validation Confirmation
  5. Sekarang coba dengan isian benar, seperti pada gambar dibawah, lalu Save. Anda akan melihat konfirmasi sukses πŸ˜€ Cek juga database anda, seharusnya anda akan melihat data yang baru saja anda masukkan di dalam tb_student πŸ˜€
    Correct Input (example)
    Success Confirmation

p.s. Mungkin akan ada yang tanya, ini coding CI yang katanya MVC kok gak pakai model?

Jawabannya adalah : dalam CI, kita tidak selalu diharuskan memakai model. Menggunakan code seperti $this->db->insert('tb_student', $data); adalah sudah cukup, sesuai dengan tingkat kerumitan code anda.

Okay, (always) Happy Coding πŸ˜€

Kategori
PHP

β€œBermain” dengan Code Igniter FULL : Instalasi hingga Akses Database

CodeIgniterCourtesy Image : www.icpep.org

Studi Kasus : Instalasi sampai Akses Database dengan Code Igniter

Kebutuhan : Paket Webserver (AppServ, XAMPP, EasyPHP, dll) & Code Igniter

Codeigniter (CI) merupakan sebuah PHP framework, katakanlah, untuk orang yang ingin membangun website dengan menggunakan PHP. Dengan menggunakan arsitektur model-view-controller yang memisahkan antara bagian logic dan tampilan dari program, CI cukup β€œmenyenangkan” untuk digunakan. Tidak sulit. Cukup siapkan 2 gelas kopi panas untuk mulai mempelajarinya πŸ™‚

Step 1 : Instalasi

  1. Ekstrak bundle CodeIgniter yang telah anda download dalam direktori root web server anda.
  2. Anda akan melihat banyak folder…. oke, jangan cemas. Masuk ke dalam folder system-application.
  3. Nah.. bagian dalam folder application inilah yang akan sering anda “bongkar” entar πŸ™‚

Step 2 : Konfigurasi

  1. Buka file config.php yang berada dalam folder system-application-config-config.php
  2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci
    maka ubah baris $config['base_url']="http://example.com/";
    dengan
    $config['base_url'] = "http://localhost/ci/";
    Mengapa localhost? Karena dalam tutorial ini kita akan membangun CI dalam server lokal kita πŸ™‚
  3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostname, username, password, dan nama database (database akan kita buat entar, untuk sementara siapkan namanya dulu saja) sesuaikan dengan pengaturan mysql anda. Contoh :
    $db['default']['hostname'] = "localhost";
    $db['default']['username'] = "root";
    $db['default']['password'] = "";
    $db['default']['database'] = "db_ci";

Selesai dengan instalasi dan konfigurasi, next step siapkan database yang akan kita gunakan dalam praktikum kali ini (praktikum ha ha, please dont imagine like we’re done something biology okay J )

Step 3 : Siapkan database

  1. Buat database dengan nama db_ci melalui phpmyadmin anda (saya asumsikan anda sudah terbiasa menggunakan tool hebat ini).
  2. Siapkan tabel dengan nama tb_buku (field : id_buku, judul_buku, stok_buku).
    CREATE TABLE IF NOT EXISTS `tb_buku` (
    `id_buku` varchar(10) NOT NULL,
    `judul_buku` varchar(50) DEFAULT NULL,
    `stok_buku` year(4) DEFAULT NULL,
    PRIMARY KEY (`id_buku`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  3. Insert-kan beberapa sample data ke dalam tb_buku.
    INSERT INTO `tb_buku` (`id_buku`, `judul_buku`, `stok_buku`) VALUES
    ('1', 'Mencari Tombol Tab', 2003),
    ('2', 'Guna Guna dari Raja', 2033);
  4. Ok, we’re done with database !

Step 4 : Bekerja dengan CI

  1. Membuat model. Ketikkan script berikut ini
    <?php
    class Buku_model extends Model {
    function Buku_model()
    {
    parent::Model();
    }
    db->select('*');
    $this->db->from('tb_buku');
    $this->db->order_by('id_buku','DESC');
    $data = $this->db->get('');
    return $data;
    }
    }
    ?>
  2. Simpan dengan nama buku_model.php. Simpan dalam folder system-application-models
  3. Membuat Controller. Ketikkan script berikut ini,
    <?php
    class Buku_con extends Controller {


    public function Buku_con()
    {
    parent::__construct();
    $this->load->model('buku_model');
    }

    public function getBuku () {
    $data['title'] = 'menampilkan isi buku';
    $data['detail'] = $this->buku_model->getBuku();
    $this->load->view('buku_view', $data);
    }
    }
    ?>
  4. Simpan dengan nama buku_con.php. Simpan dalam folder system-application-controller
  5. Membuat View. Ketikkan script,
    <h4>Data Buku</h4>
    <?php foreach($detail->result() as $rows) :
    echo $rows->id_buku; echo "<br>";
    echo $rows->judul_buku; echo "<br>";
    echo $rows->stok_buku; echo "<br>";
    endforeach
    ?>
  6. Simpan dengan nama buku_view.php. Simpan dalam folder system-application-view
  7. Nah. Kita sudah membuat sebuah fungsi untuk menampilkan data dari database dengan controller, model, dan view. Sekarang masuk ke browser anda.
  8. Ketikkan http://localhost/ci/buku_con/getBuku/. Dan… TADAAAA
  9. Data Buku dari Database

  10. Anda sudah boleh tidur setelah melihat gambar seperti diatas J

Step 5 : Menyiapkan kopi ketiga dan membuka Yahoo! Messenger

Happy Coding Chatting ! πŸ˜€

&lt;?php

class Buku_con extends Controller {

public function Buku_con()

{

parent::__construct();

$this-&gt;load-&gt;model(&apos;buku_model&apos;);

}

public function getBuku () {

$data[&apos;title&apos;] = &apos;menampilkan isi buku&apos;;

$data[&apos;detail&apos;] = $this-&gt;buku_model-&gt;getBuku();

$this-&gt;load-&gt;view(&apos;buku_view&apos;, $data);

}

}

?&gt;