_The beautiful thing about learning is nobody can take it away from me....

wishnew.web.id

Programing, hobby, entertainment, game, digital art, etc

Teknik Membuat Script Mengubah Ukuran Image dengan Javascript

Tags:

Pada artikel kali ini, saya akan mencoba menjelaskan bagaimana teknik membuat script mengubah ukuran image dengan DOM di Javascript. Hal ini pernah saya jadikan tugas bagi mahasiswa saya yang mengambil matakuliah pemrograman web. Tapi sudah lama kok :-)

OK… Karena menggunakan Javascript, sehingga dalam hal ini prosesnya tidak perlu melalui request ke server namun hanya terjadi dalam client saja. Oleh karena itu proses resizing image ini dapat dilakukan dengan cepat.

Hmm… adapun skenario mengubah ukuran imagenya sebagai berikut. Dalam halaman web muncul sebuah image, kemudian terdapat 3 buah tombol atau button. Tombol pertama (+) digunakan untuk memperbesar ukuran image menjadi 2 kali sebelumnya. Tombol kedua (-) untuk memperkecil ukuran image 1/2 kali sebelumnya, dan tombol ketiga (=) untuk mereset ukuran image menjadi ukuran aslinya.

Berikut ini screen shot tampilan halaman web nya:

Photobucket

Tampilan di atas adalah tampilan image mula-mula (ukuran asli). Selanjutnya apabila tombol (+) diklik maka akan muncul image dengan besar 2 kali sebelumnya (lihat gambar di bawah).

Photobucket

Sedangkan apabila tombol (-) diklik maka image akan berukuran 1/2 kali sebelumnya.

Photobucket

Perlu diketahui bahwa, image yang yang tampil tersebut berasal dari sebuah file image yang sama. Perubahannya hanya pada size nya saja.

OK.. bagaimana teknik pembuatannya?

Pertama kita siapkan halaman webnya yang di dalamnya terdapat image dan 3 buah buttonnya.

<html>
<head>
  <title>Ubah Size Image</title>
</head>
<body>
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" />
    <input type="button" value="=" />
    <input type="button" value="+" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Selanjutnya, untuk proses pengubahan atau perhitungan ukuran image kita harus mendapatkan ukuran asli (width dan height) dari image terlebih dahulu. Untuk mendapatkan ukuran panjang (width) image, kita gunakan perintah DOM di Javascript

document.getElementByID("gambar").width;

dan lebar atau tinggi imagenya kita gunakan perintah

document.getElementByID("gambar").height;

Kedua perintah tersebut kita jalankan begitu halaman web diload oleh browser (diberikan pada event onload)

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" />
    <input type="button" value="=" />
    <input type="button" value="+" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Perhatikan Javascript di atas, bahwa variabel panjang dan lebar sengaja dibuat sebagai variabel global karena nantinya akan digunakan dalam proses perhitungan untuk setiap proses (perbesar ukuran dan perkecil ukuran). Apabila kedua variabel tersebut dibuat lokal dalam function bacaUkuran() maka nilai-nilainya hanya bisa dikenal dalam function tersebut saja. Sehingga deklarasi variabel panjang dan lebar tidak seperti berikut ini :

