Sabtu, 11 Juni 2016

Validasi Form Dengan JQUERY
Oke, selamat datang buat kalian yang ingin tau bagaimana sih cara membuat validasi form dengan Jquerry. Oke sebelumnya kita mengenal terlebih dahulu apa itu validasi form.

Validasi form adalah hal yang wajib dilakukan dalam setiap pembuatan aplikasi. Ada banyak cara memvalidasi form berbasis web, namun cara yang paling simple dan menarik adalah menggunakan jQuery, lebih tepatnya menggunakan jquey Plugin bernama jQuery validate.
Sebelumnya saya pernah membahas tentang validasi form menggunakan class javascript yang bisa anda baca di sini, namun kekurangan dari class tersebut adalah sebagai berikut
Validasi dilakukan saat submit
script validasi cukup panjang
Pesan error tidak interaktif.
Dengan menggunakan jQuery validate, maka ketiga kekurangan diatas bisa diatasi.Kembali ketopik, saya akan membuat form pendaftaran dengan tampilan seperti dibawah ini. Error akanmuncul jika input user salah atau tidak valid. Error muncul disamping kanan textfield, error bersifat interaktif, jadi kalau textfield di isi dengan data yang tidak valid, pesan error akan muncul saat itu juga dan pesan error akan hilang dengan sendirinya jika user mengisi data yang valid.




Contoh tampilan form saat error menggunakan jquery validasi.
Setelah mengetahui sedikit ulasan tadi. Yuk kita mulai caranya.
Pertama download file script JQuery di di website JQuery: http://jquery.com/download/. Dan file plugin JQuery Validation di http://jqueryvalidation.org/
copy script yang ada di link tersebut dan simpan dengan nama jquery.js dan jquery.validate.js.
Setelah  itu,kita membuat koding yang akan kita simpan sebagai file html.

<html>
<head>
<title>Validasi</title>
<link rel="stylesheet" href="val.css" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.validate.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#form1").validate({
    rules:{ nama:"required",
            umur:{required:true,number: true},    
            username:"required",
            password:{required: true,minlength:5},    
            cpassword:{required: true,equalTo: "#password"},
            email:{required:true,email:true},
            website:{required:true,url:true}
          },
    messages:{
            nama:{required:'Nama harus di isi'},
            umur:{
                required:'Umur harus di isi',
                number  :'Hanya boleh di isi Angka'},
            username: {
                required:'Username harus di isi'},
            password: {
                required :'Password harus di isi',
                minlength:'Password minimal 5 karakter'},
            cpassword: {
                required:'Ulangi Password harus di isi',
                equalTo :'Isinya harus sama dengan Password'},
            email: {
                required:'Email harus di isi',
                email   :'Email harus valid'},
            website: {
                required:'Website harus di isi',
                url     :'Alamat website harus valid'}
            },
     success: function(label) {
        label.text('OK!').addClass('valid');}
    });
});
</script>
</head>
<body>
<div class="form-div">
<form id="form1" method="post" action="">
    <div class="form-row">
    <span class="label">Nama *</span>
    <input name="nama" type="text">
    </div>
    <div class="form-row">
    <span class="label">Umur *</span>
    <input name="umur" id="umur" type="text">
    </div>
    <div class="form-row">
    <span class="label">Username *</span>
    <input name="username" id="username" type="text">
    </div>
    <div class="form-row">
    <span class="label">Password *</span>
    <input name="password" id="password" type="password">
    </div>      
    <div class="form-row">
    <span class="label">Ulangi Password *</span>
    <input name="cpassword" id="cpassword" type="password">
    </div>
    <div class="form-row">
    <span class="label">E-Mail *</span>
    <input name="email" id="email" type="text">
    </div>
    <div class="form-row">
    <span class="label">Website *</span>
    <input name="website" id="website" type="text">
    </div>
    <div class="form-row">
    <input class="submit" value="Proses" type="submit">
    </div>
</form>
</div>
</body>
</html>

Yang ketiga, kita membuat desain dengan css style, tulis coding seperti dibawah ini. simpan dengan nama val.css.

