Monday 7 November 2011

14. Modul Kegiatan PHP Studi Kasus: Counter, Polling dan Paging


14. Modul Kegiatan PHP
Studi Kasus: Counter, Polling dan Paging

14.1          Pokok Bahasan
1.      Membuat Counter dengan 2 cara
2.      Membuat Polling dengan 2 cara

14.2          Tujuan Praktikum
1.      Praktikan mampu membuat aplikasi Counter dengan PHP.
2.      Praktikan mampu membuat aplikasi Polling dengan PHP.

14.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.

14.4          Dasar Teori dan Kegiatan
1.      Membuat Counter
Mungkin anda pernah mengunjungi sebuah halaman web, dimana disana ditampilkan kita sebagai pengunjung ke berapa paa situs web tersebut. Sekarang kita akan mencoba membuat aplikasi tersebut. Dimana data counter disimpan pada database karena sifatnya yang dinamis. Langkah pertama yang harus dilakukan adalah membuat  Tabel Counter dalam database LatihanDB yang sudah anda buat sebelumnya. Tabel Counter ini hanya berisi satu kolom saja untuk menampung data kunjungan, struktur tabelnya sebagai berikut:
Field
Type
Length
Null
Extra
Key
no
integer
5
Not null



Jika table tersebut sudah dibuat, isikan datanya dengan 0 atau “Nol” karena jika table yang tidak berisi data dianggap data masih kosong sehingga tidak bisa dijumlahkan melalui query. Aapbila file tersebut di eksekusi maka nilainya bertambah satu. Selanjutnya buat file PHP sebagai berikut

Contoh1: Counter Cara Pertama
Modul14-Counter1.php

<?php
mysql_connect("localhost","root","") or die ("Koneksi gagal: ".mysql_error());
mysql_select_db("latihanDB") or die ("Basis data tidak ditemukan: ".mysql_error());
$query="select * from counter";
$run_query=mysql_query($query) or die ("Query1 salah: ".mysql_error());
$data=mysql_fetch_array($run_query);
$n=$data[0];
$n++;
$query="update counter set no=$n";
$run_query=mysql_query($query) or die ("Query2 salah: ".mysql_error());
echo "<h2>Anda Pengunjung ke - $n</h2>";
echo "Data Disimpan Pada Database<br>";
?>


Contoh diatas adalah contoh aplikasi Counter dimana data disimpan secara dinamis pada database. Setiap kali file tersebut dipanggil pada browser, skrip membaca isi dari database lalu melakukan update dengan menambahkan 1 nilai kunjungan. Cara diatas adalah cara yang paling umum digunakan jika halaman web menghendaki keadaan yang benar-benar dinamis dimana data selalu berasal dari database. Ada cara lain yang tidak perlu melibatkan database yaitu, data kunjungan disimpan pada sebuah file Text. Contohnya adalah sebagai berikut:

Contoh2: Counter Cara Kedua
Modul14-Counter2.php

<?php
   //counter akan disimpan ke dalam file text
   $nama_berkas = "Modul14-Counter2.txt";
   if (file_exists($nama_berkas)) {
      $berkas   = fopen($nama_berkas, "r");
      $pencacah = (integer) trim(fgets($berkas, 255));
      $pencacah++;
      fclose($berkas);
      }
   else
     $pencacah = 1;
     // Simpan pencacah
     $berkas   = fopen($nama_berkas, "w");
     fputs($berkas, $pencacah);
     fclose($berkas);
  
   // Tulis ke halaman web
     
   echo "<h2>Anda Pengunjung ke - $pencacah</h2>";
   echo "Data Disimpan Pada File Text<br>";
?>


2.      Membuat Polling
Setelah membuat aplikasi Counter diatas, sekarang kita akan membuat aplikasi polling. Polling digunakan untuk jajak pendapat, untuk mengetahui berapa jawaban user untuk setiap pilihan pertanyaan yang kita berikan. Buat file berikut ini:

Contoh3: Polling Cara Pertama
Modul14-Polling1.php

<html>
<head>
<title>POLLING 1</title>
</head>
<body>
<form method="get" action="Modul14-Polling1.php">
<b>Bagaimana Bodi Pacar Anda?</b><br/>
<input type="radio" name="pilihan" value="pil1" /> Bagus Sekali<br/>
<input type="radio" name="pilihan" value="pil2" /> Bagus <br/>
<input type="radio" name="pilihan" value="pil3" /> Lumayan <br/>
<input type="radio" name="pilihan" value="pil4" /> Jelek <br/>
<input type="radio" name="pilihan" value="pil5" /> Jelek Sekali<br/>
<input type="submit" name="pilih" value="Pilih" />
<input type="submit" name="lihat" value="Lihat" />
</form><br>
<?php
if ($_GET[pilih]) {
   extract($_GET);
   mysql_connect("localhost","root","") or die ("Konesi Gagal: ".mysql_error());
   mysql_select_db("latihanDB") or die ("Basisdata Tidak Ditemukan: ".mysql_error());
   $query="select $pilihan from polling";
   $run_query=mysql_query($query) or die ("Query1 Salah: ".mysql_error());
   $data=mysql_fetch_array($run_query);
   $n=$data[0];
   $n++;
   $query="update polling set $pilihan=$n";
   $run_query=mysql_query($query) or die ("Query2 Salah: ".mysql_error());
   }

if ($_GET[lihat]) {
   mysql_connect("localhost","root","") or die ("Konesi Gagal: ".mysql_error());
   mysql_select_db("latihanDB") or die ("Basisdata Tidak Ditemukan: ".mysql_error());
   $query="select * from polling";
   $run_query=mysql_query($query) or die ("Query3 Salah: ".mysql_error());
   $data=mysql_fetch_array($run_query);
   echo "
     <b>Hasil Polling</b></br>
     Bagus Sekali $data[0]<br/>
     Bagus        $data[1]<br/>
     Lumayan      $data[2]<br/>
     Jelek        $data[3]<br/>
     Jelek Sekali $data[4]<br/>";
   }
?>
</body>
</html>


Contoh diatas adalah aplikasi polling dimana data hasil pilihan ditampilkan dalam bentuk angka saja, berikutnya kita akan memodifikasi file tersebut sehingga data diperlihatkan dalam bentuk Batang dan persentase.

Contoh4: Polling Cara Kedua
Modul14-Polling2.php

<html>
<head>
<title>POLLING 2</title>
</head>
<body>
<form method="get" action="Modul14-Polling2.php">
<b>Bagaimana Wajah Pacar Anda?</b><br/>
<input type="radio" name="pilihan" value="pil1" /> Bagus Sekali<br/>
<input type="radio" name="pilihan" value="pil2" /> Bagus <br/>
<input type="radio" name="pilihan" value="pil3" /> Lumayan <br/>
<input type="radio" name="pilihan" value="pil4" /> Jelek <br/>
<input type="radio" name="pilihan" value="pil5" /> Jelek Sekali<br/>
<input type="submit" name="pilih" value="Pilih" />
<input type="submit" name="lihat" value="Lihat" />
</form><br>

<?php
if ($_GET[pilih]) {
   extract($_GET);
   mysql_connect("localhost","root","") or die ("Konesi Gagal: ".mysql_error());
   mysql_select_db("latihanDB") or die ("Basisdata Tidak Ditemukan: ".mysql_error());
   $query="select $pilihan from polling";
   $run_query=mysql_query($query) or die ("Query1 Salah: ".mysql_error());
   $data=mysql_fetch_array($run_query);
   $n=$data[0];
   $n++;
   $query="update polling set $pilihan=$n";
   $run_query=mysql_query($query) or die ("Query2 Salah: ".mysql_error());
   }

if ($_GET[lihat]) {
   mysql_connect("localhost","root","") or die ("Konesi Gagal: ".mysql_error());
   mysql_select_db("latihanDB") or die ("Basisdata Tidak Ditemukan: ".mysql_error());
   $query="select * from polling";
   $run_query=mysql_query($query) or die ("Query3 Salah: ".mysql_error());
   $data=mysql_fetch_array($run_query);

   $total=$data[0]+$data[1]+$data[2]+$data[3]+$data[4];
   $n1= intval($data[0] / $total * 100);
   $n2= intval($data[1] / $total * 100);
   $n3= intval($data[2] / $total * 100);
   $n4= intval($data[3] / $total * 100);
   $n5= intval($data[4] / $total * 100);
  
   $max=max($data[0], $data[1], $data[2], $data[3], $data[4]);
   $w1= intval($data[0] / $max * 300);
   $w2= intval($data[1] / $max * 300);
   $w3= intval($data[2] / $max * 300);
   $w4= intval($data[3] / $max * 300);
   $w5= intval($data[4] / $max * 300);

   echo "
     <b>Hasil Polling</b></br>
     Bagus Sekali : $data[0] ($n1 %)<br/>
     <table bgcolor=blue height=10 width=$w1><tr><td></td></tr></table>    

     Bagus Sekali : $data[1] ($n2 %)<br/>
     <table bgcolor=blue height=10 width=$w2><tr><td></td></tr></table>

     Bagus Sekali : $data[2] ($n3 %)<br/>
     <table bgcolor=blue height=10 width=$w3><tr><td></td></tr></table>

     Bagus Sekali : $data[3] ($n4 %)<br/>
     <table bgcolor=blue height=10 width=$w4><tr><td></td></tr></table>
    
     Bagus Sekali : $data[4] ($n5 %)<br/>
     <table bgcolor=blue height=10 width=$w5><tr><td></td></tr></table>";
   }
?>
</body>
</html>


3.      Membuat Paging
Apabila data yang ada pada tabel memiliki record yang banyak, maka tidak mugkin kita menampilkannya secara keseluruhan. Untuk itu diperlukan batasan untuk menampilkan data pada tabel berdasarkan jumlah recordnya. Cara menampilkan data seperti itu dinamakan Paging. Salah satu contoh paging sederhana dapat anda lihat pada listing berikut:

Contoh5: Paging
Modul14-Paging.php

<?php
$host="localhost";
$user="root";
$pass="";
$db="praktikum";
mysql_connect($host,$user,$pass);
mysql_select_db($db);
  echo "<h2>PAGING DATA PESANAN<br></h2>";
  $awal=$_GET['awal'];
  $page=$_GET['page'];
  if(empty($awal)) 
  {
  $awal=0;
  }
  echo "<table>\n";
  echo "<tr bgcolor='#CCFF99'>\n";
  echo "<tr>\n";
  echo "<td colspan=5 align='left'>Halaman : $page</td>\n";
  echo "</tr>\n";
  echo "<td bgcolor='#cccccc'><b>#</td>\n";
  echo "<td bgcolor='#cccccc'><b>ID</td>\n";
  echo "<td bgcolor='#cccccc'><b>Nama</td>\n";
  echo "<td bgcolor='#cccccc'><b>Telepon</td>\n";
  echo "<td bgcolor='#cccccc'><b>Pesanan</td>\n";
  echo "</tr>\n";
  echo "<tr>\n";
  $que  = mysql_query("select * from pesanan order by id_pesan limit $awal,10") or die ("Query1 Salah");
  while ($datakul = mysql_fetch_array($que))
  {
  // isikan elemen array baris ke masing-masing variabel
  $j=$j+1;
    echo "<tr >\n";
    echo "<td >$j</td>\n";
    echo "<td >$datakul[id_pesan]</td>\n";
    echo "<td >$datakul[nama]</td>\n";
    echo "<td > $datakul[telepon]</td>\n";
    echo "<td >$datakul[pesan]</td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
  }
  $cari2="select  *  from pesanan  ";
  $hasil=mysql_query($cari2);
  $jumlah=mysql_num_rows($hasil);
  $i=$jumlah/10;
  $i=ceil($i);
 
  echo "<tr>\n";
  echo "<td border=1 colspan=5 align='left'>";
  echo "Halaman : &nbsp;";
 
  for($j=1;$j<=$i;$j++)
    {
    $awal=(($j-1)*9+$j)-1;
    echo "<a href='Modul14-Paging.php?page=$j&awal=$awal'>$j</a> &nbsp;";
    }
echo "</td></tr>\n";
echo "</table>\n";
?>


14.5          Jurnal Praktikum Terakhir
Buatlah aplikasi-aplikasi yang menurut anda bermanfaat dan layak untuk disimpan pada sebuah situs. Misalkan untuk mengecek IP, mengecek Browser yang digunakan, Validasi data untuk memfilter string-string yang tidak diinginkan seperti F**k, S*x, dan lainnya. Anda bebas menentukan aplikasi apa yang akan anda kumpulkan sebagai tugas terakhir praktikum. Jurnal Praktikum dikumpulkan dalam bentuk:
a.       Laporan yang berisi Source Code dan Print Screen tampilan tugas anda pada browser, beserta penjelasan berupa analisa dari tugas yang anda buat. Laporan wajib menggunakan kertas A4, Format laporan tanyakan ke Asisten!
b.      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!

