Monday 7 November 2011

11. Modul Kegiatan PHP Pemrosesan Form


11. Modul Kegiatan PHP
Pemrosesan Form

11.1          Pokok Bahasan
1.      Pemrosesan Form
2.      Validasi Data

11.2          Tujuan Praktikum
1.      Praktikan mampu memahami sintaks penulisan PHP.
2.      Praktikan mampu memahami Pemrosesan form pada PHP dan memahami maksud dari penggunaannya.

11.3          Petunjuk Praktikum
1.      Praktikan diharapkan mempersiapkan diri dengan mempelajari dan memahami teori PHP yang diberikan pada saat perkuliahan teori.
2.      Kegiatan praktikum dilakukan dengan cara mempelajari dasar teori dan melakukan langkah-langkah yang diberikan pada subjudul Dasar Teori dan Kegiatan.
3.      Pada setiap modul, Praktikan wajib mengerjakan jurnal praktikum berupa laporan dengan format yang telah ditentukan dan diserahkan kepada Asisten Laboratorium.

11.4          Dasar Teori dan Kegiatan
1.      Pemrosesan Form
Pada modul HTML sebelumnya pernah dibahas mengenai Form. Pada sesi ini akan dilanjutkan mengenai cara memproses sebuah form dengan menggunakan PHP. Seperti yang dijelaskan sebelumnya, Form digunakan untuk mengambil informasi dari data yang dimasukkan oleh user dengan metode POST dan GET, Jika menggunakan metode GET, maka data yang dikirimkan oleh form terbaca pada Address Bar di browser, misalnya:
http://localhost/test/modul8.php?nama=wahyu&password=lupalagi
Perhatikan tanda ”?” adalah data yang diambil dari form dan tanda ”&  untuk memisahkan variabel-variabel yang ada. Jika menggunakan metode POST, tampilan seperti itu tidak akan ada. Kelebihan metode GET adalah pemrosesan data berlangsung cepat sedangkan kelebihan metode POST adalah lebih aman karena user tidak dapat melihat data yang diambil di Address Bar. Contoh berikut adalah form dengan metode POST:

Contoh1: Form Buku Tamu
Modul11-1- Bukutamu.php

<html>
<head>
<title>BUKU TAMU</title>
</head>
<body>
<h2>BUKUTAMUKU</h2><br/>
<form action=”Modul8-3-Proses.php” method=”post”>
Nama  : <input type=”text” name=”nama”><br/>
Alamat: <input type=”text” name=”alamat”><br/>
<input type=”submit” value=”kirim” name=”kirim”>
</form>
</body>
</html>


Contoh2: Proses Buku Tamu
Modul11-1-Proses.php

<html>
<head>
<title>BUKU TAMU</title>
</head>
<body>
<h2>BUKUTAMUKU</h2><br/>
<?php
  extract($_POST);
  echo “Terimakasih telah mengisi form”;
  echo “Nama Anda: $nama <br/>”;
  echo “Alamat Anda: $alamat <br/>”;
?>
</body>
</html>


Penjelasan contoh diatas adalah: Dari file Modul11-1-Bukutamu.html, digunakan metode POST untuk mengambil data dan file Php yang digunakan untuk memproses data adalah Modul11-1-Proses.php. Dari form, user diminta untuk menginput data Nama dan Alamat, data tersebut dalam Php dirubah menjadi Variabel. Jika user mengklik tombol kirim, maka data dikirim dan Modul11-1-Proses.php akan dijalankan oleh browser. Dalam file Modul11-1-Proses.php, perintah extract($_POST); digunakan untuk mengakuisisi data yang dikirim oleh form tadi yaitu Nama dan Alamat dan merubahnya menjadi variabel $nama dan $alamat. Penulisan POST dalam extract($_POST); harus menggunakan huruf kapital, akhirnya perintah echo digunakan untuk menampilkan data yang didapat tadi ke browser. Dapat juga menggunakan metode GET caranya rubah method POST dalam Modul11-1-Bukutamu.html menjadi GET, lalu rubah extract($_POST); dalam Modul11-1-Proses.php menjadi extract($_GET); Pelajari Perbedaannya!