.form-div {
font-family:Arial, Helvetica, sans-serif;
font-size:11px;
border:1px #ccc solid;
padding:10px;
width:500px;
height:220px;
background-color:#def;
}
.form-div .submit {
margin-left:105px;
margin-top:10px;
}
.form-div .label {
display:block;
float:left;
width:100px;
text-align:right;
margin-right:5px;
}
.form-div input {
width: 180px;
float: left;
font-family:Arial, Helvetica, sans-serif;
font-size:11px;
}
.form-div .form-row {
padding:5px 0;
clear:both;
width:700px;
}
.form-div label.error {
margin-left:10px;
width:250px;
display:block;
float:left;
color:red;
padding-left:20px;
background: url(unvalid.gif) no-repeat;
}
.form-div label.valid {
width:0px;
display: inline-block;
text-indent:0px;
color:#0000ff;
background: url(valid.gif) center no-repeat;
}

Setelah itu coba jalankan di web browser kalian.
Selamat mencoba dan semoga bermanfaat.

Jumat, 06 Mei 2016

Artikel Kuliah Tamu

Acara istimewa ini diselenggarakan di Aula Majid UMK yang dimulai pukul 08.00 WIB sampai dengan pukul 10.00 WIB. Acara ini disambut meriah oleh semua peserta dan tamu undangan. Antusias mereka sangat terlihat dari perhatian mereka dalam mengikuti kuliah tamu ini serta dari banyaknya yang bertanya dan berdiskusi dengan pembicara saat sesi diskusi. Selain pemaparan materi dari pembicara dan sesi diskusi ada pula acara meeting MoU dengan pembicara setelah kuliah tamu berakhir. Seluruh mahasiswa SI UMK mulai angkatan 2013 hingga angkatan 2014 hadir dalam acara ini. Dalam acara kuliah tamu ini yang menjadi pembicara adalah Aryo Saloko yang tinggal di Rendeng Kudus. Dia seorang pengangguran yang sukses. Susksesnya dia karena selalu mengupdate Blog. Tidak hanya blogger saja. Tapi dia selalu menguasai seluruh marketing yang ada di google.

Sabtu, 02 April 2016

Validasi Responsive

Berikut ini step by step membuat validasi form dengan JQuery Validation.

#1. Siapkan form inputan yang akan divalidasi

Sebagai contoh form inputan sederhana, buatlah dengan HTML form berikut ini:
Contoh Form Inputan Data Mahasiswa
Untuk membuat form inputan diatas, berikut ini script HTML-nya. Ketik dan simpan dalam file berekstensi .html. Action dari form arahkan ke halaman proses.php.
Code block   
  1. <html>
  2. <head>
  3. <title>Validasi Form dengan JQuery Validation - Achmatim.Net</title>
  4. <style type="text/css">
  5. .labelfrm {
  6. display:block;
  7. font-size:small;
  8. margin-top:5px;
  9. } .error { font-size:small; color:red; }
  10. </style>
  11. </head>
  12. <body>
  13. <h1>Input Data Mahasiswa</h1>
  14. <form action="proses.php" method="post" id="frm-mhs">
  15. <label for="nim" class="labelfrm">NIM: </label>
  16. <input type="text" name="nim" id="nim" maxlength="10" size="15"/>
  17.  
  18. <label for="nama" class="labelfrm">NAMA: </label>
  19. <input type="text" name="nama" id="nama" size="30"/>
  20.  
  21. <label for="alamat" class="labelfrm">ALAMAT: </label>
  22. <textarea name="alamat" id="alamat" cols="40" rows="4"></textarea>
  23.  
  24. <label for="tgl" class="labelfrm">TANGGAL LAHIR: </label>
  25. <input type="text" name="tgl" id="tgl" maxlength="10" size="15"/>
  26.  
  27. <label for="umur" class="labelfrm">UMUR: </label>
  28. <input type="text" name="umur" id="umur" maxlength="3" size="7"/>
  29.  
  30. <label for="email" class="labelfrm">ALAMAT EMAIL: </label>
  31. <input type="text" name="email" id="email" size="50"/>
  32.  
  33. <label for="situs" class="labelfrm">ALAMAT SITUS: </label>
  34. <input type="text" name="situs" id="situs" size="50"/>
  35.  
  36. <label for="pass1" class="labelfrm">PASSWORD: </label>
  37. <input type="password" name="pass1" id="pass1" size="15"/>
  38.  
  39. <label for="pass2" class="labelfrm">ULANGI PASSWORD: </label>
  40. <input type="password" name="pass2" id="pass2" size="15"/>
  41.  
  42. <label for="submit" class="labelfrm">&nbsp;</label>
  43. <input type="submit" name="Submit" value="Submit"/>
  44. </form>
  45. </body>
  46. </html>

