Codeigniter

Tutorial CodeIgniter Dasar Part IV – Form Validation

Udah lama sekali saya tidak mengupdate Tutorial Codeigniter untuk dasar/basic ini… :P Untuk tutorial dasar ini, kita akan melanjutkan tutorial yang dulu. Waktu dulu kita udah sampai di tutorial dasar part III. Di Tutorial Dasar Part IV ini, kita akan belajar bagaimana membuat sebuah validasi input pada sebuah form yang kita buat supaya pengguna harus mengisikan setiap input form dengan aturan dan ketentuan yang berlaku supaya inputan yang sudah 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: cheyuz@yahoo.co.id, cheyuz@gmail.com, cheyuz@cheyuz.uk, dan sebagainya. Untuk input Nama misalnya tidak boleh dikosongkan, jika isian kosong maka data tidak akan disubmit ke server, melainkan akan munculnya laporan bahwa data terdapat kesalahan, yaitu belum diisi.

Hampir semua input form menggunakan validasi. Untuk contoh pada tutorial ini, kita akan membuat 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, karena Codeigniter sudah menyediakan library untuk Form Validation.

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

Untuk tutorial ini, kita tidak akan fokus kepada database, tetapi kepada validasi form, jadi saya tidak akan membuat model registrasi_model, melainkan Anda explore sendiri bagaimana cara memasukkan data ke dalam database yang sudah dipelajari di Tutorial Dasar Sebelumnya.

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 library form_validation yang sudah disediakan oleh Codeigniter ke dalam controller kita, caranya tambahkan kode $this->load->helper('form') $this->load->library('form_validation') di dalam function __construct() , jadi sekarang code di dalam __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 buat function index() di dalam controller supaya kita bisa mengakses di dalam URL dengan bentuk seperti ini: http://localhost/webku/registrasi. Tambahkan function index() setelah function __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>
        <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 array berupa 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 seperti berikut:

...
        $rules= array(
            array(
                'field' => 'nama_depan',
                'label' => 'Nama Depan',
                'rules' => 'required'
            ),
            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'
            ),
            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 silakan kosongkan atau salahkan isi inputan Anda, kemudian submit! Jika data sudah benar, maka muncul tulisan Data sudah dimasukkan. Jika data masih salah, maka browser akan menampilkan 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 memakai config itu). Dengan demikian, code di Controller akan lebih sedikit dari sebelumnya.

Tutorial selesai,
Selamat mencoba! :)

– Cheyuz

 

Sumber : http://harian.cheyuz.com/tutorial/tutorial-codeigniter-dasar-part-iv-%E2%80%93-form-validation-2

About Suendri

Owner dan Founder Go Software Media sebelumnya bernama PHPBeGO Foundation

Discussion

No comments yet.

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow Go Software Media Blog on WordPress.com

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 63 other followers

Archives

%d bloggers like this: