Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi...

24
Pengantar JavaScript Agi Putra Kharisma, S.T., M.T.

Transcript of Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi...

Page 1: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Pengantar JavaScript

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

Page 2: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Java Dengan Javascript?

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

Page 3: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Rumusan Masalah

• Bagaimana membuat aplikasi berbasis web menjadi lebih interaktif pada web browser?

• Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer?

• Bagaimana membuat aplikasi berbasis web menjadi lebih cerdas pada web browser?

Page 4: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

HTML, CSS, JavaScript

HTML

(Struktur Dokumen)

CSS (Tampilan Dokumen)

JavaScript (Perilaku Dokumen)

Page 6: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

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 7: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Beberapa Karakteristik JavaScript

• Lightweight • Interpreted • Object-Oriented (Prototype based) • Scripting language • Loosely typing • Dynamic typing • Functional • Imperative • First-class function • ... dsb

Page 8: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Lingkup Variabel (1)

var tahanan_1 = 'Saya tidak terpenjara'; //global

function penjara(){

var tahanan_2 = 'Saya terpenjara'; // lokal

}

penjara();

console.log(tahanan_1);

console.log(tahanan_2); // error -> variabel lokal

Page 9: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Lingkup Variabel (2)

tahanan_1 = 'Saya tidak terpenjara'; // global var tahanan_2 = 'Saya tidak terpenjara'; //global function penjara(){ tahanan_3 = 'Saya melarikan diri'; // global var tahanan_4 = 'Saya terpenjara'; // lokal } penjara(); console.log(tahanan_1); // Saya tidak terpenjara console.log(tahanan_2); // Saya tidak terpenjara console.log(tahanan_3); // Saya melarikan diri console.log(tahanan_4); // error -> variabel lokal

Page 10: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Lingkup Eksekusi

Sumber: Mikowski et al – Single Page Web Application

Page 11: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Variable Hoisting

• Ketika suatu variabel dideklarasikan pada JavaScript, maka deklarasi tersebut akan ‘diangkat’ pada bagian atas lingkup fungsionalitasnya.

Page 12: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Variable Hoisting In Action

function penjara() {

console.log(tahanan_1);

var tahanan_1 = "Halo...!!!"

console.log(tahanan_1);

}

penjara();

Page 13: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

JavaScript Object: Object Literal

var MahasiswaS1 = {

sks : 144,

gelar : "Sarjana",

salam : function() {

console.log("Halo, saya mahasiswa S1");

}

}

Page 14: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Prototype

var MahasiswaS1 = {

sks : 144,

gelar : "Sarjana",

salam : function() {

console.log("Halo, saya mahasiswa S1");

}

}

var boni = Object.create(MahasiswaS1);

boni.nama = "Boni";

Page 15: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

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 16: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Menyimpan Fungsi Dalam Variabel

Fungsi Dalam Variabel

var salam = function() {

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

}

salam();

Cara Konvensional

function salam() {

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

}

salam();

Fungsi yang tidak memiliki nama, yaitu function(), disebut fungsi anonim.

Page 17: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Self Executing Anonymous Function

Explicit Invocation

var salam = function() {

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

}

salam();

Self-Executing Function

(function() {

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

})();

Page 18: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Kegunaan Self Executing Anonymous Function

• Mengatur lingkup variabel (khususnya membuat variabel privat)

• Mencegah kebocoran akses/lingkup variabel

• Mencegah pollution of the global namespace

Page 19: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

DOM

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

Page 20: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

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

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

Page 22: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Yang Perlu Diperhatikan • Browser compatibility

Page 23: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Gunakanlah JavaScript Library

http://www.similartech.com/categories/javascript

Page 24: Pengantar JavaScript · menjadi lebih interaktif pada web browser? •Bagaimana membuat aplikasi berbabis web menjadi lebih responsif pada web broswer? •Bagaimana membuat aplikasi

Next

• DOM, Ajax dan JQuery