#2. Sertakan library JQuery dan Plugin JQuery Validation

Library yang diperlukan ada 2 (dua) yaitu library core JQuery yang dapat didownload di situs http://code.jquery.com dan plugin JQuery Validation yang dapat didownload dari situs resminya di http://bassistance.de/jquery-plugins/jquery-plugin-validation/. Untuk menyertakan library tersebut ke dalam form yang sudah kita buat sebelumnya, tambahkan dua baris perintah berikut ini di antara tag <head> (diasumsikan bahwa kedua plugin tersimpan di folder /jquery).
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<script type="text/javascript" src="jquery/jquery.validate.js"></script>

#3. Tentukan aturan / rule validasi

Selanjutnya yang harus dilakukan adalah membuat aturan atau rule validasi. Hal ini penting untuk dilakukan sebelum menerapkan aturan tersebut ke dalam suatu form. Berikut ini beberapa contoh aturan yang akan saya terapkan terhadap form di atas:
  1. Semua field inputan yang harus diisi (required)
  2. Inputan NIM hanya boleh diisi 10 digit angka (tidak boleh diisi huruf)
  3. Inputan TANGGAL LAHIR diisi dengan format DD/MM/YYYY
  4. Inputan UMUR diisi dengan angka antara 0-100
  5. Inputan ALAMAT EMAIL diisi dengan format penulisan email.
  6. Inputan ALAMAT SITUS diisi dengan format penulisan situs.
  7. Inputan PASSWORD dan ULANGI PASSWORD harus sama.

#4. Terapkan aturan / rule validasi

Untuk menerapkan aturan / rules validasi yang telah kita tentukan, panggil fungsi validate() saat halaman pertama kali dimunculkan. Di dalam fungsi validate() kita dapat membuat aturan-aturan di atas. Sebagai langkah awal, tambahkan potongan script berikut ini di antara tag <head>
Code block   
  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $('#frm-mhs').validate();
  4. });
  5. </script>
Perhatikan potongan script di atas. Fungsi validate() harus diterapkan pada form, kita dapat menggunakan selector ID seperti pada script di atas. #frm-mhs merupakan ID dari form inputan yang sudah dibuat sebelumnya.
Selanjutnya kita akan menerapkan aturan validasi satu per satu.

Aturan 1: Semua field inputan yang harus diisi (required)

Untuk menerapkan aturan suatu inputan yang harus diisi (required), cara paling gampang adalah dengan menambahkan class “required” pada setiap inputan yang akan dikenakan aturan tersebut. Contohnya pada field NIM sebagai berikut.
<input type="text" name="nim" id="nim" maxlength="10" size="15" class="required"/>
Lakukan hal yang sama untuk semua tag inputan.

Aturan 2: Inputan NIM hanya boleh diisi 10 digit angka (tidak boleh diisi huruf)

Untuk aturan yang kedua ini, dapat dirinci menjadi 3 rule yaitu tidak boleh huruf (digits), panjang minimal isian adalah 10 digit dan panjang maksimal juga 10 digit. Kita dapat menambahkan rule pada pemanggilan fungsi validate() sehingga berubah menjadi sebagai berikut:
Code block   
  1. $('#frm-mhs').validate({
  2. rules: {
  3. nim : {
  4. digits: true,
  5. minlength:10,
  6. maxlength:10
  7. }
  8. }
  9. });

Aturan 3: Inputan TANGGAL LAHIR diisi dengan format DD/MM/YYYY

