8. pengantar javascript & dom - universitas...

32
Desain slide ini dadaptasi dari University of San Fransisco 8. Pengantar JavaScript & DOM PTI15010 Pemrograman Web Agi Putra Kharisma, S.T., M.T. Genap 2014/2015

Upload: nguyenhuong

Post on 20-Feb-2018

229 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Desain slide ini dadaptasi dari University of San Fransisco

8. Pengantar JavaScript & DOM

PTI15010

Pemrograman Web

Agi Putra Kharisma, S.T., M.T.

Genap 2014/2015

Page 2: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Permasalahan

1. Bagaimana membuat aplikasi berbasis web menjadi lebih interaktif pada web browser?

2. Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer?

3. Bagaimana membuat aplikasi berbasis web menjadi lebih cerdas pada web browser?

Page 3: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Interaktivitas Pada Web

Page 4: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Responsivitas Pada Web

Page 5: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Web Lebih Cerdas

Page 6: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Solusi

Client-Side Programming:

• Java Applets

• Microsoft ActiveX

• Microsoft VBScript

• Adobe Flash

• Microsoft Silverlight

• HTML + CSS + JavaScript

http://www.troll.me/images/pissed-off-obama/we-need-a-solution-a-final-solution.jpg

Page 7: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

http://treasure.diylol.com/uploads/post/image/599851/resized_winter-is-coming-meme-generator-javascript-is-coming-c1c977.jpg

Page 8: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Hubungan Java dengan JavaScript?

http://www.ikdoeict.be/leercentrum/slides/javascript/img/01_syntax/hamster.png

Page 9: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

JavaScript

• Pertama kali dikembangkan oleh Brendan Eich

• Mocha LiveScript JavaScript

• Kini distandarisasi oleh ECMAScript

• Awalnya dibuat dan dikembangkan di bawah perusahaan

Netscape Communications, kini menjadi merk dagang milik

Oracle Corporation

• JavaScript tidak hanya berjalan di web browser, tetapi juga

berjalan di lingkungan lainnya, misalnya desktop dan

server.

Page 10: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Beberapa Karakteristik JavaScript

• Lightweight

• Interpreted

• Scripting language

• Object-Oriented (Prototype based)

• Loosely typing

• Dynamic typing

• Functional

• Imperative

• First-class function

• ... dsb

Page 11: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Function

• Javascript mendukung paradigma functional programming,

dimana fungsi adalah first-class object.

• Kita dapat menyimpan fungsi dalam suatu variabel, sebagai

atribut fungsi lainnya, atau bahkan sebagai nilai balikan

(return value) dari fungsi lain.

Page 12: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Lingkup Variabel

• Global • Lokal

PERHATIAN:

Lingkup variabel pada JavaScript ditentukan berdasarkan

lingkup fungsi (function scope), bukan lingkup blok (block

scope)

Page 13: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Lingkup Eksekusi

Sumber: Mikowski et al – Single Page Web Application

Page 15: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Self Executing Anonymous Function

Explicit Invocation

var salam = function() {

console.log("Halo...!!!");

}

salam();

Self-Executing Function

(function() {

console.log("Halo...!!!");

})();

Page 16: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Kegunaan Self Executing Anonymous Function

• Mengatur lingkup variabel (khususnya membuat variabel

privat)

• Mencegah kebocoran akses/lingkup variabel

• Mencegah pollution of the global namespace

Page 17: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Cara Mengakses JavaScript

• Internal

<script> ... </script>

• Inline

<input type="button" value="Hello World"

onClick="alert('Hello Yourself!')">

• Eksternal

<script src="somejavascript.js"></script>

Page 18: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Bagaimana Javascript Mengakses Elemen – Elemen

HTML?

http://www.myfacewhen.net/uploads/2058-thinking.jpg

Page 19: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

DOM

http://www.w3schools.com/js/js_htmldom.asp

Page 20: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Javascript & DOM

• JavaScript can change all the HTML elements in the page

• JavaScript can change all the HTML attributes in the page

• JavaScript can change all the CSS styles in the page

• JavaScript can remove existing HTML elements and

attributes

• JavaScript can add new HTML elements and attributes

• JavaScript can react to all existing HTML events in the

page

• JavaScript can create new HTML events in the page

Page 21: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Mencari Elemen HTML

Berdasarkan ID

document.getElementById()

Berdasarkan nama tag

document.getElementsByTagName()

Berdasarkan nama class

document.getElementsByClassName()

Page 22: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Contoh Memanipulasi Elemen HTML

Mengganti isi

element.innerHTML=

Mengganti atribut

element.attribute=

element.setAttribute(attribute,value)

Mengganti style

element.style.property=

Page 23: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Contoh Menambah Elemen Pada Body HTML

• Membuat elemen

var element = document.createElement(“tagname”)

• Membuat text node

var content = document.createTextNode(“text”)

• Memasukkan text node ke dalam elemen

element.appendChild(content)

• Menyisipkan elemen pada body dokumen HTML

document.body.appendChild(element)

Page 24: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Events

• Mouse

• onclick

• onmousedown

• onmouseup

• onmouseenter

• onmouseleave

• onmousemove

• ... dsb

• ... dsb

Page 25: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Contoh Menambah Events onclick

Melaui HTML

<element onclick=“.......”>

Melalui JavasScript

object.onclick=function(){ ..... }

Melalui JavasScript dengan method addEventListener()

Tidak didukung Internet Explorer <= 8

object.addEventListener(“click”, ...... }

Page 26: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Contoh (1)

<button onclick="getElementById('demo').innerHTML=Date()">What

is the time?</button>

Page 27: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Contoh (2)

<p id="demo" onclick="myFunction()">Click me to change my text

color.</p>

<script>

function myFunction() {

document.getElementById("demo").style.color = "red";

}

</script>

Page 28: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Mencari Objek HTML (1)

Page 29: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

Mencari Objek HTML (2)

Page 30: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan
Page 32: 8. Pengantar JavaScript & DOM - Universitas Brawijayaagipk.lecture.ub.ac.id/...20142015-2-08.-Pengantar-JavaScript-DOM.pdf · Bagaimana membuat aplikasi berbasis web ... Hubungan

https://brendaneich.com/files/2011/09/CapitolJS.021.png