Validasi Form ASP.NET dengan Validation Control (Part II) - How to use

Yup.. ini adalah lanjutan dari validation control bagian I. Pada bagian I kita telah mengenal macam-macam atau jenis dari validation control. Di bagian II ini saya akan mencoba menjelaskan mengenai cara pemakaian dan cara setingnya…

Semua validation control yang saya jelaskan sebelumnya adalah turunan dari kelas Base Validator, sehingga secara umum semua validation control tersebut akan memiliki properti dan method berikut :

- Control to Validate : properti untuk mengenalkan control mana yang akan di validasi.

- Error Message : properti yang berisi pesan error apa yang akan ditampilkan jika kondisi validasi yang kita buat tidak memenuhi validasi yang ada. Error message ini akan muncul, ketika kursor meninggalkan control yang kita validasi.

- IsValid : Properti dengan tipe boolean yang menentukan apakah suatu validation control bernilai true atau false.

- Validate : method untuk melakukan validasi dan yang akan memberikan nilai ke properti IsValid.

- Display : Properti yang menentukan bagaimana error message akan ditampilkan. Apakah “static” atau “dynamic”. Static = digunakan jika tempat untuk error message tampil sudah disediakan, sehingga ketika error message tampil dia akan muncul ditempat tersebut. Dynamic = tempat untuk error message tidak disediakan, sehingga ketika error message muncul akan menggeser objek yang lain yang bersinggungan dengan error message tersebut.

itulah property yang biasanya harus kita set pada saat menggunakan validation control. Sekarang kita akan masuk ke masing-masing jenis validation control.

1. RequiredFieldValidation Control

Control ini digunakan untuk memvalidasi apakah suatu field masih kosong atau sudah diisi. Biasanya dipasang untuk mengontrol suatu field yang tidak boleh dikosongkan (misal No.Induk, Nama, email, password, confirm password, dll). Jika field yang harus diisi tersebut masih kosong maka control ini akan menampilkan pesan error seperti yang telah kita tentukan. Contoh setingnya kurang lebih seperti ini :

- ControlToValidate = “txtbox01″

- ErrorMessage = “No. Induk harus di isi, tidak boleh dikosongkan”

- Display = “static”

2. CompareValidator Control

Control ini digunakan untuk membandingkan dua buah parameter/nilai.  Control ini bisa kita gunakan misalnya untuk membandingkan field input email dengan field input confirm email. Contoh setingnya kurang lebih seperti ini:

- ControlToValidate = “txtinputemail” (control yang akan divalidasi)

- ControlToCompare = “txtconfirmemail” (control yang akan dibandingkan)

- Operator = “equal” (karena kita ingin txtinputemail dan txtconfirmemail bernilai sama)

- ErrorMessage = “Konfirmasi email harus sama dengan alamat email”

Jika nilai pada txtconfirmemail tidak sama dengan txtinputemail maka error message akan muncul. Untuk property Operator selain equal kita juga bisa menggunakan operator lain sesuai kebutuhan, misalnya NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual dan DataTypeCheck.

3. RangeValidator Control

Control ini digunakan untuk melakukan pengecekan apakah nilai yang dimasukkan sesuai dengan nilai minimum dan nilai maksimum yang kita tentukan. Control ini bisa digunakan misalnya kita mempunyai 1 sampai dengan 10 jenis pilihan, dan kita ingin user memilih salah satu dari pilihan tersebut dengan menginput pada textbox. Contoh setingnya kurang lebih seperti ini:

- ControlToValidate = “txtpilihan”

- MaximumValue = 10

- MinimumValue = 1

- Type = “Integer” (datatype yang akan divalidasi)

- ErrorMessage = “Masukan pilihan sesuai nomor pilihan yang ada”

Jika inputan ternyata tidak antara 1 - 10 maka error message akan muncul. Selain Integer kita bisa menggunakan datatype jenis lain, misalnya String, Double, Date dan Currency.