Untuk aturan yang ketiga yaitu mengenai format inputan tanggal lahir. Kita dapat menggunakan rule bawaan date:true jika format yang diinginkan adalah MM/DD/YYYY atau YYYY-MM-DD. Namun dalam rule diatas, diinginkan format tanggalnya adalah DD/MM/YYYY sehingga kita perlu membuat fungsi validator sendiri.
Perhatikan fungsi indonesianDate() beserta penerapannya berikut ini:
Code block   
  1. $(document).ready(function() {
  2. $('#frm-mhs').validate({
  3. rules: {
  4. nim : {
  5. digits: true,
  6. minlength:10,
  7. maxlength:10
  8. },
  9. tgl: {
  10. indonesianDate:true
  11. }
  12. }
  13. });
  14. });
  15.  
  16. $.validator.addMethod(
  17. "indonesianDate",
  18. function(value, element) {
  19. // put your own logic here, this is just a (crappy) example
  20. return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
  21. },
  22. "Please enter a date in the format DD/MM/YYYY"
  23. );
referensi fungsi: stackeoverflow.

Aturan 4: Inputan UMUR diisi dengan angka antara 0-100

Untuk aturan ke-4, kita dapat menggunakan fungsi bawaan range serta batasan inputan berupa angka (digits). Jadi, tambahkan rule untuk inputan umur.
Code block   
  1. umur: {
  2. digits: true,
  3. range: [0, 100]
  4. }

Aturan 5: Inputan ALAMAT EMAIL diisi dengan format penulisan email.

Untuk aturan yang ke-5, JQuery validation sudah menyediakan fungsi email. Dapat ditambahkan langsung di tag inputannya (seperti aturan 1), atau ditambahkan rule email: true.

Aturan 6: Inputan ALAMAT SITUS diisi dengan format penulisan situs.

Untuk aturan ke-6 juga sudah tersedia fungsinya, yaitu url, dan dapat ditambahkan di tag inputan atau rule tersendiri.

Aturan 7: Inputan PASSWORD dan ULANGI PASSWORD harus sama.

Aturan yang terakhir terkait dengan validasi bahwa password harus sama antara 2 field inputan. Untuk hal tersebut, sudah tersedia fungsi equalsTo. Rule validasi setelah ditambahkan aturan 4, 5, 6 dan 7 adalah sbb:
Code block   
  1. $('#frm-mhs').validate({
  2. rules: {
  3. nim : {
  4. digits: true,
  5. minlength:10,
  6. maxlength:10
  7. },
  8. tgl: {
  9. indonesianDate:true
  10. },
  11. umur: {
  12. digits: true,
  13. range: [0, 100]
  14. },
  15. email: {
  16. email: true
  17. },
  18. situs: {
  19. url: true
  20. },
  21. pass2: {
  22. equalTo: "#pass1"
  23. }
  24. }
  25. });

Mengganti Pesan Kesalahan

Salah satu kelebihan plugin JQuery Validation adalah kita dapat dengan mudah mengganti pesan kesalahan yang akan ditampilkan jika aturan validasi tidak terpenuhi. Defaultnya pesan kesalahan dalam bahasa inggris, kita dapat menggantinya dengan mudah dengan menambahkan method messages. Berikut ini contohnya:
Code block   
  1. $('#frm-mhs').validate({
  2. rules: {
  3. nim : {
  4. digits: true,
  5. minlength:10,
  6. maxlength:10
  7. },
  8. tgl: {
  9. indonesianDate:true
  10. },
  11. umur: {
  12. digits: true,
  13. range: [0, 100]
  14. },
  15. email: {
  16. email: true
  17. },
  18. situs: {
  19. url: true
  20. },
  21. pass2: {
  22. equalTo: "#pass1"
  23. }
  24. },
  25. messages: {
  26. nim: {
  27. required: "Kolom nim harus diisi",
  28. minlength: "Kolom nim harus terdiri dari 10 digit",
  29. maxlength: "Kolom nim harus terdiri dari 10 digit"
  30. },
  31. email: {
  32. required: "Alamat email harus diisi",
  33. email: "Format email tidak valid"
  34. },
  35. pass2: {
  36. equalTo: "Password tidak sama"
  37. }
  38. }
  39. });
Form Inputan yang Sudah Ditambahkan Validasi

Ajax dengan PHP dan Jquery

