Monday, 18 April 2011

Membuat Animasi Flash dengan PHP dan Ming

Dilengkapi banyak contoh, Mdamt memperkenalkan cara mengakses library Ming dari PHP untuk generasi animasi Flash secara dinamik.

Situs-situs dengan animasi Flash sekarang makin digemari. Bukan saja karena dapat membuat tampilan lebih menarik, namun juga bisa membuat suatu situs menjadi interaktif secara instan.
Animasi Flash bisa dibuat dengan berbagai macam software selain Macromedia Flash. Dengan menggunakan library Ming buah karya Dave Hayden, kita bisa membuat animasi Flash sendiri menggunakan PHP, C, C++, Python, atau Ruby. Dalam artikel ini saya akan mengupas sedikit mengenai pembuatan animasi Flash dengan PHP. Di PHP sendiri, selain dengan Ming, kita juga bisa menggunakan libswf atau PHP Flash Turbine dari Blue Pacific. Namun keunggulan Ming dari dua library di atas adalah bahwa Ming adalah produk open source.

Instalasi

Instalasi Library

Library Ming menggunakan lisensi LGPL dan source codenya tersedia bebas. Silahkan download terlebih dahulu lalu ekstrak sourcenya. Setelah terekstrak, ketikkan:
$ cd ming-0.1.1
$ make
$ su -c 'make install'
Perintah-perintah di atas menginstruksikan sistem untuk menginstall library Ming di dalam direktori /usr/lib.

Instalasi Modul PHP

Ming dapat diinstal mulai dari PHP versi 4.0.2, dan sejak versi 4.0.5, Ming sudah dimasukkan sebagai fungsi builtin PHP. Untuk menginstal modul Ming, PHP perlu dikompile dengan parameter --with-ming=/usr.
Apabila tidak ingin mengkompile ulang PHP, download saja file php_ming.so dan masukkan ke dalam konfigurasi di file php.ini. Tambahkan baris berikut ke file php.ini.
extension=php_ming.so
Jangan lupa untuk meletakkan file php_ming.so ke dalam direktori modul PHP yang benar.

Konsep Dasar

Flash Object

Dalam Ming, semua komponen animasi Flash adalah objek yang bisa langsung dimanipulasi melalui metode dan atribut yang disediakan. Karena itu, latar belakang pengetahuan mengenai pemrograman berorientasi objek (OOP) pada PHP akan sangat membantu.

Twips

Semua nilai jarak, panjang, ukuran, dan sebagainya, diukur dalam satuan twips (twenty units per pixel). Jadi dua puluh satuan pada Flash sama dengan satu pixel di layar. Namun demikian, kenyataan di layar bisa berbeda, karena Flash akan secara otomatis melakukan skala terhadap angka panjang dan lebar layar animasi yang didefinisikan pada tag <EMBED> atau <OBJECT> di HTML atau bahkan akan melakukan skala sebesar panjang dan lebar browser bila Anda tidak mendefinisikan tag tersebut.

Animasi

Animasi Flash dibentuk dari urutan-urutan frame. Tiap-tiap frame dapat berisi objek gambar statik ataupun frame dari animasi lain. Jadi sebuah animasi Flash dapat berisi animasi Flash yang lain. Kita dapat menentukan besar laju frame pada suatu animasi Flash, namun kadang kala laju frame dapat diperlambat apabila player Flash yang tersedia tidak cukup cepat untuk menggambar isi frame dalam laju waktu tersebut, kecuali apabila kita menggunakan streaming audio, yang mana kualitas suara akan diutamakan hingga tidak terdengar terputus-putus.

Objek Flash

Pada artikel ini, saya tidak membahas semua objek Flash yang dapat diakses dari Ming, tetapi saya akan bahas tiga buah objek saja, yaitu Movie, Shape, dan Text. Objek-objek Flash lainnya telah menunggu untuk Anda eksplorasi.

Movie