function bacaUkuran()
{
  var panjang;
  var lebar;
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

Selanjutnya kita akan membuat script untuk memperbesar ukuran terlebih dahulu. Bagaimana idenya? Misalkan mula-mula panjang imagenya adalah x. Setelah diperbesar 2 kali maka panjang imagenya adalah 2x. Bila diperbesar lagi maka panjang imagenya menjadi 4x, dst. Secara umum panjang image setelah diperbesar n kali adalah 2nx. Bila n = 0, maka akan diperoleh panjang image mula-mula. Hal yang sama juga berlaku untuk lebar imagenya. Nah… ide ini bisa kita terapkan dalam bentuk script.

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;
var n = 0;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

function tambahSize()
{
  n++;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" />
    <input type="button" value="=" />
    <input type="button" value="+" onclick="tambahSize()" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Keterangan:

Perintah Math.pow(2, n) digunakan untuk menghitung 2n pada Javascript.
Perintah document.getElementById("gambar").width = Math.pow(2, n) * panjang; digunakan untuk mengubah panjang image yang tampil dalam browser menjadi 2n * panjang aslinya.

Sedangkan untuk memperkecil ukuran image, kita cukup melakukan decrement pada variabel n nya saja (n--). Misal mula-mula panjang image adalah x (20x) pixel, lalu diperbesar menjadi 2x (20+1x = 21x), lalu diperbesar lagi menjadi 4x (21+1x = 22x). Selanjutnya diperkecil, maka panjangnya menjadi kembali ke 2x (22-1x = 21x). Bila diperkecil lagi menjadi x (21-1x = 20x), dan bila diperkecil lagi menjadi 1/2 x (20 – 1x = 2-1x) dst.

Dengan ide di atas maka Javascript untuk memperkecil ukuran adalah:

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;
var n = 0;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

function tambahSize()
{
  n++;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

function kurangiSize()
{
  n--;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" onclick="kurangiSize()" />
    <input type="button" value="=" />
    <input type="button" value="+" onclick="tambahSize()" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Yang terakhir, untuk tombol ketiga (=) dimana bila tombol ini ukuran image akan direset menjadi ukuran aslinya. Idenya adalah dengan memberi nilai n = 0, untuk mendapatkan panjang dan lebar image aslinya. Bila nilai n = 0, dan panjang image aslinya x, maka 20x = x (sama seperti ukuran aslinya). Demikian pula untuk lebarnya.

<html>
<head>
  <title>Ubah Size Image</title>

<script type="text/javascript">

var panjang;
var lebar;
var n = 0;

function bacaUkuran()
{
  panjang = document.getElementById("gambar").width;
  lebar = document.getElementById("gambar").height;
}

function tambahSize()
{
  n++;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

function kurangiSize()
{
  n--;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

function resetSize()
{
  n = 0;
  document.getElementById("gambar").width = Math.pow(2, n) * panjang;
  document.getElementById("gambar").height = Math.pow(2, n) * lebar;
}

</script>
</head>
<body onload="bacaUkuran()">
  <div align="center">
    <h1>Sampel Script Mengubah Size Gambar</h1>
    <h2>Logo UNS</h2>
    <input type="button" value="-" onclick="kurangiSize()" />
    <input type="button" value="=" onclick="resetSize()" />
    <input type="button" value="+" onclick="tambahSize()" /><br /><br />
    <img id="gambar" src="uns.gif" />
  </div>
</body>
</html>

Asyik dan mudah bukan membuatnya? Nah… silakan Anda berkreasi sendiri menggunakan image yang lain. Atau mungkin… Anda kembangkan ke font size. Bagaimana bila font nya yang diubah-ubah ukurannya seperti halnya image di atas.

Membuat Script PHP untuk Hapus Data dengan Multi Selection

Tags: ,

Pernahkah Anda membuat script untuk menghapus data dengan konsep multi selection? Untuk menghapus sebuah data sih.. saya kira mudah untuk membuatnya. Pembahasan tentang hal ini telah saya kupas tuntas di artikel sebelumnya.

Tapi… bagaimana bila data yang akan dihapus lebih dari satu sekaligus? Rumit gak ya membuat scriptnya? Hmm… nggak rumit kok, cuman sedikit memusingkan saja he.. he.. he :-) nggak ding, becanda… mudah-mudahan artikel yang saya sajikan ini tidak membuat Anda pusing.

OK… konsep menghapus data dengan multi selection ini biasanya menggunakan bantuan komponen checkbox. Mengapa checkbox? ya.. karena komponen checkbox memungkinkan kita bisa memilih pilihan lebih dari satu.

Data yang akan dihapus terlebih dahulu dipilih dengan memberi tanda check pada checkbox yang ada di depan setiap data. Perhatikan contoh tampilan berikut ini:

Photobucket

Nah… kita akan membuat script PHP untuk menghapus data dengan konsep multi selection seperti gambaran di atas.

Untuk studi kasus yang diambil, lagi-lagi kita mengambil kasus tentang data mahasiswa :-) Huh… mentang-mentang yang buat artikel ini seorang dosen kali ya :-)

Misalkan kita punya tabel dan data sbb:

CREATE TABLE mhs (
  nim varchar(10),
  namamhs varchar(30),
  PRIMARY KEY (nim)
)
INSERT INTO mhs VALUES ('M0197001', 'ROSIHAN ARI YUANA');
INSERT INTO mhs VALUES ('M0197002', 'DWI AMALIA FITRIANI');
INSERT INTO mhs VALUES ('M0197003', 'FAZA FAUZAN KH.');
INSERT INTO mhs VALUES ('M0197004', 'NADA HASANAH');
INSERT INTO mhs VALUES ('M0197005', 'MUH. AHSANI TAQWIM');

Langkah pertama dalam membuat script penghapusan data ini, terlebih dahulu kita siapkan script untuk menampilkan semua datanya. Untuk setiap data nantinya kita letakkan sebuah checkbox di depannya yang digunakan untuk memilih data mana saja yang akan dihapus.

data.php

<html>
<head>
  <title>Hapus data mahasiswa</title>
</head>
<body>
<h1>Hapus Data Mahasiswa</h1>
<?php

// koneksi mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// query SQL untuk menampilkan semua data

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);

// membuat form penghapusan data

echo "<form name='myform' method='post' action='".$_SERVER['PHP_SELF']."?action=del'>";
echo "<table border='1'>";
echo "<tr><td></td><td><b>NIM</b></td><td><b>Nama Mahasiswa</b></td></tr>";
$i = 0;
while($data = mysql_fetch_array($hasil))
{
  echo "<tr><td><input type='checkbox' name='nim".$i."' value='".$data['nim']."' /></td><td>".$data['nim']."</td><td>".$data['namamhs']."</td></tr>";
  $i++;
}
echo "</table>";
echo "<input type='hidden' name='n' value='".$i."' />";
echo "<p><input type='submit' value='Hapus' name='submit'> <input type='reset' value='Batal' name='reset'></p>";
echo "</form>";
?>

</body>
</html>

Perhatikan script di atas! Form nantinya akan diarahkan ke script itu sendiri (menggunakan $_SERVER['PHP_SELF']) namun dengan parameter ‘?action=del’. Anda boleh arahkan pemrosesan formnya ke script lain. It’s up to you.

Selain itu perhatikan pula bahwa untuk setiap komponen checkbox diberikan name yang berbeda. Di sini diberikan name berbentuk ‘nim0?, ‘nim1?, ‘nim2?, … dst (perhatikan bagian name=’nim”.$i.”‘).

Kemudian, terdapat pula komponen hidden value (name=’n’) yang bernilai sama dengan jumlah data total atau dalam hal ini adalah $i. Komponen ini nantinya akan sangat penting ketika memproses form terutama pada saat membaca komponen checkbox yang dipilih.

Selanjutnya untuk pemanis, misalkan kita ingin membuat fasilitas SELECT ALL untuk memilih semua data sekaligus. OK Bagaimana caranya? Ya.. kita gunakan Javascript. Oya… jangan lupa berikan sebuah checkbox tambahan untuk memberikan fasilitas ini. Begitu checkbox ini dipilih, maka semua checkbox yang ada di depan data akan terpilih. Untuk hal ini, kita berikan event onclick() pada checkbox tsb. Mmm… sebaiknya checkbox ini diletakkan di dalam header tabel saja ya.

data.php

<html>
<head>
  <title>Hapus data mahasiswa</title>
  <script type="text/javascript">

  function pilihan()
  {
     // membaca jumlah komponen dalam form bernama 'myform'
     var jumKomponen = document.myform.length;

     // jika checkbox 'Pilih Semua' dipilih
     if (document.myform[0].checked == true)
     {
        // semua checkbox pada data akan terpilih
        for (i=1; i<=jumKomponen; i++)
        {
            if (document.myform[i].type == "checkbox") document.myform[i].checked = true;
        }
     }
     // jika checkbox 'Pilih Semua' tidak dipilih
     else if (document.myform[0].checked == false)
        {
            // semua checkbox pada data tidak dipilih
            for (i=1; i<=jumKomponen; i++)
            {
               if (document.myform[i].type == "checkbox") document.myform[i].checked = false;
            }
        }
  }

  </script>
</head>
<body>
<h1>Hapus Data Mahasiswa</h1>
<?php

// koneksi mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// query SQL untuk menampilkan semua data

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);

// membuat form penghapusan data

echo "<form name='myform' method='post' action='".$_SERVER['PHP_SELF']."?action=del'>";
echo "<table border='1'>";
echo "<tr><td><input type='checkbox' name='pilih' onclick='pilihan()' /> Pilih semua</td><td><b>NIM</b></td><td><b>Nama Mahasiswa</b></td></tr>";
$i = 0;
while($data = mysql_fetch_array($hasil))
{
  echo "<tr><td><input type='checkbox' name='nim".$i."' value='".$data['nim']."' /></td><td>".$data['nim']."</td><td>".$data['namamhs']."</td></tr>";
  $i++;
}
echo "</table>";
echo "<input type='hidden' name='n' value='".$i."' />";
echo "<p><input type='submit' value='Hapus' name='submit'> <input type='reset' value='Batal' name='reset'></p>";
echo "</form>";
?>

</body>
</html>

Nah… selanjutnya, kita bisa membuat bagian untuk memproses formnya atau membuat script untuk proses penghapusan datanya.

Trus… bagaimana konsep membaca data mana saja yang akan dihapus sesuai pilihan checkboxnya? Untuk membaca data mana yang akan dihapus, kita gunakan bantuan looping. Berapa jumlah loopingnya? Jumlah loopingnya sesuai jumlah komponen checkboxnya. Nah… di sinilah pentingnya penggunaan komponen hidden value <input type=’hidden’ name=’n’ value=’”.$i.”‘ /> Dalam contoh ini nilai n=5.

Selanjutnya isi dalam loopingnya bagaimana? ya… kita cek saja apakah komponen checkbox dengan name=’nim0? dipilih tidak? jika ya, maka baca NIM mahasiswa terkait dengan komponen tersebut, lalu jalankan query SQL untuk menghapus data mahasiswanya. Trus… komponen checkbox dengan name=’nim1? dicek apakah dipilih atau tidak. Jika ya, maka baca NIM mahasiswa terkait dengan komponen tersebut, lalu hapus dengan query SQL. Proses ini diulang sebanyak 5 kali untuk kasus di atas, yaitu mulai dari komponen checkbox dengan name=’nim0? sampai dengan name=’nim4?.

Lantas yang menjadi masalah adalah, bagaimana cara kita mendeteksi bahwa komponen checkbox dengan name tertentu itu dipilih atau tidak? caranya adalah kita gunakan statement IF seperti di bawah ini

if (isset($_POST['nim'.$i]))
{
   ...
}

dengan $i = 0, 1, …, n-1.

Jika suatu komponen checkbox itu dipilih, maka perintah isset($_POST['nim'.$i]) akan menghasilkan nilai TRUE. Sedangkan FALSE jika tidak dipilih.

Dengan demikian, script untuk menghapus data dengan multi selection ini adalah sbb:

data.php

<html>
<head>
  <title>Hapus data mahasiswa</title>
  <script type="text/javascript">

  function pilihan()
  {
     // membaca jumlah komponen dalam form bernama 'myform'
     var jumKomponen = document.myform.length;

     // jika checkbox 'Pilih Semua' dipilih
     if (document.myform[0].checked == true)
     {
        // semua checkbox pada data akan terpilih
        for (i=1; i<=jumKomponen; i++)
        {
            if (document.myform[i].type == "checkbox") document.myform[i].checked = true;
        }
     }
     // jika checkbox 'Pilih Semua' tidak dipilih
     else if (document.myform[0].checked == false)
        {
            // semua checkbox pada data tidak dipilih
            for (i=1; i<=jumKomponen; i++)
            {
               if (document.myform[i].type == "checkbox") document.myform[i].checked = false;
            }
        }
  }

</script>
</head>
<body>
<h1>Hapus Data Mahasiswa</h1>
<?php

// koneksi mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// bagian script untuk menghapus data

if ($_GET['action'] == "del")
{
   // membaca nilai n dari hidden value
   $n = $_POST['n'];

   for ($i=0; $i<=$n-1; $i++)
   {
     if (isset($_POST['nim'.$i]))
     {
       $nim = $_POST['nim'.$i];
       $query = "DELETE FROM mhs WHERE nim = '$nim'";
       mysql_query($query);
     }
   }
}

// query SQL untuk menampilkan semua data

$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);