Banyak sekali permintaan yang datang kepada penulis perihal bagaimana cara mudahnya menghasilkan fitur ajax dengan menggunakan jquery dan php. Ajax merupakan satu fitur yang digunakan oleh para developer, baik menambah data, menghapus, mengupdate, tanpa melakukan refresh page, atau redirect page.
Banyak cara juga untuk dapat menghasilkan ajax ini, ada develepor yang membuat engine sendiri, tentunya menggunakan standarisasi ajax, ada juga yang menggunakan javascript plugin, seperti jquery misalnya.
Di tutorial kali ini, penulis akan menjelaskan sedikit saja bagaimana menghasilkan fitur ajax menggunakan php dan jquery. Caranya sangat-sangat mudah sekali. Anda cukup mengikuti syntaxnya, dan memahami alurnya. Tapi sebelumnya terlebih dahulu Anda membaca tutorial saya sebelumnya tentang pengenalan jquery.
Setidaknya diperlukan paling tidak 3 buah file minimal, pertama adalah file yang digunakan untuk mengirimdata, kemudian file yang digunakan untuk menerima data ataupun memproses data, dan yang terakhir adalah jquery librarynya itu sendiri.
Oke disini saya memiliki file index.php yang berfungsi dalam mengirimkan data
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<html>
<head>
<title></title>
<meta name=”” content=””>
<script type=”text/javascript” src=”jquery-1.6.4.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){
$(‘#ajaxTest’).submit(function(eve){
eve.preventDefault();

$.ajax({
url: “/function.php”,
type: “POST”,
dataType: “html”,
data: $(this).serialize(),
beforeSend: function(){
$(‘#waiting’).text(‘Mohon Tunggu Sebentar’).fadeIn(‘slow’);
},
success: function(html){
$(‘#waiting’).fadeOut(‘slow’);
$(‘#result’).text(html).fadeIn(‘slow’).fadeOut(‘slow’).fadeIn(‘slow’);
}
});
});
});?? ??? ?
</script>

</head>
<body>
<form method=”POST” id=”ajaxTest”>
<input type=”input” name=”ajaxInput” />
<input type=”submit” name=”ajaxBtn” value=”Test Button” />
</form>
<div id=”waiting”></div>
<div id=”result”></div>
</body>
</html>

selanjutnya adalah function.php yang digunakan dalam menerima dan memproses data berisi :
<?php
echo $_POST[‘ajaxInput’];
?>
dan file yang terakhir adalah file jquery itu sendiri saya menggunakan jquery versi 1.6.4.
Yang perlu disorot adalah jquery script yang ada dibagian headnya :
<script type=”text/javascript” src=”jquery-1.6.4.js”></script>
<script type=”text/javascript”>
$(document).ready(function(){

$(‘#ajaxTest’).submit(function(eve){
eve.preventDefault();
$.ajax({
url: “/function.php”,
type: “POST”,
dataType: “html”,
data: $(this).serialize(),
beforeSend: function(){
$(‘#waiting’).text(‘Mohon Tunggu Sebentar’).fadeIn(‘slow’);
},
success: function(html){
$(‘#waiting’).fadeOut(‘slow’);
$(‘#result’).text(html).fadeIn(‘slow’).fadeOut(‘slow’).fadeIn(‘slow’);
}
});
});
});?? ??? ?
</script>

jquery action selalu diawali dengan
$(document).ready(function(){
dan di akhiri dengan
});
kemudian baris selanjutnya adalah :
$(‘#ajaxTest’).submit(function(eve){
eve.preventDefault();

ini berarti submit form yang tadinya disubmit secara langsung ke action formnya alihkan dengan menggunakan jquery ajax, jadi ketika diklik maka tidak akan berpindah ke halaman action formnya. Yang ada malahan jquery yang mengambil alih ketika button submit di klik.
kemudian baris selanjutnya adalah :
$.ajax({
url: “/function.php”,
type: “POST”,
dataType: “html”,
data: $(this).serialize(),

url berisi halaman penerima data yang akan dikirim, kemudian type POST anda sudah tahu maknanya, dataType HTML kita lewat saja, dan yang terakhir adalah data:($this).serialize() artinya kirimkan data yang datanya itu diambil dari input-input yang ada dalam form.
sedangkan baris selanjutnya penulis yakin Anda sudah paham maknanya,
beforeSend: function(){
$(‘#waiting’).text(‘Mohon Tunggu Sebentar’).fadeIn(‘slow’);
},

success: function(html){
$(‘#waiting’).fadeOut(‘slow’);
$(‘#result’).text(html).fadeIn(‘slow’).fadeOut(‘slow’).fadeIn(‘slow’);
}
});