Cara membuat form validation di CodeIgniter

Ditulis Oleh:

Hallo sahabat Kelas Programmer, hari ini saya akan berbagai tutorial belajar tentang cara membuat form validation di codeigniter. Bila kalian baru belajar membuat aplikasi web dengan codeigniter, saya yakin postingan ini sangat penting bagi kalian. Mengembangkan web kita perlu memperhatikan user experience atau bisa kita sebut pengalaman pengguna saat menggunakan aplikasi.

Website yang bagus perlu memastikan interaksi pengguna dengan aplikasi sehingga meningkatkan kenyamanan pengguna. Salah satu cara untuk meningkatkan pengalaman pengguna dengan aplikasi yang kita buat adalah adanya interaksi antara pengguna dan aplikasi. Contoh yang paling sederhana adalah pada bagian form, karena tidak dapat dipungkiri bahwa dalam aplikasi web akan banyak kita berinteraksi dengan form.

Baca Artikel : Cara membuat form dengan bootstrap

Sebuah teknik validasi form menjadi sebuah keharusan sebagai fitur wajib pada sebuah aplikasi web. Bayangkan bila didalam penggunaan form tidak terdapat validasi form maka tentu saja tidak akan sesuai dengan aturan (rules) yang ditetapkan.

Contoh sederhana bila kita mempunyai sebuah field usia yang seharusnya diisi dengan sebuah bilangan numerik namun pengguna menginput alfabet atau karakter lainnya yang tidak sesuai. Tentu saja ini menjadi tidak sesuai dengan tujuan isian yang diminta. Itu sebabnya diperlukan validasi form untuk melakukan validasi inputan pengguna pada form.

Validasi Form dengan CodeIgniter

CodeIgniter telah menyediakan library khusus untuk validasi form yaitu library form_validation. Untuk menggunakannya kita cukup konfigurasi pada bagian config untuk file autoload.php

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

Dengan menggunakan form validation dari codeigniter ini kita dapat melakukan validasi keterisian data, panjang dan pendeknya sebuah karakter, tipe data, email valid dan pembanding nilai antara dua field (biasanya untuk field password dan konfirmasi password).

Ikuti langkah-langkah dibawah ini untuk mulai belajar membuat form validation di codeigniter.

Pastikan sebelumnya kalian sudah melakukan konfigurasi dasar seperti mengatur base url, library dan helper.

View

  1. Buat sebuah View dengan nama v_form_validation.php
<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap offline -->
    <link rel="stylesheet" href="<?php echo base_url()?>/assets/bootstrap/css/bootstrap.min.css">
</head>
<body>
<div class="container">
    <h2>Validasi Form di CodeIgniter</h2><br>
    <?php if (validation_errors())
    {?>
        <div class="alert alert-danger">
            <?php echo validation_errors(); ?>
        </div>
        <?php
    } ?>
    <form action="<?php echo base_url()?>form_validation/aksi" method="post">
        <div class="form-group">
            <label>Nama:</label>
            <input type="text" name="nama" class="form-control" placeholder="Masukan Nama" />
        </div>
        <div class="form-group">
            <label>No HP:</label>
            <input type="text" name="no_hp" class="form-control" placeholder="Masukan No HP" />
        </div>
        <div class="form-group">
            <label>Email:</label>
            <input type="text" name="email" class="form-control" placeholder="Masukan Email" />
        </div>

        <div class="form-group">
            <label>Password:</label>
            <input type="text" name="password" class="form-control" placeholder="Masukan Password" />
        </div>
        <div class="form-group">
            <label>Konfirmasi Password:</label>
            <input type="text" name="konfirmasi_password" class="form-control" placeholder="Masukan Konfirmasi Password" />
        </div>


        <button type="submit" name="submit" class="btn btn-primary">Submit</button>

    </form>
</div>
</body>
</html>

Untuk tutorial ini saya menggunakan bootstrap untuk desain tampilannya, terdapat lima field yaitu

  • Nama
  • Email
  • No HP
  • Password
  • Konfirmasi Password

Nantinya kita akan membuat aturan (rules) validasi form untuk masing-masing field tersebut.

Saya ingin kalian perhatikan pada syintax ini

 <?php if (validation_errors())
    {?>
        <div class="alert alert-danger">
            <?php echo validation_errors(); ?>
        </div>
        <?php
    } ?>

Bagian sintak ini berfungsi untuk menampilkan pesan error jika validasi form bernilai false. Untuk rules nya akan kita buat pada bagian controller.

Controller

