Tampilkan postingan dengan label Form. Tampilkan semua postingan
Tampilkan postingan dengan label Form. Tampilkan semua postingan

Selasa, 17 Juli 2012

Membuat Form Dengan Teknik MVC

Di dalam aplikasi dengan menggunakan MVC, maka kita dianjurkan untuk dapat memilah bagian-bagian dari program yang dibuat menjadi setidaknya 3 file, controller, view, dan model. Jangan sampai semua kode hanya ada di dalam controller, jika terjadi demikian, maka apa bedanya program yang dihasilkan dengan framework dengan yang tidak?

Kita akan membuat secara bertahap, memilah contoh pembuatan form pada tulisan sebelumnya dengan menggunakan model dan view.

Contoh membuat form komentar yang menggunakan hanya satu file controller saja, ditunjukkan seperti berikut:


<?php
class C_formkomentar extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->helper("form");
}
function index(){
$aksi="simpankomentar";
$namapengunjung=array(
 "name"=>"namapengunjung"
 ,"size"=>"50"
 ,"maxlength"=>"100"
);
$email=array(
 "name"=>"email"
 ,"size"=>"50"
 ,"maxlength"=>"100"
);
$komentar=array(
 "name"=>"komentar"
 ,"rows"=>"5"
 ,"cols"=>"40"
);
echo form_open($aksi);
echo form_label("Nama : ").form_input($namapengunjung);
echo br();
echo form_label("Email : ").form_input($email);
echo br();
echo form_label("Komentar : ").form_textarea($komentar);
echo br();
echo form_close();
}
}
?>


Program untuk menampilkan form di atas, menggunakan satu file saja, yaitu controller. Suatu controller seharusnya tidak panjang programnya seperti di atas, karena kita belum menggunakan teknik pemrograman dengan MVC.

Kita harus membuat sebuah file model untuk mendefinisikan elemen form dan sebuah view untuk menampilkannya, menjadi seperti berikut:

Isi file model m_formkomentar.php:


<?php
class M_formkomentar extends CI_Model{
function formelemen(){
$aksi="simpankomentar";
$namapengunjung=array(
 "name"=>"namapengunjung"
 ,"size"=>"50"
 ,"maxlength"=>"100"
);
$email=array(
 "name"=>"email"
 ,"size"=>"50"
 ,"maxlength"=>"100"
);
$komentar=array(
 "name"=>"komentar"
 ,"rows"=>"5"
 ,"cols"=>"40"
);
return array(
"aksi"=>$aksi
,"namapengunjung"=>$namapengunjung
,"email"=>$email
,"komentar"=>$komentar
)
}
}
?>


Isi file view v_formkomentar.php:


<?php
echo form_open($aksi);
echo form_label("Nama : ").form_input($namapengunjung);
echo br();
echo form_label("Email : ").form_input($email);
echo br();
echo form_label("Komentar : ").form_textarea($komentar);
echo br();
echo form_close();
?>


Isi file view v_formkomentar ini hanya merupakan penyederhanaan contoh, kita harus memberikan kode HTML tambahan agar dapat ditampilkan dengan lebih baik.

Setelah kita membuat model dan viewnya, maka kita harus memperbaiki file controllernya menjadi seperti berikut:


Isi file controller c_formkomentar.php:


<?php
class C_formkomentar extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->helper();
}
function index(){
$this->load->model("m_formkomentar");
$data=$this->m_formkomentar->formelemen();
$this->load->view("v_formkomentar",$data);
}
}
?>


Program controller yang dibuat menjadi lebih sederhana dan ringkas. Dampaknya adalah kita bisa mendefinisikan elemen form tambahan di dalam file model, tanpa perlu khawatir mengubah logika program, dan mengubah tampilannya dengan mengubah file view.

Minggu, 15 Juli 2012

Validasi Data Dengan CI


Validasi data dengan menggunakan CI dapat dilakukan dengan menggunakan librari class validation.