13. Modul Kegiatan PHP PHP dan MYSQL


13. Modul Kegiatan PHP
PHP dan MYSQL

13.1          Pokok Bahasan
1.      Koneksi Database melalui skrip PHP
2.      Melakukan Query untuk pemrosesan data

13.2          Tujuan Praktikum
1.      Praktikan mampu memahami cara melakukan koneksi ke Database MySQL melalui PHP.
2.      Praktikan mampu memahami query untuk pemrosesan data.

13.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.

13.4          Dasar Teori dan Kegiatan
1.      Akses Melalui PHP
Isi data dalam suatu Tabel pada sebuah Database MySQL dapat diakses melalui skrip Php. Perintah dasar atau fungsi-fungsi untuk keperluan tersebut yang biasa digunakan adalah:
-          mysql_connect: digunakan untuk membuka koneksi ke database MySQL sintaksnya adalah mysql_connect(host,user,password).
-          mysql_select_db: digunakan untuk memilih database yang akan diakses sintaksnya adalah mysql_select_db(database, nama_koneksi).
-          mysql_query: digunakan untuk mengeksekusi permintaan terhadap sebuah tabel atau sejumlah tabel, sintaksnya: mysql_query(permintaan_query, nama_koneksi).
-          mysql_fetch_array: fungsi ini untuk mengambil record dari database dan memasukkanya kedalam array assosiatif, array numeris atau keduanya. Sintaksnya mysql_fetch_array(permintaan_query).
-          mysql_fetch_row: fungsi ini hampir sama dengan mysql_fetch_array. Yang membedakannya adalah pada mysql_fetch_row array yang dihasilkan hanya array numeris. Sintaksnya mysql_fetch_row(permintaan_query).
-          mysql_close: digunakan untuk menutup koneksi database dengan sintaks mysql_close(nama_koneksi).

Pada modul sebelumnya kita sudah membuat suatu Database menggunakan MySQL yaitu database LatihanDB didalamnya ada tabel Pesanan. Kita akan memanfaatkan database tersebut untuk praktikum saat ini. Jika anda tidak menemukan database LatihanDB, silahkan dibuat lagi baik melalui Konsol ataupun PhpMyAdmin.
mysql> create table Pesanan (
    -> id_pesan SMALLINT AUTO_INCREMENT PRIMARY KEY,
    -> nama VARCHAR(20),
    -> telepon VARCHAR(15),
    -> pesan TEXT);
Contoh1: Koneksi MySQL melalui PHP
Modul13-1-Konek.php

<?php
//buka koneksi ke mysql
$namakoneksi = mysql_connect("localhost","root","") or die ("Koneksi Gagal");

//memilih database LatihanDB
mysql_select_db("latihandb",$namakoneksi);

//perintah query ke tabel pesanan
$query     = "select * from pesanan";
$hasilquery= mysql_query($query,$namakoneksi);

//untuk merapihkan dan mempercantik tampilan
echo "<html>";
echo "<head><title>KONEKSI DATABASE</title></head>";
echo "<body>";
echo "<font size=6>Isi Tabel Pesanan</font><br><br>";
echo "<table border=1>";
echo "<tr>";
echo "<td bgcolor=#adadeh><b>ID</b></td>";
echo "<td bgcolor=#adadeh><b>NAMA</b></td>";
echo "<td bgcolor=#adadeh><b>TELEPON</b></td>";
echo "<td bgcolor=#adadeh><b>PESANAN</b></td>";
echo "</tr>";

//ambil data pada setiap baris
while($baris=mysql_fetch_array($hasilquery))
    {
    echo "<tr>";
    echo "<td bgcolor=#ceceff>$baris[0]</td>";
    echo "<td bgcolor=#ceceff>$baris[1]</td>";
    echo "<td bgcolor=#ceceff>$baris[2]</td>";
    echo "<td bgcolor=#ceceff>$baris[3]</td>";
    echo "</tr>";
    }
echo "</table>";
echo "</body>";
echo "</html>";

//tutup koneksi
mysql_close($namakoneksi);
?>