2. Buat sebuah Controller dengan nama form_validation.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Form_validation extends CI_Controller {

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

	}

	function aksi()
    {
        $this->form_validation->set_rules('nama', 'Nama', 'required|max_length[30]');
        $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
        $this->form_validation->set_rules('no_hp', 'No HP', 'required|numeric');
        $this->form_validation->set_rules('password', 'Password', 'required|min_length[5]');
        $this->form_validation->set_rules('konfirmasi_password', 'Konfirmasi Password', 'required|min_length[5]|matches[password]');

        if($this->form_validation->run() == FALSE)
        {
            $this->load->view('v_form_validation');
        }
        else
        {
    //dilanjutkan kehalaman berikut jika kon form validation bernilai TURE
            redirect('user');

        }
    }
}
?>

Pada class controller form validation ini terdapat dua function didalamnya yang pertama adalah function index, function ini berfungsi sebagai fungsi utama untuk menampilkan form yang diload melalui view v_form_validation.

Selanjutnya terdapat function aksi untuk menerima kiriman form dari v_form_validation. didalam fungsi aksi kita mengatur rules/aturan untuk form validationnya. Perhatikan pada sintax dibawah

        $this->form_validation->set_rules('nama', 'Nama', 'required|max_length[30]');
        $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
        $this->form_validation->set_rules('no_hp', 'No HP', 'numeric');
        $this->form_validation->set_rules('password', 'Password', 'required|min_length[5]');
        $this->form_validation->set_rules('konfirmasi_password', 'Konfirmasi Password', 'required|min_length[5]|matches[password]');
aturan form validation

Terdapat 3 komponen form validation, yang pertama nama field dari kiriman form, label ketika menampilkan pesan error dan rules sebagai tempat definisi aturan form validationnya.

Artikel terkait : Function PHP

Berikut ini merupakan aturan (rules) form validation berdasarkan sintak diatas:

  • Field nama harus di isi (required) dan panjang karakter yang diinput maksimal 30.
  • Field email juga harus diisi (required) dan harus memasukan format email yang valid.
  • Field No HP tidak wajib diisi, namun apabila di isi maka harus diisi dengan tipe numerik.
  • Field password juga wajib diisi (required) dan minimal karakter yang harus diisi adalah 5.
  • Selanjutnya field konfirmasi password wajib juga diisi dengan panjang minimal 5 karakter dan harus cocok dengan field password.

Dalam pendefinisian aturan (rules) kita bisa mendefinisikan lebih dari satu aturan dengan menggunakan operator | atau bsa disebut cascading. selain cascading terdapat juga istilah lain yaitu prepping namun saya tidak akan membahas disini.

Aturan/rules diatas hanya sebagian kecil dari aturan yang bisa digunakan. Kalian bisa temukan dan belajar lebih lagi pada user guide codeigniter

rules form validation codeigniter

Uji Coba

Sekarang coba kita uji coba apakah form validationnya bekerja ? Buka class controller form_validation

http://localhost/akademik/form_validation/

Pada contoh ini saya memasukan data seperti pada screenshot berikut

validasi form di codeigniter
  • field nama, dikosongkan
  • No HP, dimasukan huruf alfabet
  • Email, dimasukan invalid email
  • password, 12345
  • dan terakhir konfirmasi password , 1234567890

Kemudian saya menekan tombol Submit, maka hasilnya menapilkan pemberitahuan ini

validasi pesan error

Dari pemberitahuan pesan error diatas menampilkan bahwa field nama harus diisi, email yang diinput harus email valid, field no hp harus diisi hanya tipe numerik, dan pada field konfirmasi password tidak sesuai/ tidak sama dengan field password.

Baca juga : Membuat login dengan CodeIgniter

Inputan dari pengguna harus memenuhi aturan-aturan yang telah kita definisikan, selama form validationnya bernilai false maka sistem tidak akan melanjutkan. Apabila nilai form validation bernilai true maka blok else yang akan dieksekusi,

     if($this->form_validation->run() == FALSE)
        {
            $this->load->view('v_form_validation');
        }
        else
        {
           //dilanjutkan kehalaman berikut jika kon form validation bernilai TURE
            redirect('user');

        }

Selesai sudah cara membuat form validation di codeigniter. Kalo dilihat pesan errornya masih dalam format bahasa inggris. Pada tutorial selanjutnya kita aka pelajari bangaimana merubah format default pesan error tersebut dengan costum sesuai keinginan kita. Sampai jumpa pada postingan berikutnya…

Setiawan Dimas

Interested on Programming, especially on Website Developping.
Have a bachelor degree from STIMIK Akakom Yogyakarta, majoring in Technical Information.
Focus on Content Writer Programming Website and Internet Marketing
Setiawan Dimas