Memasukkan JavaScript kedalam HTML
JavaScript adalah pemrograman sisi
klien yang akan dijalankan oleh browser dari pengunjung, dan program JavaScript
biasa ditanamkan didalam halaman web untuk menghasilkan halaman yang dinamis.
Untuk mempelajari JavaScript sebaiknya anda menguasai dasar-dasar HTML Script
sehingga akan memudahkan anda untuk menyisipkan program JavaScript secara baik
dan benar.
Ketiklah Contoh berikut dan simpan
ke file Hello.html
<HTML>
<HEAD>
<SCRIPT
LANGUAGE="JavaScript">
<!-- Menyembunyikan script terhadap
browser non-JavaScript
document.write("Hello world.")
// akhir dari penyembunyian -->
</SCRIPT>
</HEAD>
</HTML>
Untuk melihat hasilnya, buka file
Hello.html dengan internet browser.
Sebenarnya ada dua cara menanamkan
JavaScript kddalam dokumen HTML anda, yaitu :
1. Mengapit JavaScript tersebut
dengan tag <SCRIPT>...</SCRIPT>
Contoh :
<SCRIPT
LANGUAGE="JavaScript">
<!-- Menyembunyikan script terhadap
browser non-JavaScript
Perintah-perintah JavaScript anda diketik disini.
// -->
</SCRIPT>
2. Menggunakan tag HTML yang
menangani event.
Contoh :
<A
HREF="http://www.indoprog.com" onMouseOver="window.status='Klik
disini untuk mengetahui lebih jauh tentang saya'; return true;"
onMouseOut="window.status=''; ">Klik disini</A>
Dengan
menggunakan Tag <SCRIPT>
Walaupun Netscape Navigator akan
mengolah semua teks dalam tag <SCRIPT>
sebagai JavaScript, tetapi adalah lebih baik melakukan deklarasi LANGUAGE yang menentukan jenis bahasa script yang digunakan. karena ada
beberapa bahasa script lainnya untuk HTML, mendeklarasikan jenis bahasa script
adalah suatu praktek yang baik. Marilah kita memulai dengan suatu program
sederhana yang akan mencetak Hello World.
Contoh :
<HTML>
<HEAD>
<SCRIPT
LANGUAGE="JavaScript">
<!-- Menyembunyikan script terhadap
browser non-JavaScript
document.write("Hello world.")
// akhir dari penyembunyian -->
</SCRIPT>
</HEAD>
</HTML>
Hasil:

