• Tidak ada hasil yang ditemukan

JavaScript dan DOM Pemrograman Internet (TKE ) Program Studi Teknik Elektro, Unsoed

N/A
N/A
Protected

Academic year: 2021

Membagikan "JavaScript dan DOM Pemrograman Internet (TKE ) Program Studi Teknik Elektro, Unsoed"

Copied!
60
0
0

Teks penuh

(1)

JavaScript dan DOM

Pemrograman Internet (TKE 074082)

Program Studi Teknik Elektro, Unsoed

(2)
(3)
(4)
(5)

Kode yang dijalankan di peramban (

klien

),

setelah halaman web diambil dari peladen.

(6)
(7)

Sering skrip di sisi klien ini digunakan

untuk

memanipulasi

halaman web

(8)
(9)

Mengapa kita membutuhkan

pemrograman di sisi klien?

(10)

Pemrograman di Sisi Klien?

Pemrograman di sisi klien

Usabilitas: dapat digunakan untuk memodifikasi halaman, tanpa 

harus mengirimkannya ke peladen. Antarmuka pengguna yang 

cepat dan interaktif

Efisiensi: dapat membuat perubahan­perubahan kecil dan cepat 

tanpa harus menunggu atau tergantung peladen

Event­driven

: dapat merespon aksi pengguna seperti klik, dst.

Pemrograman di sisi peladen

Keamanan: akses ke data yang tersimpan di peladen, klien tak 

dapat melihat kode sumber

Kompatibilitas: tidak berhubungan dengan dukungan peramban

Powerful

: dapat menulis berkas, koneksi ke peladen lain, basis 

(11)
(12)

Bahasa pemrograman yang “ringan.”

(13)

Digunakan untuk membuat halaman

web menjadi lebih interaktif.

(14)

Membuat Halaman Web Interaktif

Memasukkan teks secara dinamis ke HTML, misal 

username

Melakukan aksi ketika ada kejadian atau event, misal 

klik tombol

Mengambil informasi komputer pengguna, misal tipe 

peramban

Melakukan perhitungan atau operasi di komputer 

pengguna, misal: validasi borang

(15)

Merupakan standar web, tapi

tidak

semua

peramban mendukung semua

(16)

Tak berhubungan dengan Java, kecuali nama

dan beberapa kesamaan sintaks.

(17)

JavaScript vs. Java

Interpreted bukan compiled

Sintaks dan aturan lebih “santai”: tipe data lebih 

sedikit dan lebih ”lemah” (weak/loose typing), variabel 

tidak perlu dideklarasikan, sedikit exception terhadap 

kesalahan

Kode berada di dalam halaman web dan terintegrasi 

dengan isi HTML/CSS

(18)

JavaScript vs. PHP

Persamaan

: interpreted bukan compiled, sintaks 

aturan, dan tipe yang lebih “santai”, case­sensitive, 

regex built­in untuk pemrosesan teks.

Perbedaan

: JS lebih berorientasi obyek: noun.verb(), 

tak terlalu prosedural, JS fokus ke antarmuka 

pengguna dan interaksi dengan dokumen sedang 

PHP pada keluaran dan berkas/borang HTML, kode 

JS dijalankan di klien/peramban sedang PHP di 

peladen web.

(19)
(20)

Menautkan Berkas JS

Tag 

script

 diletakkan di 

head

 berkas HTML.

Kode skrip disimpan di dalam berkas .js terpisah.

Kode JS dapat pula diletakkan secara langsung di 

dalam 

head

 atau 

body

 berkas HTML.

Lebih baik menyimpan kode JS dalam berkas 

tersendiri, sehingga akan memisahkan isi, presentasi, 

dan perilaku halaman web.

(21)

Pernyataan alert

Perintah JS yang akan memunculkan boks dialog 

pop­up 

pesan

.

(22)

var age = 22;

var weight = 60;

var studentName = "Seiei";

Variabel dideklarasikan dengan kata kunci 

var

.

Tipe tidak dispesifikasikan, walaupun sebenarnya JS punya.

Number, Boolean, String, Array, Object, Function, Null, 

Undefined.

Kita dapat mengetahui tipe variabel dengan 

typeof

.

(23)

Tipe String

var s = “Setsuna F. Seiei”;

var fNAME = s.substring(0, s.indexOf(“ “)); // Setsuna

var len = s.length; // 16

var ss = 'Soran Ibrahim' // dapat pula menggunakan ' '

Method

: charAt, charCodeAt, fromCharCode, indexOf, lastIndexOf, 