2.      Verifikasi Data
Verifikasi perlu dilakukan terhadap data yang dikirimkan ke server dengan maksud untuk mem-Validasi setiap nilai informasi yang dibutuhkan oleh server untuk diproses. Verifikasi data dapat dilakukan pada Client maupun pada Server.
Verifikasi pada client dimaksudkan untuk mem-validasi setiap input data sebelum di verifikasi lebih teliti oleh server, dengan cara ini server tidak terbebani oleh sistem request-response yang dapat memberatkan kerja server. Misalnya untuk kperluan ”apakah form isian sudah terisi atau belum?”. Javascript biasa digunakan untuk keperluan ini.

3.      Validasi Data Untuk Client Side
Tipe Data dalam PHP digunakan untuk menentukan jenis data yang akan disimpan dalam suatu variabel. PHP mempunyai empat tipe data dasar yaitu: integer, floating point, Character dan Boolean.

Contoh3: Validasi Pada Sisi Client
Modul11-2-Client.php

<html><head><title>CLIENT FORM</title>
<script language="JavaScript">
   function bukutamu()
   {
   var ceknama=document.buktam.elements[0].value;
   var cekemil=document.buktam.elements[1].value;
   var cekpsan=document.buktam.elements[2].value;
   
   if (ceknama.length == 0)
      {window.alert("Maaf,\nAnda belum memasukan nama.");}
   else
      {
      if (cekemil.length == 0)
         {window.alert("Maaf,\nAnda belum memasukan email.");}
      else
         {
         if ((cekemil.indexOf("@",0) == -1) || (cekemil.indexOf(".",0) == -1) || (cekemil.indexOf("com",0) == -1))
            {window.alert("Maaf,\nIsi email dengan benar.");}       
         else
            {
            if ((cekpsan.length == 0))
               {window.alert("Maaf,\nAnda belum mengisi pesan.");}
            else
               {
               document.buktam.submit();
               }
             }
          }
       }
    }  
</script>
</head><body>
<font size="6">Validasi Form Pada Client</font>
<form name="buktam" method="POST" action="Modul11-2-Proses.php">
Input Nama:
<input type="text" name="nama" size="15" maxlength="15"><br>
Input Email :
<input type="text" name="emailpsn" size="25" maxlength="50"> berakhiran com<br>
Input Pesan:<br>
<textarea name="pesan" rows="10" cols="30"></textarea><br>
<input type="button" value="submit" onClick="bukutamu()"><input type="reset" value="Reset">
</form></body></html>


Contoh4: Validasi Pada Sisi Client
Modul11-2-Proses.php

<html><head><title>CLIENT PROSES</title></head><body>
<font size="6">Proses Form Client</font>
<?Php
$tangkap_nama = $_POST[nama];
$tangkap_email= $_POST[emailpsn];
$tangkap_pesan= nl2br(strip_tags($_POST[pesan]));
 echo "<br><br>";
 echo "<b>Input Nama  :</b> $tangkap_nama<br>";
 echo "<b>Input Email :</b> $tangkap_email<br>";
 echo "<b>Input Pesan :</b> $tangkap_pesan";
?>
</body></html>

4.      Validasi Data Untuk Server Side
Variabel adalah tempat untuk menyimpan suatu tipe data dalam suatu waktu tertentu yang nilainya dapat berubah-ubah. Aturan-aturan dalam penamaan Variable adalah:

Contoh5: Validasi Pada Sisi Client
Modul11-3-Server.php

<html>
<head>
<title>SERVER FORM</title>
</head>
<body>
<font size="6">Validasi Form Pada Server</font>
<form name="buktam" method="POST" action="Modul11-3-Proses.php">
Input Nama:
<input type="text" name="nama" size="15" maxlength="15"><br>
Input Email :
<input type="text" name="emailpsn" size="25" maxlength="50"><br>
Input Pesan:<br>
<textarea name="pesan" rows="10" cols="30"></textarea><br>
<input type="submit" value="submit">
<input type="reset" value="Reset">
</form>
</body>
</html>


Contoh6: Validasi Pada Sisi Client
Modul11-3-Proses.php

