• Tidak ada hasil yang ditemukan

Validasi Form dengan CakePHP

N/A
N/A
Protected

Academic year: 2021

Membagikan "Validasi Form dengan CakePHP"

Copied!
8
0
0

Teks penuh

(1)
(2)

Validasi Form dengan CakePHP

Oleh: Cecep Yusuf

Di sini akan dipelajari bagaimana cara membuat validasi server pada model

untuk form dengan menggunakan framework CakePHP.

Hmm.. Sudah lama juga saya tidak membuat tutorial di website tercinta ini. Tetapi walopun saya tidak membuat tutorial, saya senang karena semakin ke sini ternyata semakin banyak visitor jagocoding.com ini. Visitor tidak hanya sekedar pembaca, anggotanya pun semakin ke sini semakin ke sana. Tetapi sayangnya masih banyak yang belum ingin menjadi anggota di forum ini cuma karena daftarnya harus ada verifikasi e-mail. Padahal, banyak banget manfaatnya kalo sudah daftar di situs ini, mulai dari bisa diskusi dan berkenalan dengan para "jago coding". Silakan dibaca di sini. Oke, tutorial kali ini adalah kita akan membuat validasi form dengan menggunakan CakePHP. Untuk contoh kasusnya, kita akan membuat sebuah form registrasi yang mana mengharuskan pengguna untuk mengisi seluruh form yang harus diisi/required, validasi e-mail, url, dan password yang harus sama dengan input 'confirm password', termasuk minimal dan maksimal huruf yang dimasukkan.

Sebelum membuat validasi, ada baiknya temen2 mempelajari tutorial dasar CakePHP yang ada di sini: http://jagocoding.com/tag/tutorial-dasar

Langkah pertama yang harus dilakukan adalah membuat table untuk database yang akan digunakan. Diasumsikan di sini bahwa temen2 sudah mengkonfigurasi CakePHP dengan benar, jadi saya tidak akan menjelaskan terlalu banyak mengenai setting awal pada CakePHP.