Contoh diatas menunjukkan program
Javascript diketik diantara tag <HEAD> dan </HEAD>. Jika contoh JavaScript diatas diketikkan diantara tag
<BODY>, juga akan memiliki hasil yang sama. Tetapi karena bagian
heading akan dibaca terlebih dahulu dibandingankan dengan bagian <BODY>, menempatkan semua fungsi maupun variabel global pada
bagian heading adalah praktek pemrograman yang baik. Dan semua perintah
JavaScript yang berkaitan dengan dokumen ditempatkan pada bagian body HTML.
Perhatian : Tidak semua browser
mampu memproses JavaScript, sehingga untuk menghindari kesalahan penampilan
pada browser tersebut, anda perlu mengetikkan JavaScript diantara tag
komentar HTML sebagai berikut :
<!-- Menyembunyikan script terhadap
browser non-JavaScript
Perintah-perintah JavaScript anda ketik
disini.
// akhir dari penyembunyian -->
|
Catatan
|
|
Ingat, selalu mengetik JavaScript
diantara baris komentar sehingga browser non Java dapat mengabaikannya, hal
ini dilakukan karena siapa saja dapat mengunjungi homepage kita di internet
dengan berbagai web browser.
|
Menangani Event akan mengubah
halaman yang static menjadi lebih dinamis. Event adalah hasil terhadap aksi
yang dilakukan oleh pemakai, seperti klik pada mouse, klik pada tombol submit
di suatu form, dan keluar dari halaman. Netscape mengenali sejumlah event,
tetapi kita tidak akan mendiskusinya sekarang.
Contoh:
<FORM>
<INPUT
TYPE=BUTTON VALUE="Coba Klik" onClick="alert('Hello
world')">
</FORM>
Hasil:
Variabel dan Literal
Setelah mengetahui cara menanamkan
JavaScript kedalam halaman web, selanjutnya kita akan membahas dasar-dasar dari
pemrograman JavaScript itu sendirinya, sebagai langkah pertama dari proses
belajar, kita akan membahas Variabel dan Literal. Ketiklah contoh berikut, dan
simpan ke file Scroller.html
<HTML>
<HEAD>
<SCRIPT
LANGUAGE="JavaScript">
<!-- Start of scroller script
var scrollCounter = 0;
var scrollText = "Teks yang anda inginkan, misalnya
Viva Indoprog";
var scrollDelay = 70;
var i = 0;
while (i ++ < 140)
scrollText = " " +
scrollText;
function Scroller()
{
window.status =
scrollText.substring(scrollCounter++,
scrollText.length);
if (scrollCounter == scrollText.length)
scrollCounter = 0;
setTimeout("Scroller()",
scrollDelay);
}
Scroller();
// End of scroller script -->
</SCRIPT>
</HEAD>
<BODY>
<H1>Coba
perhatikan status bar anda</H1>
</BODY>
</HTML>
Pada contoh diatas menggunakan
beberapa variabel seperti scrollCounter, scrollText, scrollDelay, i, dan
literal seperti 0, "Teks yang anda inginkan, misalnya Viva Indoprog",
70.
Pada JavaScript memiliki beberapa
tipe dari nilai sebagai berikut :
- Number, baik bilangan nyata (real) maupun bilangan bulat (integer) (contoh 4.156 dan 39)
- String (contoh "ini adalah JavaScript")
- Logical (Boolean) dengan nilai true dan false
- Null, yang mana adalah keyword khusus yang mengawali nilai kosong.
Walaupun memiliki tipe data yang
sedikit, tetapi cukup untuk unjuk kerja JavaScript. Perlu diperhatikan bahwa
pada JavaScript tidak ada perbedaan antara integer dengan real, keduanya
dimasukkan pada tipe yang sama yaitu number. JavaScript tidak menyediakan tipe
data khusus untuk data tanggal. Tetapi memiliki beberapa fungsi dan objek
tanggal (date) yang dapat digunakan untuk melakukan manipulasi data tanggal.
Aturan penamaan variabel pada
JavaScript adalah nama variabel harus dimulai dengan suatu huruf atau garis
bawah (_) dan huruf selanjutnya dapat berupa angka (0-9), huruf besar (A-Z)
atau huruf kecil (a-z), garis bawah. Berikut ini adalah contoh penamaan
variabel yang benar:
Nama_depan
h9224
_nama
|
Catatan
|
|
JavaScript membedakan huruf besar
dan kecil (case sensitif), sehingga harus diwaspadai oleh programmer,
penulisan indoprog adalah berbeda dengan Indoprog bagi JavaScript.
|
Batasan lainnya dalam pemberian nama
variabel adalah tidak boleh sama dengan cadangan kata pada JavaScript. Tabel 1
adalah daftar dari cadangan kata (Reserved Word) pada JavaScript.
Table
1. Cadangan kata pada JavaScript.
|
abstract
|
extends
|
int
|
super
|
|
boolean
|
false
|
interface
|
switch
|
|
break
|
final
|
long
|
synchronized
|
|
byte
|
finally
|
native
|
this
|
|
case
|
float
|
new
|
throw
|
|
catch
|
for
|
null
|
throws
|
|
char
|
function
|
package
|
transient
|
|
class
|
goto
|
private
|
true
|
|
const
|
if
|
protected
|
try
|
|
continue
|
implements
|
public
|
var
|
|
default
|
import
|
return
|
val
|
|
do
|
in
|
short
|
while
|
|
double
|
instanceof
|
static
|
with
|
|
else
|
|
|
|
Tidak semua kata dalam Table 1
digunakan oleh JavaScript dewasa ini; dan beberapa diantara dicadangkan untuk
pemakaian yang akan datang. Cadangan Kata tidak boleh digunakan untuk nama
variabel, nama fungsi, nama metode, dan nama objek
Variabel dalam JavaScript dapat
menyimpan semua tipe data yang sah, dan tidak diperlukan suatu deklarasi tipe
data. Pada script yang sama, suatu variabel dapat di set ke type data yang
berbeda dalam suatu deklarasi tunggal. Berikut ini deklarasi variabel yang sah:
temperatur
=
temperatur
= "Temperatur adalah"
temperature
= "Temperatur adalah " + 27
Karena JavaScript sangat longgar
tentang tipe, dan menyediakan beberapa fungsi untuk melakukan manipulasi data
string dan nilai numerik (belum dibahas pada bagian ini).
Baca Bagian ini !!!
JavaScript adalah bahasa script yang
dinamis. Hal ini berarti bahwa tipe data pada Javascript tidak baku tetapi
dapat berubah dari suatu tipe ke tipe yang lain sesuai dengan kebutuhan.
Sebagai contoh, anda dapat
menyatakan myData =
10; pada suatu baris initialisasi, dan
baris berikutnya, menyatakan myData = "Hello World!" yang membuat
tipe myData menjadi suatu string. Java Script akan secara otomatis mengubah
tipe data berdasarkan ekspresi yang ditentukan. Jadi jika anda menyatakan myData = "10" - 2;, maka anda akan bertanya mengapa Javascript tidak
mengkonversi 2 menjadi "2" dan menghasilkan "102", jawabanya adalah karena operator - tidak ditujukan untuk
pemakaian pada string sehingga "10" - 2 tidak memiliki arti sama
sekali. Berikut ini akan membawa kita kepada suatu situasi yang lebih
menarik. Operator + dinyatakan untuk pemakaian pada numerik dan string. Jadi
akankah 10 +
"20" mengembalikan nilai 30
(10+20) atau "1020"
("10" + "20").
Hal ini tentu saja akan membingungkan anda dengan pemakaian operator +,
jawabannya adalah Javascript akan selalu mengkonversi segala sesuatu ke string
sebelum melakukan evaluasi, sehingga 10 + "20" adalah sama
dengan "10"
+ "20" dan hasilnya adalah "1020".
JavaScript memiliki dua jangkauan
untuk variabel:
- variabel Global
- variabel Local
Variabel lokal digunakan didalam
suatu fungsi dan ruang lingkupnya terbatas pada fungsi tersebut. Untuk
mendeklarasikan suatu variabel lokal, harus diawali dengan var, seperti contoh
berikut ini:
var
nilaiTerbesar =0
JavaScript mengganggap semua variabel yang tidak diawali dengan var adalah variabel
global. Walaupun JavaScript memperbolehkan anda menggunakan nama
variabel yang sama untuk local maupun global, tetapi dalam praktek hal tersebut
tidak disarankan, karena akan membingungkan anda sendiri.
|
TIP
|
|
Untuk memastikan fungsi
mendapatkan nilai yang benar dari suatu variabel global, deklarasikan semua
variabel global tersebut pada awal dari script.
|
Sebagai lawan dari variabel adalah
literal yang merupakan baku yang digunakan dalam JavaScript. JavaScript
mendukung literal-literal berikut:
- Integer literal
- Floating point literal
- Boolean literal
- String literal
- Special character
Integer dapat dalam basis desimal (basis 10), hexadesimal, dan
oktal. Suatu nilai desimal adalah semua angka yang tidak diawali dengan nol
(seperti 4, 89, atau 57). Suatu angka yang diawali dengan nol, adalah berbasis
oktal (seperti 04, 065, atau 0145). Suatu bilangan dinyatakan dalam basis
hexadesimal diawali dengan 0x atau 0X (seperti 0xff, 0X44, atau 0xAE).
Suatu literal floating-point terdiri dari komponen: suatu desimal
bulat, suatu decimal berkoma (.), suatu desimal pecahan, dan eksponen. (seperti
1.23 or 44.6389) atau dalam notasi scientific (3.6E-8, .4E12, or
-2.7E12). Setiap literal floating-point literal minimal memiliki satu digit
dengan satu desimal atau eksponen.
Literal Boolean
adalah true atau false.
Literal String
dapat diapit oleh petik tunggal ( ' ) atau petik ganda ( " ). Tanda
petik awal dan akhir harus sama, seperti contoh berikut:
"suatu
literal dengan petik ganda"
'suatu
literal dengan petik tunggal'
|
TIP
|
|
Ketika anda menulis event handle,
apit string dengan petik tunggal, karena petik ganda dibatasi untuk nilai
atribut pada HTML
Contoh :
<FORM>
<INPUT TYPE=BUTTON VALUE="Coba Klik"
onClick="alert('Hello world')">
</FORM>
|
Literal string dapat juga mengandung
karakter khusus untuk kendali baris Table 2 adalah daftar dari karakter khusus
dan fungsi-fungsinya.
Table
2. Karakter khusus JavaScript.
|
Keterangan
|
Spesial Karakter
|
|
Backspace
|
\b
|
|
Form feed
|
\f
|
|
Newline
|
\n
|
|
Carriage return
|
\r
|
|
Tab
|
\t
|
Tanda backslash (\)
adalah karakter escape pada JavaScript. Ketika digunakan pada akhir dari suatu
baris, akan berfungsi sebagai character penyambung baris. Ketika diikuti oleh
karakter lain, karakter escape tersebut akan kehilangan fungsi khususnya. Dalam
JavaScript, programmer menggunakan backslash untuk escape backslash lainnya,
suatu petik tunggal, dan suatu petik ganda.
Ekspresi dan Operator
Literal dan variabel dihubungkan
oleh operator dan akan menghasilkan ekspresi. JavaScript menyediakan
berbagai operator yang memungkinkan programmer menulis sejumlah ekspresi dari
yang paling sederhana sampai yang paling sulit.
Contoh :
temp
= 24
pada contoh diatas, temp adalah
variabel, 24 adalah variabel, = adalah operator, dan temp=24 adalah
ekspresi.
Operator JavaScript dapat dibagi
menjadi beberapa kategori berikut:
- Assignment operator
- Arithmetic operator
- Bitwise operator
- Logical operator
- Comparison operator
- String operator
JavaScript memiliki operator binari
maupun unari. Suatu operator binari memiliki format.
operand1
operator operand2
Sebagai contoh , 9 * 7
atau temp = 24 adalah ekspresi dengan operator binari.
Operator unari memiliki dua format:
operand
operator
atau
operator
operand
Sebagai contoh ekspresi mengunakan
operator unari adalah ++y atau y++.
|
Catatan
|
|
Bagi programmer C language, tentu
saja operator unari bukan sesuatu yang asing, tetapi bagi programmer dari
latarbelakang Basic dan Pascal, penulisan y++ adalah sama dengan y = y + 1.
|
Operator pemberi nilai (=) adalah
suatu operator binari yang digunakan untuk memberi nilai ke operand di sisi
kiri (biasanya berupa suatu variabel) yang didasarkan pada nilai operand
sebelah kanan (seperti NamaDepan
= "Hendra" atau x = y * 9).
Table 3 adalah daftar singkat operator pemberi nilai.
Table
3. Daftar Operator assignment
|
Shorthand operator
|
Artinya
|
Contoh
|
|
x += y
|
x = x + Y
|
x +=
|
|
x -= y
|
x = x - y
|
x -=
|
|
x *= y
|
x = x * y
|
x *=
|
|
x /= y
|
x = x / y
|
x /=
|
|
x %= y
|
x = x % y
|
x %=
|
|
x <<= y
|
x = x << y
|
x <<=
|
|
x >>= y
|
x = x >> y
|
x >>=
|
|
x >>>= y
|
x = x >>> y
|
x >>>=
|
|
x &= y
|
x = x & y
|
x &= 0xC0
|
|
x |= y
|
x = x | y
|
x |= 0x0F
|
|
x ^= y
|
x = x ^ y
|
x ^= 0XFF
|
|
Catatan
|
|
Bagi yang tidak familiar dengan
pemrograman C, hati-hati dengan perbedaan antara assignment operator (=)
dan comparison operator (==)
|
Sesuai dengan fungsinya operator
aritmatika melakukan operasi perhitungan aritmatika terhadap suatu nilai
numerik baik dalam literal maupun variabel. JavaScript mendukung operator
standard aritmatika untuk penjumlahan (+), pengurangan (-),
perkalian (*), dan pembagian (/). Juga memiliki operator modulus (%),
increment (++), decrement (--), dan unary negation (-).
Operator modulus (%)
adalah suatu operator binary yang mengembalikan nilai sisa dari suatu pembagian
bulat operand1 terhadap operand2. Sebagai contoh, hasil
dari 27 % 6 adalah 4.
Operator increment unary adalah
menambah nilai satu ke variabel operand, sedangkan operator decrement unary
mengurangi satu dari padanya. Bagaimanapun, nilai yang dikembalikan tergantung
dari posisi operator terhadap operand Jika operator berada didepan (++x
atau --x), nilai yang dikembalikan adalah x+1 atau x-1. Ketika
operator dibelakang(x++ or x--), nilai x dikembalikan sebelum ditambah atau dikurang.
Operator khusus unari arithmetic
adalah operator unari negation operator. Ia membalikan tanda dari nilai yang
diberikan pada suatu variabel. Sebagai contoh, jika x = -7,
-x mengubah nilai menjadi 7.
Untuk programmer yang perlu
menangani bit. JavaScript menyediakan satu set dari operator bitwise. Untuk
operator ini, JavaScript melakukan konversi terhadap operand menjadi integer
32-bit sebelum melakukan operasi padanya. Operator logika bitwise adalah
- Bitwise AND (&), akan mengembalikan nilai dari logika AND antara sepasang bit. Sebagai contoh , 0x0f & 0x0a mengembalikan 0x0a.
- Bitwise OR (|), akan mengembalikan nilai dari logika OR antara setiap pasangan dari bit. Sebagai contoh, 0x05 | 0x0a mengembalikan 0x0f.
- Bitwise XOR (^), akan mengembalikan nilai dari logika exclusive OR between antara tiap pasangan bit. Sebagai contoh, 0x0f ^ 0x0a mengembalikan 0x05.
JavaScript juga menyediakan satu set
bitwise untuk operasi shift operand1 terhadap jumlah yang ditentukan di operand2.
Operand ini adalah
- Shift left (<<), akan mengeser bit ke kiri dengan jumlah tertentu. Bit yang melewati batas kiri akan diabaikan, dan suatu bit nol akan digeser dari kanan. Sebagai contoh, 0x0f << 2 mengembalikan 0x3c.
- Sign propagating shift right (>>) mempertahankan bit tanda dari nilai ketika melakukan geser ke kanan sesuai dengan jumlah yang ditentukan. Bit yang tergeser melewati bata kanan akan diabaikan, kecuali bit tanda, bit nol akan digeser dari kiri.. Sebagai contoh, 10 >> 2 mengembalikan 2 dan -10 >> 2 mengembalikan -2.
- Zero-fill right shift (>>>) sama seperti >>, cuma tidak mempertahankan bit tanda ketika dilakukan pergeseran sesuai dengan jumlah yang ditentukan.
Operator logika membutuhkan operand
dengan nilai Boolean (true atau false) dan mereka akan mengembalikan suatu
nilai logika. Operator logika adalah sebagai berikut :
- Logical AND (&&)
- Logical OR (||)
- Logical NOT (!)
Operator logika NOT adalah suatu
unary operator yang mempertahankan nilai ekspresi.
Operator perbandingan diterapkan
pada perbandingan pada data numerik dan data string serta tidak dapat dilakukan
pada nilai Boolean. Masing-masing operand harus memiliki tipe yang sama:
nemerik dibandingkan dengan numerik atau string dengan string. Hasil dari
perbandingan adalah sautu nilai Boolean. Operator perbandingan adalah:
- Equal (==)
- Not equal (!=)
- Greater than (>)
- Greater than or equal to (>=)
- Less than (<)
- Less than or equal to (<=)
JavaScript juga mendukung ekspresi
secara kondisi (conditional expression) yang mana berbentuk.
(kondisi)
? nilai_benar : nilai_salah
Jika kondisi adalah benar, ekspresi
memiliki dari
true_value. Sebaliknya memiliki nilai dari false_value. Seperti saudaranya yang berbasis bahasa C, ekpresi kondisi
adalah ekspresi standard dan dapat digunakan dimana saja, dan dapat dilihat
sebagai berikut :
status_baterai
= (voltase > 1.3) ? "baik" : "buruk"
|
Catatan
|
|
Bagi programmer C language, tentu
saja comparison operator (==) bukan sesuatu yang asing, tetapi bagi
programmer dari latarbelakang Basic dan Pascal, penulisan = adalah tidak sama
dengan ==.
|
Operator string (+) mengabung dua
nilai string dan mengembalikan satu string dimana merupakan hasil gabungan dari
keduanya. Sebagai contoh :
"Java"
+ "Script"
Menghasilkan
"JavaScript"
Operator shorthand +=
mengabung string kiri dengan string dikanan operand dan memberikan nilai baru
pada operand disebelah kiri.
Dalam ekspresi yang kompleks dimana
melibatkan lebih dari satu operator, urutan operasi dari operator menentukan
nilai hasil evaluasi. Dengan menggunakan tanda kurung, programmer dapat
mengatur aturan tersebut. Table .4 adalah urutan prioritas operasi dari yang
paling rendah sampai yang paling tinggi.
Table
4. Prioritas urutan operasi dari prioritas rendah sampai tinggi.
|
Keterangan
|
Operator
|
|
Assignment
|
= += -= *= /= %= <<= >>= >>>= &= ^= |=
|
|
Conditional
|
?:
|
|
Logical OR
|
||
|
|
Logical AND
|
&&
|
|
Bitwise OR
|
|
|
|
Bitwise XOR
|
^
|
|
Bitwise AND
|
&
|
|
Equality
|
== !=
|
|
Relational
|
< <= > >=
|
|
Bitwise shift
|
<< >> >>>
|
|
Addition/subtraction
|
+ -
|
|
Multiply/divide
|
* / %
|
|
Negation/increment
|
! ~ - ++ -
|
|
Call, member
|
() []
|
Struktur Kendali dan Fungsi
Untuk membuat suatu halaman yang dinamis dan interaktif, perancang halaman Web membutuhkan perintah-perintah yang dapat mengatur aliran dari informasi. Berdasarkan hasil komputasi yang telah dilakukan, JavaScript akan membuat keputusan jalur mana yang akan dieksekusi. Kita akan membahas tentang perintah kondisi dan loop dalam JavaScript.Walaupun semua kode harus ditulis dalam penanganan event, tetapi hal ini adalah praktek pemrograman yang kurang baik. Sebagai pengantinya, gunakan fungsi, kode akan menjadi lebih modular dan dapat digunakan kembali (reusable).
Perintah kondisi
Sebagai tambahan terhadap ekspresi kondisi yang telah dijelaskan bagian sebelumnya. JavaScript memiliki suatu perintah kondisi if. Tata cara penulisan dari perintah kondisi tersebut adalah sebagai berikut:if (kondisi1) {
pernyataan1 }
[else {
pernyataan2}]
kondisi adalah ekspresi JavaScript yang mana hasil evaluasinya memiliki nilai Boolean true atau false. contoh pemakaian statement if:
if (n>3) {
status = true
if (j != n) j = 0 }
else j = n
|
Perhatian
|
|
Bagi programmer C harus berhati-hati dengan evaluasi kondisi pada
JavaScript. Suatu kondisi numerik yang mengasilkan nol adalah tidak sama
dengan suatu Boolean true pada JavaScript, dan sebaliknya suatu nilai bukan
nol tidak sema dengan Boolean false. Pada JavaScript hasil dari suatu kondisi
harus data type Boolean. |
if (a==b) j=0
else j=1
Perintah Perulangan
JavaScript mendukung dua struktur loop; perintah for dan perintah while. Untuk control pada struktur loop, JavaScript menyediakan perintah break dan continue.Perintah for
Perintah for pada JavaScript sama dengan yang ada di Java dan C. Perintah for mengulang suatu loop sampai kondisi menghasilkan evaluasi true atau loop keluar dengan perintah break . Syntax untuk perintah for adalah sebagai berikut :for ([ekspresi-awal;] [kondisi;] [ekspresi-penambah]) {
pernyataan
}
Urutan proses untuk perintah for adalah sebagai berikut:
- Interpreter menjalankan ekspresi-awal. Ekspresi ini mementukan nilai yang diperlukan untuk kendali perulangan.
- Kemudian interpreter memeriksa kondisi. Jika true, kendali dilanjutkan ke langkah selanjutnya. Jika false, kendali diarahkan ke perintah setelah perulangan.
- Kemudian interpreter menjalankan ekspresi-penambah, yang mana melakukan update terhadap variabel-variabel yang digunakan untuk kendali perulangan.
- Kemudian statement dijalankan dan, jika ditemukan suatu break atau continue, kendali kembali ke langkah 2.
Contoh :
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- menyembunyikan script dan browser non-JS
for (i=1; i<=10; i++) {
sq=i*i
document.write("number: " + i + " square: " + sq + "<BR>")
}
// akhir dari penyembunyian -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>Hasil :
number: 1 square: 1
number: 2 square: 4
number: 3 square: 9
number: 4 square: 16
number: 5 square: 25
number: 6 square: 36
number: 7 square: 49
number: 8 square: 64
number: 9 square: 81
number: 10 square: 100
number: 1 square: 1
number: 2 square: 4
number: 3 square: 9
number: 4 square: 16
number: 5 square: 25
number: 6 square: 36
number: 7 square: 49
number: 8 square: 64
number: 9 square: 81
number: 10 square: 100
number: 2 square: 4
number: 3 square: 9
number: 4 square: 16
number: 5 square: 25
number: 6 square: 36
number: 7 square: 49
number: 8 square: 64
number: 9 square: 81
number: 10 square: 100
number: 1 square: 1
number: 2 square: 4
number: 3 square: 9
number: 4 square: 16
number: 5 square: 25
number: 6 square: 36
number: 7 square: 49
number: 8 square: 64
number: 9 square: 81
number: 10 square: 100
Perintah while
Perintah while terus mengulangi loop selama kondisi memiliki nilai true. Syntax untuk perintah while adalah sebagai berikut :while (kondisi) {
pernyataan
}
Test kondisi terjadi pada perulangan while yang pertama kali dan pada akhir dari setiap loop. Ketika hasil test mengembalikan false, kendali dilewatkan ke perintah berikutnya setelah loop. Perintah for yang diubah ke suatu while loop.
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- menyembunyikan script
i=1
while (i<=10) {
sq=i*i
document.write("number: " + i + "square: " + sq + "<BR>")
i++
}
// end script hiding -->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>Hasil:
number: 1 square: 1
number: 2 square: 4
number: 3 square: 9
number: 4 square: 16
number: 5 square: 25
number: 6 square: 36
number: 7 square: 49
number: 8 square: 64
number: 9 square: 81
number: 10 square: 100
number: 1 square: 1
number: 2 square: 4
number: 3 square: 9
number: 4 square: 16
number: 5 square: 25
number: 6 square: 36
number: 7 square: 49
number: 8 square: 64
number: 9 square: 81
number: 10 square: 100
Perintah break
Perintah break menghentikan for atau while loop dan mengembalikan kendali ke perintah berikutnya yang mengikuti loop. Contoh berikut menggambarkan bagaimana menggunakan perintah break:i=0
while (i<10) {
if (i==3)
break
i++
}
Perintah continue
Seperti perintah break, perintah continue menghentikan interasi tersebut untuk suatu for atau while loop; Tetapi tidak keluar dari loop; Tetapi melakukan interasi berikutnya.- Pada suatu while loop, kendali dilewatkan ke condition.
- Pada suatu for loop, dilewatkan ke increment-expression.
i=0
while (i<10) {
if (i==3)
continue
i++
}
Perintah function
Suatu function adalah sekumpulan dari perintah JavaScript yang akan mengerjakan tugas tertentu. Fungsi ini dapat dipanggil dari segala titik pada dokumen tersebut dan dipanggil dari event. Format dari perintah function adalah sebagai berikut:function FunctionName(argument list) {
statements
}
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript"
<!-- hide the script
function DisplayIt(LineToDisplay) {
document.write(LineToDisplay + "<BR>")
}
// end hiding -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"
<!-- hide it
LineToDisplay("Hello World")
// end hiding -->
</SCRIPT>
</BODY>
</HTML>
|
TIP
|
|
Karena browser membaca perintah tersebut diapit oleh <HEAD>...</HEAD> duluan;
adalah praktek yang baik untuk memesan semua variabel global dan semua fungsi
pada HEAD dari dokumen. Hal
ini mencegah kesalahan seperti non-initialized variables dan undefined
functions |
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- menyembunyikan
UnorderList="UL"
function DisplayList(ListType) { // menampilkan variabel list
if (ListType="OL" || ListType="UL") { // validasi jenis list
document.write("<" + ListType + ">" // menampilkan jenis list
for (var i=1; i<DisplayList.arguments.length; i++)
document.write("LI" + DisplayList.arguments[i])
document.write("</" + ListType + ">") // End list
return true
}
else return false
}
// akhir dari penyembunyian -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"
<!-- menyembunyikan
if (DisplayList(UnorderList, "Bullet 1 text", "Bullet 2 text"))
document.write("<P>List Display</P>")
else
document.write("<P>Invalid List Type<p>")
// unhide it -->
</SCRIPT>
</BODY>
</HTML>
function RetExam(a, b) {
var x=0
x = a+b
return x
}
TestResult=RetExam(5, 7)
Komentar
JavaScript mendukung dua bentuk format untuk komentar:- Komentar satu baris yang diawali dengan suatu double slash (//)
- Komentar banyak baris yang diawali dengan suatu /* dan diakhiri dengan suatu */
// ini adalah komentar
if (a=b) c=1 // ini juga adalah komentar
Komentar banyak baris mengikuti aturan pada C dan dapat digunakan untuk menandai perintah JavaScript, sebagaimana yang ditunjukkan oleh contoh sebelumnya, adalah sutu komentar HTML, baris terakhir membutuhkan dua slash untuk menjaga JavaScript dapat menginterprestasikan baris tersebut.
Dasar dari Objek
JavaScript adalah suatu bahasa berdasarkan pada objek dan bukan merupakan bahasa object-oriented programming (OOP). Perancang JavaScript tidak bertujuan membuat suatu bahasa OOP yang baru; tetapi bertujuan membuat suatu bahasa script untuk mengintegrasikan objek yang telah dibuat dengan suatu bahasa OOP kedalam dokumen HTML. Selanjutnya Javascript tidak memiliki encapsulation , inheritance, dan abstraction seperti pada C atau Java.Tetapi class pada JavaScript menyediakan properti dan metode untuk membuat objek.
Objek dan Properti
Berikut ini adalah notasi yang digunakan oleh JavaScript untuk menggambarkan suatu objek dan propertinya:ObjekName.PropertyName
Sebagai contoh, objek mydog memiliki properti sebagai berikut :
mydog.breed="small mut"
mydog.age=5
mydog.weight=25
Objek juga dapat menggunakan acuan array dengan menggunakan nama propertinya sebagai index:
mydog["breed"]="small mut"
mydog["age"]=5
mydog["weight"]=25
Juga dapat mengunakan acuan array dengan index secara numerik:
mydog[0]="small mut"
mydog[1]=5
mydog[2]=25
Defining Metodes
Suatu fungsi yang berasosiasikan objek acuan adalah metode. format berikut meng-asosiasikan fungsi dengan suatu objek:ObjekName.MetodeName = function_name
Kemudian metode tersebut berkerja dengan suatu objek:
ObjekName.MetodeName(parameters);
Bekerja dengan Objek
Untuk melakukan manipulasi pada objek membutuhkan fasilitas tambahan dari JavaScript yaitu dengan perintah for...in , perintah with , operator new, dan kata kunci this.Perintah for...in
Perintah for...in menyediakan suatu mekanisme perulangan untuk iterasi melalui semua properti dari suatu objek. Dengan format adalah sebagai berikut :for (variable in Objekname) {
statements
}
Contoh berikut mengunakan perintah ini untuk menampilkan semua properti dalam suatu objek dan nilai asosiasinya:
function ListProperti(obj, obj_name) {
var result = ""
for (var i in obj) {
result += obj_name + "." + i " = " + obj[i] + "<BR>"
}
return result
PropList = ListProperti(mydog, "mydog")
Pada contoh sebelumnya, variabel i adalah nama dari property, kemudian mengindeks objek dengan menggunakan property name_obj[i].
Perintah with
Pada beberapa situasi suatu objek perlu dibuat acuan beberapa kali. Perintah with membuat acuan ke suatu objek default yang berada dalam kurung. Tata cara penulisannya adalah sebagai berikut:with (ObjekName) {
statements
i
Objek math berikut merupakan contoh pemakaian dari perintah with:
var r =
var x =
with (Math) {
r = p / (1 - cos(a))
x = (2 * p * cos(a)) / (sin(a) * sin(a))
}
Operand new
Untuk suatu tipe objek user-defined, operand new berfungsi membuat suatu instance baru dari objek. Tata cara penulisannya adalah sebagai berikut:ObjekName = new ObjekType(param1 [, param2,] É [, paramN])
Kata kunci this
this mengacu pada objek yang sekarang. Pada bagian selanjutnya akan ditunjukkan bagaimana pemakaian kata kunci ini dalam penulisan function dan metode.Membuat Objek baru
Walaupun JavaScript memiliki sejumlah besar objek yang telah didefinisikan, developer dapat membuat objeknya sendiri. Untuk membuat suatu objek baru diperlukan dua langkah yaitu:- Mendefinisikan jenis objek dengan membuat suatu fungsi.
- Membuat instances dari objek tersebut dengan menggunakan operand new.
function dog(breed, age, weight) {
this.breed = breed;
this.age = age;
this.weight = weight;
}
Untuk menggunakan fungsi diatas, operand new diperlukan untuk mendefinisikan suatu instance baru untuk objek tersebut. Sebagai contoh:
mydog = new dog("small mut", 5, 25);
Selain type data yang umum (string, numeric, and Boolean), objek yang lain dapat juga menjadi properti dari suatu objek. Contoh menambah suatu nomor izin pada objek jenis dog, nomor izib ini juga mengacu pada objek lain.
function doglicense(owner, phone_number) {
this.owner = owner;
this.phone_number = phone.number;
}
AZ123 = new doglicense("John Smith", "999-9999");
Jenis Objek dog perlu dimodifikasi untuk mengikutsertakan informasi baru tersebut:
function dog(breed, age, weight, license) {
this.breed = breed;
this.age = age;
this.weight = weight;
this.license = license;
}
mydog = new dog("mixed mut", 5, 25, AZ123);
Untuk mengacu pada pemilik mydog, syntax berikut diperlukan
mydog.license.owner
|
CATATAN
|
|
Jika suatu property baru ditambahkan pada suatu objek tanpa mengubah jenis
objek, properti tambahan tersebut hanya berpengaruh pada objek tersebut dan
bukan pada semua instances dari objek jenis yang sama. |
|
CATATAN
|
|
Suatu variabel string atau suatu string literal adalah suatu objek string.
Metode string adalah asosiasi dengan objek ini, dan akan didiskusikan pada
bagian "Objek dan fungsi built-in". |
Mendefinisikan Array
Tidak seperti bahasa lainnya, Java script tidak memiliki suatu tipe data array. Tetapi bagaimanapun, fungsi yang sama dapat dengan membentuk suatu objek untuk melakukan emulasi suatu array. Langkah pertama untuk mendefinsikan suatu objek array:function MakeArray(n) {
this.length = n;
for (var i = 1; i <= n; i++)
this[i] = 0;
return this
}
Langkah berikutnya adalah mendefinisikan suatu instance untuk membentuk objek MakeArray :
ExmpArray = new MakeArray(20);
Ketika anda memberikan nilai pada suatu elemen array, hal tersebut menyerupai memberi nilai pada suatu type data array. Perbedaannya adalah array ini dimulai dari satu dan bukan nol, karena nol mendefinisikan panjang dari array:
ExmpArray[1] = "test1"
ExmpArrya[2] = "another test"
Objek dan Fungsi Built-In
Objek dan fungsi yang akan dijelaskan pada bagian ini adalah bagian dari lingkungan JavaScript, selanjutnya sangat tergantung pada jenis web browser. Adapun objek dan fungsi tersebut adalah sebagai berikut:- Objek string dan metode asosiasinya
- Objek Math dan metode asosiasinya
- Objek date dan metode asosiasinya
- Fungsi eval, parseInt, dan parseFloat
Objek String
Suatu string yang dipetik adalah suatu variabel string atau suatu properti string dari suatu objek, segala sesuatu yang ditempatkan diantara petik adalah suatu string. Ada dua cara untuk menggunakan suatu objek string:- stringName.propertyName
- stringName.metodeName(parameters)
Properti Objek String
Objek string hanya memiliki sebuah properti -length. Karena berupa properti, berikut ini adalah acuan yang benar:StringLength = stringVariable.length;
StringLength = mydog.name.length;
StringLength = "This is a string".length;
Metodee Objek String
Sejumlah besar metode adalah asosiasi dengan objek string. Disamping fungsi manipulasi string yang normal, banyak diantaranya berfungsi membungkus string diantara tag HTML. Berikut ini adalah daftar dari metode Objek string:- anchor(nameAttribute). Dengan nameAttribute sebagai nilai dari parameter yang dilewatkan ke metode, metode anchor mengurung text dengan tag <A></A>. Berikut ini adalah contohnya:
document.write("Other Links".anchor("other_links"));
- big(). String di apit dengan tag <BIG></BIG>.
- blink(). String di apit dengan tag <BLINK></BLINK> .
- bold(). String di apit dengan tag <B></B>.
- charAt(index). Metode ini mengembalikan huruf yang ditentukan oleh index, dimana index adalah range 0 sampai stringName.length - 1. Jika index berada diluar jangkauan, suatu null string akan dikembalikan.
- fixed(). String di apit dengan tag <TT></TT>.
- fontcolor(color). String di apit dengan tag <FONT COLOR="color"></FONT>. Parameter color ditentukan dengan format rrggbb.
- fontsize(size). String di apit dengan tag <FONTSIZE=size></FONTSIZE>. Nilai dapat berupa angka satu sampai tujuh, atau dapat perubahan secara relatif (+ atau -) yang didasarkanpada ukuran font dasar yang ditentukan pada tag <BASEFONT>.
- indexOf(searchValue, [fromIndex]). Metode ini mengembalikan posisi index dari string pertama yang ditemukan berdasarkan string searchValue. fromIndex secara optional menentukan posisi awal pencarian. Jika pencarian tidak ditemukan maka JavaScript mengembalikan -1.
- italics(). String di apit dengan tag <I></I>.
- lastOf(searchValue, [fromIndex]). Menyerupai indexOf, cuma pencarian dilakukan dari arah belakang.
- link(hrefAttribute). String di apit dengan tag <A HREF=hrefAttribute></A>.
- small(). String di apit dengan tag <SMALL></SMALL>.
- strike(). String di apit dengan tag <STRIKE></STRIKE>.
- sub(). String di apit dengan tag <SUB></SUB>.
- substring(indexA, indexB). Metode ini mengembalikan subset dari suatu string, yaitu dari posisi index A s/d indexB-1. Jika indexA sama dengan indexB akan dikembalikan suatu null string.
- sup(). String di apit dengan tag <SUP></SUP>.
- toLowerCase(). Metode ini mengubah string ke huruf kecil dan mengembalikannya.
- toUpperCase(). Metode ini mengubah string ke huruf besar dan mengembalikannya.
Objek Math
Objek Math menyediakan suatu himpunan dari nilai-nilai standar matematika dan metode-metode yang argumennya berupa himpunan dari operator matematika yang disediakan dengan JavaScript. Tidak seperti Objek lainnya, Objek Math tidak membutuhkan suatu instance dari Objek sebelum menggunakan metode objek math tersebut. Untuk memudahkan pemasukkan nama dan pembacaan, metode Math sering diikat dengan perintah with. Syntax untuk Objek Math adalah sebagai berikut:- Math.propertyName
- Math.metodeName(parameters)
Properti Objek Math
Objek Math memiliki delapan buah properti. Properti-properti ini ini mendefinisikan berbagai konstanta matematika. Tabel 5. menunjukkan properti-properti tersebut dan nilai perkiraannya.
Table 5. Properti-properti objek Math dan nilainya.
|
Property
|
Description
|
Approx. value
|
|
E
|
Euler's constant
|
2.718
|
|
LN2
|
Natural logarithm of 2
|
0.693
|
|
LN10
|
Natural logarithm of 10
|
2.302
|
|
LOG2E
|
Base 2 logarithm of e
|
1.442
|
|
LOG10E
|
Base 10 logarithm of e
|
0.434
|
|
PI
|
Ratio of circumference to diameter
|
3.14159
|
|
SQRT1_2
|
Square root of one-half
|
0.707
|
|
SQRT2
|
Square root of two
|
1.414
|
Metode Objek Math
Objek Math memiliki sejumlah metode yang argumennya adalah himpunan dari operator matematika:- abs(number). Metode ini mengembalikan nilai absolut dari number.
- acos(number). Mengembalikan nilai arc cosinus dari number yang bernilai antara -1 and 1.
- asin(number). Mengembalikan nilai arc sinus
- atan(number). Mengembalikan nilai arc tangen dalam radian.
- ceil(number). Mengembalikan nilai integer berikutnya yang lebih besar atau sama dengannnumber.
- cos(number). Mengembalikan nilai cosinus dari number (dalam sudut radian).
- exp(number). Mengembalikan pangkat e dari number, dimana e adalah konstanta Euler's.
- floor(number). Mengembalikan integer yang lebih kecil atau sama dengan the number.
- log(number). Mengembalikan logaritma natural (base e) dari number, dimana number adalah sembarang bilangan positif hasil ekspresi atau Objek. Jika number berada diluar jangkauan maka nilai pengembalian defaultnya adalah 1.797693134862316e+308.
- max(number1, number2). Mengembalikan terbesar dari kedua number.
- min(number1, number2). Mengembalikan terkecik dari kedua number.
- pow(base, exponent). Metode ini melakukan pangkat base terhadap exponent. Jika salah satunya bilangan imaginier, maka akan dikembalikan nol.
- random(). Hanya terdapat pada paltforms UNIX, yang mana mengembalikan suatu pseudorandom number antara nol dan satu. Pada Netscape Navigator 3.0, metode random() metode dapat digunakan pada semua platforms.
- round(number). Mengembalikan nilai dari number yang dibulatkan kebilangan integer terdekat.
- sin(number). Mengembalikan nilai sinus dari sudut dalam radian.
- sqrt(number). Mengembalikan nilai akar dari bilangan non negatif, Jika diluar jangkauan akan dikembalikan nol.
- tan(number). Mengembalikan nilai tangen dari sudut dalam radian.
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var ran
ran = Math.round(Math.random()*50000)
alert("Anda adalah pengunjung yang ke " + ran + ".")
// End -->
</SCRIPT>
Objek Date
Walaupun JavaScript tidak menyediakan suatu type data Date, tetapi menyediakan suatu objek Date yang mana menangani informasi date dan time. Semua tanggal adalah jumlah milidetik sejak January 1, 1970, 00:00:00. Akibatnya semua tanggal sebelum 1970 adalah tidak sah.Objek Date membutuhkan suatu instance dari objek Date yang berkaitan dengan pemakaian metode-metodenya. Instance dapat berupa suatu objek baru atau properti dari objek yang ada. Ada empat cara untuk membentuk instance baru:
dateObjekName = new Date()
dateObjekName=new Date("month day, year hours:minutes:seconds")
dateObjekName=new Date(year, month, day)
dateObjekName=new Date(year, month, date, hours, minutes, seconds)
Membentuk suatu himpunan dari tanggal dan waktu ke tanggal dan waktu sekarang. Mengosongkan time berarti memberinya nilai nol. Karena objek Date tidak mengandung properti apa-apa, hanya ada satu format untuk metode Date:
dateObjekName.metodeName(parameters)
Pengecualiaanya adalah UTC dan metode parse, yang mana adalah metode status dan pemakaiannya
Date.UTC(parameters)
Date.parse(parameters)
Table 6 menjelaskan nilai yang akan dikembalikan oleh berbagai perintah get.
Table 6. Memisahkan informasi
dalam objek Date.
|
metode Date
|
Nilai yang dikembalikan
|
|
getDate()
|
Day of the month
|
|
getDay()
|
Day of the week
|
|
getHours
|
Hour of the day
|
|
getMinutes
|
Minutes in the hour
|
|
getMonth
|
The month
|
|
getSeconds
|
Seconds in the minute
|
|
getTime
|
Milliseconds since 1/1/1970
|
|
getTimezoneOffset
|
Offset between local time and GMT
|
|
getYear
|
The year
|
Table 19.7. Setting informasi
dalam objek Date.
|
metode Date
|
Nilai yang sah
|
|
setDate(dayValue)
|
1-31
|
|
setHours(hoursValue)
|
0-23
|
|
setMinutes(minutesValue)
|
0-59
|
|
setMonth(monthValue)
|
0-11
|
|
setSeconds(secondsValue)
|
0-59
|
|
setTime(timeValue)
|
>=0
|
|
setYear(yearValue)
|
>=1970
|
- toGMTString(). Metode ini meng-konversi date dalam GMT (Greenwich Mean Time) dan mengembalikannya sebagai suatu string. Format sebenarnya tergantung pada platform hardware.
- toLocaleString(). Mthod ini meng-konversi string ke format locale, yang mana bervariasi berdasarkan setting.
- parse(dateString). Metode ini melakukan konversisuatu string tanggal ke jumlah detik sejak January 1, 1970, 00:00:00. Setting waktu adalah default. Tetapi juga mendukung akhiran yang menentukan GMT oatau U.S. standard time zones.
- UTC(year, month, day [, hrs] [, min] [, sec]). Metode ini mengembalikan jumlah milidetik sejak January 1, 1970, 00:00:00 Universal Time Coordinate (dengan kata lain adalah, GMT).
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var months=new Array(13);
months[1]="Januari";
months[2]="Februari";
months[3]="Maret";
months[4]="April";
months[5]="Mei";
months[6]="Juni";
months[7]="Juli";
months[8]="Agustus";
months[9]="September";
months[10]="Oktober";
months[11]="Nopember";
months[12]="Desember";
var time=new Date();
var lmonth=months[time.getMonth() + 1];
var date=time.getDate();
var year=time.getYear();
if (year < 2000) // Y2K Fix, Isaac Powell
year = year + 1900;
document.write("<center>" + lmonth + " ");
document.write(date + ", " + year + "</center>");
// End -->
</SCRIPT>Hasil :
Oktober 24, 2009
Fungsi Built-In
JavaScript mendukung beberapa function built-in yang mana tidak berkaitan dengan Objek tertentu. Berikut ini adalah function-function built-in adalah sebagai berikut:- eval(string). Function eval meng-evaluasikan string, yang mana dapat berupa ekspresi JavaScript, perintah, atau urutan dari perintah-perintah, dan mengembalikan hasil. Beberapa contoh dari function eval adalah
var x =
var y =
var z = "if (x <= 9) (x*y) else (x/y);"
document.write(eval("x + y / 4"), "<BR>")
document.write(eval(z), "<BR>")
- parseFloat(string). Fungsi ini mengurai string dan mengembalikan suatu nilai floating point. Jika karakter pertama bukan suatu bilangan atau tanda, nilai nol akan dikembalikan pada platform Windows, dan NaN (not a number) pada platforms lain.
- parseInt(string [, radix]). Fungsi parseInt mengurai string dan mengembalikan suatu integer berdasarkan basis yang ditentukan. Nilai dari akar tersebut adalah 8 untuk octal, 10 untuk desimal, dan 16 untuk hexadesimal.
- isNaN(testValue). Fungsi ini hanya ada pada platforms UNIX untuk dan mengevaluasi testValue untuk menentukan apalah adalah NaN. Akan dikembalikan true atau false
- escape("string"). Mengembalikan encoding ASCII dari suatu argumen dalam ISO Latin-1 character set. string tersebut adalah suatu non-alpahnumeric string atau property dari suatu Objek yang ada. Jika berupa suatu alphanumeric, akan dilewatkan nilai ke output string tanpa melakukan encoding terhadapnya.
- unescape("string"). Mengembalikan karakter ASCII untuk %xx, atau hexadesimal yang ditentukan dalam parameter string.
Objek Netscape
Sebagai tambahan kepada objek-objek JavaScript dan metode, Pengembang halaman Web dapat mengakses objek-objek dan metode dalam Netscape browser. Bagian ini akan membahas Objek Netscape Navigator dan metode-metodenya.Hirarki Objek Navigator
Netscape Navigator membangun suatu hirarki instance-instance yang berkaitan dengan dokumen yang sedang di proses.Hirarki ini penting untuk membuat acuan kepada Objek dan propertinya. Turunan dari suatu Objek adalah properti dari objek orang tuanya. Karena semua objek adalah merupakan turunan dari objek window , sehingga objek window sendirinya tidak memiliki acuan ke objek maupun properti apapun. Tetapi bagaimanapun, acuan ke suatu dokumen pada window lain membutuhkan tambahan nama window kepada Objek acuan-nya.

Hal yang penting dari HTML Layout
Untuk dapat menggunakan JavaScript secara benar membutuhkan pengertian bagaimana Netscape Navigator memproses suatu dokumen HTML. Ketika suatu dokumen HTML di muat, browser akan mulai melakukan proses terhadap baris pertama dari dokumen. Browser membuat layout dari layar berdasarkan perintah HTML yang terdapat dalam dokumen tersebut. Setelah layar selesai digambar, layar tidak dapat digambar ulang tanpa melakukan proses terhadap dokumen baru. Bagaimana hal ini mempengaruhi frame dan window adalah topik pada bagian berikutnya.Sesuai dengan hal ini, maka instance dari suatu objek ada setelah proses dilakukan terhadap baris HTML yang menghasilkan instance tersebut. Dengan kata lain JavaScript tidak dapat mengacu pada suatu objek HTML seperti form, atau menjalankan suatu fungsi sampai browser memproses perintah tersebut. Sebagai contoh, JavaScript tidak dapat mengacu pada suatu objek form sampai browser memproses HTML untuk form tersebut. Demikian juga dengan proses perubahan properti, setelah browser menggunakan properti dalam menghasilkan layout window, maka perubahan properti setelah itu tidak memiliki efek terhadap tampilannya.
Walaupun nampaknya keterbatasan tersebut berat, namun dengan pengertian yang baik terhadap HTML proses dan JavaScript akan mengurangi frustasi. Prinsip utama yang perlu diingat bahwa suatu dokumen HTML diproses secara berurut dan JavaScript adalah bagian dari proses secara berurut tersebut.
Objek Window
Objek window adalah orang tua dari semua Objek. Hal tersebut termasuk semua window dan frame yang berada dalam suatu. Ketika browser mulai memuat suatu dokumen HTML, hal tersebut dimulai dengan suatu instance dari objek window. Jika dokumen HTML membuat suatu frame, informasi dari frame tersebut tersimpan dalam suatu objek frame array. Dengan kata lain, membuka suatu window akan menghasilkan suatu anak dari objek window. Kehebatan dari JavaScript adalah terletak pada kemampuan untuk melakukan utilisasi properti dan metode dari objek window.Bagian ini akan membahas properti dari objek window berikut :
- objek Location
- objek History
- objek Document
- objek form
- objek anchor
- objek link
Objek location
Objek location mengandung informasi tentang URL sekarang. Acuannya ke objek tersebut adalah sebagai berikut:[windowReference.]location[.propertyName]
Properti dari Objek location mengacu pada bagian individual dari URL:
protocol//hostname:port pathname search hash
|
CATATAN
|
|
Objek location dan properti
location dari objek dokumen
(document.location) memiliki tujuan yang berbeda. Objek location dapat berubah, tetapi properti location tidak dapat berubah. |
- protocol. protocol menentukan metode access dari URL.
- hostname. hostname mengandung nama host dan domain, atau alamat IP, dari host tujuan.
- port. port adalah TCP/IP port, jika kosong akan digunakan port default dari protocol tersebut.
- pathname. pathname meliputi path resource pada host tujuan.
- search. property search adalah string yang dimulai dengan tanda ? yang digunakan untuk script CGI.
- hash. property hash adalah suatu string yang dimulai dengan tanda hash(#) dan diikuti dengan suatu anchor name.
- href. property ini merupakan keseluruhan dari URL. Jika acuan dibuat ke[windowName.]location, property href menjadi asumsi.
- host. Property ini ekivalen dengan hostname:port.
|
CATATAN
|
|
Walaupun JavaScript memungkinkan modifikasi pada properti individual,
praktek pemrograman yang umum adalah mengubah properti href. Pendekatan ini mencegah hasil
error dari browser sebelum akses URL belum berubah secara keseluruhan. |
<a href="" onmouseover="parent.location='http://www.indoprog.com/'">
Langsung ke homepage Indoprog</A>Contoh diatas akan langsung membuka homepage http://www.indoprog.com begitu pointer lewat diatas link Langsung ke homepage Indoprog
Objek History
Akses ke objek History adalah topik yang kontroversial karena memungkinkan script mengirim history kembali ke server. Untuk mencegah pemakaian yang menyimpang, Netscape Navigator 2.01 keatas telah menghilangkan Objek ini.Contoh 1 :
<a href="#" onClick="history.go(-1)">Back</a>
<input type=button value="Back" onClick="history.go(-1)">
Hasil :
Back
Contoh 2 :
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var agree=confirm("Apakah anda yakin untuk melanjutkan PROSES ?");
if (agree)
document.write("");
else
history.go(-1); // Kembali ke halaman sebelumnya
// End -->
</SCRIPT>
</HEAD>
Objek document
Objek document menyimpan properti, objek, dan metode yang mewakili dokumen. Hal tersebut mengacu pada bagian dokumen HTML yang didefinsikan oleh tag <BODY></BODY>. Bagian ini mendiskusikan komponen dari objek dokumen, kecuali objek form (yang akan dibahas pada bagian berikutnya).Properti objek document
Option HTML ke tag <BODY> mendefinisikan properti objek document. JavaScript mengacu pada semua properti ini, kecuali untuk image background.|
CATATAN
|
|
String yang diperlukan untuk mengubah properti color adalah dalam format document.colorProperty = "#RRGGBB"
atau document.colorproperty="colorName".
Property color lainnya didefinisikan dalam tag <HEAD></HEAD> yang mendahului tag <BODY>. |
- bgColor. Property ini menentukan warna latarbelakang dari dokumen. Property bgColor secara langsung mengupdate tampilan.
- fgColor. Property ini menentukan warna text dari dokumen. Setelah browser menyelesaikan layout dari dokumen HTML., browser mengabaikan perubahan pada propery ini. Kecuali tag <FONT> atau metode fontcolor metode menyediakan suatu mekanisme alternatif untuk mengubah warna text.
- linkColor. linkColor mewakili warna dari suatu link yang didefinsikan oleh HREF.
- alinkColor. property control warna dari suatu active link. Dengan kata lain, hal tersebut adalah warna dari link ketika terpilih.
- vlinkColor. Situs yang pernah dikunjungi, browser menampilkan warna untuk link tersebut.
<FORM>
<SELECT onChange=
"document.bgColor=this.options[this.selectedIndex].value">
<OPTION VALUE="40E0D0"> Torquoise
<OPTION VALUE="2E8B57"> Sea Green
<OPTION VALUE="87CEEB"> Sky Blue
<OPTION VALUE="F4A460"> Sandy Brown
<OPTION VALUE="FFF0F5"> Lavender Blush
<OPTION VALUE="FF1493"> Deep Pink
<OPTION VALUE="FFFFFF" SELECTED> White
</SELECT>
</FORM>Hasil :
- lastModified. Property read-only yang berkaitan dengan tanggal terakhir dokumen dimodifikasi.
- location. Property read-only yang biasanya sama dengan nilai dari lokasi Objek, kecuali redirection digunakan untuk URL
- referrer. Property read-only mengandung URL untuk dokument yang mana di link ke dokumen tersebut.
- title. Property read-only mengandung nilai yang ditentukan pada tag<TITLE></TITLE>.
<SCRIPT
LANGUAGE="JavaScript"> <!-- document.write("Update terakhir :"); document.write(document.lastModified); // --></SCRIPT>Hasil:
Update terakhir :10/19/2002 10:52:20 Update terakhir :07/14/2000
09:07:48
Contoh 2:<form name=404form>
<script language="JavaScript">
<!-- Begin
var from = document.referrer;
document.write("<input type=text name=referrer value='" + from + "'>");
// End -->
</script>
</form>Hasil :
Anda datang dari halaman :
The anchors Objek
Objek anchors mengandung suatu array dari semua anchors yang dideklarasikan dengan atribut NAME dari tag <A> </A>. Array tersebut dimulai dari 0 dan berlanjut sampai document.anchors.length - 1. Nilai dari document.annchors[index] adalah null.|
TIP
|
|
Sebelum menggunakannya untuk memberikan nilai seperti location.hash, adalah mungkin untuk
memeriksa keabsahan dari anchor dengan membandingkannya dengan panjang array;
anda menggunakan bilangan berurut untuk menentukan anchors |
Objek link
Array link mengandung Objek link yang didefinisikan oleh tag <A></A> atau dengan metode link. Array tersebut meliputi objek untuk atribut HREF dan NAME. Dengan tambahan ke atribut TARGET, properti dari masing-masing Objek link adalah identik dengan Objek location.|
CATATAN
|
|
link array adalah suatu
array read-only. Entries tambahan ditambahkan dengan tag <A></A>. Metode link melakukan modifikasi terhadap isi
dalam array link |
Properti cookie
Property cookie mengandung suatu nilai string dari isi cookier dari file cookies.txt untuk dokumen tersebut. Untuk suatu keterangan lengkap tentang bagaimana menggunakan cookies, lihat bagian Netscape cookie specification. Metode substring, charAt, indexOf, dan lastIndexOf dapat digunakan untuk memisahkan string cookie.The document Objek Metodes
Objek document mengandung lima metode:- document.write()
- document.writeln()
- document.open()
- document.close()
- document.clear()
document.write(ekspresi [, ekspresi2] ... [ekspresiN])
document.writeln(ekspresi [, ekspresi2] ... [ekspresiN])Tipe default MIME adalah text/html. Bagaimanapun, metode document.open(["mimetype"]) memungkinkan untuk membuka type MIME lainnya, seperti text/plain, image/gif, image/jpeg, image/x-bitmap, dan plugIn. Metode document.open() membuka suatu stream untuk mengumpulkan output dari metode write dan write.ln. Jika tipe MIME adalah text atau image, browser membuka suatu stream untuk layout, untuk plugIn, browser membukanya pada suatu plug-in. Jika suatu dokumen telah siap dalam target windows, mthod open menghapusnya.
<SCRIPT>
document.write(Date()+".")
</SCRIPT>Hasil :
Sat Oct 24 2009 06:57:11 GMT+0700 (SE Asia Standard Time).
|
CATATAN
|
|
Sekarang, tidak dimungkinkan lagi untuk mencetak tulisan apapun dengan
JavaScript melalui metode write
ataupun writeln |
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var clocktext, timeday;
var pagetitle = document.title;
function scroll() {
today = new Date();
sec = today.getSeconds();
hr = today.getHours();
min = today.getMinutes();
// 12 Hour clock fix by Michael Mann
if (hr < 12) { timeday = " AM"; }
else { timeday = " PM"; }
if (hr > 12) hr = hr - 12;
if (hr <= 9) hr = "0" + hr;
if (min <= 9) min = "0" + min;
if (sec <= 9) sec = "0" + sec;
var clocktext = " - " + hr + ":" + min + ":" + sec + timeday;
clocktimer = setTimeout("scroll()", 1000);
document.title = pagetitle + clocktext;
}
if (document.all) scroll();
// End -->
</script>Hasil : Lihat pada Title Halaman ini
Objek Form
HTML tag <FORM></FORM> adalah fasilitas input data oleh pemakai, dan output data
variabel kepada pemakai. Input oleh pemakai memiliki efek pemilihan pada sisi
klien yang dapat dikirm ke server. Pada sisi lain, data variabel seperti
marquees dapat ditampilkan pada form. Pada sisi input, event handle adalah
fasilitas untuk membangkitkan rutin JavaScript untuk melakukan aktifitas pada
proses edit data seperti validasi. Pada sisi output, JavaScript memegang
peranan penting dalam mengatur bagaimana data ditampilkan.
Event adalah hasil dari aksi
pemakai, seperti klik pada suatu tombol mouse, checking pada suatu kotak, dan
pengiriman form. Penanganan Event didefinsikan dalam tag HTML sepanjang
JavaScript berkaitan dengan event tersebut. Berikut ini adalah contoh yang
merupakan kode dari suatu penanganan event.
<INPUT
TYPE="button" VALUE="Submit" onClick="validate(this.form)">
Pada contoh sebelumnya, kata kunci this
mengacu pada objek tersebut, yang mana adalah objek button. Dengan menyebutkan this.form, adalah acuan ke objek form yang mengandung button
tersebut. Ketika contoh sebelumnnya menjalankan suatu fungsi, perintah
JavaScript juga sah. Kalau lebih dari satu perintah, tiap perintah harus
dipisahkan dengan suatu titik koma.
|
TIP
|
|
Praktek pemrograman yang baik
adalah menggunakan fungsi karena mereka membuat kode lebih mudah dibaca dan
dapat digunakan kembali.
|
|
NOTE
|
|
Sampai suatu dokumen HTML selesai
di muat ke window yang mengandung tag <BODY></BODY>,
suatu window tidak mengandung penanganan event.
|
Berikut ini adalah daftar dari
penanganan event yang didukung oleh JavaSCript:
- onBlur.JavaScript menjalankan penanganan event ini ketika pemakai meninggalkan field yang menyebabkan kehilangan fokus.
- onChange. dijalankan ketika user meninggalkan field dan terjadi perubahan nilai object tersebut.
- onClick. event onClick terjadi ketika pemakai klik pada window atau link..
- onFocus. event ini terjadi ketika suatu form mendapatkan fokus.
- onLoad. event ini terjadi ketika browser selesai memuat suatu dokumen atau semua frame didalam tag <FRAMESET>.
- onMouseOver. event ini terjadi ketika mouse bergerak melewati object dari luar object tersebut. Rutin JavaScript harus mengembalikan true untuk status dan properti defaultStatus yang ditentukan..
- onSelect. event ini terjadi ketika pemakai melakukan select text pada text area..
- onSubmit. terjadi ketika user submit suatu form. Jika JavaScript mengembalikan false, form tersebut tidak akan di submit, nilai lainnya atau tidak ada nilai balik, membuat form di submit.
- onUnload. event ini terjadi ketika dokument di exit.
Penanganan Event adalah bagian dari
berbagai object. Beberapa object mendukung lebih dari satu penanganan event,
dan beberapa penanganan event terjadi pada banyak objek. Tabel.8 menunjukkan
hubungan antara penanganan event dan objek-objek.
Table
8. Hubungan antara penanganan event dan objek.
|
Objek
|
Penanganan Event
|
|
button
|
onClick
|
|
checkbox
|
onClick
|
|
form
|
onSubmit
|
|
link
|
onClick, onMouseOver
|
|
radio
|
onClick
|
|
reset
|
onClick
|
|
select
|
onBlur, onChange, onFocus
|
|
submit
|
onClick
|
|
text
|
onBlur, onChange, onFocus, onSelect
|
|
textarea
|
onBlur, onChange, onFocus, onSelect
|
|
window
|
onLoad, onUnload
|
Contoh:
<SCRIPT
LANGUAGE="JavaScript">
<!-- menyembunyikan kode dari browser non-js
function periksa()
{
formObj = document.contoh;
if ((formObj.nama.value ==
"") ||
(formObj.umur.value == "") ||
(formObj.lahir.value == ""))
{
alert("Anda tidak mengisi
seluruh field.");
return false;
}
else
return true;
}
// akhir dari penyembunyian -->
</SCRIPT>
<FORM NAME="contoh"
METODE=GET ACTION="" onSubmit="return periksa()">
<PRE>
Nama Anda : <INPUT TYPE=TEXT
NAME="nama" SIZE=30 MAXLENGTH=30>
Umur : <INPUT TYPE=TEXT NAME="umur" SIZE=3 MAXLENGTH=3>
Tgl. Lahir: <INPUT TYPE=TEXT
NAME="lahir" SIZE=10 MAXLENGTH=10>
<INPUT TYPE=SUBMIT> <INPUT
TYPE=RESET>
</PRE>
</FORM>
Hasil:
Nama
Anda :
Umur :
Tgl.
Lahir:
FORM>. Untuk JavaScript, hal tersebut adalah suatu read-only
array yang membentuk properti berikut :
- action. property ini mengandung nilai dari atribut ACTION.
- element. ini adalah suatu array dari elemen object yang didefinsikan untuk form.
- encoding. property ini mengandung nilai dair atribut ENCTYPE.
- length. property ini mengandung jumlah dari isian didalam element array.
- metode. property ini mengandung nilai dari atribut METODE.
- target. property ini mengandung nilai dari atribut TARGET .
Berikut ini adalah arti yang sah
dari pengalamatan bentuk object ::
formName.propertyName
formName.metodeName(parameters)
forms[index].propertyName
forms[index].metodeName(parameters)
Object form hanya memiliki satu
metode-submit. Metode submit
melakukan aksi yang sama seperti tombol submit pada HTML form dan memiliki tata
cara penulisan sebagai berikut:
document.formName.submit()
Objek elemen berpengaruh pada isi elemen dalam
tag <FORM></FORM>. Tabel 9 menperlihatkan elemen objek dan properti-nya.
Tabeel
9. Properti dari objek element.
|
Element object
|
Properti
|
|
button
|
name, value
|
|
checkbox
|
name, value, checked, defaultChecked
|
|
hidden
|
name, value
|
|
password
|
name, value, defaultValue
|
|
radio
|
name, value, checked, defaultChecked, length
|
|
reset
|
name, value
|
|
select
|
name, length, options array, selectedIndex
|
|
submit
|
name, value
|
|
text
|
name, value, defaultValue
|
|
textarea
|
name, value, defaultValue
|
Properti adalah mengunakan
pengalamatan seperti document.elementName.property, atau document.formName. elements[index].propertyName, dimana elementName adalah nilai dari nama property untuk objek elemen.
Metode
element
Metode element melakukan emulasi dari sepupu mereka, yaitu penanganan
event:
- blur(). Metode ini memindahkan fokus dari object yang ditentukan, tetap tidak membuat fokus pada objek lain.
- click(). Metode ini melakukan suatu simulasi klik mouse pada suatu objek yang ditentukan. Ketika mengacu pada element radio, bentuknya adalah document.radioName[index].click().
- focus(). Metode ini memberikan fokus pada objek tertentu.
- select(). Metode ini men-select seluruh text area.
Kecuali objek radio,
metode dialamatkan sebagai document.elementName.metodename(). Tabel 10 mendaftarkan element objek-objek dan metode yang
bersesuaian
Table
10. Metode-metode dari elemen objek-objek.
|
Elemen objek
|
Metode
|
|
button
|
click
|
|
checkbox
|
click
|
|
hidden
|
(tidak ada metode)
|
|
password
|
blur, focus, select
|
|
radio
|
click
|
|
reset
|
click
|
|
select
|
blur, focus
|
|
submit
|
click
|
|
text
|
blur, focus, select
|
|
textarea
|
blur, focus, select
|
Contoh :
<form>
F:
<input
type="text" name="F" value="32"
onChange="C.value
= 100/(212-32) * (this.value - 32 )"><br>
C:
<input
type="text" name="C" value="0"
onChange="F.value
= (212-32)/100 * this.value + 32 "><br>
</form>
Hasil :
F:
C:
C:
Window dan frame membuat bingung
banyak pengembang halaman Web dari pada aspek-aspek browser lainnya. Ketika
Netscape Navigator berjalan, suatu window akan dibuka, dan tergantung bagaimana
pengaturan optionnya, serta memuat suatu dokumen ke dalam window tersebut. Jika
anda memilih menu option File | New Web Browser, suatu window baru akan di
buka. Dalam hal ini menutup jendela yang sebelumnya tidak akan menutup jendela
yang baru tersebut.
Pada sisi yang lain, frame dibuat
berdasarkan tag <FRAMESET></FRAMESET>
dalam dokumen HTML. Layar akan dibagi menjadi sejumlah frame. Ketika dokumen
frame ditutup, frame menghilang karena keberadaannya tergantung pada dokumen
tersebut.
Properti
Objek Window
Suatu fasilitas umum dari JavaScript
adalah kemampuannya untuk membuat dan memanipulasi window. Kemampuan ini tidak
hanya terbatas pada menampilkan pesan, tetapi sangat tergantung pada parameter
yang diberikan. berikut ini adalah properti dari objek window
yang akan mempengaruhi fleksibilitas dari jendela browser:
- defaultStatus. defaultStatus adalah pesan yang dimunculkan pada status bar ketika tidak ada tulisan yang ditampilkan disana. Jika diset dari onMouseOver event handler, event handler harus mengembalikan true untuk perubahan status.
- frames. Property ini adalah suatu array yang mengandung object frame. Frame mewarisi semua properti dan metode dari objek window.
- length. nilai dari properti ini adalah jumlah frame dalam frame array.
- parent. Dari suatu acuan frame, ini adalah window yang mana frameset berada. Suatu frame diantara frameset tersebut dapat mengacu pada frame lain dalam frameset dengan menggunakan parent.frames[index] tanpa memiliki acuan ke nama window.
- self. Ini adalah sama dengan window atau frame yang sekarang.
- status. Ini adalah pesan transient yang mana diset dengan onMouseOver event handler.
- top. Property ini digunakan sebagai acuan window yang laing atas. Dapat digunakan oleh child windows atau embedded filesets untuk mengacu pada window original.
- window. Property ini adalah sama dengan window sekarang.
Contoh:
<A
HREF="http://www.indoprog.com" onMouseOver="window.status='Klik
disini untuk keterangan lebih lengkap'; return true;"
onMouseOut="window.status=''; ">Klik disini</A>
Hasil:
Bentuk untuk mengacu properti window
adalah
window.propertyName
self.propertyName
top.propertyName
parent.propertyName
windowVar.propertyName
propertyName
Metode
Objek Window
Berikut ini adalah metode dari objek
window atau frame:
- alert("message"). Metode ini membuat suatu kotak dialog peringatan dengan suatu tombol OK tunggal. Digunakan untuk menampilkan pesan yang tidak membutuhkan keputusan pemakai.
- close(). Metode ini menutup window acuan. Harus mengandung window acuan seperti window.close dan close() tanpa acuan adalah sama dengan document.close.
- confirm("message"). Metode confirm menampilkan suatu dialog box konfirmasi dengan tombol OK dan Cancel. OK mengembalikan nilai true, dan Cancel mengembalikan nilai false.
- [windowVar = ][window.]open("URL", "windowName" ["windowFeatures"]. Metode ini membuka suatu Jendela browser yang baru. Nama object windowVar adalah nama dari jendela baru dan digunakan sebagai acuan untuk properti dan metodes-nya.URL menentukan URL yang akan dibuka ke jendela baru. Jika optionnya null, suatu window kosong akan dibuka. Variabel windowName adalah nama yang digunakan pada atribut TARGET dari <FORM> dan <A> tag. Variabel windowFeatures adalah suatu comma-separated list dari option berikut:
toolbar=yes|no
location=yes|no
directories=yes|no
status=yes|no
menubar=yes|no
scrollbars=yes|no
resizable=yes|no
width=pixels
height=pixels
- Jika tidak ada yang ditentukan, maka semuanya bernilai true. Jika salah satu ditentukan, maka semua yang lain menjadi false. Jika salah satu di tentukan tanpa nilai, maka nilainya adalah true.
|
NOTE
|
|
Setelah terbuat, window adalah
tidak terikat pada parent window, jika parent window di tutup, window yang
dibuat tersebut tetap buka.Event onUnLoad
menangani penutupan window yang dibuat
|
- prompt("message" [, inputDefault]). metode prompt menampilkan suatu prompt dialog box dengan suatu message, suatu input field, dan tombol OK, dan sebuah tombol Cancel. inputDefault adalah suatu string, integer, atau property dari suatu object yang mana mewakili nilai default untuk inout field. Jika inputDefault tidka ditentukan, input fied menampilkan nilai <undefined>.
- timeoutID=setTimeout(expression, msec). Dengan metode ini, evaluasi dari ekspresi adalah jumlah delay dalam milidetik. timeoutID adalah hanya digunakan oleh metode clearTimeout.
- clearTimeout(timeoutID). Metode ini membatalkan time-out yang ditentukan oleh metode setTimeout.
Metode sebelumnya menggunakan acuan
berikut:
window.metodeName(parameters)
self.metodeName(parameters)
top.metodeName(parameters)
parent.metodeName(parameters)
windowVar.metodeName(parameters)
metodeName(parameters)
|
PERHATIAN
|
|
Metode open() dan close() perlu mengunakan acuan window.open()
dan window.close() untuk menghindari scope dengan document.open() dan document.close()
|
Membagi
Window kedalam Frame
Frames membagi suatu window secara
multiple, memiliki scrollbar masing-masing. Frame dibuat dengan tag <FRAMESET></FRAMESET> dalam dokumen HTML. Masing-masing dokumen membuat suatu
frame array untuk dokumen. Jika suatu dokumen dibuka pada salah satu frame
memiliki suatu <FRAMESET> tag, frame akan terbagi lagi menjadi frame oleh dokumen
tersebut. Hirarki dari frameset adalah penting sebagai acuan properti dan
metode dari frame.
|
CATATAN
|
|
Frames memiliki semua properti
dari suatu window. Seluruh hirarki untuk struktur frame adalah sama dengan
struktur window.
|
Struktur dibawah setiap window atau
frame dapat menjadi acuan. Selanjutnya, properti pada suatu window atau frame
dapat mengubah properti object pada jendela atau frame lain.
|
CATATAN
|
|
Dokumen HTML yang menggunakan <FRAMESET></FRAMESET> mengandung hanya perintah frame. Setelah frame terbuka,
dokumen tersebut menjadi tidak visible. Dokumen HTML adalah suatu frame dapat
mengendalikan frame lain. Selanjutnya kemungkinan untuk pengaturan layar
memberikan kebebasan bagi pengembang untuk suatu dokumen web yang interaktif
|
Contoh :
<html>
<head>
<script
language="JavaScript">
if (top.location != this.location)
top.location = this.location //membuat html tidak berada
//dalam
frame lain
</script>
<title>Tutorial
JavaScript</title>
<frameset cols=175,*>
<frame src="daftar.html"
name="kiri">
<frame src="topik1.html"
name="kanan">
</frameset>
</head>
</html>
file
daftar.html
<html>
<head>
<script
language="JavaScript">
function buka(x)
{
top.frames[1].location=x;
return false
}
</script>
</head>
<body>
<h1>Daftar Isi</h1>
<a href="" onclick="return
buka('topik1.html')">Memasukan JavaScript ke dalam
HTML</a><hr>
<a href="" onclick="return
buka('topik2.html')">Variabel dan Literal</a><hr>
<a href="" onclick="return
buka('topik3.html')">Ekspresi dan Operator</a><hr>
<a href="" onclick="return
buka('topik4.html')">Struktur Kendali dan Fungsi</a><hr>
<a href="" onclick="return
buka('topik5.html')">Dasar dari Objek</a><hr>
<a href="" onclick="return
buka('topik6.html')">Objek dan Fungsi built-in</a><hr>
<a href="" onclick="return
buka('topik7.html')">Objek netscape</a><hr>
<a href="" onclick="return
buka('topik8.html')">Objek form</a><hr>
<a href="" onclick="return
buka('topik9.html')">Window dan Frame</a><hr>
</body>
</html>
Dibuat
oleh hendra@indoprog.com
Medan - Sumatera Utara
Indonesia
Medan - Sumatera Utara
Indonesia
Tips & Trik
Bagian Tips & Trik ini adalah beberapa hal yang dapat anda lakukan
untuk meningkatkan halaman Web anda tanpa tahu banyak mengenai JavaScript.- Meletakan tulisan pada status bar
- Menampilkan tanggal "Last Updated" pada dokumen
- Menampilkan pesan dengan suatu kotak pesan
- Membuat suatu link yang dapat menutup jendela browser
- Membuka suatu halaman berdasarkan pilihan pemakai pada suatu dropdown list
- Membagi Jendela Browser menjadi frame, dan klik link pada pilihan diframe kiri akan mengupdate isi frame kanan.
Meletakan tulisan pada status bar
Contoh pertama mendemontrasikan bagaimana memanipulasi tulisan pada status bar. Ketika anda mengerakan kursor melalui suatu link, maka statusbar akan menampilkan URL tujuan link tersebut.Suatu kode HTML untuk suatu membentuk link dapat berupa :
<A
HREF="mylink.htm">klik disini</A>Untuk menampilkan sesuatu pada status bar ketika mouse pointer digerakan melalui link, anda perlu menambah kode berikut :
<A HREF="mylink.htm"
onMouseOver="window.status='Klik disini untuk mengetahui lebih jauh
tentang saya'; return true;" onMouseOut="window.status='';
">Klik disini</A>Kode diatas akan menghasilkan suatu link Klik disini. Coba gerakan mouse pointer melaluinya, mudah bukan ?
onMouseOver adalah suatu
penanganan event. Perlu diperhatikan bahwa JavaScript akan membedakan
huruf besar dan huruf kecil, tetapi Microsoft Internet Explorer adalah
lebih pemaaf dibandingkan dengan Netscape Navigator, jadi untuk hasil
yang lebih akurat, sebaiknya anda menggunakan Navigator dalam
memeriksa kebenaran script pada halaman anda.Anda mungkin merasa aneh mengapa kami diperlukan suatu
return true; pada penanganan event onMouseOver. Normalnya browser
menampilkan URL dari link pada status bar, dan potongan kode ini memberitahukan
kepada browse untuk tidak menimpa pesan kita dengan URL tersebut.Menampilkan tanggal "Last Updated" pada dokumen
Pada halaman kita sering ingin menampilkan informasi kepada pengunjung tanggal terakhir kali halaman kita di Update. Berikut ini adalah potongan script yang akan secara otomatis menghasilkan informasi terakhir kali halaman kita di Update:<SCRIPT
LANGUAGE="JavaScript"> <!-- menyembunyikan dari browser non-js document.write("Last updated :"); document.write(document.lastModified); // --> </SCRIPT>Sisipkan kode berikut pada bagian dokumen HTML anda yang akan menampilkan informasi Last update. Perhatikan bahwa script diketik diantara tag komentar HTML <!-- ... -->, tujuannya supaya script tersebut tersembunyi dari browser non-JavaScript, dengan demikian tidak menimbulkan kesalahan pada browser non-JavaScript tersebut.
Catatan : biasakan mengetik script anda diantara tag komentar HTML <!-- .. -->.
Menampilkan pesan dengan suatu kotak pesan
Kadang-kadang kita ingin menampilkan suatu pesan kepada pengunjung, jika suatu tombol atau link di klik. Pada JavaScript kita dapat menggunakan fungsialert() yang mana akan menampilkan suatu
kotak pesan. Misalnya kita ingin memberi kejutan kepada pengunjung, begitu
halaman dibuka. Untuk melakukan hal ini, tambahkan saja kode berikut setelah
tag <BODY> (atau diantara tag <HEAD>).<SCRIPT LANGUAGE="JavaScript">
<!-- menyembunyikan dari browser non-js
alert("Press Ok to start formatting your hard disk");
// akhir dari penyembunyian -->
</SCRIPT>
Hal ini tentu saja akan menjadi kejutan bagi pengunjung halaman anda :-).
Bagaimana jika kita ingin menampilkan suatu kotak pesan ketika user melakukan
klik pada suatu link Anda dapat mencoba klik disini.
Untuk memahami apa sebenarnya yang terjadi, coba simak script berikut :<A HREF="JavaScript: alert('pesan anda disini.')">
JavaScript: bagian ini
akan memberitahukan kepada browser bahwa dia harus menjalankan perintah
JavaScript yang tersebut ketika link di klik.Anda juga dapat membuat suatu pesan ditampilkan tombol ditekan. Coba yang berikut ini:
<FORM>
<INPUT TYPE=BUTTON VALUE="Klik disini"
onClick="alert('pesan anda disini')">
</FORM>
Catatan
Anda mungkin memperhatikan bahwa, cara penulisan script pada setiap contoh diatas berbeda. Yang pertama adalah script ditulis diantara tag HTML <A HREF=...>, yang kedua adalah diantara suatu tang <SCRIPT> ... </SCRIPT>. Perbedaan ini adalah bahwa, script pertama akan dijalankan pada event tertentu (MouseOver dalam hal ini), sedangkan untuk yang kedua, script langsung dijalankan ketika ditemukan pada dokumen HTML.Membuat suatu link yang dapat menutup jendela browser
Untuk menutup jendela browser yang sedang aktif anda dapat menggunakan metode close pada objek window.
Contoh :
<A HREF="javascript:window.close()">tutup</A>Coba klik tutup untuk menutup jendela ini.
Membuka suatu halaman berdasarkan pilihan pemakai pada suatu dropdown list
Anda dapat membuat suatu fungsi yang mengambil nilai item yang dipilih pemakai, dan membuka halaman yang diinginkan
Adapun kode untuk Contoh diatas:
<SCRIPT LANGUAGE='JavaScript'>
<!--
function BuatArray() {
var jlhargumen = BuatArray.arguments.length;
for ( i = 0 ; i < jlhargumen; i++ )
{ this[i]=BuatArray.arguments[i] }
}
function buka() {
var pilih = eval(document.dropdown.site.selectedIndex);
if( (pilih > 0) && (pilih < 7) ) {
var bagian=new BuatArray( '',
'http://indoprog.terrashare.com/tutor/html/index.html',
'http://indoprog.terrashare.com/tutor/javascript/index.html',
'http://indoprog.terrashare.com/tutor/asp/index.html',
'http://indoprog.terrashare.com/tutor/php/index.html',
'http://indoprog.terrashare.com/tutor/perl/index.html');
this.location=buka[pilih];
}
}
//-->
</SCRIPT>
<FORM NAME="dropdown">
<SELECT NAME="site" onChange='buka();' ALIGN="left">
<OPTION SELECTED>Pilih tutorial yang diinginkan
<OPTION>HTML
<OPTION>JavaScript
<OPTION>ASP
<OPTION>PHP
<OPTION>Perl
</SELECT>
</FORM>
Membagi Jendela Browser menjadi frame, dan klik link pada pilihan diframe kiri akan mengupdate isi frame kanan.
Anda dapat melakukan hal tersebut dengan JavaScript, dan perhatikan contoh berikut :
Misalnya halaman html untuk membuat frame kiri dan kanan adalah sebagai berikut :
Contohy.html
<html>
<head>
<title>Tutorial JavaScript</title>
<frameset cols=175,*>
<frame src="menu.html" name="kiri">
<frame src="topik1.html" name="kanan">
</frameset>
</head>
</html>Pada contoh diatas, pada frame kiri akan dibuka suatu html dengan nama menu.html, dan sebelah kanan akan diaktifkan topik1.html, dan isi dari menu.html adalah sebagai berikut :
menu.html
<html>
<head>
<script language="JavaScript">
function buka(x)
{
top.kanan.location=x; // membuka halaman x pada frame kanan
return false
}
</script>
</head>
<body>
<h1>Daftar Isi</h1>
<a href="" onclick="return buka('topik1.html')">Memasukan JavaScript ke dalam HTML</a><hr>
<a href="" onclick="return buka('topik2.html')">Variabel dan Literal</a><hr>
<a href="" onclick="return buka('topik3.html')">Ekspresi dan Operator</a><hr>
<a href="" onclick="return buka('topik4.html')">Struktur Kendali dan Fungsi</a><hr>
<a href="" onclick="return buka('topik5.html')">Dasar dari Objek</a><hr>
<a href="" onclick="return buka('topik6.html')">Objek dan Fungsi built-in</a><hr>
<a href="" onclick="return buka('topik7.html')">Objek netscape</a><hr>
<a href="" onclick="return buka('topik8.html')">Objek form</a><hr>
<a href="" onclick="return buka('topik9.html')">Window dan Frame</a><hr>
</body>
</html>Pada menu.html diatas, kita menggunakan event onclick pada masing-masing link yang akan memanggil suatu fungsi buka yang diikuti dengan suatu parameter yang berupa nama dokumen html target. Pada fungsi buka, kita menggunakan properti location untuk frame kanan membuka halaman bersangkutan.
Catatan : kanan dalam hal ini adalah nama frame.
Klik untuk melihat hasil dari contoh diatas
Bagaimana, menarik bukan ?
Meletakan tulisan pada status bar
Contoh pertama mendemontrasikan bagaimana memanipulasi tulisan pada status bar. Ketika anda mengerakan kursor melalui suatu link, maka statusbar akan menampilkan URL tujuan link tersebut.Suatu kode HTML untuk suatu membentuk link dapat berupa :
<A
HREF="mylink.htm">klik disini</A>Untuk menampilkan sesuatu pada status bar ketika mouse pointer digerakan melalui link, anda perlu menambah kode berikut :
<A HREF="mylink.htm"
onMouseOver="window.status='Klik disini untuk mengetahui lebih jauh
tentang saya'; return true;" onMouseOut="window.status='';
">Klik disini</A>Kode diatas akan menghasilkan suatu link Klik disini. Coba gerakan mouse pointer melaluinya, mudah bukan ?
onMouseOver adalah suatu
penanganan event. Perlu diperhatikan bahwa JavaScript akan membedakan
huruf besar dan huruf kecil, tetapi Microsoft Internet Explorer adalah
lebih pemaaf dibandingkan dengan Netscape Navigator, jadi untuk hasil
yang lebih akurat, sebaiknya anda menggunakan Navigator dalam
memeriksa kebenaran script pada halaman anda.Anda mungkin merasa aneh mengapa kami diperlukan suatu
return true; pada penanganan event onMouseOver. Normalnya browser
menampilkan URL dari link pada status bar, dan potongan kode ini memberitahukan
kepada browse untuk tidak menimpa pesan kita dengan URL tersebut.Menampilkan tanggal "Last Updated" pada dokumen
Pada halaman kita sering ingin menampilkan informasi kepada pengunjung tanggal terakhir kali halaman kita di Update. Berikut ini adalah potongan script yang akan secara otomatis menghasilkan informasi terakhir kali halaman kita di Update:<SCRIPT
LANGUAGE="JavaScript"> <!-- menyembunyikan dari browser non-js document.write("Last updated :"); document.write(document.lastModified); // --> </SCRIPT>Sisipkan kode berikut pada bagian dokumen HTML anda yang akan menampilkan informasi Last update. Perhatikan bahwa script diketik diantara tag komentar HTML <!-- ... -->, tujuannya supaya script tersebut tersembunyi dari browser non-JavaScript, dengan demikian tidak menimbulkan kesalahan pada browser non-JavaScript tersebut.
Catatan : biasakan mengetik script anda diantara tag komentar HTML <!-- .. -->.
Menampilkan pesan dengan suatu kotak pesan
Kadang-kadang kita ingin menampilkan suatu pesan kepada pengunjung, jika suatu tombol atau link di klik. Pada JavaScript kita dapat menggunakan fungsialert() yang mana akan menampilkan suatu
kotak pesan. Misalnya kita ingin memberi kejutan kepada pengunjung, begitu
halaman dibuka. Untuk melakukan hal ini, tambahkan saja kode berikut setelah
tag <BODY> (atau diantara tag <HEAD>).<SCRIPT LANGUAGE="JavaScript">
<!-- menyembunyikan dari browser non-js
alert("Press Ok to start formatting your hard disk");
// akhir dari penyembunyian -->
</SCRIPT>
Hal ini tentu saja akan menjadi kejutan bagi pengunjung halaman anda :-).
Bagaimana jika kita ingin menampilkan suatu kotak pesan ketika user melakukan
klik pada suatu link Anda dapat mencoba klik disini.
Untuk memahami apa sebenarnya yang terjadi, coba simak script berikut :<A HREF="JavaScript: alert('pesan anda disini.')">
JavaScript: bagian ini
akan memberitahukan kepada browser bahwa dia harus menjalankan perintah
JavaScript yang tersebut ketika link di klik.Anda juga dapat membuat suatu pesan ditampilkan tombol ditekan. Coba yang berikut ini:
<FORM>
<INPUT TYPE=BUTTON VALUE="Klik disini"
onClick="alert('pesan anda disini')">
</FORM>
Catatan
Anda mungkin memperhatikan bahwa, cara penulisan script pada setiap contoh diatas berbeda. Yang pertama adalah script ditulis diantara tag HTML <A HREF=...>, yang kedua adalah diantara suatu tang <SCRIPT> ... </SCRIPT>. Perbedaan ini adalah bahwa, script pertama akan dijalankan pada event tertentu (MouseOver dalam hal ini), sedangkan untuk yang kedua, script langsung dijalankan ketika ditemukan pada dokumen HTML.Membuat suatu link yang dapat menutup jendela browser
Untuk menutup jendela browser yang sedang aktif anda dapat menggunakan metode close pada objek window.
Contoh :
<A HREF="javascript:window.close()">tutup</A>Coba klik tutup untuk menutup jendela ini.
Membuka suatu halaman berdasarkan pilihan pemakai pada suatu dropdown list
Anda dapat membuat suatu fungsi yang mengambil nilai item yang dipilih pemakai, dan membuka halaman yang diinginkan
Adapun kode untuk Contoh diatas:
<SCRIPT LANGUAGE='JavaScript'>
<!--
function BuatArray() {
var jlhargumen = BuatArray.arguments.length;
for ( i = 0 ; i < jlhargumen; i++ )
{ this[i]=BuatArray.arguments[i] }
}
function buka() {
var pilih = eval(document.dropdown.site.selectedIndex);
if( (pilih > 0) && (pilih < 7) ) {
var bagian=new BuatArray( '',
'http://indoprog.terrashare.com/tutor/html/index.html',
'http://indoprog.terrashare.com/tutor/javascript/index.html',
'http://indoprog.terrashare.com/tutor/asp/index.html',
'http://indoprog.terrashare.com/tutor/php/index.html',
'http://indoprog.terrashare.com/tutor/perl/index.html');
this.location=buka[pilih];
}
}
//-->
</SCRIPT>
<FORM NAME="dropdown">
<SELECT NAME="site" onChange='buka();' ALIGN="left">
<OPTION SELECTED>Pilih tutorial yang diinginkan
<OPTION>HTML
<OPTION>JavaScript
<OPTION>ASP
<OPTION>PHP
<OPTION>Perl
</SELECT>
</FORM>
Membagi Jendela Browser menjadi frame, dan klik link pada pilihan diframe kiri akan mengupdate isi frame kanan.
Anda dapat melakukan hal tersebut dengan JavaScript, dan perhatikan contoh berikut :
Misalnya halaman html untuk membuat frame kiri dan kanan adalah sebagai berikut :
Contohy.html
<html>
<head>
<title>Tutorial JavaScript</title>
<frameset cols=175,*>
<frame src="menu.html" name="kiri">
<frame src="topik1.html" name="kanan">
</frameset>
</head>
</html>Pada contoh diatas, pada frame kiri akan dibuka suatu html dengan nama menu.html, dan sebelah kanan akan diaktifkan topik1.html, dan isi dari menu.html adalah sebagai berikut :
menu.html
<html>
<head>
<script language="JavaScript">
function buka(x)
{
top.kanan.location=x; // membuka halaman x pada frame kanan
return false
}
</script>
</head>
<body>
<h1>Daftar Isi</h1>
<a href="" onclick="return buka('topik1.html')">Memasukan JavaScript ke dalam HTML</a><hr>
<a href="" onclick="return buka('topik2.html')">Variabel dan Literal</a><hr>
<a href="" onclick="return buka('topik3.html')">Ekspresi dan Operator</a><hr>
<a href="" onclick="return buka('topik4.html')">Struktur Kendali dan Fungsi</a><hr>
<a href="" onclick="return buka('topik5.html')">Dasar dari Objek</a><hr>
<a href="" onclick="return buka('topik6.html')">Objek dan Fungsi built-in</a><hr>
<a href="" onclick="return buka('topik7.html')">Objek netscape</a><hr>
<a href="" onclick="return buka('topik8.html')">Objek form</a><hr>
<a href="" onclick="return buka('topik9.html')">Window dan Frame</a><hr>
</body>
</html>Pada menu.html diatas, kita menggunakan event onclick pada masing-masing link yang akan memanggil suatu fungsi buka yang diikuti dengan suatu parameter yang berupa nama dokumen html target. Pada fungsi buka, kita menggunakan properti location untuk frame kanan membuka halaman bersangkutan.
Catatan : kanan dalam hal ini adalah nama frame.
Klik untuk melihat hasil dari contoh diatas
Bagaimana, menarik bukan ?
Membuat Tabel Perkalian dengan Javascript
September 9, 2009 by duken · Leave a CommentSaya pernah membuat kalender dengan c++. Algoritmanya sedikit sulit karena kita harus memperhatikan setiap bagian pada tabel perkalian. Namun dengan menggunakan javascript atau mungkin juga php, kita bisa sedikit lebih mudah dalam membuat script tabel perkalian. Kesempatan ini saya akan memmberi sedikit source code bagaimana membuat tabel perkalian dengan javascript.
Kita akan membagi file dalam 2 bagian,yang pertama adalah file kali.htm dan yang kedua adalah file kali.js
Ini adalah isi dari file kali.htm :
- <html>
- <head>
- <script type="text/javascript" src="kali.js"></script>
- <title>Perkalian</title>
- </head>
- <body onload='kali();'>
- </body>
- </html>
Selanjutnya kita akan membuat file javascript nya:- function kali()
- {
- var i,j;
- document.write("<table bgcolor=\"black\">");
- for(i=0;i<11;i++)
- {
- for(j=0;j<11;j++)
- {
- if(i==0 && j==0)
- kiriAtas();
- else if(i==10 && j==10)
- kananBawah(i,j);
- else if(i==0 && j==10)
- kananAtas(j);
- else if(i==10 && j==0)
- kiriBawah(i);
- else if(i==0 && j!=0 && j!=10)
- barNol(j);
- else if(i!=0 && i!=10 && j==0)
- kolNol(i);
- else if(i!=0 && i!=10 && j==10)
- kolSepuluh(i,j);
- else
- itung(i,j);
- }
- }
- document.write("</table>");
- }
- function kiriAtas()
- {
- document.write("<tr bgcolor=\"white\"><td width=\"30\"><center>X</td>");
- }
- function kananBawah(i,j)
- {
- document.write("<td>"+(i*j)+"</td></tr>");
- }
- function kananAtas(j)
- {
- document.write("<td><center>"+j+"</td></tr>");
- }
- function kiriBawah(i)
- {
- document.write("<tr bgcolor=\"white\"><td><center>"+i+"</td>");
- }
- function barNol(j)
- {
- document.write("<td width=\"30\"><center>"+j+"</td>");
- }
- function kolNol(i)
- {
- document.write("<tr bgcolor=\"white\"><td><center>"+i+"</td>");
- }
- function kolSepuluh(i,j)
- {
- document.write("<td width=\"30\"><center>"+(i*j)+"</td></tr>");
- }
- function itung(i,j)
- {
- document.write("<td><center>"+(i*j)+"</td>");
- }
Dalam tabel perkalian, kita bisa membagi bagian tabel menjadi beberapa
bagian, yaitu sudut kanan atas, sudut kanan bawah, sudut kiri atas, sudut kiri
bawah, baris ke 1, baris ke 10, kolom ke 10.Kenapa kita harus melakukan pembagian ini?
Karena tiap tempat akan memiliki akhiran script yang berbeda, misalnya pada kolom awal, kita harus memulianya dengan tr dan pada kolom terakhir kita harus mengakhiri tr ini.
Tidak ada komentar:
Posting Komentar