Anda di halaman 1dari 25

Dasar Pemrogramman WAP dengan WML dan PHP/MySQL

Untuk membuat aplikasi WAP yang berjalan dinamis, maka Anda dapat mengkolaborasikan skrip WML dengan pemrograman PHP. Seperti halnya dengan aplikasi Web, PHP merupakan salah satu bahasa pemrograman yang mampu menciptakan program web menjadi lebih dinamis. Dengan menggunakan program PHP, Anda tidak hanya membuat program WAP dengan tampilan yang statis. Akan tetapi Anda dapat mengakses database seperti MySQL. Dengan menggunakan database terebut, Anda dapat menyimpan data-data berita didalamnya, dan menampilkannya pada halaman browser.

Embeded PHP
PHP (PHP Hypertext Preprocesor) merupakan bahasa pemrograman yang tergolong ke dalam jenis Interpreter. Untuk menjalankan skripnya, program ini harus diletakkan pada direktori root pada web server. Pada pembahasan ini Kita masih akan menggunakan Apache sebagai web servernya. Skrip PHP sangat mudah digunakan, salah satunya adalah bahwa skrip PHP dapat berjalan secara embeded di dalam tag-tag WML. Untuk membuat program WAP berbasis PHP, maka pada setiap halaman harus Anda kenalkan bahwa program tersebut adalah skrip WAP. Caranya adalah dengan memberikan header pengenal berikut:
header('Content-type:text/vnd.wap.wml');

Selain itu, Anda juga harus menampilkan pengenal Skrip WML ke dalam versi penulisan PHP, yaitu dengan memberikan parameter echo. Perhatikan cara berikut:
echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">');

Setelah itu, Anda dapat melanjutkan dengan tag-tag WML yang lain. Setelah ketiga baris tag di atas, maka Anda dapat menuliskan kode WML baik dengan cara PHP maupun dengan cara menuliskannya secara biasa (WML murni).

Yang perlu Anda ingat, bahwa untuk membuat program WAP yang dinamis dengan PHP, maka penyimpanan file programnya juga harus menggunakan ekstensi .php.

Sebagai contoh, Anda dapat melihat dua teknik penulisan WML di dalam program PHP, serta PHP yang embeded di dalam WML.
Listing Program : embeded.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">');

echo "<wml>"; echo "<card title=".:: Dasar PHP WML ::." newcontext="true">"; echo "<p> Menggunakan PHP </p>"; echo "</card>"; echo "</wml>"; ?>

Skrip di atas juga dapat Anda tulis dengan cara berikut:

Listing Program : embeded.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>');

echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: Dasar PHP WML ::." newcontext="true"> <p> Menggunakan PHP </p> </card> </wml>

Kedua listing program di atas akan mengahasilkan keluaran yang sama, perhatikan gambar berikut:

Gambar 1. Program PHP dan WML sederhana

Menampilkan Data
Setelah cara yang telah dijelaskan di atas dipenuhi, maka Anda dapat membuat isi program dengan baik menggunakan tag WML maupun dengan skrip PHP. Semua kode-kode PHP yang pernah Anda ketahui sebelumnya dapat Anda gunakan disini. Sebagai contoh, Anda dapat melihat listing program berikut:

Listing Program : menampilkan-data.php

header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">');

?> <wml> <card title=".:: Dasar PHP WML ::." newcontext="true"> <p align="center"> <big> <?php $tanggal=date('d-m-Y'); echo "<b><br/>Selamat datang PHP dan WML</b><br/>"; echo "Sekarang tanggal $tanggal"; ?> </big> </p> </card> </wml>

Listing program di atas Kita berniat untuk menampilkan data tanggal sekarang. Fungsi yang digunakan adalah date, kemudian hasil dari tanggal akan disimpan pada variabel $tanggal. Perhatikan skrip berikut:

$tanggal=date('d-m-Y');

Selanjutnya data yang ada di dalam variebal $tanggal akan ditampilkan dalam browser/emulator. Perintahnya adalah:

echo "Sekarang tanggal $tanggal";

Dengan menggunakan cara di atas, maka emulator akan menampilkan data tanggal yang berjalan sekarang. Perhatikan hasilnya seperti gambar berikut:

Gambar 2. Menampilkan data tanggal

Dasar Logika If
If merupakan operator PHP yang digunakan untuk membuat kondisi dengan satu pilihan, bentuk penulisannya adalah:
if(ekspresi) { pernyataan }

Pada sintaks di atas, kondisi akan mengerjakan kolom pernyataan apabila ekpresinya bernilai benar. Apabila ekspresi bernilai salah, maka program tidak mengerjakan apa-apa. Contohnya Anda dapat melihat listing program berikut: Listing Program : logikaif.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: Dasar PHP WML ::." newcontext="true">

<p align="center"> <small>

<?php $gaji=30000; if ($gaji <= 350000) { echo "<br/><big><b>"; echo "Gaji Rp.$gaji,- tidak memenuhi UMR Jogja"; echo " </b></big>"; } ?>

</small> </p> </card> </wml>

Pada listing program di atas, pertam kita memiliki variabel bernama $gaji yang bernilai 30000. Selanjutnya variabel tersebut dikondisikan apabila $gaji lebih kecil atau sama dengan nilai 3500, maka data di dalam kalang akan dikerjakan. Apabila tidak program berhenti. Dengan logika di atas, maka hasilnya adalah:

Gambar 3. Hasil pembuatan kondisi if

Dasar Logika If-Else


If-else merupakan operator yang dapat digunakan untuk membuat kondisi dengan dua pilihan. Perhatikan sintaks berikut:

if(ekspresi) { pernyataan 1 } else { pernyataan 2 }

Dari sintaks di atas, apabila ekspresi bernilai benar, maka program akan mengerjakan operasi yang ada di dalam pernyataan1. sedangkan apabila ekspresinya salah program akan mengerjakan operasi yang ada di dalam pernyataan 2. Sebagai contoh Anda dapat melihat pada listing program sederhana berikut.

Listing Program : logikaif-else.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: Dasar PHP WML ::." newcontext="true"> <p align="center"> <small>

<?php $gaji=450000; if ($gaji >= 350000) { echo "<br/><big><b>"; echo "Gaji Rp.$gaji,- memenuhi UMR Jogja"; echo "</b></big>";

} else { echo "<br/><big><b>"; echo "Gaji Rp.$gaji,- tidak memenuhi UMR Jogja"; echo "</b></big>"; } ?>

</small> </p> </card> </wml>

Pada program di atas pertama kali Kita membuat variabel dengan nama $gaji, nilai dari variabel tersebut berisi angka 450000. Logika yang digunakan adalah Apabila nilai dari variabel $gaji lebih besar atau sama dengan 350000, maka gaji tersebut telah memenuhi UMR (Upah Minimum Regional) Jogja. Sedangkan apabila tidak memenuhi syarat tersebut, maka gaji tersebut tidak memnuhi UMR Jogja. Apabila dijalankan, maka bentuk tampilannya adalah.

Gambar 4. Hasil program if-else

Dasar Logika If-Else-If


If-else-if merupakan bentuk operator yang paling lengkap diantara operator if sebelumnya. Dengan

menggunakan operator tersebut, maka Anda dapat membuat program dengan banyak pilihan (multiple choice). Perhatikan teknik penulisannya:

if(ekspresi 1) { pernyataan 1} else if(ekspresi 2) { pernyataan 2 } else { pernyataan 3 }

Pada sintaks di atas dapat dijelaskan proses berjalannya program sebagai berikut: 1. Pertama kali kondisi melakukan pemeriksaan pada ekspresi 1, apabila benar maka pernyataan 1 akan dikerjakan. 2. Apabila ekspresi 1 bernilai salah, maka program akan memeriksa pada ekspresi 2. 3. Apabila ekspresi 2 bernilai benar, maka pernyataan 2 akan dikerjakan. 4. Sedangkan apabila semua ekspresi 1 dan ekspresi 2 juga salah, maka pernyataan 3 yang akan dikerjakan. Sebagai contoh, Anda dapat melihat skrip berikut: Listing Program : logikaif-else-if.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: Dasar PHP WML ::." newcontext="true"> <p align="center"> <small> <?php $bulan=date('m');

echo "<br/><big><b> Sekarang bulan if ($bulan==1)

</b></big>";

{ echo "<br/><big><b> Janurai </b></big>"; } else if ($bulan==2) { echo "<br/><big><b> Februari </b></big>"; } else if ($bulan==3) { echo "<br/><big><b> Maret </b></big>"; } else if ($bulan==4) { echo "<br/><big><b> April </b></big>"; } else if ($bulan==5) { echo "<br/><big><b> Mei </b></big>"; } else if ($bulan==6) { echo "<br/><big><b> Juni </b></big>"; } else if ($bulan==7) { echo "<br/><big><b> Juli </b></big>"; } else if ($bulan==8) { echo "<br/><big><b> Agustus </b></big>"; } else if ($bulan==9) { echo "<br/><big><b> September </b></big>";

} else if ($bulan==10) { echo "<br/><big><b> Oktober </b></big>"; } else if ($bulan==11) { echo "<br/><big><b> November </b></big>"; } else if ($bulan==12) { echo "<br/><big><b> Desember </b></big>"; } ?> </small> </p> </card> </wml>

Listing program di atas digunakan untuk menampilkan nama bulan ke dalam bahasa Indonesia. Pertama kali Kita menggunakan fungsi date yang dapat menampilkan nama bulan ke dalam bentuk angka (1 .. 12). Dari angka yang didapatkan Kita kondisikan. Bentuk kondisinya adalah sebagai berikut: 1. Pertama menampilkan bulan ke dalam variabel $bulan. 2. Apabila mendapatkan $bulan bernilai 1, maka akan ditampilkan teks Januari . Kemudian, 3. Apabila mendapatkan $bulan bernilai 2, maka akan ditampilkan teks Februari . Kemudian, 4. Apabila mendapatkan $bulan bernilai 3, maka akan ditampilkan teks Maret . Kemudian 5. Selanjutnya kondisinya dilakukan terus sampai dengan tanggal 12 yang menampilkan teks Desember. Dengan menggunakan program di atas, maka apabila dijalankan akan menghasilkan bentuk keluaran seperti gambar berikut:

Gambar 5. Menggunakan if-else-if

Menggunakan For
For merupakan opertor PHP yang digunakan untuk membuat program looping (perulangan). Anda dapat menggunakan operator ini dengan mengkolaborasikannya dengan operator kondisi di atas. Sintaksnya adalah:

for ($variabel1; $variabel2; $variabel3) { pernyataan }

Sintaks di atas dapat dijelaskan bagian-bagiannya sebagai berikut: $variabel1 : adalah variabel yang memiliki nilai awal perulangan $variabel2 : adalah variabel yang memiliki nilai pembatas dalam perulangan. $variabel3 : adalah variabel yang digunakan untuk membuat operasi, baik penambahan angka maupun pengurangan angka pada variabel 1.

Sebagai contoh, Anda dapat menuliskan contoh program yang fungsinya untuk menampilkan angka dari nomor 1 sampai dengan nomor 12.

Listing Program : looping-for.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: Dasar PHP WML ::." newcontext="true"> <p align="center"> <small> <?php echo "<b>Menampilkan bulan 1-12 </b><br/>";

for ($bulan=1; $bulan <= 12; $bulan++) { echo "Bulan $bulan <br/>"; } ?> </small> </p> </card> </wml>

Pada listing program di atas, Kita memiliki nilai awal bernilai 1,operasi yang dilakukan adalah PostIncreement ($bulan++), batasan dari operasinya adalah selama nilai $bulan kurang dari 12. Dari program di atas, apabila dijalankan akan menghasilkan bentuk tampilan seperti gambar berikut:

Gambar 6. Menampillkan nomor 1 sampai dengan 12

Dasar Menggunakan While


While juga merupakan operator yang digunakan untuk membuat perulangan. Secara teknis, kedua bentuk operator ini memiliki kemampuan yang sama. Sintaks yang digunakan adalah: while (ekspresi)
}

{
pernyataan

Pada operator di atas, Anda dapat membuat batasan perulangan pada bagian ekspresi. Sedangkan pada bagian pernyataan dapat dibuat dengan bentuk isi atau dengan operasi yang akan dikerjakan. Sebagai contoh, Anda dapat membuat bentuk pananggalan yang dimulai dari tanggal 1 sampai dengan tanggal 31. Caranya dapat Anda lihat pada listing program berikut:

Listing Program : looping-while.php

header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?>

<wml> <card title=".:: Dasar PHP WML ::." newcontext="true"> <p align="center"> <small> <?php echo "<b>Menampilkan tanggal 1-31 </b><br/>"; while ($tanggal <= 31) { $tanggal++; echo "Tanggal $tanggal <br/>"; } ?> </small> </p> </card> </wml>

Dengan menggunakan perulangan di atas, maka apabila listing di atas dijalankan akan menghasilkan keluaran seperti gambar berikut:

Gambar 7. Hasil perulangan dengan operator while

Membuat Kolom Berita


Kolom berita juga sering disebut dengan news pages. Di dalam halaman Web mungkin telah sering Anda temui. Sekarang Kita akan mencoba mengaplikasikannya pada WAP. Untuk memudahkan pelajaran ini, maka ikutilah beberapa langkah berikut: 1. Langkah pertama, masuklah pada database MySQL Anda dengan menggunakan user yang Anda miliki, sebagai contoh Kami menggunakan user bunafit dan nugroho sebagai passwordnya.
$ mysql -u bunafit -p Enter password: *** Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 1 to server version: 4.1.7-max

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql>

2. Buat dan aktifkan database bernama aplikasiwap, perhatikan caranya sebagai berikut:

mysql> CREATE DATABASE aplikasiwap; Query OK, 1 row affected (0.14 sec)

mysql> USE aplikasiwap; Database changed mysql>

Selanjutnya, database aplikasiwap akan kita gunakan untuk aplikasi yang lain.

3. Sekarang buatlah tabel bernama berita. Tabel ini nantinya akan digunakan untuk mrekam data-data berita yang ditampilkan pada news pages. Berikut adalah perintahnya:
CREATE TABLE berita (

id_berita int(3) NOT NULL auto_increment, judul_berita varchar(50) NOT NULL default '', detail_berita varchar(200) NOT NULL default '', tanggal_masuk date NOT NULL default '0000-00-00', PRIMARY KEY ); (id_berita)

4. Untuk Mempermudah memahami pembahasan ini, maka Anda dapat memasukkan data berita dengan perintah berikut:
INSERT INTO berita VALUES (1,'Gempa Bumi Melanda Nias','Baru beberapa hari masyarakat di Pulai Nias merasakan ketenangan, sekarang ALLAH telah menguji kembali dengan terguncangnya Gempa yang bertenaga 8,2 SL','2005-03-30');

INSERT INTO berita VALUES (2,'Keterlambatan Bantuan','Sampai berita ini dionlinekan, bantuan yang berasal dari pemerintah masih belum dapat didistirbusikan. Hal ini karena tidak adanya transportasi disana','2005-03-30');

5. Sekarang Anda dapat membuat program WAP-nya dengan menuliskan skripnya seperti listing lengkap berikut:

Listing Program : dasarwap/berita_tampil.php

<?php

header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: BERITA ONLINE ::." newcontext="true"> <p align="left">

<small>

<?php $hostname="localhost"; $username="bunafit"; $password="nugroho"; $database="aplikasiwap"; $mysql_konek=mysql_connect($hostname,$username,$password) or die ("Belum bisa konek ke server"); mysql_select_db($database);

//query $sql_select="SELECT * FROM berita ORDER BY id_berita";

//cek kondisi query if ($eksekusi=mysql_query($sql_select)) { echo "<br/>"; echo "<big><b>CENTRANET NEWS :</b></big>"; echo "<br/><br/>";

while($baris=mysql_fetch_array($eksekusi)) { $detail_berita=$baris[detail_berita]; $cuplikan=substr("$detail_berita",0,50);

echo "<big><b>$baris[judul_berita]</b></big>"; echo "&nbsp;[$baris[tanggal_masuk]]<br/>"; echo "$cuplikan ..."; echo "[ <a href="berita_detailtampil.php? idberita=$baris[id_berita]"> Detail </a>]"; echo "<br/><br/>"; } }

else { echo "<br/><b><big>Tidak ada berita</big></b><br/>"; } ?> </small> </p> </card> </wml>

Ada beberapa baris perintah yang terkait di dalam listing program di atas. Lebih jelasnya dapat Anda ikuti pembahasannya sebagai berikut:

Koneksi Server
Pertama Kita akan membuka koneksi pada server database MySQL, skrip yang digunakan adalah:
$hostname="localhost"; $username="bunafit"; $password="nugroho"; $database="aplikasiwap"; $mysql_konek=mysql_connect($hostname,$username,$password) or die ("Belum bisa konek ke server");

Anda tentunya tidak mencontreng kode diatas sama persis, sesuaikan user dan password MySQL sesuai dengan konfigurasi atau setting yang ada pada database, biasanya dibuat saat installasi MySQL.

Mengaktifkan Database
Setelah koneksi berhasil, maka Kita dapat memanggil atau mengaktifkan database yang akan digunakan. Di dalam database tersebut tentunya terdapat tabel yang berisi data-data yang hendak diakses.
mysql_select_db($database);

Melakukan permintaan pada tabel


Karena Kita hendak menampilkan data dari tabel berita, maka query yang digunakan adalah menampilkan seluruh data pada tabel berita. Berikut adalah querynya:

$sql_select="SELECT * FROM berita ORDER BY id_berita";

Cek query yang ada


Sambil menjalankan query yang ada, Kita dapat membuat kondisi untuk melakukan pemeriksaan terhadap query yang digunakan. Perhatikan kondisi berikut:

if ($eksekusi=mysql_query($sql_select)) { berhasil } else { gagal }

Apabila query dapat dijalankan dan datanya tidak kosong, maka programa akan mengakses kalang berhasil . Sedangkan apabila querinya salah atau datanya tidak ada, maka program akan mengakses kolom gagal.