Contoh diatas adalah contoh melakukan koneksi dan menampilkan data yang ada dalam sebuah tabel yaitu Tabel Pesanan dari database LatihanDB. Langkahnya adalah pertama membuat koneksi ke MySQL, selanjutnya memilih database, melakukan query untuk mengambil data apa saja yang akan ditampilkan, lalu membuat Caption dan Header dari tabel, dan data yang diambil berdasarkan query tadi dibuat menjadi array lalu dilakukan perulangan dengan While untuk mengambil data per record dan menampilkannya perbaris. Setelah semua data ditampilkan berdasarkan Query yang diberikan, proses berlanjut untuk menutup koneksi dengan MySQL. Sebaiknya membuat koneksi dilakukan di awal baris, apabila tidak ada lagi data yang di ambil dari database, bisa sesegera mungkin menutup koneksi, tapi biasanya koneksi ditutup setelah semua tag HTML selesai di interpretasi.

2.      Manipulasi Data
PHP digunakan tidak hanya untuk menampilkan data tapi dapat digunakan untuk melakukan manipulasi terhadap data-data yang tersimpan dalam database, misalnya operasi penambahan data melalui halaman web, penghapusan data, pengeditan data, termasuk juga menampilkan data dengan kondisi khusus atau bersyarat, misalnya hanya menampilkan data tertentu saja.
Pada praktikum ini kita akan membuat satu contoh persoalan menggunakan database yang sudah kita buat sebelumnya. Rubah file Modul13-1-konek.php yang sudah dibuat sebelumnya menjadi skrip berikut:

Contoh2: View Data
Modul13-2-View.php

<?php
//buka koneksi ke mysql
$namakoneksi = mysql_connect("localhost","root","") or die ("Koneksi Gagal");
//memilih database LatihanDB
mysql_select_db("LatihanDB",$namakoneksi);
//perintah query ke tabel pesanan
$query     = "select * from pesanan";
$hasilquery= mysql_query($query,$namakoneksi);
//untuk merapihkan dan mempercantik tampilan
echo "<html>";
echo "<head><title>VIEW</title></head>";
echo "<body>";
echo "<h2>Isi Tabel Pesanan</font></h2>";
echo "<table border=1>";
echo "<tr>";
echo "<td bgcolor=#adadeh><b>ID</b></td>";
echo "<td bgcolor=#adadeh><b>NAMA</b></td>";
echo "<td bgcolor=#adadeh><b>TELEPON</b></td>";
echo "<td bgcolor=#adadeh><b>PESANAN</b></td>";
echo "<td bgcolor=#adadeh align=center><b><a href=Modul13-2-Tambah.php>TAMBAH</a></b></td>";
echo "</tr>";
//ambil data pada setiap baris
while($baris=mysql_fetch_array($hasilquery))
    {
    echo "<tr>";
    echo "<td bgcolor=#ceceff>".$baris[0]."</td>";
    echo "<td bgcolor=#ceceff>".$baris[1]."</td>";
    echo "<td bgcolor=#ceceff>".$baris[2]."</td>";
    echo "<td bgcolor=#ceceff>".$baris[3]."</td>";
    echo "<td bgcolor=#ceceff>
<b><a href='Modul13-2-Hapus.php?id=".$baris[0]."'>HAPUS</a></b> &nbsp;
<b><a href='Modul13-2-Edit.php?id=".$baris[0]."'>EDIT</a></b>
          </td>";
    echo "</tr>";
    }
echo "</table>";
echo "</body>";
echo "</html>";
//tutup koneksi
mysql_close($namakoneksi);
?>

Contoh diatas adalah skrip untuk menampilkan data yang dilengkapi tiga buah link yaitu: Link ke form penambahan data, link untuk menghapus data dan link untuk mengupdate data. Link Hapus dan Edit diletakkan di antara pengulangan While dikarenakan variabel id_pesan (dalam bentuk array dalam pengulangan menjadi  $baris[0]) akan dijadikan acuan untuk membangkitkan data baru di halaman yang ditujunya. Selanjutnya kita akan membuat file berisi Form untuk melakukan penambahan data sebagai berikut:

Contoh3: Form Tambah Data
Modul13-2-Tambah.php

<?php
echo "<html>";
echo "<head>";
echo "<title>TAMBAH DATA</title>";
echo "</head>";
echo "<body>";
echo "<h2>Tambah Data Pesanan</h2>";
echo "<form method=post action=Modul13-2-Proses.php>";
echo "<table border=1>";
echo "<tr>";
echo "<td bgcolor=#adadeh><b>Nama :</b></td>";
echo "<td bgcolor=#ceceff><input type=text name=nama /></td>";
echo "</tr>";
echo "<tr>";
echo "<td bgcolor=#adadeh><b>Telepon :</b></td>";
echo "<td bgcolor=#ceceff><input type=text name=telpon /></td>";
echo "</tr>";
echo "<tr>";
echo "<td bgcolor=#adadeh valign=top><b>Pesanan:</b></td>";
echo "<td bgcolor=#ceceff>";
echo "<textarea name=pesanan cols=25 rows=10></textarea>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td bgcolor=#adadeh><b>
      <a href=Modul13-2-view.php>View</a></b></td>";