replace, split, substring, toLowerCase, toUpperCase.

Properti 

length

 bukan 

method

.

(24)
(25)

Program JS tidak mempunyai main, dan

(26)

Event-driven programming

(27)

Tombol: <button>

<button>Click me!</button>

Teks yang akan digunakan pada tombol berada di dalam tag 

button

. Dapat pula berisi gambar.

Untuk membuat tombol yang responsif atau kontrol antarmuka:

Pilih kontrol dan 

event

­nya yang menarik

(28)

function myFunction() {

alert("Salam!");

alert("Apa kabar?");

}

Pernyataan yang diletakkan di dalam fungsi dapat disesuaikan 

dengan respon yang diinginkan.

(29)

Event Handler

<element attributes onclick="function();"> …

<button onclick="myFunction();">Click me!</button>

Fungsi JS dapat diset sebagai 

event handler

. Jadi ketika kita 

berinteraksi dengan sebuah elemen, fungsi akan dijalankan.

(30)

Document Object

(31)

Antarmuka untuk program atau skrip yang dapat

memberikan akses dan pemutakhiran terhadap

isi, struktur, dan gaya dokumen

.

(32)

Sebagian besar kode JS memanipulasi

elemen-elemen di dalam halaman HTML.

(33)

Contoh: mengetahui dan mengubah status

elemen, mengubah gaya halaman, ...

(34)
(35)
(36)

Setiap elemen dalam sebuah halaman

mempunyai objek DOM yang bersesuaian.

(37)

Pengaksesan atau modifikasi atribut objek DOM

dilakukan dengan objectName.attributeName.

(38)

Mengakses elemen:

(39)

JS

var name = document.getElementById("id");

HTML

<button onclick="changeText();">Click me!</button>

<input id="output" type="text" value="replace me" />

function changeText() {

var textbox = document.getElementById("output");

textbox.value = "Hello, world!";

}

(40)

document.getElementById

mengembalikan

objek DOM untuk sebuah elemen

dengan id tertentu.

(41)

Dapat mengubah teks pada sebagian besar

kontrol borang dengan mengganti

(42)

JS

function swapText() {

  var span = document.getElementById("output2");

  var textBox = document.getElementById("textbox2");

  var temp = span.innerHTML;

  span.innerHTML = textBox.value;

  textBox.value = temp;

}

HTML

<button onclick="swapText();">Click me!</button>

<span id="output2">Hello</span>

<input id="textbox2" type="text" value="Goodbye" />

(43)

Dapat mengubah teks di dalam banyak

(44)
(45)

Tipe Number

var enrollment = 99;

var medianGrade = 2.8;

var credits = 5 + 4 + (2 * 3);

Integer dan real bertipe sama. Tidak ada int atau double.

Operator:

+ ­ * / % ++ ­­ = += ­= *= /= %=

Prioritas operator atau

precedence

, sama dengan Java

(46)

Komentar

// komentar satu baris

/* komentar lebih

   dari satu baris */

Sama dengan komentar di Java

Perbedaan komentar di HTML, CSS, Java, JavaScript, PHP?

(47)

HTML:

<!­­ komentar ­­>

CSS/JS/PHP:

/* komentar */

Java/JS/PHP:

// komentar

(48)

String

escape sequence

\' \" \& \n \t \\

Konversi angka dan string:

var count = 10;

var s1 = "" + count;      // "10"

var s2 = count + " jeruk!";         // "10 jeruk!"

var n1 = parseInt("42 jawabannya"); // 42

var n2 = parseFloat("bosan");       // NaN

Mengakses huruf pada string:

var firstLetter = s[0];      // tak berjalan di IE

var firstLetter = s.charAt(0);   // jalan di IE

var lastLetter = s.charAt(s.length – 1);

(49)
(50)

for (inisialisasi; kondisi; pemutakhiran) {

pernyataan;

}

var sum = 0;

for (var i = 0; i < 100; i++) {

sum = sum + i;

}

var s1 = "hello";

var s2 = "";

for (var i = 0; i < s.length; i++) {

s2 += s1.charAt(i) + s1.charAt(i);

}

(51)

null dan undefined

var soran = null;

var iwan = 9;

var paijo;

// soran bernilai null

// iwan bernilai 9

// paijo undefined

undefined: belum dideklarasikan, tak ada nilainya

(52)

Operator Logika

> < >= <= && || ! == != === !==

Kebanyakkan operator logika secara otomatis mengkonversi tipe:

5 < "7" bernilai benar

42 == 42.0 bernilai benar

"5.0" == 5 bernilai benar

===

 and 