Movie merupakan animasi utama dalam suatu animasi Flash. Semua yang ditampilkan di layar adalah isi dari objek Movie. Untuk membuat movie baru, kita buat objek movie:
$movie = new SWFMovie();
Kemudian kita perlu menentukan ukuran dimensi layar animasi Flash dengan metode berikut:
$movie->setdimension(1600,1200);
Dalam kode di atas kita membuat dimensi animasi Flash sebesar 800 x 600 pixel (ingat Twips!). Kita juga bisa menentukan laju frame (misalnya 20 frame per second) dengan kode:
$movie->setrate(20.0);
Lalu kita juga bisa mendefinisikan warna latar belakang animasi kita dengan kode:
$movie->setbackground(0x00,0xff,0x00);
Pada contoh di atas, kita baru saja membuat warna latar belakang menjadi warna hijau (kode RGB #00FF00).
Yang perlu kita ingat adalah bahwa semua yang kita buat dalam animasi Flash tidak akan bisa tampil di layar bila kita belum mengeluarkan perintah berikut:
header('Content-type: application/x-shockwave-flash');
$movie->output();
Perintah header() akan menginstruksikan kepada browser untuk menyiapkan player Flash untuk menampilkan data animasi yang barusan kita buat. Lalu $movie->output() akan mengirimkan data animasi tersebut untuk ditampilkan oleh player Flash. Dua baris kode di atas biasanya akan kita tempatkan pada akhir program, sebagaimana kita bisa lihat pada contoh di Listing 1.

Shape

Sekarang kita akan berkenalan dengan shape. Shape adalah suatu objek geometri dan dapat berupa garis, kurva, atau glif. Garis-garis yang membentuk area dapat kita isi dengan warna tertentu. Untuk membuat shape, kita tinggal membuat objek shape baru:
$shape = new SWFShape();
Untuk mulai menggambar, kita perlu menentukan ketebalan garis dan warna yang digunakan dengan metode setline() sebagaimana dicontohkan kode berikut:
$shape->setline(80,0xff,0x00,0x00);
Kode di atas akan menginstruksikan Flash untuk nantinya menggambar dengan ketebalan garis sebesar 80 twips dan menggunakan warna merah (#ff0000). Setelah sebuah garis didefinisikan, kita dapat memulai menggambar dengan garis tersebut. Pertama kali kita tempatkan kursor gambar di koordinat yang kita inginkan, misalnya:
$shape->movepento(1000,1000);
Kode di atas menempatkan kursor ke koordinat x = 1000 dan y = 1000.
$shape->drawline(500,500);
Baris di atas menggambar garis dari lokasi koordinat asli (1000,1000) ke koordinat baru (1500,1500). Yang barusan kita lakukan adalah penggambaran shape dengan cara relatif. Artinya, penggambaran garis berikutnya dilakukan pada jarak relatif terhadap koordinat asli. Bila pada pertama kali kita tempatkan kursor pada koordinat (1000,1000), lalu kita gambar garis dengan drawline() dengan parameter (500,500), berarti koordinat terakhir adalah (1000+500,1000+500)=(1500,1500).
Metode penggambaran yang lainnya adalah dengan menggunakan koordinat absolut. Untuk mendapatkan hasil yang sama dengan gambar pada contoh sebelumnya, kode kita untuk absolut adalah:
$shape->movepento(1000,1000);
$shape->drawlineto(1500,1500);
Pada baris kedua di atas kita menggunakan perintah drawlineto() dan bukan drawline(). Artinya koordinat yang kita sebutkan dalam parameter adalah koordinat absolut.
Garis yang barusan kita gambar tidak akan ditampilkan di layar sebelum kita berikan perintah berikut:
$movie->add($shape);
Artinya, objek $shape yang sudah kita buat akan ditambahkan ke frame aktif saat ini pada movie Flash. Kode lengkapnya bisa Anda perhatikan pada Listing 2.

Text

Ming telah menyediakan objek Text untuk menulis sebuah string pada animasi Flash. Untuk menuliskan sebuah teks di layar, kita pertama kali perlu meload font yang digunakan dengan menggunakan objek Font.
$font = new SWFFont("test.fdb");
$text = new SWFText();
$text->setfont($font);
Kode di atas akan meload font bernama test.fdb (font ini disediakan di file ming-examples.tgz di situs Ming). Font tersebut kemudian kita gunakan dengan perintah setfont().
Perhatikan bahwa tipe font yang didukung oleh Ming hanyalah tipe font fdb. Anda dapat memperoleh font dengan tipe ini di Internet atau membuat sendiri. Bila Anda ingin membuat sendiri font fdb dari suatu font TTF, yang harus Anda lakukan adalah menuliskan sembarang teks di Macromedia Flash dengan font tersebut, lalu simpan sebagai Generator Template. Kemudian gunakan utiliti makefdb yang disediakan oleh Ming (ada di dalam subdirektori util/) untuk menghasilkan font fdb dari file Flash yang baru Anda buat tadi.
$text->setHeight(50);
$text->setColor(0xff, 0x00, 0x00);
$text->moveTo(200, 200);
$text->addString("Flash Gordon v.s. Emperor Ming");
Kode di atas akan menuliskan kalimat Flash Gordon v.s. Emperor Ming pada koordinat (200,200) dengan warna merah dan tingginya 50 twips. Kode lengkapnya bisa disimak pada Listing 3.

Animasi

Seperti dijelaskan sebelumnya, animasi Flash adalah kumpulan frame-frame. Semua objek yang ditampilkan di player Flash sebenarnya adalah frame yang aktif. Suatu frame akan ditampilkan secara bergantian di layar dengan laju kecepatan yang ditentukan dengan perintah setrate().
Semua kode yang telah kita bahas di atas adalah sebuah animasi Flash dengan frame tunggal. Lalu bagaimana kita menggambar animasi Flash dengan banyak frame ? Mudah saja. Kita dapat menggunakan perintah nextframe() untuk menginstruksikan player Flash bahwa kita akan menggambar pada frame selanjutnya. Perintah ini mirip dengan fungsi Insert Keyframe di Macromedia Flash.
Sebagai contoh, kita akan menuliskan kalimat Flash Gordon v.s. Emperor Ming dan kita animasikan agar tulisan tersebut berjalan dari koordinat awal ke (0,0) dengan kode berikut:
$text->addString("Flash Gordon v.s. Emperor Ming");

$animasi = $movie->add($text);
for ($i=0;$i<50;$i++) {
  $animasi->move(5,5);
  $movie->nextframe();
}
Perhatikan pada baris
$animasi = $movie->add($text);
di sini kita membuat sebuah objek yang disebut DisplayItem. Objek ini adalah keluaran dari hasil metode add() sebuah objek Flash dan bisa selanjutnya kita modifikasi baik ukuran, lokasi, dan sebagainya. Pada contoh di atas yang kita modifikasi adalah lokasinya. Lokasi tulisan kita pindahkan ke koordinat relatif (5,5) twips dari koordinat awal sebanyak 50 kali. Setelah kita pindahkan, kita perintahkan player Flash untuk menggambar di frame baru dengan perintah nextframe(). Pada contoh di atas kita baru saja membuat animasi Flash dengan frame sebanyak 50 buah. Silakan disimak juga beberapa contoh animasi pada Listing 6.

Action

Kita bisa memperoleh kontrol terhadap animasi yang kita buat dengan bantuan Action. Action memungkinkan kita untuk menuliskan suatu skrip pada animasi Flash. Syntaxnya mirip dengan C dan fungsinya mirip dengan ActionScript pada Macromedia Flash.
Fungsi-fungsi lengkap Action bisa Anda lihat pada manual Ming di bagian objek SWFAction. Sebagai contohnya kita akan modifikasi contoh pada Listing 4. Pada bagian akhir kode kita tambahkan
$movie->add(new SWFAction("gotoFrame(0); stop();"));
Action di atas menginstruksikan player Flash untuk kembali ke frame 0 dan menghentikan animasi. Kode lengkapnya ada di Listing 5. Sebagaimana ActionScript pada Macromedia Flash, pemanfaatan Action hanya dibatasi oleh imajinasi Anda.

Penutup

Dengan library Ming, kita sudah dapat membuat animasi Flash langsung menggunakan PHP tanpa harus melibatkan Macromedia Flash. Beberapa ide penggunaannya adalah: a) pembuat efek teks (seperti yang dihasilkan Swish), online price ticker, counter, guestbook, e-card, dsb.

Thursday, 24 March 2011

TUTORIAL MEMBUAT PROGRAM SEDERHANA PHP

Sekarang saat yang ditunggu-tunggu. kita buat website sederhana dengan PHP 
Ikuti langkah-langkah berikut.. 
3.1. Pendahuluan

Buka program notepad atau program Text Editor lainnya. lalu ketik Script dibawah ini.

<html>
<head>
<title>coba-coba</title>
</head>
<body>
<?php
echo "Hai saya dari Script PHP";
?>
</body>
</html>
Simpan di C:\apache\htdocs coba3_1.php
lalu buka pada Web Browser. ketik http://localhost/coba3_1.php



3.2. Non Embedded Script


Adalah pembuatan program dengan PHP, tag HTML yang dihasilkan merupakan bagian dari script PHP
<?php
echo "<html>";
echo "<head>";
echo "<title>"; echo "coba2"; echo "</title>";
echo "</head>";
echo "<body>";
echo " <p> <b>SELAMAT DATANG PROGRAMER MUDA </b> </p>";
echo "</body>";
echo "</html>";
?>
Simpan di C:\apache\htdocs coba3_2.php
lalu buka pada Web Browser. ketik http://localhost/coba3_2.php



3.3. Tag Awal dan Tag Akhir


Dalam Script PHP ada Awal dan ada Akhir. dibawah ini menunjukan 4 cara penggunaan tag PHP didalam dokumen HTML. <html>
<head>
<title>coba3</title>
</head>
<body>
<?echo "Hai saya dari Script PHP dengan cara I"; ?>
<?php echo"Hai saya dari Script PHP dengan cara II"; ?>
<%
echo"Hai saya dari Script PHP dengan cara III";
$str="Hai saya dari Script PHP dengan cara IV"; ?>
<br>
<% =$str; %>
</body>
</html>
Kemudian simpan dengan nama coba3_3.php


3.4. Tag Script


Berikut ini cara penggunaan tag <script> dan </script> <script language="php">
Isi Script disini
</script>
Berikut ini contoh script PHP yang dimasukkan kedalam Tag script.
<html>
<head>
<title>coba4</title>
</head>
<body>
<script language="php">
echo"Penggunaan Script PHP";
echo"Juga bisa digunakan";
</script>
</body>
</html>

Kemudian simpan dengan nama coba3_4.php


3.5. Case Sensitive


Script PHP menerapkan aturan Case Sensitivenya. misalkan perbedaan antara huruf besar dan huruf kecil setiap penulisan didalam Script harus mengikuti penulisannya yang ditentukan. Case Sensitive biasanya dikenakan untuk nama-nama ;variable. <html>
<head>
<title>coba5</title>
</head>
<body>
<?php
$a=10;
print "Isi Variable \$a =$a" ;
print "<br>";
print "Isi Variable \$a =$A" ;
?>
</body>
</html>
Kemudian simpan dengan nama coba3_5.php

Membuat login dengan Php dan Mysql

Cara Membuat login dengan Php dan Mysql, bagaimana cara membuat halaman login menggunakan pemrogaman Php yg di hubungkan menggunakan database mysql.
Syarat-syarat sebelum membuat login dengan php dan mysql adalah
1. Mempersiapkan webserver ( bisa menggunakan lokal atau online) baca: Cara Menginstall Appserv di Komputer Lokal
2. Program editor ( notepad ++ atau gedit untuk linux
3. kalau sudah siapkan database terlebih dahulu
4. kita asumsikan teman-teman sudah membuat file koneksi.php
simak penjelasan di bawah ini
1 Membuat tabel untuk user_login
tabel yang diperlukan untuk membuat halaman login antara lain.
username type varchar 20
name type varchar 30
pass type varchar 50
maka bisa langsung menggunakan quey dengan copy kode di bawah ini pada kolom query:

  1. CREATE TABLE `user` (`username` VARCHAR (20) NOT NULL, `nama` VARCHAR  
  2. (30) NOT NULL, `password` VARCHAR (50) NOT NULL, PRIMARY  
  3. KEY(`username`), UNIQUE(`username`));   
kemudian iput username menggunakan manual dengan cara dan pass menggunakan encyp Md5
2. kemudian kita membuat halaman login
Cara Membuat halaman login dengan PHP
copy kode di bawah ini dan simpan dengan nama login.php
  1. <style type="text/css">  
  2. <!--  
  3. table {  
  4. font-family: Verdana, Arial, Helvetica, sans-serif;  
  5. font-size: 11px;  
  6. }  
  7. input {  
  8. font-family: Verdana, Arial, Helvetica, sans-serif;  
  9. font-size: 11px;  
  10. height: 20px;  
  11. }  
  12. -->  
  13. </style>  
  14.   
  15.   
  16. <div align="center">  
  17. <form action="periksa.php" method="post" name="login">  
  18. Page 3  
  19. <table width="286" border="0" cellpadding="0" cellspacing="0">  
  20. <!--DWLayoutTable-->  
  21. <tbody><tr bgcolor="#ff6633">  
  22. <td colspan="2" valign="middle" align="center" height="19">  
  23. <font color="#ffffff">LOGIN DI SINI</font></td>  
  24. </tr>  
  25. <tr>  
  26. <td width="106" height="27"> </td>  
  27. <td width="180"> </td>  
  28. </tr>  
  29. <tr>  
  30. <td valign="middle" align="right" height="18">Username : </td>  
  31. <td valign="middle">  
  32. <input name="username" id="username" size="20" type="text"></td>  
  33. </tr>  
  34. <tr>  
  35. <td valign="middle" align="right" height="18">Password : </td>  
  36. <td valign="middle">  
  37. <input name="password" id="password" size="20" type="password"></td>  
  38. </tr>  
  39. <tr>  
  40. <td height="19"> </td>  
  41. <td></td>  
  42. </tr>  
  43.   
  44. <tr>  
  45. <td valign="top" height="18"><!--DWLayoutEmptyCell--> </td>  
  46. <td valign="middle">  
  47. <input name="login" id="login" value=" Login " type="submit"></td>  
  48. </tr>  
  49. <tr>  
  50. <td height="28"> </td>  
  51. <td></td>  
  52. </tr>  
  53. <tr bgcolor="#ff6633">  
  54. <td colspan="2" valign="top" height="18"><!--DWLayoutEmptyCell--> </td>  
  55. </tr>  
  56. </tbody></table>  
  57. </form>  
  58. </div>  
Dari program tampilan awal di atas, kita bisa lihat bahwa program menggunakan
form inputan sbb :
- username bertype text
- password bertype password
- tombol login bertype submit
Jika tombol login ditekan maka isi form akan diproses di halaman periksa.php
sesuai dengan action pada tag form
dari beberapa tahap mungkin teman-teman sudah faham tentang bagaimana cara membuat halaman login dengan php dan my sql, bagaimana kalau cara membuat halaman logout, okey.. habis materi ini kita akan bahas materi tersebut.

Saturday, 19 March 2011

Operator Perbandingan dan logika

Untuk melengkapi ilmu kita tentang operator percabangan, kita perlu mengetahui di dalam if kita bisa memakai apa saja. Nah, untuk itu kita akan mempelajari tentang operator. Siap ?

Kita sudah melihat bagaimana penggunaan tanda “=” saat kita mengisi variabel dalam skrip yang sudah kita tulis (misalnya $WarnaFavorite=”biru”). Tanda sama dengan tersebut disebut dengan “assignment operator” dan merupakan operator paling sederhana yang sudah kita miliki: $a = b berarti “variabel a diisi dengan nilai b (untuk saat ini)”.

Tetapi anda dapat memperoleh lebih banyak dari PHP dengan apa yang disebut dengan “comparison operator” (operator perbandingan) , “logical operator” (operator logika) dan “arithmetic operator” (operator aritmatika). Berikut adalah operator-operator tersebut diambil dari PHP.net

Operator Perbandingan

Operator ini membuat anda bisa melakukan pembandingan apakah beberapa elemen sama, identik, kurang dari atau lebih besar dari yang lain.

Contoh
Name
Result
$a == $b
Sama dengan
BENAR jika $ a sama dengan $b.
$a === $b
Identik
BENAR jika $a sama dengan $b, dan keduanya memiliki tipe yang sama.
$a != $b
Tidak sama dengan
BENAR jika $a tidak sama dengan $b.
$a <> $b
Tidak sama dengan
BENAR jika $a tidak sama dengan $b.
$a !== $b
Tidak identik
BENAR jika $a tidak sama dengan $b, atau tidak memiliki tipe yang sama.
$a < $b
Kurang dari
BENAR jika $a kurang dari $b.
$a > $b
Lebih besar dari
BENAR jika $a lebih besar dari $b.
$a <= $b
Kurang dari atau sama dengan
BENAR jika $a kurang dari atau sama dengan $b.
$a >= $b
Lebih besar dari atau sama dengan
BENAR jika $a lebih besar dari atau sama dengan $b.
Kesalahan yang cukup sering saya lakukan adalah menggunakan operator assignment (“=”) untuk membandingkan, sehingga untuk mambandingkan apakah 2 variabel sama atau tidak dalam sebuah percabangan saya tuliskan:

If ($a = $b)

Yang seharusnya

If ($a == $b)

Operator Logika

Di sini anda dapat membandingkan elemen-elemen menggunakan pembandingan logika and dan or.

Contoh
Nama
Hasil
$a and $b
And
BENAR jika baik $a dan $b keduanya BENAR.
$a or $b
Or
BENAR jika salah satu dari $a atau $b BENAR.
$a xor $b
Xor
BENAR jika salah satu dari $a atau $b BENAR, tetapi tidak keduanya.
! $a
Not
BENAR jika $a tidak BENAR.
$a && $b
And
BENAR jika baik $a dan $b keduanya BENAR.
$a || $b
Or
BENAR jika salah satu dari $a atau $b BENAR.
Operator Aritmatika

Persis seperti namanya, operator ini melakukan matematika dasar (artinya, kalau anda menginginkan operasi matematika lainnya misalnya integral atau differensial ya harus bikin sendiri, lagian siapa yang mau pake ya?)

Contoh
Nama
Hasil
$a + $b
Penjumlahan
Jumlah $a dan $b.
$a - $b
Pengurangan
Selisih $a dan $b.
$a * $b
Perkalian
Perkalian $a dan $b.
$a / $b
Pembagian
Pembagian $a dan $b.
$a % $b
Modulus
Sisa $a dibagi $b.




OK, sampai di sini dulu untuk urusan operator ini. Nest, kita akan belajar tentang Loop. Please jangan lupa, kalau sempat tulis komentar anda pada kami dan tolong isi pooling.

Terimakasih.

Thursday, 3 March 2011

Membuat Kalender dengan PHP

<?php
//bulan sekarang
$month=date("m");
//Tahun sekarang
$year=date("Y");
//hari ini
$day=date("d");
//cek jumlah hari tahun sekarang
$endDate=date("t",mktime(0,0,0,$month,$day,$year));
//style untuk table
echo '
<style>
td {
font-size:11;
font-family:verdana;
}
</style>
';
//table untuk menulis tanggal sekarang
echo '<table align="center" border="0" width="100%" cellpadding=2 cellspacing=1 style=""><tr><td align=center>';
echo date("D, d M Y ",mktime(0,0,0,$month,$day,$year));
echo '</td></tr></table>';
//table untuk menulis hari
echo '
<table align="center" border="0" width="100%" cellpadding=2 cellspacing=1 style="border:1px solid #CCCCCC">
<tr bgcolor="#EFEFEF">
<td align=center><font color=red>Su</font></td>
<td align=center>Mo</td>
<td align=center>Tu</td>
<td align=center>We</td>
<td align=center>Th</td>
<td align=center>Fr</td>
<td align=center><font color=blue>Sa</font></td>
</tr>
';
/*
mengecek tanggal 1 bulan sekarang ada pada hari ke berapa
kemudian tambahkan cell td sebanyak var $s
*/
$s=date ("w", mktime (0,0,0,$month,1,$year));
for ($ds=1;$ds<=$s;$ds++) {
echo "<td style=\"font-family:arial;color:#B3D9FF\" width=\"15%\" align=center valign=middle bgcolor=\"#FFFFFF\">
</td>";
}
//mfor ($d=1;$d<=$endDate;$d++) {
emulai penulisan tanggal
//if (date("w",mktime (0,0,0,$month,$d,$year)) == 0) { echo "<tr>"; }
jika nilai $d (tanggal) adalah hari minggu (0) dibuat baris baru <tr>
//default warna huruf
$fontColor="#000000";
//if (date("D",mktime (0,0,0,$month,$d,$year)) == "Sun") { $fontColor="red"; }
jika tanggal adalah hari minggu warna huruf merah
//if (date("D",mktime (0,0,0,$month,$d,$year)) == "Sat") { $fontColor="blue"; }
jika tanggal adalah hari sabtu warna huruf biru
//menulis tanggal
echo "<td style=\"font-family:arial;color:#333333\" width=\"15%\" align=center valign=middle> <span style=\"color:$fontColor\">$d</span></td>";
//jika tanggal adalah hari sabtu (6) akhiri baris </tr>
if (date("w",mktime (0,0,0,$month,$d,$year)) == 6) { echo "</tr>"; }
}
//akhir table
echo '</table>';
?>
Selamat Mencoba!!!

Tips Membuat Polling lewat PHP tanpa MySQL

Pertama buatlah file dengan nama pilihan.dat lewat text editor notepad. Dalam file tersebut masukan
data untuk pilihan polling, contoh :
AC Milan
Juventus
Inter Milan
AS Roma
Lazio
Fiorentina
Napoli
Lainnya
Buat juga satu file dengan nama hasil_polling.dat dan biarkan kosong, file ini untuk menyimpan hasil
dari polling.
Kemudian buat satu script php dalam file yang namanya polling.php
Berikut adalah script dalam polling.php
<?
/* ini berfungsi untuk register global variable PHP
terutama mereka yang menggunakan register_global = off
bila register_global = on tidak perlu menggunkan script ini
untuk mengatur register_global periksa pada php.ini
/*
extract($_SERVER,"EXTR_PREFIX_SAME");
extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME");
extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME");
extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME");
?>
<HTML>
<HEAD>
<TITLE>Polling</TITLE>
</HEAD>
<BODY>
<?
//variable file
$data_pilihan="pilihan.dat";
$hasil_polling="hasil_polling.dat";
if (!file_exists($hasil_polling)) {
$fopen=fopen($hasil_polling,"w+");
fclose($hasil_polling);
}
/* gambar/image untuk hasil polling
kamu bisa mengganti sesuka kamu dengan syarat ukuran file harus lebar 100x10
pixel
*/
$gambar="persen.gif";
$judul="Peraih scudetto 2000/2001 ?";
//proses polling
$file_data=file("pilihan.dat");
//tampilan form polling jika tombol poling belum di pilih
if ($go !=1)
{
echo "<center><i>$judul</i></center><br>\n";
echo "<form method=post>";
for ($i=0; $i<=count($file_data)-1; $i++)
{
echo "<input type=radio name=\"vote\" value=\"$i\">
$file_data[$i]<br>\n";
}
echo "<input type=hidden name=go value=1>";
echo "<p><center><input type=submit value=Polling>";
echo "</form>";
echo "<a href='polling.php?result=1&go=1'>Hasil Polling</a></center>";
}
else
{
//membaca hasil poling sebelumnya
$file_hasil=fopen($hasil_polling, "r");
$baris=fgets($file_hasil, 255);
$pisah=explode("|", $baris);
fclose($file_hasil);
if ($result!=1)
{
//menambah dan memasukan nilai polling
$ficdest=fopen($hasil_polling, "w");
for ($i=0; $i<=count($file_data)-1; $i++)
{
if ($i == $vote)
{
$pisah[$i]+=1;
}
fputs($ficdest, "$pisah[$i]|");
}
fclose($ficdest);
$result=1;
}
if ($result==1)
{
//menampilkan hasil polling
echo "<table cellpadding=10>";
echo "<tr><td align=center><font face=Verdana size=2>";
echo "<i>Pilihan</i></font>";
echo "</td><td align=center><font face=Verdana size=2>";
echo "<i>%</i></font></td>";
echo "<td align=center><font face=Verdana size=2>";
echo "<i>Jumlah Pemilih</i></font></td></tr>";
for ($i=0; $i<=count($file_data)-1; $i++)
{
$jumlah_pemilih+=$pisah[$i];
}
for ($i=0; $i<=count($file_data)-1; $i++)
{
$persen[$i]=$pisah[$i]/$jumlah_pemilih*100;
echo "<tr><td><li><font face=Verdana size=2>";
echo "$file_data[$i]</font></td><td align=left><font face=Verdana
size=2>";
echo "<img src=\"$gambar\" height=10 width=$persen[$i]
align=middle>&nbsp;";
printf("%.1f", "$persen[$i]");
echo "%</font></td><td align=center><font face=Verdana size=2>";
echo "$pisah[$i]</font>";
echo "</td></tr>";
}
echo "</table><p>";
echo "<center>Total: $jumlah_pemilih pemilih</center>";
}
?>
</BODY>
</HTML>

Tuesday, 1 March 2011

Menampilkan Ms.Excel dengan PHP

Excel dalam PHPSetelah pusing mikirin job yang numpuk. Akhirnya bisa juga untuk menyempatkan diri menulis artikel ini. Materi atau tutotial kali ini masih berhugungan dengan PHP.
Sebenarnya sudah ingin menulis artikel ini sejak seminggu yang lalu, karena ada kerabat yang meminta solusi bagaimana menampilkan file *.xls di localhost. Membicarakan soal localhost pasti ada

hubunganya dengan server, pasti juga ada PHP. Nah, sekarang bagai mana cara membukai file *.xls dengan PHP.
Pada awalnya sih juga bingung muter-muter mencari scriptnya. Namun dengan sedikit taktik dan setrategi yang matang, akhirnya ketemu juga (kayak mau perang aja nih).
Pertama kali kita harus membuat sebuah fungsi penerjemah xls. Karna scriptnya cukup banyak saya akan share aja lah, daripada harus melihat artikel yang terlalu panjang. Lagian pasti lebih suka di suruh mendownload langsung hasil jadinya dari pada harus membaca, hehehehe.

download skrip disini.

Setelah itu buka file index.php pada file yang telah anda download, tampak tampilan seperti skrip dibawah
<?php

require_once 'Excel/reader.php';

$data = new Spreadsheet_Excel_Reader();

$data->setOutputEncoding('CP1251');

$data->read('file.xls');

/*for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {

for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {

echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";

}

echo "\n";

}*/

echo("<table style='border:solid 1px;border-collapse:collapse'>");

foreach($data->sheets[0][cells] as $key=>$value)

{

echo("<tr style='border:solid 1px;'>");

foreach($value as $key=>$value)

{

echo("<td style='border:solid 1px;padding:10px;'>" . $value . "</td>");

}

echo("</tr>");

}

echo("</table>");

//print_r($data->sheets[0][cells]);

?>

pada file.xls diganti dengan nama file anda.
Sebelumnya kita telah memanggil fungsi yang telah dibuat untuk menerjemahkan xls ke php pada baris ke-2 require_once 'Excel/reader.php';

Pada script $data->sheets[0][cells] as $key=>$value kita menentukan $value sebagai keluaran yang akan kita tampilkan nantinya. Dan diberlakukan perulangan sebanyak data yang akan ditampilkan dengan fungsi for.
Selamat mencoba, semoga berhasil.

Koneksi PHP ke MySQL

Setelah mengetahui dasar-dasar pemrograman PHP. Masuklah kita pada tahap selanjutnya. Yaitu meng-koneksikan PHP ke database.Sebenarnya banyak database yang bisa dipilih. Tetapi menurut saya lebih enak pake MySQL, hehehe.
Banyak cara untuk meng-koneksi PHP ke Mysql. Namun,Kali ini kita akan mempelajari cara cepat dan singkat bagaimana mengkoneksi PHP ke MySQL.


Membuat Koneksi

Pertama kali kita buat file konek.php seperti script dibawah ini.
<?php

$hostmysql = “localhost”;

$username = “mysqlusername”;

$password = “mysqlpassword”;

$database = “namadatabase”;



$conn = mysql_connect(”$hostmysql”,”$username”,”$password”) or die ("Koneksi gagal");

mysql_select_db($database,$conn) or die (”Database tidak ditemukan”);

?>


Penjelasan :

a. mysql_connect
digunakan untuk membuat koneksi dari PHP ke server MySQL. Data mengenai hostname, mysql username, dan password yang digunakan telah diwakilkan oleh variabel $hostmysql, $username, $password. Penulisannya akan sama dengan:
mysql_connect(”localhost”,”username”,”password”);

b. mysql_select_db
memilih database yang akan digunakan.

c. or die ("Koneksi gagal");
jika koneksi gagal dibuat maka muncul pesan Koneksi gagal.
Jika script dirasa terlalu panjang. ada alternatif untuk penulisan singkatnya.
<?php

$conn=mysql_connect("localhost","root","password") or die ("Koneksi gagal");

$db=mysql_select_db("nama_database",$conn) or die ("database tidak ada");

?>
Hasilnya pun sama. simpan file diatas pada folder localhost anda dengan nama konek.php.
Jika pada setiap halaman web kita membutuhkan koneksi ke MySQL, kita tinggal menambahkan fungsi require atau include yang akan memanggil file koneksi yang telah kita buat.

Membuat Query

Membuat tabel pada database
Anda bisa membuat tabel pada database MySQL yang telah anda buat sebelumnya menggunakan php. Copy script dibawah dan jalankan. Maka Script tersebut akan melakukan query untuk menciptakan sebuah tabel pada database yang telah ditentukan. Contohnya seperti query dibawah ini.
<?php

include (”konek.php”);

mysql_query(”CREATE TABLE user (

nama VARCHAR(20),

email VARCHAR(20),

alamat VARCHAR(50))”);

?>


Penjelasan :

1. include (”konek.php”);
perintah include digunakan untuk mengikut sertakan sebuah file (pada contoh diatas adalah fungsi untuk memanggi file konek.php).

2. mysql_query();
format umum untuk melakukan query pada mysql(string dari query).
Berikut saya berikan beberapa contoh query untuk mengolah data pada database

Memasukkan data
Memasukan data menggunakan fungsi INSERT INTO nama_tabel (kolom_1,kolom_2) VALUES (nilai_1,nilai_2).

<?php

include (”konek.php”);

$insert = “INSERT INTO users (nema,alamat,email)

VALUES (’Saya’,'Sendiri’,'Indonesia’)”;

mysql_query($insert) or die (”tidak dapat memasukkan data ke tabel”);

?>

Menampilkan data
Menampilkan data menggunakan fungsi SELECT * FROM nama_tabel. Tanda (*) disni dimaksudkan adalah, memilih semua kolom yang ada pada tabel. kita bisa menggantikanya dengan menentukan kolom yang akan kita tampilkan.
Contoh :  SELECT kolom1,kolom2 FROM nama_tabel
<?php

include (”konek.php”);

$query = “SELECT * FROM user”;

$result = mysql_query($query);

$numrows = mysql_num_rows($result);

while($row = mysql_fetch_array($result)){

echo “Jumlah data: $numrows <br>”;

echo “Nama: $row[nama] <br>”;

echo “Email: $row[email] <br>”;

echo “Alamat: $row[alamat]“;

}

?>

Monday, 28 February 2011

Pemrograman PHP dan MySQL

1 Pendahuluan

PHP adalah bahasa pemorgraman yang memungkinkan para web developer untuk
membuat aplikasi web yang dinamis dengan cepat. PHP merupakan singkatan
dari “PHP: Hypertext Preprocessor”. PHP ditulis dan diperkenalkan pertama kali
sekitar tahun 1994 oleh Rasmus Lerdorf melalui situsnya untuk mengetahui siapa
saja yang telah mengakses ringkasan online-nya.
PHP merupakan salah satu bahasa script yang terbilang baru dan tersedia secara
bebas dan masih memungkinkan untuk dikembangkan lebih lanjut. PHP dapat
diintegrasikan (embedded) ke dalam web server, atau dapat berperan sebagai
program CGI yang terpisah.
Karakteristik yang paling unggul dan paling kuat dalam PHP adalah lapisan
integrasi database (database integration layer). Database yang didukung PHP
adalah: Oracle, Adabas-D, Sybase, FilePro, mSQL, Velocis, MySQL, Informix,
Solid, dBase, ODBC, Unix dbm, dan PostgreSQL. Contoh script PHP sederhana
terdapat pada Listing 1.
Listing 1 : Contoh Script PHP
<html>
<head>
<title>Belajar PHP</title>
</head>
<body>
<?
echo “Halo dari PHP!”;
?>
</body>
</html>\

2 Informasi Sintaks Umum
2.1 Keluar dari HTML

Listing 2 : Cara untuk Memisahkan Blok Kode PHP di dalam HTML
<? echo "Metode tag PHP pendek untuk keluar dari HTML<br>"; ?>
<?php echo "Keluar dengan menggunakan PHP tag penuh<br>"; ?>
<script language="php">
echo "Beberapa editor HTML tidak menyukai pemrosesan
instruksi<br>";
</script>
<% echo "Anda mungkin menyukai style ASP" %>
2.2 Komentar Program
Ada tiga macam style penulisan komentar program yang dapat digunakan, yaitu :
- C style, komentar diawali dengan tag /* dan diakhiri dengan */, style ini
digunakan untuk komentar yang lebih dari satu baris.
- C++ style, komentar diawali dengan tag // dan hanya berlaku untuk satu baris
komentar, untuk baris berikutnya harus diawali tag // lagi.
- Bourne Shell style, diawali dengan tag # untuk satu baris komentar.
Listing 3 : Komentar Program
<?
echo "Halo semua!<br>"; // Ini komentar C style;
/*
Ini komentar
yang lebih dari satu baris
*/
echo "Halo lagi!<br>"; # Ini komentar shell-style
?>

3 Tipe Data
PHP mendukung tipe-tipe berikut : angka floating-point, integer, string, array,
dan object. Tipe variabel ditentukan oleh konteks variabel tersebut dan tidak
ditentukan secara eksplisit oleh programmer.
3.1 Angka : Integer dan Floating Point
Integer dapat dituliskan dengan notasi desimal, oktal, atau heksadesimal. Angka
floating-point dapat dituliskan dalam notasi standar atau scientific.
Listing 4 : Representasi Angka
<?
$int1 = 523; // desimal
$int2 = -523; // desimal negatif
$int3 = 01013; // representasi oktal dari 523
$int4 = 0x20B; // representasi heksa dari 523
$float1 = 523.197; // notasi float standar
$float2 = 5.23197e2; // notasi float scientific
// Cetak semua angka
echo "$int1<br>$int2<br>$int3<br>$int4<br>$float1<br>$float2";
?>

3.2 String
String dalam PHP dibatasi oleh kutip ganda (“) atau kutip tunggal (‘).
Perbedaannya adalah bagaimana string tersebut diinterpretasikan. Jika string
dibatasi oleh kutip ganda, variabel di dalam string akan ditampilkan.
Listing 5 : Contoh String
<?
$makanan = “eskrim”;
echo “Saya suka $makanan<br>”;
echo ‘Saya suka $makanan’;
?>
Karakter backslash (\) di dalam string dengan kutip ganda dapat digunakan untuk
menuliskan karakter khusus (escape sequences) yang terdapat pada Tabel 1.
Tabel 1. Escape Sequences di dalam String dengan Petik Ganda
Sequence Arti
\n Baris baru
\r Carriage return
\t Tab horizontal
\\ Backslash
\” Tanda kutip ganda
\$ Tanda dollar
3.3 Array
Array dalam PHP dapat berupa indexed array (vektor) dan hash tables
(associative arrays). PHP juga mendukung array multidimensi.
Listing 6 : Inisialisasi dan Penggunaan Array
<?
// Membuat array sederhana secara eksplisit
$a[0] = "Buku";
$a[1] = "Pinsil";
$a[] = "Bolpen"; // secara implisit ditempatkan pada indeks
// (key) 3
$a[] = "Penghapus"; // secara implisit ditempatkan pada indeks
// (key) 4
echo "$a[0], $a[1], $a[2], $a[3]<br>";
// Membuat array asosiatif
$tanaman["pangan"] = "padi";
$tanaman["hias"] = "anggrek";
$tanaman["sayuran"] = "wortel";
echo "Contoh tanaman hias adalah {$tanaman["hias"]}<br>";

// Membuat array asosiatif spt di atas, namun caranya lebih
// sederhana
$tanaman = array("pangan" => "padi", "hias" => "anggrek",
"sayuran" => "wortel");
echo "Contoh tanaman sayuran adalah {$tanaman["sayuran"]}<br>";
// Membuat array multidimensi
$b[0][0] = "Nol Nol";
$b[0][1] = "Nol Satu";
echo "Nilai \$b[0][1] adalah {$b[0][1]}<br>";
// Membuat array asosiatif multidimensi
$kota["Jabar"][0] = "Bogor";
$kota["Jabar"][1] = "Bandung";
$kota["Jateng"][0] = "Semarang";
$kota["Jateng"][1] = "Solo";
echo "\$kota['Jabar'][1] = {$kota['Jabar'][1]}<br>";
?>

3.4 Object
Object adalah sebuah tipe data yang dapat berupa sebuah bilangan, variabel, atau
bahkan sebuah fungsi.
Listing 7 : Penggunaan Tipe Data Object
<?
class tanaman
{
function tanaman()
{
$this->komoditas = "apel";
}
function set_var($komoditas)
{
$this-> komoditas = $komoditas;
}
}
$buah = new tanaman();
echo $buah -> komoditas;
$buah -> set_var("mangga");
echo "<br>".$buah -> komoditas;
?>

4 Variabel dan Konstanta
Variabel PHP diawali dengan tanda dolar ($) kemudian diikuti dengan nama
variabel. Semua nama variabel bersifat case-sensitive. Nama variabel yang valid
harus diawali oleh huruf atau garis bawah yang diikuti oleh sejumlah huruf,
angka, atau garis bawah.
Listing 8 : Contoh Nama Variabel
<?
$variabel1 = "Printer";
$variabel2 = "Epson";
echo "$variabel1, $variabel2";
$1variabel = 123; // nama variabel yang salah
$_tes = "tes"; // benar, diawali oleh garis bawah
$test_Ç = "tes2"; // benar, Ç adalah ASCII 128
?>
Variabel dapat diisi nilai maupun referensi. Ketika variabel diisi nilai, seluruh
nilai dari ekspresi asli diisikan ke variabel tujuan. Setelah diisi, variabel asli
bersifat independen, sehingga perubahan pada satu variabel tidak mempengaruhi
yang lain.
Ketika variabel diisi referensi, variabel baru merefer pada variabel asli.
Perubahan yang dibuat pada salah satu variabel akan berpengaruh pada variabel
satunya. Untuk mengisi dengan referensi, tambahkan tanda & pada nama
variabel.
Listing 9 : Pengisian Variabel
<?
$variabel1 = “Printer”;
$variabel2 = $variabel1; // diisi nilai
echo “$variabel1, $variabel2<br>”;
$variabel2 = “Epson”;
echo “$variabel1, $variabel2<br>”;
$variabel3 = &$variabel1; // diisi referensi
echo “$variabel1, $variabel3<br>”;
$variabel3 = “HP”;
echo “$variabel1, $variabel3<br>”;
?>
4.1 Predefined Variable

PHP memiliki variabel-variabel yang telah didefinisikan sebelumnya (predefined
variable). Nilai variabel-variabel tersebut bergantung pada sejumlah faktor,
diantaranya jenis server, setting server, dan lain-lain. Predefined variable
selengkapnya dapat dilihat dengan fungsi phpinfo()

4.2 Operator
4.2.1 Operator Aritmatika

Operator Nama Contoh Hasil
+ Penjumlahan $a + $b Jumlah $a dan $b
- Pengurangan $a - $b Selisih $a dan $b
* Perkalian $a * $b Hasil kali $a dan $b
/ Pembagian $a / $b Hasil bagi $a dan $b
% Modulus $a % $b Sisa dari $a dibagi $b
4.2.2 Operator Bitwise
Operator Nama Contoh Hasil
& And $a & $b
11 (1011 biner) &13 (1101 biner) 9 (1001 biner)
| Or $a | $b
11 (1011 biner) | 13 (1011 biner) 15 (1111 biner)
^ Xor $a ^ $b
11 (1011 biner) ^13 (1101 biner) 6 (0110 biner)
- Not -$a
-11 12 (desimal)
<< Shift Left $a << $b
11 (1011 biner) << 2 2 (10 biner)
>> Shift Right $a >> $b
11 (1011 biner) >> 2 44 (101100 biner)

4.2.3 Operator Increment/Decrement
Operator/Contoh Nama Hasil
$a++ Post-increment Operasi dilaksanakan, kemudian $a
ditambah satu.
++$a Pre-increment $a ditambah satu, kemudian operasi
dilaksanakan.
$a-- Post-decrement Operasi dilaksanakan, kemudian $a
dikurangi satu.
--$a Pre-decrement $a dikurangi satu, kemudian operasi
dilaksanakan.

4.2.4 Operator Logika
Operator Nama Contoh Hasil
and And $a and $b True jika $a dan $b keduanya bernilai true
or Or $a or $b True jika $a atau $b atau keduanya bernilai true
xor Xor $a xor $b True jika $a atau $b bernilai true, tetapi false jika
keduanya bernilai true
! Not !$a True jika $a bernilai tidak true
&& And $a and $b True jika $a dan $b keduanya bernilai true
|| Or $a or $b True jika $a atau $b atau keduanya bernilai true

Operator Operasi
== Sama dengan
!= Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan

4.2.5 Operator Assignment
Operator
Contoh Hasil
= $a = $b Memasukkan nilai $b ke $a
+= $a += $b Memasukkan nilai ($a + $b) ke $a. Identik dgn $a = $a + $b
-= $a -= $b Memasukkan nilai ($a - $b) ke $a. Identik dgn $a = $a - $b
*= $a *= $b Memasukkan nilai ($a * $b) ke $a. Identik dgn $a = $a * $b
/= $a /= $b Memasukkan nilai ($a / $b) ke $a. Identik dgn $a = $a / $b
.= $a .= $b Memasukkan nilai ($a . $b) ke $a. Identik dgn $a = $a . $b
%= $a %= $b Memasukkan nilai ($a % $b) ke $a. Identik dgn $a = $a % $b
|= $a |= $b Memasukkan nilai ($a | $b) ke $a. Identik dgn $a = $a | $b
&= $a &= $b Memasukkan nilai ($a & $b) ke $a. Identik dgn $a = $a & $b
^= $a ^= $b Memasukkan nilai ($a ^ $b) ke $a. Identik dgn $a = $a ^ $b
<<= $a <<= $b Memasukkan nilai ($a << $b) ke $a. Identik dgn $a = $a << $b
>>= $a >>= $b Memasukkan nilai ($a >> $b) ke $a. Identik dgn $a = $a >> $b

4.3 Level Operator (Operator Presedence)
Asosiativitas Operator

kiri ,
kiri or
kiri xor
kiri and
kanan print
kiri = += -= *= /= .= %= &= |= ^= -= <<= >>=
kiri ?:
kiri ||
kiri &&
kiri |
kiri ^
kiri &
non-asosiatif == != ===
non-asosiatif <<= >>=
kiri << >>
kiri + - .
kiri * / %
kanan ! - ++ -- (int) (double) (string) (array) (object) @
kanan [
non-asosiatif new
Listing 10 : Operator Precedence
<?
$x = 10 - 6 / 2;
echo "\$x = $x<br>";
// hasilnya 7, bukan 2, karena level * lebih tinggi dari /
$y = 27 / 9 / 3;
echo "\$y = $y";
// hasilnya 1, bukan 9, karena operator / memiliki
// asosiativitas kiri (dikerjakan dari kiri ke kanan)
?>
4.4 Skup Variabel
Secara umum, semua variabel PHP memiliki skup tunggal. Skup ini mencakup
file yang di-include dan di-require. Di dalam fungsi yang didefinisikan pengguna
(user-defined functions), yang berlaku adalah skup lokal fungsi. Variabel global
harus dideklarasikan global di dalam fungsi jika akan digunakan di dalam fungsi.
PHP juga mendukung variabel statis di dalam fungsi.

Listing 11 : Skup Variabel
<?
$global1 = "Ini sebuah contoh";
include "contoh11_inc.php";
function cetak()
{
echo "$global1<br>";
}
cetak();
function cetak2()
{
global $global1;
echo "$global1<br>";
}
cetak2();
function fungsistatis()
{
static $nilai = 0;
echo "$nilai<br>";
$nilai++;
}
fungsistatis();
fungsistatis();
?>
--- Isi file, contoh11_inc.php ---
<?
echo “$global1<br>”;
?>

4.5 Konstanta
Untuk mendefinisikan konstanta baru, gunakan fungsi define().
Listing 12 : Konstanta
<?
define(“konst_string”, “Belajar PHP”);
define(“konst_angka”, “1”);
echo “Kita telah mendefinisikan” . konst_angka .
“konstanta.<br>”;
echo “Nilainya adalah ‘” . konst_string . “’<br>”;
?>

5 Kontrol Aliran Program
5.1 if, else, elseif
if mengontrol aliran program melalui pencabangan pada ekspresi kondisional.

Listing 13 : Contoh penggunaan if, else, dan elseif
<?
if (1 < 2)
echo “Ini akan dicetak.<br>”;
else
echo “Ini tidak akan dicetak<br>”;
$nilai = 2;
if ($nilai == 1)
{
// Gunakan kurung kurawal untuk membatasi blok statement
// Hanya diperlukan untuk blok statement ganda (> 1)
echo “\$nilai == 1<br>”;
}
elseif ($nilai == 2)
{
echo “\$nilai == 2<br>”;
}
elseif($nilai == 3)
{
echo “\$nilai == 3<br>”;
}
else
{
echo “\$nilai bukan 1, 2 atau 3<br>”;
}
?>
5.2 while
While adalah tipe pengulangan yang paling sederhana di PHP.
 

5.3 do..while
Meskipun serupa dengan pengulangan while, pengulangan do..while memeriksa
kondisi pengulangan setelah eksekusi pertama dari statement pengulangan. Hal
ini memastikan bahwa statement pengulangan akan dieksekusi paling sedikit satu
kali.
Listing 14 : Contoh Penggunaan while dan do..while
<?
echo "Menghitung dari kecil ke besar menggunakan
<b>while</b>.<br>";
$indeks = 0;
// cetak angka dari 0 sampai 9
while ($indeks < 10)
{
echo "$indeks<br>";
$indeks++;
}

echo "Menghitung dari besar ke kecil menggunakan
<b>do..while</b>. <br>";
// cetak angka dari 10 sampai 1
do
{
print "$indeks<br>";
$indeks--;
} while ($indeks > 0);
?>

5.4 for
Pengulangan for adalah statement pengulangan yang paling kompleks di PHP.
Sintaksnya adalah sebagai berikut :
for (expr1; expr2; expr3) statement
Ekspresi pertama (expr1) dievaluasi sekali pada awal pengulangan. Ekspresi
kedua (expr2) dievaluasi pada tiap awal iterasi. Jika nilainya true, pengulangan
berlanjut, dan statement(s) dieksekusi. Pada akhir tiap iterasi, ekspresi ketiga
(expr3) dievaluasi. Salah satu dari ketiga ekspresi tersebut dapat dikosongkan.
Listing 15 : Contoh Penggunaan for
<?
// cetak angka dari 0 sampai 9
for ($indeks = 0; $indeks < 10; $indeks++)
{
echo "$indeks<br>";
}
/*
$indeks sekarang bernilai 10. Contoh di bawah ini
menunjukkan bahwa salah satu dari ketiga ekspresi
dapat dikosongkan.
*/
for (; $indeks > 0; $indeks--)
{
echo "$indeks<br>";
}
?>

5.5 foreach
Statement foreach adalah mekanisme yang baik untuk mengiterasi array. PHP
mendukung dua sintaks :
foreach (ekspresi_array as nama_variabel_nilai) statement
foreach (ekspresi_array as nama_variabel_kunci => nama_variabel_nilai)
statement.

Listing 16 : Contoh Penggunaan foreach
<?
$warna = array( "Merah", "Hijau", "Biru" );
foreach ($warna as $nilai)
{
echo "Nilai warna saat ini adalah $nilai<br>";
}
$warna = array ("Merah" => "#FF0000",
"Hijau" => "#00FF00",
"Biru" => "#0000FF" );
foreach ($warna as $kunci => $nilai)
{
echo "Nilai heksa dari warna $kunci adalah $nilai<br>";
}

5.6 switch
Statement switch menyederahanakan evaluasi banyak kondisi. Statement ini
sering digunakan untuk menggantikan statement if..elseif yang kompleks. Dalam
PHP, string dapat digunakan sebagai ekspresi switch.
Listing 17 : Contoh Penggunaan switch
<?
$indeks = 17;
switch ($indeks)
{
case 0:
echo "Nol<br>";
break;
case 1:
echo "Satu<br>";
break;
case 2:
echo "Dua<br>";
break;
default:
echo "Bukan nol, satu, atau dua<br>";
break;
}
?>

5.7 break dan continue
Statement break mengakhiri eksekusi struktur kontrol pada saat itu (statement
pengulangan atau switch). Statement continue hanya digunakan dalam
pengulangan. Statement continue menyebabkan PHP melewati sisa pengulangan
yang ada dan menuju ke awal iterasi selanjutnya.

Listing 18 : Contoh Penggunaan break dan continue
<?
/*
periksa apakah ada nilai yang lebih tinggi
dari nilai maksimum sekarang
*/
$angka = array (4, 5, 15, 12, 7, 3, 20, 11, 31);
$maksimum_sekarang = 17;
foreach ($angka as $nilai)
{
if ($nilai > $maksimum_sekarang)
{
$maksimum_sekarang = $nilai;
break;
}
}
echo "Nilai maksimum sekarang adalah $maksimum_sekarang<br>";
// cetak angka ganjil dari 0 sampai 20
$indeks = 0;
for ($indeks = 0; $indeks < 20; $indeks++)
{
if (($indeks % 2) == 0)
continue;
echo "$indeks<br>";
}
?>

5.8 include dan require
PHP menyediakan dua mekanisme untuk memasukkan file eksternal, yakni
include() dan require(). Statement include() adalah fungsi PHP reguler,
sedangkan require() adalah konstruksi bahasa khusus dan memiliki sejumlah
pembatasan dalam penggunaannya.
Fungsi include() dievaluasi setiap kali ditemukan dan dapat berada dalam
pengulangan atau statement kondisional. Ini berarti bahwa file dapat dimasukkan
secara kondisional atau kelompok file dapat dimasukkan dengan menggunakan
sebuah pengulangan. Fungsi include() juga membolehkan file target
menghasilkan nilai kembali (return value) dan menyimpan nilai tersebut dalam
sebuah variabel. Pemrosesan file dalam sebuah statement include() diakhiri jika
ditemukan statement return.
Statement require() berbeda dari statement include() dimana statement require()
tidak subject pada struktur kontrol apapun. Hal ini berarti file tidak dapat
dimasukkan secara kondisional dengan menggunakan require(). Statement akan
dieksekusi satu kali jika muncul di dalam sebuah penguangan atau bahkan jika
muncul di dalam sebuah statement kondisional yang hasil evaluasinya false.
Perbedaan lainnya adalah sebuah file dalam statement require() tidak akan
mengembalikan suatu nilai.

6. Fungsi
PHP mendukung pembuatan fungsi yang didefinisikan oleh pengguna (userdefined
functions). PHP mendukung fitur-fitur berikut: nama variabel fungsi,
jumlah variabel argumen, argumen default, argumen yang dikirimkan berdasarkan
nilai, dan argumen yang dikirimkan berdasarkan referensi.
Secara default, argumen dikirimkan berdasarkan nilai. Untuk mengirimkan nilai
berdasarkan referensi, awali nama variabel dengan tanda &. Ketika menggunakan
argumen default, semua argumen default harus berada di kanan semua argumen
non-default. Fungsi func_num_arg(), func_get_arg(), dan func_get_args()
tersedia untuk mendapatkan informasi tentang argumen yang dikirimkan. Contoh
di bawah ini memperlihatkan penggunaan umum dari fungsi PHP.
Listing 19 : Contoh Fungsi yang Didefinisikan Pengguna
<?
// sebuah fungsi sederhana
function tambah ($a, $b)
{
return $a + $b;
}
// dikirimkan berdasarkan referensi
function tambahstring (&$stringawal, $stringtambahan)
{
// karena dikirimkan berdasarkan referensi, nilai
// $stringawal akan berubah diluar skup fungsi ini
$stringawal .= $stringtambahan;
}
// nilai default
/*
Fungsi ini dapat dipanggil dengan :
cetaktag("href", "text");
atau
cetaktag("href", "text", "target");
*/
function cetaktag($href, $text, $targ = "")
{
if ($targ == "")
{
echo "a href=\"$href\">$text</a>";
}
else
{
echo "a href=\"$href\" target=\"$targ\">$text</a>";
}
}
// daftar argumen
function cetaksemua()
{
$jumarg = func_num_args();
for ($indeks = 0; $indeks < $jumarg; $indeks++)
{
$nilaiarg = func_get_arg($indeks);
echo "Argumen $indeks: $nilaiarg<br>";
}
}
echo ( "tambah(3, 5) : " . tambah(3,5) . "<br>");
$kalimat = "Saya sedang";
tambahstring($kalimat, "belajar PHP");
echo "$kalimat<br>";
cetaktag("contoh10.php", "Tampilkan Contoh 10 lagi");
echo "<br>";
cetaktag("contoh10.php", "Tampilkan Contoh 10 lagi, dalam
window baru", "_blank");
echo "<br>";
echo "Panggil cetaksemua(1,2,3,4,5) :<br>";
cetaksemua(1,2,3,4,5);
?>
7 Operasi File
PHP menyediakan fungsi fopen() untuk membuka file. Sintaksnya sebagai
berikut :
fopen(namafile, mode)
Mode menunjukkan operasi yang akan dilakukan pada file tersebut. Beberapa
mode yang ada dapat dilihat pada Tabel 2.
Tabel 2. Mode Operasi File
Mode Keterangan
r Membuka file hanya untuk dibaca; pointer ditempatkan di awal file.
r+ Membuka file untuk dibaca dan ditulis; pointer ditempatkan di awal file.
w Membuka file hanya untuk ditulis; pointer diletakkan di awal file dan
ukuran file dibuat nol. Jika file tidak ada, file akan dibuat.
w+ Membuka file untuk dibaca dan ditulis; pointer diletakkan di awal file
dan ukuran file dibuat nol. Jika file tidak ada, file akan dibuat.
a Membuka file hanya untuk ditulis; pointer diletakkan di akhir file. Jika
file tidak ada, file akan dibuat.
a+ Membuka file untuk dibaca dan ditulis, pointer diletakkan di akhir file.
Jika file tidak ada, file akan dibuat.
Listing 20 : Hit Counter
<?
$file=”counter.txt”;
$fp=fopen($file,"r");
$jumlah=fgets($fp,255);
fclose($fp);
$fw=fopen($file,"w");
$hit =$hit +1;
flock($fw,1);
fputs($fw,$hit);
fclose($fw);
echo “Hit Counter : $hit”;
?>
 
8 MySQL
MySQL adalah suatu sistem manajemen database. Suatu database adalah suatu
koleksi data terstruktur. Data tersebut dapat berupa apa saja, dari list sederhana
sampai sebuah galeri gambar. Untuk menambah, mengakses, dan memproses data
yang tersimpan dalam sebuah database, dibutuhkan suatu sistem manajemen
database seperti halnya MySQL. Sejak komputer menjadi suatu alat yang
digunakan untuk menanggulangi data dalam ukuran besar, manajemen database
memegang peranan utama dalam perhitungan, sebagai utilitas tunggal maupun
sebagai bagian dari aplikasi lain.
MySQL adalah suatu sistem manajemen database relasional. Suatu database
relasional menyimpan data dalam tabel yang terpisah. Hal ini menambah
kecepatan dan fleksibilitas. Tabel-tabel tersebut terhubungkan oleh suatu relasi
terdefinisi yang memungkinkan memperoleh kombinasi data dari beberapa tabel
dalam suatu permintaan. SQL (Structured Query Language) adalah bahasa
standar yang digunakan untuk mengakses database.
MySQL adalah perangkat lunak open source. Open source berarti dapat
digunakan dan dimodifikasi oleh siapa saja. Semua orang dapat men-download
MySQL dari internet dan menggunakannya secara gratis.
Untuk administrasi database, seperti pembuatan database, pembuatan tabel, dan
sebagainya, dapat digunakan aplikasi berbasis web seperti phpMyAdmin.
 
8.1 SQL Dasar
8.1.1 Ambil Data
SELECT * FROM namatabel WHERE kondisi ORDER BY namafield

8.1.2 Tambah Data
INSERT INTO namatabel (field_1, field_2, …, field_n) VALUES
(nilai_1, nilai_2, …, nilai_n) WHERE kondisi
 
8.1.3 Hapus Data
DELETE FROM namatabel WHERE kondisi
 
8.1.4 Perbarui Data
UPDATE namatabel SET kolom_1=nilai_1, kolom_2=nilai_2,
kolom_n=nilai_n WHERE kondisi
 

8.2 Administrasi Database dengan phpMyAdmin
8.2.1 Membuka phpMyAdmin
Jika Anda telah menginstall phpTriad, phpMyAdmin sudah terinstall di direktori
apache/htdocs/phpMyAdmin. Jalankan Apache (Start-Program-phpTriad-Start
Apache) dan MySQL (Start-Program-phpTriad-Start MySQL), kemudian buka
Internet Explorer. Pada kolom address, tuliskan : http://127.0.0.1/phpMyAdmin,
lalu “Enter”. Tampilan muka phpMyAdmin akan muncul seperti gambar pada
halaman berikut. Frame sebelah kiri memperlihatkan daftar database dan tabel
yang ada, dan frame sebelah kanan menampilkan halaman untuk membuat
database.

8.2.2 Membuat Database
Tuliskan nama database yang ingin Anda buat pada kolom “Create New
Database”, dan klik tombol “Create”.

8.2.3 Membuat Tabel
Lihat Gambar di halaman 16. Pada bagian “Create new table on database xxx”,
tuliskan nama tabel pada kolom “Name” dan jumlah fields pada kolom “Fields”
dan klik “Go”. Formulir seperti gambar di bawah ini akan tampil. Tuliskan nama
field, type, length/set, attributes, null, default, extra pada kolom yang disediakan.
Jika suatu field ingin dijadikan Primary Key, beri tanda (v) pada kolom
“Primary”. Setelah selesai, klik “Save” untuk menyimpan tabel.

8.2.4 Administrasi Tabel
Pada frame di sebelah kiri, jika Anda mengklik tanda (+) di samping nama
database maka nama tabel-tabel yang ada di dalam database itu akan muncul di
bawahnya. Di frame sebelah kanan, Anda dapat memilih “Browse” untuk melihat
isi tabel, “Select” untuk menampilkan isi tabel berdasarkan kriteria tertentu,
“Insert” untuk memasukkan data ke dalam tabel, “Properties” untuk
menambah/menghapus/mengubah field, “Drop” untuk menghapus tabel, dan
“Empty” untuk mengosongkan tabel.

8.2.5 Mengambil Struktur dan Isi Database
Lihat gambar di halaman 17. Paga bagian “View dump (schema) of database”,
pilih “Structure and data” untuk mengambil informasi tentang struktur dan data
dari tabel-tabel yang telah dibuat. Beri tanda (v) pada “Send” dan klik “Go”
untuk menyimpannya ke dalam file.

Pemrograman PHP & MySQL

Pada awalnya PHP merupakan singkatan dari Personal Home Page tools, sebuah
tool (alat bantu) untuk memonitor pengunjung suatu web. PHP mula-mula dikembangkan oleh
Rasmus Lerdofr. Istilah PHP kemudian lebih mengacu pada Hypertext Prepocesor.
PHP kemudian lebih dikembangkan untuk membangun aplikasi web, mendukung
database (i.e mySQL/Oracle) dan memproses berbagai form. Untuk dapat menjalankan PHP
dibutuhkan suatu sistem yang telah terkonfigurasi dengan baik. Sistem ini meliputi suatu web
server (i.e Apache Web Server), tools (PHP) dan database (MySQL). Ketiganya merupakan
suatu bentuk open source yang dapat berjalan multi platform (Windows maupun Linux/Unix).
1. à Instalasi Apache Web Server, PHP dan MySQL dengan XAMPP
Anda dapat menggunakan program XAMPP untuk menginstal sistem PHP. Program
ini sudah menyediakan satu paket instalasi PHP yang meliputi Apache Web Server, PHP
dan MySQL.

2. à Pembuatan Database

Pertama, kita akan membuat database, dengan nama database shoutbox. Setelah
membuka browser dan muncul tampilan seperti di atas (http://localhost/phpMyAdmin/),
dikolom Create new database ketikkan shoutbox dan klik tombol create.
Pada pembuatan nama database yang terdiri lebih dari satu kata, jangan
menggunakan tanda “-“ (strip) atau “ “ (spasi). Anda dapat menggunakan tanda “_” (garis
bawah) untuk memisahkan kedua kata.
Sebuah database dapat berisi beberapa tabel yang berisi informasi pendukung web,
seperti informasi mahasiswa, dosen, buku, dll. Setelah membuat database buatlah tabel
testimonial dengan mengetikkan pada Create new table on database shoutbox dengan
jumlah fields 7, kemudian klik go. Fields merupakan unsur penyusun basis data.
Field tersebut meliputi id, name, email, web, ip_client, date, comment. Masukkan
nama masing-masing variabel field beserta type dan panjang karakter maksimal.

- Type INT berarti pada field tersebut hanya bisa diisi angka, sedangkan varchar (variable
character) berisi karakter/huruf.
- Length/Values berarti jumlah karakter maksimal yang bisa diisikan. Pada kolom Null,
Null berarti optional (boleh tidak diisi).
- DateTime adalah format tanggal(tahun-bulan-tanggal) dan waktu(jam:menit:detik) yang
berfungsi untuk menyimpan data tanggal & waktu.
- Sedangkan not null berarti kolom tersebut tidak boleh kosong. Kemudian pada kolom
extra pilih auto_increment. Simpan data yang telah diisikan dengan mengklik pada save
dibagian bawah tabel atau jika anda merasa bahwa jumlah baris field yang dibutuhkan
kurang, Anda dapat menambahkannya lagi dengan mengisi jumlah kolom pada Add …
field(s) dan klik tombol Go. Berikut hasil tampilan pembuatan tabel.

3. à Membuat skrip koneksi Database

Agar Database yang telah kita buat dapat terhubung dengan halaman web, maka
perlu dibuat koneksi ke database tersebut. Buka aplikasi DreamWeaver pilih PHP pada
menu Create New.

4. à Menyimpan file PHP

Selanjutnya anda harus menyimpan file tersebut ke sebuah folder web di
C:\Program Files\xampp\htdocs\shoutbox. Pilih menu File à Save atau dengan
shortcut tombol keyboard Ctrl+S.
Jika anda belum membuat folder shoutbox, ilahkan membuat folder baru di
C:\Program Files\xampp\htdocs\ dengan meng-klik ikon Create New Folder. Beri nama
folder tersebut shoutbox. Silahkan masuk ke dalam folder tersebut dengan cara double
klik(mouse) atau tekan tombol ENTER(keyboard) pada ikon folder shoutbox.
Selanjutnya pada kolom File name: ketikkan config.php, tekan Save.

5. à Tes Koneksi

Silahkan buka browser dan di address bar browser ketikkan localhost/shoutbox,
tekan ENTER. Akan terlihat tampilan sebagai berikut. Klik file config.php tersebut.
Jika ya, berarti anda belum berhasil dalam membuat koneksi. Silahkan teliti kembali.
Jika hasil tampilan kosong/blank, itu menunjukkan bahwa anda telah sukses membuat
file koneksi. Selamat bagi Anda J yang telah berhasil!

6. à Membuat Form Shoutbox – shoutbox.php

Buat file baru dengan memilih menu File à New (Ctrl+N)
Pilih Tab General à Dynamic page à PHP. Klik tombol Create.
Berikut adalah form Shoutbox. Disini kita menggunakan metode pengiriman POST
dan action untuk tujuan pengiriman ke file input_shoutbox.php. Simpan file berikut
dengan nama shoutbox.php.

7. à Input Data Shoutbox – input_shoutbox.php

Selanjutnya, ketika data form shoutbox disubmit ke input_shoutbox.php, akan
terjadi proses penyimpanan data ke tabel testimonial dalam database shoutbox. Berikut
adalah skrip dari input_shoutbox.php.
Ketika proses penyimpanan data berjalan, akan terjadi pengecekan apakah proses
penyimpanan berhasil atau tidak. Jika berhasil, maka selanjutnya proses akan dilanjutkan
menuju show_shoutbox.php. Seandainya proses penyimpanan gagal, maka proses
akan kembali menuju shoutbox.php.

8. à Lihat Data Shoutbox – show_shoutbox.php

Data yang ditampilkan diurutkan berdasar id terakhir ( … order by id desc … ),
sehingga data terakhir akan ditampilkan pada posisi paling atas. Data yang akan
ditampilkan juga dibatasi dengan jumlah maksimal 10 data ( … limit 0,10 ). Data akan
diambil per baris dengan menggunakan perintah while.

9. à Membuat Form Login untuk Admin

Nah, tentunya kita perlu mengontrol komentar-komentar yang masuk. Ada kalanya
komentar tersebut perlu kita hapus dari database karena menggunakan bahasa/kata-kata
yang tidak diperkenankan.
Oleh karena itu, Langkah selanjutnya adalah membuat halaman login untuk
administrator, sehingga ia dapat mengontrol pesan-pesan/komentar-komentar yang
masuk. Pertama, kita buat terlebih dahulu form login untuk admin dengan nama file
login.php sebagai berikut.
Untuk input type password, type diisi dengan “password” agar apa yang kita ketikkan
nantinya tidak dapat terlihat. Metode yang digunakan adalah POST dan action menuju
ke file admin_login.php.

10. à Membuat Fungsi Cek Status Login

Fungsi ini digunakan untuk melakukan pengecekan status login admin. Status login
disimpan dalam bentuk SESSION. SESSION adalah memori pengingat sementara yang
berada di server suatu web. Sebenarnya status login dapat juga disimpan dalam memori
pengingat sementara yang berada di komputer client yang disebut COOKIES. Berikut
fungsi dasar untuk melakukan pengecekan login admin secara sederhana yang disimpan
dengan nama function.php.
Selanjutnya kita memerlukan pemanggilan fungsi masuk( ) dan fungsi AMAN( )
untuk dapat melakukan pengecekan user yang melakukan login yang disimpan dalam file
admin_login.php.

11. à Membuat Halaman View Shoutbox untuk Admin
Berikut adalah file admin_shoutbox.php untuk melihat data dalam tabel testimonial.

12. à File untuk menghapus data – del_shoutbox.php
Berikut file del_shoutbox.php untuk menghapus data pada tabel testimonial.

12. à Keluar dari halaman Admin – logout.php
Berikut file logout.php untuk keluar dari halaman admin.

LAMPIRAN

à PENGUJIAN WEB
1. à Proses posting testimonial
Halaman shoutbox, file
shoutbox.php. Jika data
kosong atau penulisan email
salah, maka data yang
dikirimkan tidak akan
tersimpan ke database.
Jika data berhasil
tersimpan ke database, maka
selanjutnya akan ditampilkan
halaman lihat shoutbox, file
show_shoutbox.php. Berikut
adalah tampilan data yang
berhasil tersimpan ke
database.

2. à Proses Login Admin
Halaman login admin shoutbox, file login.php. Silahkan isikan username dan
password yang telah ditentukan untuk dapat melakukan login ke halaman admin
shoutbox.

Jika anda telah berhasil login, maka anda akan masuk ke halaman lihat data bagian
admin, disini anda dapat melihat semua data testimonial Anda. Jika seandainya ada data
yang dianggap kurang berkenan untuk ditampilkan, maka anda dapat meng-klik tombol
delete comment yang ada dibawah setiap data komentar tersebut.
Silahkan coba hapus salah satu data. Lihat apa yang terjadi. Seharusnya data
tersebut akan hilang dari tampilan. Dalam program yang kita buat, belum ada pesan
peringatan jika terjadi keberhasilan proses maupun ketidakberhasilan proses. Untuk
menampilkan pesan tersebut, kita dapat menambahkannya ke dalam program dengan
bantuan COOKIES, sehingga aplikasi web kita akan menjadi lebih interaktif.
Kita akan menambahkan pesan yang disimpan dengan metode COOKIES ini dalam
file del_shoutbox.php dan admin_shoutbox.php.
Selanjutnya jika kita logout, maka kita akan menjumpai halaman login kembali.
Periksa dengan mengetikkan alamat admin_shoutbox.php untuk masuk ke halaman
kontrol admin. Lihatlah bahwa alamat di addressbar akan selalu berpindah menjadi
login.php ketika kita tekan ENTER.

Pemrograman PHP

APA dan MENGAPA PHP
PHP, 'PHP: Hypertext Preprocessor', merupakan bahasa pemrograman web dinamis layaknya ASP, JSP, Perl dan sebagainya. Lalu mengapa harus menggunakan bahasa pemrograman, apa HTML saja tidak cukup ? Ya, tentu saja HTML tidak cukup, salah satunya adalah karena sifat HTML yang statis. HTML hanya berguna untuk desain, saat kita browsing, maka yang kita lihat itu sebenarnya adalah interprestasi dari HTML. Sebagai contoh saat kita menggunakan YahooMail untuk mengirim email, maka tampilan yang dapat kita lihat tersebut merupakan interprestasi dari HTML, sedangkan untuk dapat mengirim email, digunakan bahasa pemrograman web seperti PHP.
Catatan:
Disini kita anggap HTML statis, sedang PHP dinamis. Sebelumnya kita harus menyamakan persepsi mengenai dinamis disini, yang dimaksud dinamis disini bukannya web yang dapat gerak-gerak, tetapi dinamis berarti web yang dapat diubah-ubah tanpa mengubah langsung kedalam file webnya.
PHP akhir-akhir ini semakin populer, jutaan web didunia menggunakannya, hal ini disebabkan oleh berbagai keunggulan PHP, diantaranya kemudahannya untuk dipelajari, gratis, kecepatan yang dapat diandalkan, dan sebagainya.
PHP HELLO WORLD
Kode PHP dapat disatukan dengan kode HTML sehingga mempermudah pemrogram dalam pengerjaan web. Sekarang kita akan membuat halaman php pertama kita.
<html>
<head>
<title>Hello World</title>
</head>
<body>
<?
echo "Hai ini Script PHP ku yang pertama";
?>
</body>
</html>
Ketik dan simpan script diatas dengan nama hello.php pada folder htdocs apache anda. Panggil script php anda menggunakan browser dengan url : http://localhost/hello.php

Dari script diatas dapat kita ketahui bahwa script php diawali tengan tanda <? dan diakhiri dengan ?> , tanda tersebut untuk memisahkan antara script php dan script html. Script yang berada didalam tanda <? dan ?> akan dieksekusi sebagai script php.
Echo, di PHP berfungsi untuk menuliskan sesuatu ke browser. Saat hello.php kita browse dan dilihat sourcecode-nya maka akan tempil seperti dibawah ini:
<html>
<head>
<title>Hello World</title>
</head>
<body>
Hai ini Script PHP ku yang pertama
</body>
</html>
Hal ini berarti bahwa user yang mem-browse script php hanya akan melihat scriptnya sebagai script html, sedangkan script php-nya tidak terlihat.
Berbeda dengan HTML, script PHP membedakan antara huruf besar dan huruf kecil, karenanya kita harus berhati-hati dalam penulisan script PHP.

Tips:

Sebaiknya kita selalu menuliskan script PHP dalam huruf kecil, karena lebih enak dibaca dan cenderung konstan sehingga kemungkinan salahnya lebih kecil.
Variabel, Konstanta dan Tipe data dalam PHP
VARIABEL
Variabel didalam PHP dinyatakan dengan tanda $ diikuti nama variabel, pada PHP variabel tidak perlu dideklarasikan, sehingga mempermudah untuk programmer pemula. Misalnya kita ingin menyimpan nilai Pi kedalam variabel $Pi , maka kita tinggal menuliskan $pi = 3.14; pada script PHP.
KONSTANTA
Konstanta fungsinya hampir sama dengan variabel, hanya saja nilai konstanta selalu tetap, tidak bisa diubah-ubah. Untuk mendefinisikan konstanta digunakan fungsi define(). Nilai Pi yang disimpan dalam variabel $pi diatas sebenarnya lebih cocok bila disimpan dalam konstanta, karena nilai Pi selalu tetap.
Contoh :
define("pi", 3.14);
TIPE DATA
PHP mengenal berbagai macam tipe data, mulai dari integer, float, string, array, dan object. Tipe data integer meliputi semua bilangan bulat, float meliputi semua bilangan pecahan, string untuk karakter atau kumpulan karakter, array untuk kumpulan data, sedangkan tipe data object untuk pemrograman berorientasi object yang tidak akan kita bahas lebih jauh pada buku ini.
Tipe data string harus selalu diapit tanda petik tunggal atau tanda petik ganda. Coba perhatikan script hello.php, pada baris echo "...."; terdapat kumpulan karakter yang diapit tanda petik, kumpulan karakter tersebut bertipe data string.
Dalam PHP kita akan sering menggunakan tipe data array. Tipe data array digunakan untuk menyimpan banyak data dalam satu variabel, sebagai contoh untuk memasukkan daftar siswa kedalam suatu variabel, perhatikan script dibawah :
<html>
<head>
<title>Hello World</title>
</head>
<body>
<?
$siswa[0] = 'ilma';
$siswa[1] = 'tika';
$siswa[2] = 'dina';
$siswa[3] = 'ogi';
$siswa[4] = 'sidik';
$siswa[5] = 'ayik';
$siswa[6] = 'momon';
$siswa[7] = 'ippin';
for ($i=0; $i<7; $i++) {
echo "variabel \$siswa[$i] bernilai $siswa[$i] <br/>";
}
?>
</body>
</html>

Anda tidak perlu khawatir jika belum tahu maksud dari perintah for dari script diatas, kita akan membahasnya pada bab berikutnya. Pada script diatas pertama-tama dimasukkan data siswa kedalam variabel array $siswa, kemudian ditampilkan nilainya kebrowser.
Lebih jauh kita akan membahas tipe data array pada bab-bab berikutnya.
VARIABEL DARI FORM HTML
Untuk mengirimkan variabel dari satu halaman ke halaman lainnya atau kehalaman itu sendiri biasa digunakan form HTML. Form HTML akan mengirimkan variabel ke webserver, sehingga di webserver variabel tersebut menjadi input yang akan diolah oleh script PHP yang anda buat. Berikut adalah contoh penggunaan variabel dalam form :
<?
if ($submit){
echo "Nama : $nama <br/>";
echo "Email : $email<br/>";
echo "Alamat : $alamat<br/>";
echo "Pesan: <br/> $pesan<br/>";
echo "<hr/>";
}
?>
<html>
<head>
<title>Variabel dari Form</title>
</head>
<body>
<form action="form_variabel.php" method="post">
<p>Nama :
<input type="text" name="nama">
<br>
Email :
<input type="text" name="email">
<br>
Alamat :
<input type="text" name="alamat">
<br>
Pesan :<br>
<textarea name="pesan"></textarea>
<br>
<br>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</p>
</form>
</body>
</html>
Ketik dan simpanlah ke form_variabel.php, kemudian coba isi formnya dan klik tombol submit, amati apa yang terjadi.

Saat tombol submit diklik, form akan mengirim variabel ke file tujuan yang tertera pada atribut action pada form. Karena pada script diatas atribut action menunjuk ke form_variabel.php (file itu sendiri) maka variabel dikirim ke file form_variabel.php. File form_variabel.php mengirim beberapa variabel, yaitu variabel $nama, email, $alamat, $pesan, dan $submit, yang kemudian variabel-variabel tersebut dicetak apabila tombol submit sudah diklik. Apabila tombol submit sudah diklik, maka variabel $submit akan bernilai TRUE, hal ini digunakan untuk mengecek apakah tombol submit sudah diklik atau belum.
 
OPERATOR dan STATEMENT
 
OPERATOR
Operator berguna untuk melakukan suatu operasi pada suatu nilai. Operator di PHP sangatlah umum sehingga mudah untuk dipahami. Disini kita akan membahas operator yang sering digunakan.
Operator Aritmatika
$x + $y ; //untuk penjumlahan
$x - $y ; //untuk pengurangan
$x * $y ; //untuk perkalian
$x / $y ; //untuk pembagian
$x % $y ; //untuk sisa hasil bagi
Operator Assignment
$x = $y ;
$x += 1; //sama dengan $x = $x + 1;
$x -= 1; //sama dengan $x = $x - 1;
$x *= 1; //sama dengan $x = $x * 1;
$x /= 1; //sama dengan $x = $x / 1;
Operator Perbandingan
$x == $y; //sama dengan, jika $x sama dengan $y akan menghasilkan TRUE, jika tidak sama menghasilkan FALSE
$x === $y; //identik
$x != $y; //tidak sama dengan
$x < $y; //lebih kecil dari
$x > $y; //lebih besar dari
$x <= $y; //lebih kecil atau sama dengan
$x >= $y; //lebih besar atau sama dengan
Operator Increment dan Decrement
$x++; //operasi dilaksanakan, baru nilai $x ditambah satu
$x--; //operasi dilaksanakan, baru nilai $x dikurang satu
++$x; //sama dengan nilai $x ditambah satu baru operasi dijalankan
--$x; //sama dengan nilai $x dikurang satu baru operasi dijalankan
STATEMENT
Statement digunakan untuk mengontrol alur program. Beberapa statement PHP diadopsi dari bahasa C, sehingga bagi anda yang sudah pernah menggunakan C akan jauh lebih mudah
dalam memahami statement di PHP. Pada bab ini hanya akan dibahas sekilas mengenai statement, lebih dalam kita akan melanjutkannya bersamaan dalam pembuatan aplikasi.
Statemenet if
if, yang berarti jika, digunakan untuk mengecek apakah suatu syarat dalam if terpenuhi, apabila dipenuhi maka suatu operasi dilakukan, perhatikan contoh dibawah :
<?
$nama = 'castle';
if ($nama == 'castle') {
echo "Rumah saya berbentuk $nama";
}
?>
Statement if .. else
Seperti halnya statement if, statement if .. else akan mengecek apakah syarat pada if terpenuhi, jika ya maka operasi dibawah if dilakukan, jika tidak maka operasi yang dibawah else yang dilakukan.
<?
$kondisi = 'lapar';
if ($kondisi == 'lapar) {
echo "Aku akan beli makanan";
}else {
echo "Aku tidak akan beli makanan";
}
?>
Statement switch
Statement switch digunakan untuk membandingkan syarat dengan berbagai nilai.
<?
$umur = 2;
switch ($umur){
case 1 :
echo "Bayi itu masih sangat kecil";
break;
case 2 :
echo "Bayi itu sudah sangat lincah";
break;
case 3 :
echo "Anak itu sudah tampak kecerdasannya";
break;
case 4 :
echo "Anak itu sangat gembira masuk taman kanak-kanak";
}
?>
While Loop
While, akan mengeksekusi suatu perintah secara berulang-ulang, sampai kondisi pada while tidak terpenuhi.
Contoh:
<?
$i = 0;
while ($i <= 10) {
echo "nilai i sekarang adalah $i <br />";
$i++;
}
?>
Program tersebut akan menuliskan nilai hingga i lebih besar dari 10.

For Loop

For digunakan untuk looping dengan memasukkan nilai awal, selama syaratnya terpenuhi. Bentuk umum For adalah sebagai berikut :
for (syarat1; syarat2; syarat3) {
operasi
}
syarat1 merupakan nilai awal, dijalankan sekali saat operasi loop dilakukan.
syarat2 merupakan kondisi yang selalu dicek setiap looping, apabila syarat terpenuhi maka operasi dilakukan dan mengeksekusi syarat3, jika tidak maka looping berhenti. Syarat 1 hingga 3 diatas tidak harus diisi, anda bisa mengosongkannya.
Perhatikan contoh berikut:
<?
for ($i=0; $i <=10; $i++){
echo "$i";
}
?>
Pada saat looping akan dijalankan, nilai $i diset menjadi 0; kemudian dicek apakah syarat kedua memenuhi, jika ya maka operasi echo dilakukan kemudian nilai $i dinaikkan 1 (syarat3 : $i++),jika tidak looping berhenti.
 
FUNGSI

<?
//menghitung rumus abc
// data 1
$a = 2;
$b = 3;
$c = 1;
$hasil_x1 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
$hasil_x2 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
echo "x1 = $hasil_x1 <br/>";
echo "x2 = $hasil_x2 <br/><br/>";
// data 2
$a = 5;
$b = 7;
$c = 1;
$hasil_x1 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
$hasil_x2 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
echo "x1 = $hasil_x1 <br/>";
echo "x2 = $hasil_x2 <br/><br/>";
// data 3
$a = 22;
$b = 145;
$c = 4;
$hasil_x1 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
$hasil_x2 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
echo "x1 = $hasil_x1 <br/>";
echo "x2 = $hasil_x2 <br/><br/>";
?>

Fungsi akan sangat membantu dalam pemrograman berskala besar, karena fungsi yang pernah dibuat dapat dipakai kembali(reusable). Program diatas dapat disederhanakan menggunakan fungsi sbb:
<?
// menghitung rumus abc dengan menggunakan fungsi
function hitung_abc($a, $b, $c) {
$hasil_x1 = (-1*$b + sqrt($b*$b - 4*$a*$c)) / 2*$a;
$hasil_x2 = (-1*$b - sqrt($b*$b - 4*$a*$c)) / 2*$a;
echo "x1 = $hasil_x1 <br/>";
echo "x2 = $hasil_x2 <br/><br/>";
}
//data 1
hitung_abc(2, 3, 1);
// data 2
hitung_abc(5, 7, 1);
// data 3
hitung_abc(22, 145, 4);
?>

APLIKASI PHP dan MySQL dalam SITUS BERITA

Mungkin anda sudah mulai jenuh dari isi buku ini, sepanjang membaca mempelajari buku ini anda belum membuat satu aplikasipun, sekaranglah saatnya!!! Dengan bermodalkan pengetahuan sekilas mengenai PHP, MySQL dan HTML pada bagian awal buku ini, anda sudah mampu membuat situs berita yang sederhana.
Anda pasti sudah sering mengunjungi situs berita seperti detik.com (http://detik.com) atau kompas (http://kcm.com). Pada suatu situs berita akan ada halaman depan dimana pengunjung dapat membaca berita, selain itu juga ada halaman khusus untuk wartawan atau administrator untuk mengupdate berita, sehingga berita akan dengan mudah diupdate tanpa bersentuhan dengan HTML. Coba bayangkan apabila situs semacam detik.com harus selalu mengubah tampilannya dengan mengedit html, padahal masuknya berita baru hampir setiap 5 menit.
HTML, disini berperan sebagai desain yang akan dilihat user melalui browser. MySQL sebagai database penyimpan setiap berita yang masuk. Sedang PHP akan mengambil berita dari database(mySQL) kemudian menampilkan secara dinamis kedalam HTML yang akan dibaca user. Jadi, user hanya akan tahu adanya HTML, sedangkan PHP dan MySQL operasinya tersembunyi di server.
Stuktur Database
Petama-tama buatlah sebuah database dengan nama `berita_db`. Kemudian buat sebuah tabel untuk menyimpan berita dengan nama `berita`.
CREATE TABLE `berita` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`judul` VARCHAR( 255 ) NOT NULL ,
`isi` TEXT NOT NULL ,
`tanggal` DATE NOT NULL ,
PRIMARY KEY ( `id` )
);

Struktur tabel berita.

Tabel berita terdiri dari 4 field, yang pertama adalah id, field id merupakan identitas dari tiap baris pada tabel berita. Field id bisa kita analogikan sebagai nomor KTP dari tiap penduduk, dimana setiap penduduk mempunyai nomor KTP yang berbeda sebagai identitas uniq. Field id mempunyai atribut AUTO_INCREMENT yang berarti setiap anda memasukkan(INSERT) baris baru pada tabel berita dan nilai id nya tidak ditentukan, maka secara otomatis MySQL akan memasukkan nilai id. Field kedua, yaitu judul, yang berisi judul dari berita. Field ketiga, dengan nama isi, nantinya akan digunakan untuk menyimpan isi dari berita. Sedangkan field terakhir, yaitu tanggal digunakan untuk menyimpan tanggal masuknya suatu berita.
Bagian Tampilan Berita
Disini kita akan membuat tampilan untuk situs berita kita, bagian inilah yang nantinya akan diakses oleh orang secara umum. Secara umum yang dilakukan oleh bagian ini adalah connect ke database, kemudian mengambil berita yang akan ditampilkan dari database, baru menuliskannya ke browser.
Connect database
Buatlah file dengan nama index.php. Untuk dapat connect ke database MySQL melalui PHP, harus dilakukan 2 langkah sbb:
1. Connect ke MySQL dengan memasukkan host, username MySQL, dan password.
sintaksnya adalah sebagai berikut:
mysql_connect('host', 'username', 'password');
2. Memilih database yang akan digunakan.
sintaks:
mysql_select_db('nama_database');
Mengambil data dari database
PHP menyediakan fungsi khusus untuk query database MySQL, yaitu :
mysql_query("perintah mysql");
Untuk mengambil data dari tabel berita, digunakan perintah SELECT, yaitu:
"SELECT * FROM berita ORDER BY id DESC"
Dalam bahasa keseharian kita, perintah SELECT tadi berarti memilih semua field dari tabel berita dan diurutkan berdasarkan id secara menurun (dari besar menuju kecil). Mengapa datanya diurutkan dari besar ke kecil? Karena situs berita pasti menampilkan data mulai dari yang terbaru hingga data yang paling lama, padahal baris terbaru pada tabel akan diletakkan pada bagian akhir tabel.
Perintah SQL tadi selanjutnya di query dengan menggunakan mysql_query, dan hasilnya disimpan kedalam suatu variabel, agar nantinya variabel ini dapat diolah untuk menampilkan hasil query tadi.
contoh:
$result = mysql_query("SELECT * FROM berita ORDER BY id DESC");
Menampilkan data ke browser
Setelah kita mengambil data dari database, selanjutnya adalah menampilkannya ke browser, sehingga pengunjung dapat membaca berita terbaru. Untuk menampilkan hasil query ke browser, caranya adalah dengan mengkonversi hasil query kedalam array, kemudian dengan peintah while dituliskan datanya ke browser. Sebaiknya kita langsung memperhatikan contohnya sebagai berikut:
while ($data = mysql_fetch_row($result)){
echo "<hr/>";
echo "<b> $data[1] </b><br/>";
echo "$data[2] <br/>";
echo "tanggal: $data[3] <br/>";
}
mysql_fetch_row() adalah fungsi php yang digunakan untuk mengkonversi hasil query (pada contoh sebelumnya disimpan dalam variabel $result) kedalam array. Pada contoh diatas, hasil konversi yang berupa array disimpan dalam variabel $data. Kemudian program mengecek apakah proses pengkonversian berhasil, bila berhasil maka loop while dijalankan sehingga akan menuliskan nilai dari tiap nilai variabel array $data. Loop while akan terus berulang hingga mysql_fetch_row() mencapai baris terakhir dari data hasil query. Lalu apa yang dimaksud dengan $data[2], $data[3] dan semacamnya itu? $data[2] berarti isi dari field ketiga dari data hasil query select, ingat array secara default selalu diawali dari index 0. Jadi secara lengkapnya isi dari variabel array data adalah sebagai berikut:
$data[0] = nilai dari field id
$data[1] = nilai dari field judul
$data[2] = nilai dari field isi
$data[3] = nilai dari field tanggal
Perhatikan isi lengkap dari file index.php dibawah:
<?
// file : index.php
// membuat halaman untuk menampilkan berita
?>
<html>
<head>
<title>Situs Berita</title>
</head>
<body>
<?
// connect ke database
mysql_connect("localhost", "oggix", "password");
mysql_select_db("berita_db");
// mengambil data dari tabel
$result = mysql_query("SELECT * FROM berita ORDER BY id DESC");
// mengkonversi data kedalam array, dan menampilkannya kebrowser
while ($data = mysql_fetch_row($result)){
echo "<hr/>";
echo "<b> $data[1] </b><br/>";
echo "$data[2] <br/>";
echo "tanggal: $data[3] <br/>";
}
?>
</body>
</html>

Bagian Halaman Administrator/Wartawan
Pada bagian halaman administrator disediakan form untuk mengisi berita baru. Halaman ini tidak perlu dipublikasikan kepada khalayak, karena yang berhak mengisi berita hanyalah administrator dan wartawan situs berita anda. Secara umum yang dilakukan oleh bagian ini adalah setiap form berita diisi dan tombol submit diklik, maka program akan connect ke database, kemudian memasukkan isi dari form tadi ke database.
Membuat form isian berita
Pertama-tama buatlah sebuah form untuk mengisi berita, yang terdiri dari judul, isi berita, dan tombol submit. Form id dan tanggal tidak perlu dibuat karena field id akan diisi oleh MySQL secara otomatis, begitu pula field tanggal akan kita buat agar secara otomatis terisi tanggal pada saat itu.
<html>
<head>
<title>Administrator Situs Berita</title>
</head>
<body>
<form name="form1" method="post" action="">
Judul :
<input type="text" name="judul">
<br>
isi :<br>
<textarea name="isi" cols="45" rows="10"></textarea>
<br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</form>
</body>
</html>
Memasukkan data kedalam database
Untuk memasukkan suatu data kedatabase digunakan perintah INSERT. Perhatikan contoh berikut:
INSERT INTO berita VALUES ('', '$judul', '$isi', NOW() );
Perintah diatas dapat diartikan memasukkan ke dalam tabel berita dengan nilai id = '', nilai judul adalah '$judul', nilai isi = '$isi', dan nilai tanggal = NOW().
Nilai dari field id sengaja dikosongkan, karena apabila kosong maka MySQL secara otomatis akan menggantikannya dengan nilai angka sesuai urutan barisnya, ingat field id mempunyai atribut AUTO_INCREMENT. Field judul diisi dengan $judul, $judul merupakan variabel yang dikirim oleh form dari input judul. Field isi diisi dengan $isi dimana $isi adalah variabel yang dikirim oleh form dari input text isi. Sedangkan field tanggal diisi dengan NOW(), NOW() merupakan fungsi dari MySQL yang menghasilkan output tanggal saat ini, jadi hal ini berarti field tanggal diisi dengan tanggal saat itu.
Seperti halnya dalam mengambil data dari database(SELECT), pada saat memasukkan (INSERT) juga menggunakan fungsi mysql_query(), tapi ingat bahwa sebelum melakukan query kita harus connect kedatabase terlebih dahulu. Jadi perintah INSERT tersebut di query melalui PHP menjadi:
mysql_query("INSERT INTO berita ('', '$judul', '$isi', NOW() )");
Perhatikan isi dari file admin secara lengkap dibawah ini:
<?
// file : admin.php
// membuat aplikasi halaman admin untuk menambah berita
if ($submit) {
mysql_connect("localhost", "oggix", "password");
mysql_select_db("berita_db");
$result = mysql_query("INSERT INTO berita VALUES ('', '$judul', '$isi', NOW() )");
if ($result) {
echo "Data Berhasil dimasukkan";
}
}
?>
<html>
<head>
<title>Administrator Situs Berita</title>
</head>
<body>
<form name="form1" method="post" action="">
Judul :
<input type="text" name="judul">
<br>
isi :<br>
<textarea name="isi" cols="45" rows="10"></textarea>
<br>
<input type="submit" name="submit" value="Submit">
<input type="reset" name=" " value="Reset">
</form>
</body>

 
Design by Andhika Yuswanto | Bloggerized by Kunir - JAWA TIMUR | UNIVERSITAS JEMBER