echo "<td bgcolor=#ceceff>";
echo "<input type=submit name=simpan value=Simpan />&nbsp;";
echo "<input type=reset name=reset value=Reset />";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</form>";
echo "</body>";
echo "</html>";
?>


Isian pada Form tambah data diatas akan dikirimkan ke file Modul13-2-Proses.php menggunakan metode Post. Data yang dikirimkan adalah nama, telpon, pesanan, dan simpan. Simpan akan digunakan untuk pemilihan proses dihalaman Modul13-2-Proses.php. Selanjutnya kita akan membuat file Modul13-2-Proses.php, didalamnya ada pemilihan proses Simpan dan Rubah. Eksekusi akan dilakukan berdasarkan nilai yang dikirim dari input type=submit, pada form tambah data diatas, maka yang terbangkitkan adalah  proses Simpan. Sedangkan untuk proses rubah akan dibahas belakangan.


Contoh4: Proses Tambah dan Edit
Modul13-2-Proses.php

<?php
if ($_POST[simpan]) {
   extract($_POST);
   if (empty($nama) || empty($telpon) || empty($pesanan)) {
      echo "<html><head><title>AKSI TAMBAH</title></head><body>";   
      echo "<h2>Data Belum Lengkap</h2>";
      echo "Tekan Back Pada Toolbars";
      echo "</body></html>";
      }
   else {
      $t_nama=strip_tags($nama);
      $t_telpon=strip_tags($telpon);
      $t_pesanan=nl2br(strip_tags($pesanan));
      mysql_connect("localhost","root","") or die ("<h3>Koneksi Gagal:</h3> ".mysql_error());
      mysql_select_db("latihanDB") or die ("<h3>Database Tidak Ditemukan:</h3> ".mysql_error());
      $query="INSERT into pesanan VALUES('','$t_nama','$t_telpon','$t_pesanan')";
      $run_query=mysql_query($query) or die ("<h3>Query Salah:</h3> ".mysql_error());
      echo "<html><head><title>AKSI TAMBAH</title></head><body>";
      echo "<h2>Data Tersimpan</h2>";
      echo "Nama    : $t_nama<br>";
      echo "Telpon  : $t_telpon<br>";
      echo "Pesanan : $t_pesanan<br>";
      echo "Berhasil Disimpan, <b><a href=Modul13-2-view.php>klik disini</a></b> untuk lihat data<br>";
      echo "</body></html>";
      }
}
if ($_POST[rubah]) {
   extract($_POST);
   if (empty($nama) || empty($telpon) || empty($pesanan)) {
      echo "<html><head><title>AKSI TAMBAH</title></head><body>";   
      echo "<h2>Data Belum Lengkap</h2>";
      echo "Tekan Back Pada Toolbars";
      echo "</body></html>";
      }
   else {
      $t_nama=strip_tags($nama);
      $t_telpon=strip_tags($telpon);
      $t_pesanan=nl2br(strip_tags($pesanan));
      mysql_connect("localhost","root","") or die ("<h3>Koneksi Gagal:</h3> ".mysql_error());
      mysql_select_db("praktikum") or die ("<h3>Database Tidak Ditemukan:</h3> ".mysql_error());
      $query="UPDATE pesanan SET nama='$t_nama',telepon='$t_telpon',pesan='$t_pesanan' WHERE id_pesan='$id'";
      $run_query=mysql_query($query) or die ("<h3>Query Salah:</h3> ".mysql_error());
      echo "<html><head><title>AKSI TAMBAH</title></head><body>";
      echo "<h2>Data Tersimpan</h2>";
      echo "Nama    : $t_nama<br>";
      echo "Telpon  : $t_telpon<br>";
      echo "Pesanan : $t_pesanan<br>";
      echo "Berhasil Disimpan, <b><a href=Modul13-2-view.php>klik disini</a></b> untuk lihat data<br>";
      echo "</body></html>";
      }
}
?>