!==

 membandingkan secara ketat; operator ini akan 

memeriksa tipe dan nilainya.

"5.0" === 5 bernilai salah

(53)

Pernyataan if/else

if (kondisi) {

pernyataan;

} else if (kondisi) {

pernyataan;

} else {

pernyataan;

}

Struktur identik dengan Java

JavaScript mengijinkan hampir semua bentuk nilai sebagai kondisi

(54)

Tipe Boolean

var iLikePinet = true;

var ieIsGood = "IE6" > 0;   // false

if ("web dev is great") {  /* true */ }

if (0) {  /* false */ }

Sembarang nilai dapat digunakan sebagai Boolean

Nilai salah: 0, 0.0, NaN, "", null, dan undefined

Nilai benar: selain nilai di atas

Konversi nilai ke Boolean secara eksplisit:

var boolValue = Boolean(otherValue);

var boolValue = !!(otherValue);

(55)

Iterasi while

while (kondisi) {

pernyataan;

}

do {

pernyataan;

} while (kondisi);

Kata kunci break dan continue juga dapat digunakan

(56)

Kotak Popup

alert("pesan");     // pesan

confirm("pesan");   // mengembalikan benar atau salah

prompt("pesan");    // mengembalikan masukan string

(57)

Array

var name = [];      // array kosong

var name = [value, ..., value]; // array terisi

name[index] = value;      // menyimpan elemen

var bebek = ["Huey", "Dewey", "Donald"];

var siswa = [];        // siswa.length is 0

siswa[0] = "Siswa1";   // siswa.length is 1

siswa[1] = "Siswa2";   // siswa.length is 2

siswa[4] = "Siswa3";   // siswa.length is 5

siswa[4] = "Siswa4";   // siswa.length is 5

(58)

Metode Array

var a = ["Soran", "Paijo"];// Soran, Paijo

a.push("Brian");      // Soran, Paijo, Brian

a.unshift("Kelly");       // Kelly, Soran, Paijo, Brian

a.pop();      // Kelly, Soran, Paijo

a.shift();      // Soran, Paijo

a.sort();       // Paijo, Soran

Array menyediakan banyak struktur data: list, queue, stack, …

Metode: concat, join, pop, push, reverse, shift, slice, sort, splice, 

toString, unshift

push dan pop menambah/menghapus dari belakang

unshift dan shift menambah/menghapus dari depan

(59)

Memisahkan string: split dan join

var count = 10;

var s = "the quick brown fox";

var a = s.split(" "); // ["the", "quick", "brown", "fox"]

a.reverse();      // ["fox", "brown", "quick", "the"]

s = a.join("!");      // "fox!brown!quick!the"

split memisahkan string ke dalam array menggunakan 

delimiter

dapat pula digunakan dengan regex

join menggabungkan array ke dalam satu string, meletakkan 

delimiter

 di antara array

(60)

Daftar Bacaan

Stepp, M., Miller, J. 2010. 

Introduction to 

JavaScript

, presentasi 

Web Programming Step 

by Step

W3C. 2009. 

Document Object Model

 (DOM), 

Referensi

Dokumen terkait

Mata kuliah ini membahas tentang konservasi keanekaragaman genetik biodiversitas, serta analisis dan metodologi risetnya, sebagai suatu pendekatan dalam program

Gedung H, Kampus Sekaran-Gunungpati, Semarang 50229 Telepon: (024)

Transformasi genetik dan ekspresi transgen pada tebu masih belum optimal, sehingga dilakukan penelitian transformasi genetik menggunakan gen GUS sebagai gen repoter

atau kasus-berdasarkan deskripsi program rehabilitasi digunakan setelah prosedur khusus dan untuk jenis tertentu ketidakstabilan bahu dan manset rotator labral atau terkait lesi

(2) Berdasarkan perjanjian kerja sama sebagaimana dimaksud dalam Pasal 14 ayat (5), ditetapkan Kementerian Negara/Lembaga/unit eselon I pengguna Sistem Mitra sebagai

Kemudian dengan menggunakan bantuan software smartpicker maka akan memudahkan dalam sistem pengambilan keputusan dimana dengan menggunakan nilai- nilai bobot kriteria

mengorganisasikan  tulisan/artikel  berdasarkan  topik  bahasannya.  Sebuah hal yang sangat baik adalah membuat kategori dulu sebelum  Anda  memulai  menuliskan 

Guru perlu diberikan pemahaman konseptual dan operasional keterampilan proses sains yang memungkinkan guru dapat menggunakan keterampilan dan melaksanakan