Anda di halaman 1dari 11

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]');

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
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
▪ 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

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');

Mengaktifkan Session

Terdapat dua cara untuk mengaktifkan session, cara yang pertama kita delkarasikan di
variabel autoload, yang mana nantinya library session akan secara otomatis di load pada
setiap controller yang dibuat. Cara yang kedua kita buat manual secara langsung pada masing-
masing controller yang membutuhkan penggunaan session tersebut.

Aktifkan Di Autoload.php

Untuk mengaktifkan session bisa dilakukan pada file autoload.php yang terdapat didalam
folder application/config. Cari variabel $utoload dengan nilai ‘libraries’. Lihat contoh dibawah
ini:

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

Selain session kita juga dapat meload beberapa library lainnya secara otomatis di autoload.php
ini misalnya database, form_validation dan lainnya. Setiap library yang diload nilainya diapit
dengan tanda kutip dan dipisahkan dengan tanda koma didalam nilai arraynya.

Load Melalui Controller

Jika kita ingin secara manual session dapat diload pada controller yang dikehendaki. Berikut ini
sintaknya:
$this->load->library('session');

Dalam kasus-kasus tertentu memang tidak semua controller memerlukan session. Namun
penggunaan session tidak akan berpengaruh selama library tersebut diload dengan benar.
Baca juga : Membuat form validation di CodeIgniter

Membuat Session di CodeIgniter

Untuk men-set variabel session kita gunakan perintah $this->session untuk mengakses obyek
session dengan method set_userdata(). Secara umum method ini mempunyai dua argumen,
yang pertama adalah nama session dan argumen kedua adalah nilainya.

//set item tunggal dalam session

$this->session->set_userdata('Nama', 'Setiawan Dimas');

Untuk mengakses nilai session kita menggunakan method userdata() diikuti dengan
nama session yang ingin diakses. Contoh :

echo $this->session->userdata('Nama');

Sintak diatas akan menampilkan nilai pada variabel session Nama yaitu ‘Setiawan Dimas‘.
Harap diperhatikan deklarasi pada nama variabel session bersifat case sensitive, sehingga huruf
besar kecil dibedakan.
Selain itu kita juga dapat men-set variabel session dengan beberapa item sekaligus
menggunakan array (larik).

// set beberapa item session menggunakan array

$arraydata = array(

'Pekerjaan' => 'Karyawan Swasta',

'Usia' => '24 Tahun',

'Jenis_kalamin' => 'Laki-laki',

'Hobi' => array('Olahraga', 'travelling')

);

$this->session->set_userdata($arraydata);
Sintak diatas sebenarnya sama dengan contoh set variabel session yang saya bahas diatas,
perbedaannya yang diatas kita men-set item tunggal sementara contoh yang kedua kita men set
beberapa item sekaligus dengan menggunakan array.
Bahkan kita juga dapat men-set lebih dari satu nilai pada variabel session. Contohnya pada
variabel session Hobi nilainya lebih dari satu yaitu Olahraga dan travelling. Untuk mengakses
nilainya akan diakses berdasarkan index array. Index array dimulai dari 0 sehingga jika kita ingin
mengakses nilai olahraga maka index yang diakases adalah [0] dan untuk
nilai travelling indexnya [1]. Begitu seterusnya, bila nilainya sangat banyak bisa kita gunakan
perulangan for untuk mengakses index array tersebut.
Untuk menampilkan nilai dari masing-masing variabel session tersebut tetap kita
gunakan method userdata();

echo $this->session->userdata('Pekerjaan');

echo $this->session->userdata('Usia');

echo $this->session->userdata('Jenis_kalamin');

echo $this->session->userdata('Hobi')[0];

echo $this->session->userdata('Hobi')[1];

Untuk melihat secara keseluruhan variabel sesssion yang aktif kita bisa
gunakan method userdata() tanpa diikuti oleh argumennya. Contoh

print_r($this->session->userdata());

Menghapus Session di CodeIgniter

Untuk menghapus session kita gunakan method unset_userdata() diikuti dengan


nama session yang ingin dihapus. Contoh

$this->session->unset_userdata('Hobi');

Pada sintak diatas kita menghapus variabel session dengan nama Hobi.
Jika kita ingin mengapus beberapa variabel session sekaligus, bisa dengan menggunakan array.

$sesi = array('Jenis_kalamin', 'Usia');

$this->session->unset_userdata($sesi);

Sintak diatas kita menghapus dua variabel session sekaligus yaitu Jenis_kalamin dan usia.

Anda mungkin juga menyukai