If empty($nama) digunakan untuk melakukan pengecekkan apakah data yang diisi sudah terisi semua. Extract adalah fungsi PHP yang digunakan untuk memisahkan nilai yang dikirimkan menjadi array. Strip_tags digunakan untuk menghilangkan kode-kode HTML dan PHP yang dimasukkan oleh pemakai melalui keyboard dalam form, nl2br adalah fungsi untuk menyisipkan <br> di depan setiap karakter newline (\n). Selanjutnya akan dibuat form Edit, form ini berfungsi untuk menangkap data yang akan di edit berdasarkan pesan_id.

Contoh5: Form Edit
Modul13-2-Edit.php

<?php
extract($_GET);
$t_id=$id; 
mysql_connect("localhost","root","") or die ("<h3>Koneksi Gagal:</h3> ".mysql_error());
mysql_select_db("praktikum") or die ("<h3>Database Tidak Ditemukan:</h3> ".mysql_error());
$sql="SELECT * FROM pesanan WHERE id_pesan='$t_id'";
$query=mysql_query($sql);
echo "<html>";
echo "<head>";
echo "<title>EDIT DATA</title>";
echo "</head>";
echo "<body>";
echo "<h2>Edit Data Pesanan</h2>";
echo "<form method=post action=Modul13-2-Proses.php>";
while ($baris=mysql_fetch_array($query))
  {
  echo "<table border=1>";
  echo "<tr>";
  echo "<td bgcolor=#adadeh><b>Nama :</b></td>";
  echo "<td bgcolor=#ceceff><input type=text name=nama value=".$baris[nama]."></td>";
  echo "</tr>";
  echo "<tr>";
  echo "<td bgcolor=#adadeh><b>Telepon :</b></td>";
  echo "<td bgcolor=#ceceff><input type=text name=telpon value=".$baris[telepon]."></td>";
  echo "</tr>";
  echo "<tr>";
  echo "<td bgcolor=#adadeh valign=top><b>Pesanan:</b></td>";
  echo "<td bgcolor=#ceceff>";
  echo "<textarea name=pesanan cols=25 rows=10>".$baris[pesan]."</textarea>";
  echo "</td>";
  echo "</tr>";
  echo "<tr>";
  echo "<td bgcolor=#adadeh><b><a href=Modul13-2-view.php>View</a></b></td>";
  echo "<td bgcolor=#ceceff>";
  echo "<input type=submit name=rubah value=Rubah /><input type=hidden name=id value=".$t_id.">";
  echo "</td>";
  echo "</tr>";
  echo "</table>";
  }
echo "</form>";
echo "</body>";
echo "</html>";
?>


Contoh6: Proses Hapus
Modul13-2-Hapus.php

<?php
extract($_GET);
$t_id=$id;
  mysql_connect("localhost","root","") or die ("<h3>Koneksi Gagal:</h3> ".mysql_error());
  mysql_select_db("latihanDB") or die ("<h3>Database Tidak Ditemukan:</h3> ".mysql_error());
  $query="DELETE FROM pesanan WHERE id_pesan='$t_id'";
  $run_query=mysql_query($query) or die ("<h3>Query Salah:</h3> ".mysql_error());
    echo "<html><head><title>AKSI HAPUS</title></head><body>";
    echo "<h2>Data Terhapus</h2>";
    echo "<b><a href=Modul13-2-view.php>klik disini</a></b> untuk lihat data<br>";
    echo "</body></html>";
?>


13.5          Jurnal Praktikum
Buatlah suatu Database dengan nama ”NPM_Anda”, dan buat satu Tabel dengan nama ”Nama_Anda”. Contohnya:  database 057006016, tabel Heni. Tabel tersebut berisi minimal 5 buah field, fieldnya anda tentukan sendiri, bebas! Setelah itu buat tiga file PHP dengan nama ”NPM_Form”, contoh 057006016_Form.php yang berisi link ke view data dan sebuah form dengan metode POST dilengkapi HTML Input Elemen yang digunakan untuk menginput data dengan action diarahkan ke file ”NPM_Proses” contoh 057006016_Proses.php berisi skrip untuk proses input data ke Database dan Tabel yang dibuat tadi. Lalu buat file ”NPM_View” contoh 057006016_View.php untuk melihat data pada tabel yang dibuat. Nilai bonus jika dilengkapi dengan script untuk melakukan validasi data baik pada sisi client ataupun pada server. 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.      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!