Menampilkan semua data


Selanjutnya Kita akan menampilkan semua data yang ada di dalam tabel menggunakan operator looping while. Perhatikan cara berikut:

while($baris=mysql_fetch_array($eksekusi)) { ..... menampilkan data }

Pada kolom while di atas, Anda dapat menampilkan semua data yang didapatkan query dengan menggunakan teknik berikut:
echo $baris[judul_berita];

echo $baris[detail_berita];

Memotong Isi berita


Pada skrip program di atas, Kita hanya akan menampilkan data berita sebagian saja. Sehingga Kita harus memotong sebagian datanya dengan cara berikut:

$detail_berita=$baris[detail_berita]; $cuplikan=substr("$detail_berita",0,50);

Dari skrip di atas, substr merupakan fungsi yang digunakan untuk mengambil data secara sebagian. Yaitu teks yang dimulai dari karakter 0 sampai dengan karekter 50. Selain karakter yang ada di dalam range tersebut, data tidak akan ditampilkan.

Membuat Hyperlink Detail


Karena isi dari berita sangat banyak, maka Kita dapat membuat halaman yang ditampilkan pertama kali hanya sekilas saja. Sehingga dengan memberikan tombol atau hyperlink detail, pengunjung dapat melihat isi beritanya secara lengkap. Cara membuatnya adalah denagan menuliskan skrip berikut:

echo "[ <a href="berita_detailtampil.php? idberita=$baris[id_berita]"> Detail </a>]"; echo "<br/><br/>";

Pada skrip di atas, karakter detail dijadikan sebagai pemicu dari hyperlink. Sedangkan untuk kondisinya Kita menggunakan variabel idberita yang nilainya berisi data id_berita dari data berita yang dipilih. Selanjutnya apabila program di atas dijalankan, maka hasilnya akan menampilkan data seperti pada gambar berikut:

Gambar 8. Tampilan News Pages

Pada setiap judul berita yang ditampilkan akan diberikan semuah hyperlink yang apabila diklik akan membawa Kita menuju pada halaman detail berita. Pada program detail berita semua data berita secara lengkap akan ditampilkan. Untuk lebih jelasnya, Anda dapat membuat programnya seperti listing berikut: Listing Program dasarwap/berita_detailtampil.php

<?php header('Content-type:text/vnd.wap.wml'); echo('<?xml version="1.0"?>'); echo('<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1/EN">'); ?> <wml> <card title=".:: BERITA ONLINE ::." newcontext="true"> <p align="left"> <small>

<?php $hostname="localhost"; $username="bunafit";

$password="nugroho"; $database="aplikasiwap"; $mysql_konek=mysql_connect($hostname,$username,$password) or die ("Belum bisa konek ke server");

mysql_select_db($database);

$sql_select="SELECT * FROM berita WHERE id_berita='$idberita'";

if ($eksekusi=mysql_query($sql_select)) { echo "<br/>"; echo "<big><b>CENTRANET NEWS :</b></big>"; echo "<br/><br/>";

while($baris=mysql_fetch_array($eksekusi)) { echo "<big><b>$baris[judul_berita]</b></big>"; echo "&nbsp;[$baris[tanggal_masuk]]<br/>"; echo "$baris[detail_berita]<br/>"; echo "<br/><br/>"; }

echo "[ <a href="berita_tampil.php"> Berita </a>]"; } Else { echo "<br/><b><big>Tidak ada berita</big></b><br/>"; } ?> </small> </p> </card> </wml>

Teknik pembuatan program detail sangat sederhana, yaitu hanya dengan menggunakan kondisi pada querynya. Nilai kondisi yang digunakan didapatkan pada variabel yang dikirim pada address. Berikut adalah querinya:

$sql_select="SELECT * FROM berita WHERE id_berita='$idberita'";

Pada query di atas, nilai dari variabel $idberita didapatkan dari hyperlink detail yang dipilih pada program penampil data berita. Selanjutnya ditampilkan pada browser dengan cara yang sama, akan tetapi pada halaman detail kita tidak lagi memotong datanya.

Gambar 9. Tampilan detail berita

DAFTAR PUSTAKA Pelajaran Lanjutan Baca pada 2 Buku ini

Judul : Pengembangan Program WAP dengan WML dan PHP Penerbit : Gava Media, Yogyakarta Penulis : Bunafit Nugroho

Judul : Aplikasi Pemrogramman Web Dinamis dengan PHP dan MySQL Penerbit : Gava Media, Yogyakarta Penulis : Bunafit Nugroho

Beri Nilai