<html>
<head>
<title>SERVER PROSES</title>
</head>
<body>
<font size="6">Proses Form Server</font>
<?Php
$tangkap_nama = $_POST[nama];
$tangkap_email= $_POST[emailpsn];
$tangkap_pesan= nl2br(strip_tags($_POST[pesan]));

$warning = "Tekan Tombol Back Untuk Kembali";
if (empty($tangkap_nama))
   {
   echo "<br><br>";
   echo "Anda Belum Memasukkan Nama<br>";
   echo "$warning";
   }
elseif (empty($tangkap_email) || (!ereg("^.+@.+\\..+$",$tangkap_email)))
   {
   echo "<br><br>";
   echo "Periksa Kembali Email Anda<br>";
   echo "$warning";
   }
elseif (empty($tangkap_pesan))
   {
   echo "<br><br>";
   echo "Pesan Belum Di Isi Dong<br>";
   echo "$warning";
   }
else
   {
   echo "<br><br>";
   echo "<b>Input Nama  :<b> $tangkap_nama<br>";
   echo "<b>Input Email :<b> $tangkap_email<br>";
   echo "<b>Input Pesan :<b> $tangkap_pesan";
   }
//catatan
//ereg adalah fungsi ekspresi regular untuk mencocokkan string
?>
</body>
</html>


11.5          Contoh Sederhana Membuat Kalkulator
Berikut ini contoh aplikasi sederhana membuat kalkulator. Aplikasi ini membutuhkan pemrosesan dimana data dikirimkan dari sebuah form, dan file lainnya menangkap data yang dikirmkan melalui form tersebut.

Contoh7: Form Kalkulator
Modul11-4-Kalkulator.php

<head>
<title>KALKULATOR</title>
</head>
<body>
<h2>KALKULATOR</h2>
<form action="Modul11-3-Kalkulasi.php" method="post">
Angka 1 : <input name="angka1" type="text" /><br /><br />
Angka 2 : <input name="angka2" type="text" /><br /><br />
<input type="submit" name="operasi" value="*" />
<input type="submit" name="operasi" value="+"/>
<input type="submit" name="operasi" value="-"/>
<input type="submit" name="operasi" value="/"/>
</form>
</body>
</html>


Contoh8: Pemrosesan Kalkulator
Modul11-4-Kalkulasi.php

<?
$a1=$_POST[angka1];
$a2=$_POST[angka2];
$op=$_POST[operasi];
if ($op == "*") {
   $hasil=$a1*$a2;
   echo "<h1>$hasil</h1>"; }
else if ($op == "+") {
   $hasil=$a1+$a2;
   echo "<h1>$hasil</h1>"; }
else if ($op == "-") {
   $hasil=$a1-$a2;
   echo "<h1>$hasil</h1>"; }
else if ($op == "/") {
   $hasil=$a1/$a2;
   echo "<h1>$hasil</h1>"; }
?>


11.6          Jurnal Praktikum
Buatlah suatu dokumen dengan nama Tugas-xxx-Form.php (xxx diisi dengan NPM anda) yang berisi Form dengan Method GET untuk menginput data-data KTP (Kartu Tanda Penduduk) dengan cara NON-EMBEDDED. Lalu buat pula dokumen PHP untuk memproses dan menampilkan data yang dikirim dari form dengan nama Tugas-xxx-Proses.php.

Jurnal Praktikum dikumpulkan dalam bentuk:
a.       Laporan yang berisi Source Code dan Print Screen tampilan tugas anda pada browser. Laporan wajib menggunakan kertas A4, Format laporan tanyakan ke Asisten!
b.      Analisa mengenai perbandingan metode POST dan GET jika diterapkan pada Form input KTP yang anda buat.
c.       File Tugas diperlihatkan dan diserahkan pada Asisten Laboratorium.

Tugas dikerjakan sendiri-sendiri, tidak diperkenankan melakukan Copy-Paste-Replace terhadap tugas rekan anda. Apabila ditemukan Plagiat (antar teman sekelas atau antar teman beda kelas), maka semua tugas yang ”Sama” tersebut dianggap batal/ tidak mengumpulkan!


No comments: