Oleh Doni Yudono
© 2000 toekangweb.or.id, semua hak cipta adalah milik pemilik sebenarnya

MEMAHAMI WMLScript
Seperti halaman HTML anda, tanpa mekanisme untuk membuat halaman WML anda dinamis, masa depan pengaplikasian WML akan hanya bisa menampilkan informasi teks, seperti headline-headline berita (saya bayangkan pasti tidak akan begitu nyaman pasti membaca berita selengkapnya di ponsel / perangkat WAP anda.) Disini akan dibahas tentang salah satu mekanisme yang disediakan WAP untuk membuat halaman WAP dinamis, yaitu dengan bahasa Scripting Client Side-nya WAP: WMLScript.

PERLUNYA DUKUNGAN SERVER
Jika anda ingin mencoba membuat halaman WML, Langkah pertama yang anda harus lakukan adalah memastikan pihak webhosting (atau personal Web server anda,) dimana webserver anda berada telah mendukung WAP. Jika belum, mintalah mereka untuk mengatur jenis MIME file dengan benar, yaitu :

.wml , tipe MIME-nya: text/vnd.wap.wml wml
.wmls , tipe MIME-nya: text/vnd.wap.wmlscript wmls
.wbmp , tipe MIME-nya: image/vnd.wap.wbmp

WMLScript mengacu kepada standar yang sama seperti yang digunakan Javascript, yaitu ECMAScript.

SINTAKS WML
Tidak seperti Javascript yang bisa di’embed’kan ke dalam HTML, halaman WML Script harus berdiri sendiri di sebuah file terpisah. Berikut ini adalah beberapa aturan yang dipakai dalam WMLScripting.