// membuat form penghapusan data

echo "<form name='myform' method='post' action='".$_SERVER['PHP_SELF']."?action=del'>";
echo "<table border='1'>";
echo "<tr><td><input type='checkbox' name='pilih' onclick='pilihan()' /> Pilih semua</td><td><b>NIM</b></td><td><b>Nama Mahasiswa</b></td></tr>";
$i = 0;
while($data = mysql_fetch_array($hasil))
{
  echo "<tr><td><input type='checkbox' name='nim".$i."' value='".$data['nim']."' /></td><td>".$data['nim']."</td><td>".$data['namamhs']."</td></tr>";
  $i++;
}
echo "</table>";
echo "<input type='hidden' name='n' value='".$i."' />";
echo "<p><input type='submit' value='Hapus' name='submit'> <input type='reset' value='Batal' name='reset'></p>";
echo "</form>";

?>

</body>
</html>

Gimana mudah bukan membuatnya? selamat mencoba ya…

Window dan Frame (javascript modul 9)

Tags: , , , ,

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:

Klik
disini




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>

Klik untuk
melihat hasil dari contoh diatas




Objek Form (javascript modul 8)

Tags: , , , ,

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.

penanganan events

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)

Metode Objek Form

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 element

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:




Objek pada Netscape (javascript modul 7)

