Script kedua yang akan kita coba adalah menampilkan waktu seperti di bawah ini:
Hari ini 3-10-2006, jam: 4:21.22
Untuk menampilkan waktu seperti di atas kita dapat menggunakan script berikut:
<SCRIPT LANGUAGE="JavaScript">
//Script tentang waktu
Sekarang = new Date();
document.write("Hari ini " + Sekarang.getDate() + "-" + (Sekarang.getMonth()+1)+
"-" + Sekarang.getFullYear() + ", jam: " + Sekarang.getHours() + ":" + Sekarang
.getMinutes() + "." + Sekarang.getSeconds())
</SCRIPT>
Seperti script sebelumnya, script di atas dibuka dengan <SCRIPT LANGUAGE="JavaSc
ript"> dan ditutup dengan </SCRIPT>. Kemudian di baris kedua diperkenalkan tanda
"// " yang berarti bahwa apapun yang berada di sebelah kanan tanda tersebut aka
n diabaikan dan hanya dianggap sebagai komentar.
Kemudian baris berikutnya adalah perintah Sekarang = new Date(); Di sini kita me
mbuat object baru yang diberi nama "Sekarang". Obyek ini kita isi dengan waktu s
aat halaman ini di-load, yaitu menggunakan perintah new Date(). Kemudian ditutup
dengan tanda titik koma (;) untuk mengakhiri sebuah statemen.
Pada baris berikutnya kita menuliskan apa yang ada di dalam kurung ke halaman ht
ml, menggunakan document.write seperti biasa. Semua yang berada di antara tanda
petik ("), misalnya "Hari ini " atau ", jam: " akan ditampilkan apa adanya, dan
yang tidak diberi tanda petik akan diproses.
Di sini kita menemui beberapa hal baru, yaitu Sekarang.getDate(), juga Sekarang.
getMonth() sampai terakhir Sekarang.getSeconds(). Semua get...() tersebut adalah
"method" yang bekerja pada "object" yang bernama Sekarang, di mana getDate() ak
an akan memberikan nilai tanggal, getMonth() akan memberikan nilai bulan, dst.
Khusus untuk bulan, kita menggunakan perintah Sekarang.getMonth()+1 karena java
script selalu menghitung mulai dari 0. Sehingga bulan Januari akan berharga "0",
bulan Februari akan berharga "1", dst.
<FORM>
<INPUT TYPE="text" SIZE="30" onFocus="window.status='Anda sekarang siap mengisi
kotak';">
</FORM>
Ini hasilnya. Coba letakkan kursor dalam kotak teks dan perhatikan window status
di bawah.
Sekarang kita belajar tentang onBlur. onBlur adalah kebalikan dari onFocus. Dia
bekerja justru saat anda nggak fokus :D. Lihat script dan hasilnya di bawah.
<FORM>
<INPUT TYPE="text" SIZE="40" VALUE="Tulis nama anda, kemudian pindahkan kursor d
ari kotak ini" onBlur="alert('Anda telah mengedit isi kotak, bener nih nggak nye
sel ?');">
</FORM>
Ada lagi event handler yang perintahnya onChange. Mirip dengan onBlur, hanya dia
bekerja apabila ada perubahan. Jika anda tidak mengubah isi kotak, dia tidak ak
an bekerja. Lihat script dan hasil berikut ini.
<FORM>
<INPUT TYPE="text" SIZE="40" VALUE="Tulis nama anda, kemudian pindahkan kursor d
ari kotak ini" onChange="alert('Anda telah mengedit isi kotak, bener nih nggak n
yesel ?');">
</FORM>
Berikutnya adalah onSelect. Event handler ini bekerja saat anda memilih (memblok
) isi kotak. Lebih baik perhatikan script dan hasilnya berikut ini.
<FORM>
<INPUT TYPE="text" SIZE="40" VALUE="Tulis nama anda, kemudian pindahkan kursor d
ari kotak ini" onSelect="alert('Hehehe, gagal deh ngeblok');">
</FORM>
Mmm masih ada beberapa nih. Anda bisa menggunakan onSubmit, yang bekerja saat an
da mengklik tombol submit. Lihat contoh ini.
<FORM onSubmit="alert('Anda yakin mau mengirim data ?')";>
<INPUT TYPE="submit">
</FORM>
Dan yang terakhir yang akan dibahas di sini - fiuh - adalah onLoad dan onUnLoad.
Kedua perintah ini berada dalam tag <BODY> di mana mereka akan memanggil sesuat
u saat halaman tersebut dipanggil (untuk onLoad) atau saat halaman tersebut ditu
tup (untuk onUnLoad). Untuk mencobanya ... hmmm ... bagusnya anda belajar fungsi
dulu deh. Jadi kita pending dulu ya.
WindowBaru.document.write("</CENTER>")
WindowBaru.document.write("</HTML>")
}
</SCRIPT>
Fungsi di atas saya aktifkan dengan link ini. Link tersebut dibuat dengan menggu
nakan event handler onClick="bukawindow()". Dan di sekali lagi saya memanfaatkan
"javascript:void(0)" seperti di atas, agar anda tidak pergi ke mana-mana.
Hal baru pada script di atas hanyalah penggunaan perintah WindowBaru.document.wr
ite(".....") yang berfungsi untuk menuliskan sesuatu di dalam object "WindowBaru
". "WindowBaru" sendiri adalah variabel yang sebelumnya telah didefinisikan deng
an perintah "window.open()", yang artinya "WindowBaru" adalah window yang akan k
ita buka.
Sedang isi di dalam kurung, pada perintah "WindowBaru.document.write(".....")" a
dalah kode HTML yang ingin kita tampilkan pada window baru.
Sekarang akan saya jelaskan script di atas. Kita bahas per bagian saja ya, biar
lebih jelas. Saya mulai dari fungsi pertama pada script di atas, yaitu fungsi va
lidnama().
function validnama(inputnama)
{
panjangnama=inputnama.length
if (panjangnama == 0)
{
alert("Anda belum memasukkan nama")
document.formdata.nama.focus()
}
}
.....
<FORM NAME="formdata">
<h4>Form data</h4>
Masukkan nama anda :<br>
<INPUT TYPE="text" NAME="nama" onBlur="validnama(nama.value)"><br>
Fungsi validnama() di atas diaktifkan dengan event handler onBlur pada form. Jad
i saat kursor meninggalkan kotak yang diisi, fungsi ini aktif, dan menerima vari
abel "nama.value". Kita boleh juga menulis lengkap "document.formdata.nama.value
" seperti contoh-contoh sebelumnya, namun karena perintah tersebut berada di dal
am form, bagian "document.formdata" tidak perlu ditulis.
Kemudian variabel "nama.value" ini diterima sebagai variabel "inputnama". Dan pa
njang variabel "inputnama" (inputnama.length) disimpan dalam variabel "panjangna
ma". Nah jika panjangnya 0, maka blok if di atas dijalankan, dan keluarlah alert
yang menyebalkan ! Setelah itu dengan perintah document.formdata.nama.focus() k
ursor dikembalikan ke kotak nama. Kalau misalnya kita sudah mengisi sesuatu dala
m kotak itu, maka tidak ada apa-apa yang terjadi.
Berikutnya kita bahas bagian atas dari fungsi "validpos()". Perhatikan script be
rikut ini.
function validpos(pos)
{
panjang=pos.length
digits="0123456789"
if(panjang != 5)
{
alert("Panjang kode pos-nya salah tuh.")
document.formdata.pos.focus()
}
.....
Masukkan kode pos (99999) :<br>
<INPUT TYPE="text" NAME="pos" SIZE=10 ><P>
<INPUT TYPE="button" VALUE="Submit" onClick="validpos(pos.value)">
Sekarang kita membicarakan fungsi validpos(). Fungsi ini diaktifkan dengan event
handler onClick pada tombol di di atas. Saat diaktifkan, maka variabel "pos.val
ue" - yaitu data kode pos yang kita masukkan - dikirim. Oleh fungsi validpos() d
ata ini diterima dan disimpan dalam variabel "pos". Bagian pertama dari fungsi v
alidpos() di atas mengecek panjang data. Variabel panjang digunakan untuk menyim
pan panjang kode pos (pos.length) dan kemudian dicek. Jika panjangnya bukan lima
(kode pos di Indonesia lima angka kan), maka ditampilkan alert. Dan kemudian ku
rsor diletakkan pada kotak tempat mengisi kode pos dengan menggunakan perintah d
ocument.formdata.pos.focus().
Nah sekarang kita membahas bagian terakhir dari fungsi validpos() di atas. Koden
ya seperti ini.
function validpos(pos)
{
panjang=pos.length
digits="0123456789"
......
for(i=0; i<5; i++)
{
if (digits.indexOf(pos.charAt(i))<0)
{
alert("Kok kode posnya bukan angka ?")
document.formdata.pos.focus()
break
}
}
}
Bagian kedua dari fungsi validzip() akan mengecek apakah data yang dimasukkan pe
ngunjung berupa angka atau bukan. Untuk itu digunakan perintah if (digits.indexO
f(pos.charAt(i))<0). Perintah charAt(i) ini akan mencari angka/karakter pada pos
isi ke-i. Jadi jika variabel pos berisi "81421432", maka pos.charAt(4) adalah an
gka "1". Ingat perhitungan dimulai dari 0, sehingga pos.charAt(0) adalah "8", po
s.charAt(1) adalah "1", dan seterusnya.
Sedang perintah digits.indexOf(x) akan mengecek apakah "x" ada pada variabel dig
its. Jika "x" ada, maka hasilnya adalah posisi tempat x berada. Sedang jika "x"
tidak ada pada variabel digits, maka hasilnya adalah "-1". Misal variabel "digit
s" berisi "43256", maka perintah digits.indexOf(5) akan memberikan hasil "3", po
sisi di mana 5 berada. (Lagi-lagi posisi dihitung mulai dari 0.
Jadi misalnya variabel digits berisi "0123456789" (seperti di atas) dan variabel
pos berisi "42b23", maka pos.charAt(2) akan memberikan hasil "b", dan digit.ind
exOf(b) akan memberikan hasil "-1" karena tidak ada huruf "b" pada variabel digi
ts. Karena "-1" kurang dari "0", maka blok if pun dijalankan, yaitu keluar perin
gatan. Dan dengan perintah break, proses iterasi dihentikan. Jadi kalapun input
data kode pos berisi 5 huruf seperti "sdbwe", peringatan cukup keluar sekali. Da
n kalau ternyata anda mengisi semuanya dengan benar sesuai aturan, apa yang akan
terjadi ??? Jrengggg ... nggak terjadi apa-apa. :(
Mungkin contoh di atas kurang menarik. Tapi dengan fungsi random sebenarnya kita
bisa membuat banyak hal yang menarik, seperti game, tebak-tebakan, dll. Nah di