4. RegularExpressionValidator Control

Control ini digunakan untuk melakukan pengecekan apakah format/expresi inputan sudah sesuai dengan format yang kita tentukan. Control ini bisa digunakan misalnya untuk validasi penulisan alamat email, kodepos, nomor telephone, dll. Contoh setingnya kurang lebih seperti ini:

- ControlToValidate = “txtemail”

- ValidationExpression = \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* (gunakan regular expression untuk menentukan format inputan atau pilih salah satu format inputan yang sudah disediakan)

- ErrorMessage = “Format alamat email salah”

Jika inputan tidak sesua dengan format alamat email yang kita tentukan, maka error message akan muncul.

5. CustomValidator Control

Control ini digunakan jika kita ingin melakukan validasi tetapi dengan algoritma validasi bikinan kita sendiri. Caranya adalah dengan membuat fungsi/method validasi sendiri yang kemudian dipanggil oleh control CustomValidator. Contohnya kurang lebih seperti ini:

Disini saya akan melakukan pengecekan apakah inputan adalah bilangan prima atau bukan.

Pertama kita bikin fungsi untuk mengecek bilangan prima (saya gunakan fungsi dari post saya sebelumnya)

public bool cekprima(int masukan)
    {
        if (masukan < 2)
        {
            return false;
        }

        if (masukan == 2)
        {
            return true;
        }

        for (int i = 2; i < masukan; i++)
        {
            if (masukan % i == 0)
            {
                return false;
            }
        }

        return true;
    }

Kemudian seting properti CustomValidator seperti ini

- ControlToValidate = “txtinputan”

- ErrorMessage = “Inputan bukan bilangan prima”

setelah itu pada event ServerValidate panggilah method yang tadi telah kita buat

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
    {
        int angka = int.Parse(args.Value);
        args.IsValid = cekprima(angka);

    }

6. ValidationSummary Control

Control ini digunakan untuk menampilkan semua pesan error yang ada pada satu halaman. Jika pada satu halaman kita menggunakan beberapa validation control, maka pesan eror yang ada yang dikarenakan validation control kira mendeteksi adanya nilai yang tidak valid bisa dikumpulkan (summary) oleh validationsummary control ini untuk kemudian ditampilkan pada halaman web, maupun menggunakan messagebox. Contoh misalkan pada satu halaman kita menggunakan RequiredFieldValidator, RegularExpressionValidator, RangeValidator (seperti pada contoh sebelumnya), maka error message pada ketiga control tersebut bisa saya kumpulkan dengan validationsummary ini. Contoh setingnya kurang lebih seperti ini:

- DisplayMode = “BulletList” (ini adalah setingan bagaimana nanti pesan2 error message yang ada ditampilkan)

- HeaderText = “Ada beberapa ErrorMessage” (ini adalah header/judul dari summary yang ditampilkan)

- ShowMessageBox = “true” (pilihan apakah summary ditampilkan sebagai message box atau tidak)

- ShowSummary = “false” (pilihan apakah summary ditampilkan dalam halaman web)

Nah sudah tau kan sekarang bagaimana caranya memanfaatkan validation control di ASP.Net. Control ini adalah control yang sangat berguna, karena kita tidak usah repot membuat fungsi-fungsi validasi sendiri (kecuali untuk custom control). Dengan validation control ini kita bisa lebih menghemat waktu.

Selamat mencoba…

Bilangan Prima dalam C#

hehehe… sebenarnya kasus beginian sih pasti diajarkan pada saat kuliah pemrograman atau logika dan algorithma dan juga matematika jaman SD. Jadi postingan saya kali ini bermutu tapi gak bermutu hehehe… Tapi siapa tau ada yang butuh.

karena sudah lama sekali, saya sendiri sudah agak-agak lupa mengenai logika dan algorithma penentuan apakah suatu bilangan adalah prima atau bukan. Berdasarkan mbah wiki, bilangan prima itu adalah bilangan yang lebih besar dari 1 dan faktor pembaginya hanya 1 dan dirinya sendiri. Jadi secara gampangnya bilangan prima itu baru akan habis (sisa=0) kalau dibagi 1 atau bilangan itu sendiri.