Untuk membuat table, silakan copy syntax mysql di bawah ini, kemudian execute di mysql temen2: CREATE TABLE IF NOT EXISTS `pengguna` (

`id` int(11) NOT NULL AUTO_INCREMENT, `nama_lengkap` varchar(125) NOT NULL, `alamat` text NOT NULL,

`email` varchar(125) NOT NULL, `website` varchar(125) NOT NULL, `username` varchar(125) NOT NULL, `password` varchar(125) NOT NULL, PRIMARY KEY (`id`)

(3)

Setelah itu, untuk memudahkan proses selanjutnya, kita akan menentukan rule-rule untuk setiap validasi field yang akan kita gunakan sebelum ke tahap programming.

field Nama Lengkap harus diisi, tidak boleh kosong, dan minimal 2 huruf

field Alamat harus diisi, tidak boleh kosong

field E-Mail harus diisi, dan format yang diinputkan harus sesuai dengan format e-mail yang benar

field Website tidak wajib diisi, tetapi harus sesuai dengan format URL yang benar

field Username dan password harus diisi, dan minimal 5 huruf, dan maksimal 20 huruf,

mengandung huruf dan angka

Setelah kita menentukan rule-rulenya, maka tahap selanjutnya adalah membuat model pada CakePHP untuk tabel pengguna. Yuk kita buat modelnya di /app/Model/ dengan nama file

Pengguna.php, dengan isi filenya adalah sebagai berikut:

<?php

class Pengguna extends AppModel { public $useTable = 'pengguna'; }

Mengapa ada inisialisasi $useTable? karena kita membuat tabel menggunakan bahasa Indonesia dengan mengabaikan aturan plural. Jika kita membuat table dengan nama users (memakai 's'), maka jika kita membuat model bernama User, kita tidak usah menambahkan variable $useTable. CakePHP secara otomatis akan mendeteksi nama table sesuai dengan nama model dengan menambahkan 's' atau 'es' (aturan pluralisme bahasa inggris).

Sekarang, kita akan menambahkan validasi dengan rule-rule seperti yang kita tulis di atas. Membuat validasi pada framework Cakephp yaitu dituliskan DI MODELnya...

Tambahkan kode-kode berikut di dalam class Pengguna.php (model Pengguna): public $validate = array(

'nama_lengkap' => array(

'rule' => array('minLength', '2'), //minimal 2 huruf 'required' => true, //tidak boleh kosong, required 'message' => 'Mohon masukkan minimal 2 huruf' ),

'alamat' => array(

'rule' => 'notEmpty', //tidak boleh kosong 'message' => 'Alamat tidak boleh kosong' ),

'email' => array(

'rule' => 'email', //harus format e-mail 'required' => true,

'message' => 'Format e-mail harus benar' ),

'website' => array(

'rule' => 'url', //harus format url 'message' => 'Format URL harus benar'

(4)

),

'username' => array(

'alphaNumeric' => array(

'rule' => 'alphaNumeric', //harus format e-mail 'required' => true,

'message' => 'Username harus huruf dan angka' ),

'between' => array(

'rule' => array('between', 5, 20),

'message' => 'Username minimal 5 dan maksimal 20 karakter' )

),

'password' => array(

'alphaNumeric' => array(

'rule' => 'alphaNumeric', //harus format e-mail 'required' => true,

'message' => 'Password harus huruf dan angka' ),

'between' => array(

'rule' => array('between', 5, 20),

'message' => 'Password minimal 5 dan maksimal 20 karakter' )

), );

Jadi, kode secara lengkapnya untuk model adalah: <?php

class Pengguna extends AppModel { public $useTable = 'pengguna'; public $validate = array( 'nama_lengkap' => array(

'rule' => array('minLength', '2'), //minimal 2 huruf 'required' => true, //tidak boleh kosong, required 'message' => 'Mohon masukkan minimal 2 huruf' ),

'alamat' => array(

'rule' => 'notEmpty', //tidak boleh kosong 'message' => 'Alamat tidak boleh kosong' ),

'email' => array(

'rule' => 'email', //harus format e-mail 'required' => true,

'message' => 'Format e-mail harus benar' ),

'website' => array(

'rule' => 'url', //harus format url 'message' => 'Format URL harus benar'

(5)

),

'username' => array(

'alphaNumeric' => array(

'rule' => 'alphaNumeric', //harus format e-mail 'required' => true,

'message' => 'Username harus huruf dan angka' ),

'between' => array(

'rule' => array('between', 5, 20),

'message' => 'Username minimal 5 dan maksimal 20 karakter' )

),

'password' => array(

'alphaNumeric' => array(

'rule' => 'alphaNumeric', //harus format e-mail 'required' => true,

'message' => 'Password harus huruf dan angka' ),

'between' => array(

'rule' => array('between', 5, 20),

'message' => 'Password minimal 5 dan maksimal 20 karakter' )

), ); }

Buatlah controller di folder /app/Controller dengan nama PenggunaController.php: <?php

class MemberController extends AppController {

public $uses = array('Pengguna'); public function register()

{

if (!empty($this->request->data)) {

if ($this->Pengguna->save($this->request->data)) {

$this->Session->setFlash('Data berhasil disimpan'); $this->redirect('/');

} } } }

(6)

Kita menggunakan variable $uses untuk 'meload' model yang bernama Pengguna yang sudah kita buat sebelumnya. Kode ini wajib ditulis untuk menginisialisasikan program supaya dapat menjalankan model Pengguna. Di dalam function register kita mengecek terlebih dahulu (!empty) apakah data form sudah dikirim? ($this->request->data). Jika sudah, maka simpan data ke dalam model pengguna (save) dan tampilkan laporan "Data berhasil disimpan" dan redirect ke homepage. Kemudian buatlah folder baru untuk view pada folder /app/View/ dengan nama Member/ , dilanjutkan dengan membuat sebuah file bernama register.ctp (sesuai dengan nama controller Member dan nama function register()). Isi dari file register.ctp adalah:

<h2>Registrasi</h2> <?php echo $this->Form->create('Pengguna'); echo $this->Form->input('nama_lengkap'); echo $this->Form->input('alamat'); echo $this->Form->input('email'); echo $this->Form->input('website'); echo $this->Form->input('username'); echo $this->Form->input('password'); echo $this->Form->submit('Daftar'); echo $this->Form->end(); ?> T u t o r i a l s e l e s a i , t e m e n 2 d a p a t m e n c o b a n y a d e n g a n m e m b u k a U R L http://localhost/nama_aplikasi/member/register. Silakan isikan secara salah, maka akan muncul pesan kesalahan di setiap field seperti screenshot di bawah ini.

(7)

Dan jika data yang kita masukkan benar (valid), maka akan diteruskan untuk disimpan ke dalam database.

Selamat mencoba :)

(8)

[email protected]

Tentang Penulis

Cecep Yusuf

Hi, my name is Cecep Yusuf. However, in the virtual world I am more likely to use the name Cheyuz, which is an abbreviation of two words "Cecep" and "Yusuf". I am founder of Jagocoding.com, u can view more of me in Cheyuz.com

Referensi

Dokumen terkait

Pada hari ini Rabu tanggal Dua Puluh bulan April tahun Dua Ribu Sebelas, kami yang bertanda tangan di bawah ini Panitia Pengadaan Barang/ Jasa Konstruksi pada UPT PSDA

penyempumaan dari metode bagan balok karena dengan jaringan kerja dapat memberikan jawaban atas pertanyaan yang belum terjawab dalam metode bagan balok, pertanyaan tersebut adalah

Hasil penelitian menunjukkan bahwa penyimpanan obat- obatan di gudang obat Instalasi Farmasi Rumah Sakit Umum Daerah dr.R.Soedjono Selong sudah baik dan benar

c) Pimpinan Satker dan perangkatnya pada Dinas Perindustrian Kabupaten/ Kota agar bahu membahu dengan cemat dan tertib dalam pelaksanaan Program dan Kegiatan Tugas tertib

Paling tidak, ada dua hal yang dapat dipahami dari penelitian ini, yaitu: Pertama, penegakan Hukum Lingkungan khususnya kebakaran hutan dan lahan di Indonesia belum serius

Penelitian ini bertujuan untuk : (1) meningkatkan aktivitas belajar siswa dalam pembelajaran matematika melalui pembelajaran kooperatif tipe STAD, (2)

Untuk mengetahui partisipasi masyarakat pada program revitalisai usaha peningkatan pendapatan keluarga dalam pemberdayaan masyarakat yang ada di desa Perjito kabupaten

Merujuk kepada permintaan STIKes ‘Aisyiyah Bandung bahwa sistem informasi akademik yang dirancang harus mengacu kepada teknologi berbasis internet atau website ,