Pemuatan librari harus dilakukan terlebih dahulu, agar validasi dapat dilakukan. Berikut adalah pemuatan librari untuk validasi:

$this->load->library('form_validation');

Validasi yang disediakan oleh CI:

  • required, memastikan bahwa input diisi
  • confirmation
  • email, memastikan alamat email dimasukkan dengan benar
  • jumlah digit data, minimum, maksimum, sama dengan n digit suatu input
  • jenis data input: karakter, numerik, integer, desimal
  • valid ip
Selain validasi yang disediakan oleh CI, pengembang aplikasi dapat menggunakan fungsi-fungsi dari PHP atau pun fungsi yang dibuat oleh pemrogram.

Setelah pemuatan dilakukan, maka kita harus mendefinisikan rule untuk validasi dengan menggunakan fungsi set_rules().

Cara mendefinisikan rule:

$this->form_validation->set_rules('namaelemeninput','label/promptelemeninput','rulevalidasi');

Berikut adalah kita ingin memvalidasi input namapegawai.

Form input:

<input type='text' name='namapegawai' value=''>

Controller untuk melakukan validasi:

$this->load->library('form_validation');
$this->form_validation->set_rules('namapegawai','Nama pegawai','required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}

Fungsi run() dari form_validation akan melakukan proses pemvalidasian untuk semua field atau input yang didefinisikan dengan menggunakan set_rules().





Senin, 09 Juli 2012

Helper Form : form_dropdown()


Helper form form_dropdown() sangat memudahkan pemrogram web untuk melakukan pengeditan data. Jika kita tidak menggunakan helper ini, maka pemrogram harus menambahkan kode tambahan untuk bisa menampilkan data combobox dengan default pilihannya; jika combobox harus dihasilkan secara dinamik.

Jika kita menggunakan HTML statik, maka mendefinisikan item pilihan tidaklah menjadi masalah, karena kita bisa menuliskan selected pada item pilihan tersebut.

Berikut adalah kode HTML statik;

<select id="kodekota" name="kodekota">
<option value="bdg">Bandung</option>
<option value="crb" selected>Cirebon</option>
<option value="jkt">Jakarta</option>
</select>


Jika kita menggunakan PHP standar, maka kita akan membuat program seperti berikut:



<?php
$akodekota=array(
"bdg"=>"Bandung"
,"crb"=>"Cirebon"
,"jkt"=>"Jakarta"
);
$dipilih="crb";
$pilihan="";
foreach($akodekota as $kodekota => $namakota){
$pilihan.="<option value='".$kodekota."' ".(($kodekota==$dipilih)?"selected":"").">";
$pilihan.=$namakota;
$pilihan.="</option>";
}
?>
<select id="" name=""><?=$pilihan;?></select>

Jika kita menggunakan CodeIgniter dan menggunakan helper form form_dropdown(), maka kita bisa dengan sangat mudah. Berikut adalah kodenya:

<?php
$akodekota=array(
"bdg"=>"Bandung"
,"crb"=>"Cirebon"
,"jkt"=>"Jakarta"
);
$dipilih="crb";
echo form_dropdown("kodekota",$akodekota,$dipilih);
?>



Sabtu, 07 Juli 2012

Helper Form: form_label()

Jika kita membuat form untuk input, maka kita akan memberikan teks atau prompt di sebelah kiri atau di atas dari elemen inputnya. Teks atau prompt ini digunakan untuk memberikan keterangan kepada pengguna aplikasi tentang data apa yang harus dimasukkan ke dalam elemen input yang disajikan tersebut.

Bentuk form entri secara umum:

Login
Nama user : |___________|
Password   : |___________|

|Login| |Cancel|


Kita bisa menggunakan elemen tabel agar tampilannya lebih rapi atau menggunakan CSS untuk mengatur letak dari elemen input.

Kita dapat menggunakan CSS untuk dapat merapikan tampilan, sehingga antara prompt dan elemen input dapat ditampilkan berdampingan seperti menggunakan tabel, atau pun berbeda baris.

Untuk menampilkan prompt untuk suatu elemen, maka prompt ditampilkan dengan menggunakan teks biasa.

Jika kita melihat pada pemrograman di lingkungan dengan antarmuka grafikal, maka kita sering disediakan fitur, jika kita klik promptnya, maka kita akan mendapatkan kursor kita pada elemen input. Fitur mengklik pada prompt atau pun nilai dari suatu pilihan itu sama dengan mengklik pada elemen inputnya; sehingga pengguna bisa lebih dimudahkan.

Elemen form HTML pun telah dilengkapi untuk memudahkan pengguna bisa mengklik prompt atau nilainya saja, tidak perlu mengklik elemen inputnya untuk bisa membuat kursor fokus pada elemen inputnya.

Elemen HTML yang digunakan untuk membuat kemudahan ini adalah elemen label, dengan tag <label> Teks </label>.

Contoh:

<label for="idelemeninput">Teks/Prompt</label>
<input type="text"  id="idelemen"  name="idelemen" value="">


Tag label jika ingin dapat berfungsi untuk memudahkan pemfokusan kepada elemen input, maka tag label selalu dipasangkan dengan elemen inputnya. Di dalam tag label kita harus menambahkan atribut for yang diisi dengan idelemen yang akan diberi fokus, jika teks atau prompt dari label diklik.


Jika kita menggunakan CodeIgniter, maka kita dapat dengan mudah untuk menyatakan label untuk suatu elemen input.


Untuk contoh di atas, maka kita dapat menyatakan dengan cara berikut:


<?php
echo form_label("Teks/Prompt","idelemen");
echo form_input("idelemen");
?>

Elemen atau tag label ini jarang digunakan oleh pemrogram aplikasi web, apalagi jika pemrogram lebih banyak menggunakan tabel untuk membuat layout dari form entrinya.

Rabu, 04 Juli 2012

Membuat Form Dengan Helper Form

Form adalah elemen dalam elemen dalam suatu halaman web yang digunakan untuk menerima input dari pengguna aplikasi atau pengunjung halaman web kita.

Dalam pemrograman web tanpa framework, kita akan menyusun form dengan menuliskan tag-tag elemen input form secara manual, seperti berikut:

<form action="simpankomentar.php" method="post">
<label>Nama :</label>
<input type="text" name="namapengunjung" size="50" maxlength="75">
<br />
<label>Email :</label>
<input type="text" name="email" size="50" maxlength="75">
<br />
<label>Komentar :</label>
<textarea rows="5" cols="40" name="komentar"></textarea>
<br />
<button type="submit">Kirim</button>
   </form>

Form dinyatakan di dalam file view.


Jika kita menggunakan CodeIgniter, maka kita dimudahkan untuk bisa menampilkan form, dengan menggunakan helper form. Setiap elemen input dari form dinyatakan terlebih dahulu dengan menggunakan array asosiatif, kemudian menggunakan fungsi helper untuk setiap elemen input, untuk menghasilkan tag elemen input form.


Berikut adalah kode yang sama, yang akan menghasilkan form yang sama:

<?php
$aksi="simpankomentar";
$namapengunjung=array(
"name"=>"namapengunjung"
,"size"=>"50"
,"maxlength"=>"100"
);
$email=array(
"name"=>"email"
,"size"=>"50"
,"maxlength"=>"100"
);
$komentar=array(
"name"=>"komentar"
,"rows"=>"5"
,"cols"=>"40"
);
echo form_open($aksi);
echo form_label("Nama : ").form_input($namapengunjung);
echo br();
echo form_label("Email : ").form_input($email);
echo br();
echo form_label("Komentar : ").form_textarea($komentar);
echo br();
echo form_close();
?>

CodeIgniter mendefinisikan setiap elemen form secara default akan memiliki method post, karenanya fungsi form_open() hanya membutuhkan parameter nama script aksi, yang akan memroses data yang akan dikirimkan oleh browser.