Bagian terkecil dari eksekusi dalam WMLScript disebut statement
Setiap statement harus diakhiri dengan sebuah semicolon (;)
WMLScript membedakan huruf besar dan huruf kecil (case-sensitive)
Komentar dalam Javascript ditandai dengan (//), untuk komentar satu baris, atau ditandai dengan (/*) dan (’*/) untuk komentar lebih dari satu baris.
Sebuah karakter string ditandai dengan sebuah rangkaian satu atau lebih karakter yang dikurung oleh tanda petik ganda (”") atau tanda petik tunggal (‘)
Nilai Boolean berisi true atau false
Variabel baru dideklarasikan dengan perintah var
WMLScript (.wml) dan WML (.wml) adalah dua file yang terpisah.

TYPE DATA WMLScript
Type data yang didukung WMLScript adalah: Boolean, Integer, Floating-point, String, dan Invalid.

kita tidak perlu menyebutkan jenis dari setiap variabel. WMLScript akan langsung mencoba mengkonversi sebuah variabel ke tipe lain kalau diperlukan.

OPERATOR
Operator adalah perintah yang melakukan operasi antar variabel. WMLScript mendukung jenis-jenis operasi berikut ini:

Operasi pemberian nilai kepada sebuah variabel
Operasi aritmatika (+, /, * dll.)
Operasi logikal (AND, OR, XOR dll.)
Operasi string
Operasi perbandingan
Operasi array

STATEMEN PENGENDALI ALUR
Seperti Javascript, WMLScript juga mendukung statemen pengendali alur jalannya sebuah script, seperti if-else, for .. loop, while .. loop, break, dan continue.

FUNGSI
Statemen WMLScript dapat dieksekusi bersamaan sebagai sebuah Fungsi. Sintaksnya adalah sebagai berikut:

extern function identifier(FormatParameterList) Block ;

penambahan statemen extern digunakan untuk menunjukkan bahwa sebuah fungsi dapat dipanggil dari luar unit kompilasi dimana fungsi tersebut didefinisikan. Misalnya:

function Tarif(rupiah, jamkerja) { var harga = rupiah * jamkerja; return harga; };

Contoh di atas mengambil dua variabel input, rupiah dan jamkerja, dan menggunakannya untuk menghitung nilai variabel harga. kemudian statemen return digunakan untuk mengisikan nilai harga sebagai hasil dari pengeksekusian fungsi Tarif.

LIBRARY STANDAR WMLScript
Kumpulan Fungsi standar WML itu dapat disimpan dalam sebuah library WMLScript. WMLScript mempunyai enam buah library standar, yaitu:

Lang - Library ini mengandung sekumpulan fungsi yang berhubungan dengan dasar bahasa (language) WMLScript. di dalamnya ada fungsi untuk memanipulasi tipe data, menghitung nilai absolut, dan menghasilkan bilangan random.
Float - Library ini tidak harus dipakai (optional) dan hanya didukung pada klien yang bisa menghandle bilangan floating-point. Di dalamnya, antara lain ada perintah sqrt(), round(), dan pow().
String - Library ini mengandung sekumpulan fungsi untuk operasi string. Beberapa fungsi yang termasuk dalam library ini a.l: length(), charAt(), find(), replace(), dan trim().
URL - Library ini mengandung sekumpulan fungsi untuk menangani URL (Uniform Resource Locator) absolut dan relatif. antara lain, fungsi getPath(), getReferer(), dan getHost().
WMLBrowser - Library ini mengandung fungsi-fungsi di mana WMLScript dapat mengakses konteks WML yang terkait. Fungsi ini harulah tidak mempunya efek samping dan harus menghasilkan nilai invalid kalau system WAP-nya tidak mendukung WMLBrowser atau kalau interpreternya tidak dipanggil oleh Browser WML. Fungsi yang ada dalam library ini a.l go(), prev(), next(), getCurrentCard(), dan refresh().
Dialogs - Library ini mengandung sekumpulan fungsi user interface seperti, prompt(), confirm(), dan alert().
Ketika memanggil sebuah fungsi yang ada dalam salah satu library standar WMLScript, nama library tersebut haruslah dicantumkan dalam pemanggilan fungsi itu. misalnya, untuk memanggil fungsi length() dari library String, kita memakai:

var a = String.length(”1234567890″);

Sekarang, marilah kita coba untuk membuat WMLScript kita yang pertama (eng..ing Eng..!!)

MENGAPLIKASIKAN WMLScript
Dalam contoh ini, dimisalkan: kita akan membuat sebuah kartu WML yang meminta user untuk memasukkan nomor PIN dari Asosiasi ToekangWAP Indonesia. Kita akan memeriksa apakah nomor tersebut sudah benar (misalnya no yang benar panjangnya adalah 6 digit). Kemudian kita akan memberitahukan apakah nomor anggota mereka benar atau salah.

Pertama kita buat sebuah file WML (contoh2.wml) yang terdiri dari dua kartu: kartu masukan dan kartu hasil. Setelah kita menerima masukan, fungsi PeriksaNoPIN() akan dipanggil. Fungsi ini berada terpisah di file .wmls (contoh2.wmls) dan fungsi tersebut dideklarasikan dengan statemen extern. seperti yang telah kita sebutkan sebelumnya, extern memungkinkan sebuah fungsi dapat dipanggil oleh fungsi lain atau event WML lain di luar file wmls tempat fungsi tersebut berada. Sebaliknya untuk membuat sebuah fungsi hanya dapat dijalankan dalam script .wmls tersebut, anda tidak perlu memasang statemen extern. berikut kode wml kita - contoh2.wml

Dan ini adalah WMLScriptnya - contoh2.wmls

Dan ini adalah WMLScriptnya - contoh2.wmls

extern function PeriksaNoPIN(PIN)
{
if (String.length(PIN) != 6)
{ WMLBrowser.setVar(”PIN”, “Error!!: no PIN anda seharusnya berukuran 6 digit.”); }
WMLBrowser.go(”contoh2.wml#HAsil”);
};

Untuk melihat bagaimana script tersebut bekerja, Coba jalankan di ponsel anda atau di WinWAP anda, URL berikut ini: http://www.toekangweb.or.id/contoh2.wml
Catatan: WMLScript ini belum bekerja di WinWAP light

Fungsi WMLScript dalam listing di atas menggunakan dua dari library standar WML: WMLBrowser dan String. Fungsi WMLBrowser.setVar() menentukan nilai dari sebuah variabel WML sementara fungsi WMLBrowser.go() mengarahkan eksekusi dari script tersebut ke sebuah kartu (card) di sebuah file WML.

Demikianlah perkenalan singkat kita dengan WMLScript, Javascript-nya WAP. toekangweb akan melanjutkannya di artikel berikutnya, dimana desainer visual dapat bermain-main dengan image di artikel kami tentang wBMP, format imagenya WAP. Stay tuned..