CodeIgniter ( Penanganan dan Validasi Form 2 )
Sesuai janji saya bahwa di tutorial CodeIgniter tentang Penanganan Validasi Form nya cukup panjang maka saya bagi menjadi 2 part, dan jika di part 1 kita membahas Penanganan Formnya, Maka di part 2 kali ini kita akan membahas tentang Validasi Form di CodeIgniter.
Sebenarnya sampai pada tahap kedua di post sebelumnya kita telah mampu membuat sebuah aplikasi perkalian dan pembagian sederhana, tetapi sebuah aplikasi yang baik harus memiliki sebuah kontrol terhadap inputan user. Validation form sangat penting pada aplikasi. Sebuah aplikasi akan memiliki banyak inputan dari pengguna dan semua inputan untuk pengguna harus aman.
CodeIgniter memiliki sebuah library Form Validation Library yang akan membantu kita untuk membuat sebuah validasi yang cepat, mudah dan aman. Pada contoh validasi form ini hampir sama dengan 2 langkah sebelumnya, tetapi memiliki sedikit penambahan terutama dalam fungsi perkalian dan pembagian. Perhatikan controller hitung berikut ini (contoller berikut ini berasal dari contoh sebelumnya dengan penambahan).
Application/controllers/hitung.php
1.<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
2.
3.class Hitung extends CI_Controller {
4.
5.function __construct()
6.{
7. parent::__construct();
8. $this->load->helper(array('url','form'));
9.}
10.
11.function index()
12.{
13. $this->load->view('menu_hitung');
14.}
15.
16.
17.function perkalian()
18.{
19. $this->load->library('form_validation');
20. $this->form_validation->set_rules('v1','Variabel 1',
21. 'required|integer');
22. $this->form_validation->set_rules('v2','Variabel
2',
23. 'required|integer');
24. if ($this->form_validation->run())
25. {
26. $data['v1']=(int)$this->input->post('v1',true);
27. $data['v2']=(int)$this->input->post('v2',true);
28. $data['hasil']=$data['v1']*$data['v2'];
29. }
30. else
31. {
32. $data['v1']=0;
33. $data['v2']=0;
34. $data['hasil']=0;
35. }
36. $this->load->view('perkalian',$data);
37.}
38.
39.function pembagian()
40.{
41. $this->load->library('form_validation');
42. $this->form_validation->set_rules('v1','Variabel 1',
43. 'required|is_natural_no_zero');
44. $this->form_validation->set_rules('v2','Variabel
2',
45. 'required|is_natural_no_zero');
46. if ($this->form_validation->run())
47. {
48. $data['v1']=(int)$this->input->post('v1',true);
49. $data['v2']=(int)$this->input->post('v2',true);
50. $data['hasil']=$data['v1']/$data['v2'];
51. }
52. else
53. {
54. $data['v1']=0;
55. $data['v2']=0;
56. $data['hasil']=0;
57. }
58.
59. $this->load->view('pembagian',$data);
60.}
61.
62.}
Perhatikan baris 19-24 pada fungsi perkalian, disana kita me-load sebuah library bernama form_validation. Library tersebut memiliki fungsi untuk melakukan validasi terhadap inputan user berdasarkan aturan yang telah kita tentukan. Perhatikan baris 20
$this->form_validation->set_rules('v1','Variabel 1','required|integer');
Baris di atas merupakan salah satu contoh untuk menentukan aturan inputan pada form. Parameter pertama (berisi v1) merupakan name dari inputan yang akan divalidasi (harus sama dengan attribut name pada tag input contoh: <inputname=”v1”>).
Parameter kedua adalah nama dari inputan tersebut. Nama tersebut dapat berbeda atau sama dengan name pada parameter pertama. Parameter ketiga merupakan aturan dari inputan tersebut. Aturan-aturan tersebut harus dipatuhi agar sebuah form dapat diproses. Aturan-aturan tersebut dipisahkan oleh tanda |. Pada contoh di atas berarti inputan v1 harus diisi (required) dan berisi data integer(integer). Adapun aturan-aturan yang tersedia di dalam CodeIgniter adalah:
Parameter kedua adalah nama dari inputan tersebut. Nama tersebut dapat berbeda atau sama dengan name pada parameter pertama. Parameter ketiga merupakan aturan dari inputan tersebut. Aturan-aturan tersebut harus dipatuhi agar sebuah form dapat diproses. Aturan-aturan tersebut dipisahkan oleh tanda |. Pada contoh di atas berarti inputan v1 harus diisi (required) dan berisi data integer(integer). Adapun aturan-aturan yang tersedia di dalam CodeIgniter adalah:
Pada baris-46, kita melakukan pengecekan terhadap rule-rule yang telah diset ($this->form_validation->run())).
Fungsi tersebut akan menghasilkan nilai TRUE apabila semua rule terpenuhi dan menghasilkan nilai FALSe jika sebaliknya. Selain fungsi-fungsi diatas Anda juga dapat membuat custom validation jika aturan-aturan di atas tidak ada yang memenuhi dengan kebutuhan Anda.
Fungsi tersebut akan menghasilkan nilai TRUE apabila semua rule terpenuhi dan menghasilkan nilai FALSe jika sebaliknya. Selain fungsi-fungsi diatas Anda juga dapat membuat custom validation jika aturan-aturan di atas tidak ada yang memenuhi dengan kebutuhan Anda.
1.<!DOCTYPE html>
2.<htmllang="en">
3.<head>
4.<meta charset="utf-8">
5.<title>Perkalian menggunakan validasi!!</title>
6.
7.<style type="text/css">
8.
9.body {
10. background-color: #fff;
11. margin: 40px;
12. font-family: Lucida Grande, Verdana, Sans-serif;
13. font-size: 14px;
14. color: #4F5155;
15.}
16.
17.a {
18. color: #003399;
19. background-color: transparent;
20. font-weight: normal;
21.}
22.
23.h1 {
24. color: #444;
25. background-color: transparent;
26. border-bottom: 1px solid #D0D0D0;
27. font-size: 16px;
28. font-weight: bold;
29. margin: 24px 0 2px 0;
30. padding: 5px 0 6px 0;
31.}
32.
33.</style>
34.</head>
35.<body>
36.
37.<h1>Perkalian!</h1>
38.<?php echo validation_errors();?>
39.<p>Silakan masukan data berikut!!</p>
40.<?php echo form_open('hitung/perkalian');?>
41.<?php echo form_input('v1',$v1);?> x
42.<?php echo form_input('v2',$v2);?><br>
43.
44.<?php echo form_submit('submit','Hitung!!');?>
45.<?php echo form_close();?><br>
46.Hasil : <?php echo $hasil;?>
47.
48.<p><br/>Page rendered in {elapsed_time} seconds</p>
49.
50.</body></html>
Pada view, kita cukup menambahkan satu fungsi yang berguna untuk menampilkan kesalahan yang terjadi. Perhatikan baris 38.
Fungsi validations_error adalah fungsi untuk menampilkan kesalahan dari validasi yang dilakukan.
Fungsi validations_error adalah fungsi untuk menampilkan kesalahan dari validasi yang dilakukan.
Begitu juga untuk view pembagian, kita tinggal menambah fungsi validations_error untuk menampilkan error pada form pembagian. Adapun code yang dapat digunakan adalah
1.<!DOCTYPE html>
2.<!DOCTYPE html>
3.<html lang="en">
4.<head>
5.<meta charset="utf-8">
6.<title>Pembagian menggunakan validasi!!</title>
7.
8.<style type="text/css">
9.
10.body {
11. background-color: #fff;
12. margin: 40px;
13. font-family: Lucida Grande, Verdana, Sans-serif;
14. font-size: 14px;
15. color: #4F5155;
16.}
17.
18.a {
19. color: #003399;
20. background-color: transparent;
21. font-weight: normal;
22.}
23.
24.h1 {
25. color: #444;
26. background-color: transparent;
27. border-bottom: 1px solid #D0D0D0;
28. font-size: 16px;
29. font-weight: bold;
30. margin: 24px 0 2px 0;
31. padding: 5px 0 6px 0;
32.}
33.
34.
35.</style>
36.</head>
37.<body>
38.
39.<h1>pembagian!</h1>
40.<?php echo validation_errors();?>
41.<p>Silakan masukan data berikut!!</p>
42.<?php echo form_open('hitung/pembagian');?>
43.<?php echo form_input('v1',$v1);?> /
44.<?php echo form_input('v2',$v2);?><br>
45.
46.<?php echo form_submit('submit','Hitung!!');?>
47.<?php echo form_close();?><br>
48.Hasil : <?php echo $hasil;?>
49.
50.<p><br/>Page rendered in {elapsed_time} seconds</p>
51.
52.</body></html>




Post a Comment
Untuk menyisipkan kode pendek, gunakan <i rel="code"> ... KODE ... </i>
Untuk menyisipkan kode panjang, gunakan <i rel="pre"> ... KODE ... </i>
Untuk menyisipkan gambar, gunakan <i rel="image"> ... URL GAMBAR ... </i>