Tags: , , , ,

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

Diantara ketiga objek tersebut, document adalah objek yang paling penting
dalam hirarki tersebut. Objek document itu sendirinya mengacu kepada
objek lain. Hal lain yang penting dari hal ini adalah sebagai berikut:

  • 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.


Properti dari objek location adalah sebagai berikut:

  • 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.





Contoh :

<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>.



Properti color untuk Objek document adalah sebagai berikut:

  • 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.




Contoh 1:

<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 :




Objek document juga mengandung properti berikut yang tidak
berkaitan dengan warna:

  • 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>.




Contoh 1:

<SCRIPT LANGUAGE="JavaScript">

<!–

document.write(”Update terakhir :”);

document.write(document.lastModified);

// –>

</SCRIPT>

Hasil:

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


Objek link memiliki dua event handler: onClick dan onMouseOver.
Bagian ini disebut sebagai “The Form Objek,”  pada
bagian selanjutnya di bab ini, menggambarkan bagaimana mengunakan event handler.

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()

Sebagaimana yang ditunjukkan pada contoh sebelumnya, metode document.write,
tanpa mengacu pada suatu window, menulis text ke window yang sekarang. Metode document.writeln()
adalah sama dengan  document.write, selain itu juga menyisip suatu
karakter newline pada akhir dari argumen. Format dari metode ini adalah sebagai
berikut:

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.




Contoh :

<SCRIPT>
document.write(Date()+".")
</SCRIPT>

Hasil :






CATATAN

Sekarang, tidak dimungkinkan lagi untuk mencetak tulisan apapun
dengan JavaScript melalui metode write ataupun writeln


Stream tersebut tetap terbuka sampai browser menemukan metode document.close().
document.close() memaksakan isi dari stream ditampilkan. Metode document.clear()
membersihkan
isi dari window.




Contoh :

<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