Ok, kita mulai…

Untuk mencari logikanya, kata kuncinya adalah habis dibagi 1 atau bilangan itu sendiri, jadi apabila dibagi dengan bilangan selain 1 atau bilangan itu sendiri ternyata menghasilkan sisa = 0 maka bukan bilangan prima.

Untuk mendapatkan sisa pembagian kita bisa menggunakan fungsi modulus dalam matematika (dalam c# gunakan % ).

thatha…. inilah fungsi pencarian bilangan prima:

public bool cekprima(int masukan)
    {
        if (masukan < 2)
        {
            return false;
        }

        if (masukan == 2)
        {
            return true;
        }

        for (int i = 2; i < masukan; i++)
        {
            if (masukan % i == 0)
            {
                return false;
            }
        }
        return true;
    }

Jika kembalianya adalah true maka bilangan yang dimasukan adalah bilangan prima, jika kembalianya false maka bukan bilangan prima. Simple kan hehehe…

oya kalau kodingnya ternyata salah, harap dimaklumi dan dibetulkan :D

Gmail Mobile 2.0

Google sepertinya memang akan semakin merajai dunia ICT. Kamis kemarin (23 oktober 2008), google gmail mobile team (tim mobile gmail nya google) merilis gmail for mobile versi 2.0 yang support untuk handset j2me dan blackberry. Gmail for mobile adalah aplikasi email client  dari google yang dapat digunakan untuk mendownload email ke mobile phone.

google mengklaim bahwa gmail for mobile versi 2.0 ini mempunyai performa yang lebih cepat dan reliable. Hal ini dikarenakan google telah merancang ulang arsitektur dari aplikasi email client ini. Mereka melakukan optimisasi pada proses yang berjalan dengan menempatkanya pada background, meningkatkan skema cache di sisi client, dan mengoptimasi bottleneck yang terjadi.

Beberapa peningkatan  yang dilakukan antara lain :

- Peningkatan performa secara menyeluruh

- Pengaturan multiple account. jika user memiliki lebih dari 1 account di gmail, user dapat dengan mudah berpindah dari satu account ke account yang lain hanya dengan 1 email client ini.

- Multiple Mobile email draft. User dapat membuat draft email lebih dari satu, dan mengirimkanya kapanpun dia mau.

- Shorcut keys. para pengguna handset yang mempunyai dukungan keyboard qwerty, dapat menggunakan shortcut keys untuk mempermudah penggunaan email client ini.

- Basic offline support. seperti halnya kemudahan yang ditawarkan oleh email client di PC. kita juga bisa menggunakan gmail mobile 2.0 ini pada saat offline (tidak ada sinyal). kita bisa membaca email yang sudah kita download. email keluar akan disimpan di outbox, hingga kita kembali online, dan email client ini akan mengirimkanya secara otomatis.

- Dukungan terhadap 35 bahasa. Aplikasi ini mendukung penggunaan bahasa selain bahasa Inggris hingga 35 jenis bahasa. Termasuk didalamnya adalah bahasa Indonesia.

Pengen segera nyobain? download aja dari handset kamu ke m.google.com/mail. Tapi ingat handsetnya harus support J2me atau blackberry.

sumber : http://googlemobile.blogspot.com/2008/10/introducing-gmail-for-mobile-20.html

Merubah format tanggal di C#

Sebenernya mau nulis lanjutan validation control, cuman lagi males bikin screen capturenya hehehe…

Secara default type datetime pada c# akan memberikan kembalian berupa tanggal dan waktu.
kalau tidak percaya coba bikin fungsi yang mengambil tanggal saat ini, pasti akan diberi kembalian berupa tanggal dan jam/waktu.

misal kita bikin fungsi ambil tanggal hari ini

        private void button1_Click(object sender, EventArgs e)
        {
            DateTime tgl = DateTime.Now;
            label1.Text = tgl.ToString();
        }

ketika method tersebut dijalankan biasanya secara default akan menghasilkan “bulan/tgl/tahun jam:menit:detik AM/PM”.

Terus gimana kalau yang kita butuhin cuman tanggalnya? gak butuh jamnya.

Ada beberapa pilihan cara memparsing nilai dari variabel tgl tadi

- ToLongDateString : Akan menghasilkan tanggal dalam format longdate (panjang)
- ToShortDateString : Akan menghasilkan tanggal dalam format shortdate (pendek)
- ToString(string format) : akan menghasilkan tanggal sesuai dengan format yang kita inginkan.

Anggap saja method yang pertama tadi menghasilkan nilai variabel tgl = 10/24/2008 2:48:19 PM. maka :

 String tglshort = tgl.ToShortDateString(); //akan menghasilkan "10/24/2008".
 String tgllong = tgl.ToLongDateString(); //akan menghasilkan "Friday, October 24, 2008".
 String tglformat = tgl.ToString("dd-MMM-yyyy"); //akan menghasilkan "24-Oct-2008".

dimana dd = tanggal, MMM = bulan dalam format 3 huruf, yyyy = tahun.
format ini bisa dirubah2 misal “dd/MM/yyyy” atau “MM/dd/yyyy” atau “MMM dd, yyyy”, dll

semua cara parsing diatas akan memberikan nilai kembalian dengan tipe string.

Validasi Form ASP.NET dengan Validation Control (Part I)

Tulisan ini sengaja saya pecah biar tidak terlalu panjang

Pada saat kita membuat suatu form inputan di ASP.NET, sebelum mengirimkan/post  value dari form tersebut ke server, terkadang kita perlu untuk melakukan validasi terlebih dahulu dari value yang ada. Misal apakah suatu field yang tidak boleh kosong, valuenya null atau tidak. Atau apakah nilai yang dimasukan sesuai dengan range yang kita tentukan. Apakah email address sudah benar formatnya, dll.

Jika kita mendevelop halaman ASP.NET kita dengan Visual studio, maka tugas kita untuk memvalidasi halaman akan menjadi sangat mudah. Caranya adalah dengan memanfaatkan Validation Control. Biarkan Validation Control yang melakukan validasinya, kita cukup memasukkan parameter yang harus dicontrol.

Validasi yang dilakukan oleh validation control dilakukan di client side, akan tetapi hasilnya tetap dikirim ke server dengan tujuan untuk memastikan hasilnya benar-benar akurat, tentunya dengan alasan security juga. Untuk hal ini supaya aman kita juga bisa memberikan perintah supaya browser menjalankan validation control di sisi server.

Ada 6 jenis Validation control yang bisa kita perbudak manfaatkan, antara lain:
1. RequiredFieldValidation Control
Control ini adalah control validasi yang paling sering dipakai. Control ini digunakan untuk memvalidasi bahwa suatu field yang tidak boleh dikosongkan nilainya tidak kosong.
2. CompareValidator Control
Digunakan untuk membandingkan nilai dari field dengan nilai yang kita tentukan dalam program atau field lainya.
3.RangeValidator Control
Digunakan untuk mengecek apakah nilai dari field yang divalidasi berada dalam range yang telah kita tentukan.
4. RegularExpressionValidator Control
Digunakan untuk mengecek format dari suatu field. Bisa digunakan untuk cek format kode pos, telepone, email, dsb.
5. CustomValidator Control
Digunakan untuk fungsi yang dapat dicustomize atau fungsi validasi yang dibuat sendiri.
6. ValidationSummary Control
Digunakan untuk menampilkan pesan error dari semua validasi yang ada di satu halaman web.

Mengenai bagaimana cara menggunakan validation Control ini, properti dan method apa saja yang perlu diperhatikan, tunggu saja bagian ke II…