eBook Ksp JQuery

17
2010 Andy Saputra Sekolah Tinggi Teknik Surabaya 12/18/2010 Knowledge Sharing Program – jQUery Basic

description

jquery

Transcript of eBook Ksp JQuery

Page 1: eBook Ksp JQuery

2010

Andy Saputra

Sekolah Tinggi Teknik Surabaya

12/18/2010

Knowledge Sharing Program – jQUery Basic

Page 2: eBook Ksp JQuery

2

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Daftar Isi

Intro jQuery Pre-requisite

Selector DOM Manipulation

Event Handler Effect/Animation

AJAX

Page 3: eBook Ksp JQuery

3

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Intro jQuery

jQuery adalah library javascript yang menyediakan berbagai fasilitas yang dulunya harus dibuat manual oleh user, namun sekarang cukup dipanggil/dijalankan dengan mudah. Misalkan, animasi Fade In, Fade Out, Slide In, Slide Show, dll. Keunggulan lain jQuery terletak pada fasilitas selectornya, yaitu fasilitas jQuery untuk memilih objek DOM untuk diproses selanjutnya. Website resmi developer jQuery: http://jquery.com Cara penggunaan:

- Download file jQuery terbaru dari http://docs.jquery.com/Downloading_jQuery

- Import file jquery.js yang sudah didownload ke halaman web yang ingin menggunakan jQuery. <script src="jquery.js" type="text/javascript">

- Notasi penggunaan jQuery yang lazim digunakan adalah dengan menambahkan tanda $.

- Letak penulisan coding jQuery sebaiknya berada di dalam $(document).ready(), untuk memastikan semua script jQuery dijalankan setelah semua objek DOM selesai diload untuk halaman web tersebut,

$(document).ready(function(){

// coding jQuery

});

- Contoh jQuery sederhana: $(document).ready(function(){

$("a").click(function(event){

alert("Thanks for visiting!");

});

});

Page 4: eBook Ksp JQuery

4

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Pre-Requisites

Untuk mempermudah penggunaan dan aplikasi jQuery, maka diharapkan pengguna sudah memiliki basic:

- HTML dan pengetahuan tentang DOM (Document Object Modelling) - CSS (Cascading Style Sheet) - Sedikit pengetahuan tentang Javascript dasar.

HTML dan DOM

HTML merupakan suatu bahasa yang digunakan untuk membuat halaman web. Bahasa ini menggunakan tag-tag khusus untuk menandai elemen-elemen yang terdapat dalam web. Contoh: <html> <head>

<title>Halaman Websiteku</title> </head> <body> <div id=”Div1”> <a href=www.google.com> Link ke Google </a> </div> <p> Halaman yang menyediakan link ke Google </p> </body> DOM (Document Object Modeling) adalah suatu cara untuk memodelkan objek-objek dalam halaman web (dianggap sebagai suatu dokumen). Hal ini dilakukan untuk mempermudah manipulasi dan pengaksesan elemen-elemen dari halaman tersebut.

Page 5: eBook Ksp JQuery

5

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Contoh ilustrasi DOM berdasarkan contoh HTML di atas CSS (Cascading Style Sheet)

CSS merupakan kumpulan style yang bertujuan untuk mengatur penampilan dari objek/elemen suatu halaman web. Contoh #div1{

background-color: red; text-align: center; margin-left: 20px;

}

HTML

Head Body

Title Div id=”Div1” p

Page 6: eBook Ksp JQuery

6

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Selector

Selector merupakan salah satu keunggulan utama dari jQuery, di mana fungsi utamanya adalah memilih objek DOM yang diinginkan oleh user untuk dimanipulasi dengan mudah. Syntax dasar selector:

$(“#divContent”).click(function()…. Bagian yang dihighlight adalah selector yang akan memilih objek DOM (dalam kasus di atas, yang di-select adalah objek/element dengan id=’divContent’). Beberapa jenis selector:

1. Element: untuk memilih element dengan tag tertentu. Syntax: $(“E”). Contoh: $(“a”) akan menyelect semua elemen tag <a> di halaman web.

2. ID: untuk memilih element dengan ID tertentu. Syntax: $(“#id”). Contoh: $(“#content”) akan menyelect semua elemen dengan id=”content” tanpa melihat tag elementnya.

3. Class: untuk memilih element dengan class tertentu. Syntax: $(“.class”). Contoh: $(“.myClass”) akan menyelect semua elemen dengan class=”myClass” tanpa melihat tag elementnya.

4. Descendant: untuk memilih element F yang merupakan bagian/descendant dari element E. Descendant adalah semua elemen yang menjadi bagian dari elemen lainnya. Syntax : $(“E F”)

Page 7: eBook Ksp JQuery

7

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Contoh : <div id=’container’>

<p>

<span>

<img src=’a.jpg’/>

</span>

</p>

</div>

<img src..> merupakan descendant dari <span>, <p>, dan <div>. Kode $(‘#container p’) dapat digunakan untuk memilih elemen <p> yang merupakan descendant dari elemen dengan id=’container’.

5. Child: untuk memilih elemen F yang merupakan child dari elemen E. Syntax: $(“E>F”) Contoh: $(‘li > ul’) digunakan untuk memilih semua elemen tag <ul> yang merupakan children dari elemen tag <li>.

6. Multiple Element: untuk memilih beberapa elemen sekaligus, dipisahkan dengan koma. Syntax: $(“E, F, G”) Contoh: $(‘div, p, a’): digunakan untuk memilih semua elemen dengan tag <div>, <p>, dan <a>.

7. Semua Element: untuk memilih semua elemen, menggunakan tanda *. Syntax: $(“*”) Contoh: $(‘*’): digunakan untuk memilih semua elemen dalam dokumen/halaman HTML. $(‘p>*’): digunakan untuk memilih semua elemen yang merupakan child dari tag <p>.

Selector-selector lainnya

1. :odd dan :even : digunakan untuk memilih elemen yang memiliki index genap maupun ganjil. Syntax: :odd dan :even Contoh: $(“tr:odd”) digunakan untuk memilih elemen <tr> yang nilai indexnya ganjil.

Page 8: eBook Ksp JQuery

8

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Contoh pemakaian praktis dari selector ini adalah untuk membuat alternating row suatu table, di mana warna dari baris ganjil dan genap suatu table berbeda.

2. Elemen ke-n : digunakan untuk memilih elemen sesuai dengan index yang diinginkan Syntax: :eq(n) atau :nth(n) Contoh: $(“li:eq(2)”) digunakan untuk memilih elemen <li> ke-3 (karena index elemen ke-1 dihitung sebagai index ke-0).

3. Elemen pertama/terakhir: hampir sama dengan elemen ke-n, namun dapat dipanggil dengan notasi khusus. Syntax: :first atau :last Contoh: $(‘li:last’) digunakan untuk memilih elemen <li> yang terakhir.

4. Elemen yang terlihat atau hidden: untuk memilih semua elemen berdasarkan visibilitynya, yaitu yang terlihat ataupun yang hidden. Syntax: :visible atau :hidden Contoh: $(‘li:visible’) digunakan untuk memilih semua elemen <li> yang bersifat visible. $(‘input:hidden’) digunakan untuk memilih semua elemen <input> yang hidden.

Page 9: eBook Ksp JQuery

9

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Method manipulasi objek DOM

- Mendapatkan, mengganti, dan menghapus atribut suatu element Selector.attr(atribut) : digunakan untuk mendapatkan value dari suatu atribut dari element yang ditunjuk selector. Selector.attr(atribut, new_value) : digunakan untuk mengubah value dari suatu atribut dari element yang ditunjuk selector, sesuai dengan nilai yang dimasukkan pada parameter new_value. Selector.removeAttr(atribut) : digunakan untuk menghapus suatu atribut dari element tertentu.

- Mendapatkan dan mengganti nilai Style/CSS dari suatu element Selector.css(property) : digunakan untuk memperoleh nilai dari properti CSS suatu element yang ditunjuk selector. Selector.css(property, new_value) : digunakan untuk mengubah nilai dari properti CSS suatu elemen yang ditunjuk selector, sesuai dengan nilai new_value.

- Menambahkan dan mengurangi class yang dimiliki oleh suatu element. Selector.addClass(class) : digunakan untuk menambahkan class baru ke dalam elemen yang ditunjuk selector. Selector.removeClass(class) : digunakan untuk menghapus nama class yang tidak diinginkan dari elemen yang ditunjuk selector. Selector.toggleClass(class) : digunakan untuk men-toggle class, di mana sifatnya adalah akan menambahkan class jika elemen yang ditunjuk selector belum memiliki class ini, dan akan menghapus class jika class tersebut sudah dimiliki oleh elemen yang ditunjuk selector.

- Mendapatkan dan mengubah isi HTML dari suatu element. Selector.html() : digunakan untuk mendapatkan isi HTML dari suatu element. Selector.html(html) : digunakan untuk mengubah isi HTML dari suatu element yang ditunjuk selector.

Page 10: eBook Ksp JQuery

10

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

- Mendapatkan dan mengubah isi text dari suatu element. Yang dimaksud dengan teks adalah semua tulisan yang diapit dalam tag HTML. Misalkan elemennya adalah <a> New Link </a>, maka yang dimaksud teks adalah ‘New Link’ Selector.text() :Digunakan untuk mendapatkan isi teks dari setiap elemen yang sesuai dengan selector yang digunakan, termasuk descendant-nya. Selector.text(text) : Digunakan untuk mengganti isi teks dari setiap element. Sebagai catatan, method di atas akan mengganti karakter “<” dan “>” dengan “&lt;” dan “&gt;” sehingga penggunaannya harus diperhatikan

- Mendapatkan dan mengubah nilai dari element form. Selector.val() : Digunakan untuk mendapatkan value dari suatu element, terutama untuk element form. Selector.val(value) : Digunakan untuk mengganti value dari suatu element, terutama untuk element form.

- Beberapa method ini digunakan untuk menambahkan elemen baru ke dalam elemen lainnya. Yang berbeda adalah peletakkan elemen baru tersebut. Prepend dan Append termasuk dalam Inside Insertion, yaitu elemen baru akan ditambahkan di dalam elemen tersebut. Selector.prepend(content) dan Selector.prepend(object) : Digunakan untuk menambahkan elemen (baik berupa teks HTML yang ditulis dalam content ataupun objek lain dalam web yang dipilih dengan selector jQuery) dan diletakkan di bagian paling atas dari element yang ditunjuk selector. Contoh: $(“#divA”).prepend(“<div id=’1’></div>”), maka sebuah div baru akan ditambahkan pada bagian paling atas dari divA. $(“#divA”).prepend($(“#divB”)), maka div lain dengan id=divB akan ditambahkan pada bagian paling atas dari divA. Selector.append(content) dan Selector.append(object) : Digunakan untuk menambahkan elemen (baik berupa teks HTML yang ditulis dalam content ataupun objek lain dalam web yang dipilih dengan selector jQuery) dan diletakkan di bagian paling terakhir/bawah dari element yang ditunjuk selector. Contoh:

Page 11: eBook Ksp JQuery

11

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

$(“#divA”).append(“<div id=’1’></div>”), maka sebuah div baru akan ditambahkan pada bagian paling bawah dari divA. $(“#divA”).append($(“#divB”)), maka div lain dengan id=divB akan ditambahkan pada bagian paling bawah dari divA. Before dan After termasuk dalam Outside Insertion, yaitu elemen baru akan ditambahkan di dalam elemen tersebut. Selector.before(content) dan Selector.before(object) : Digunakan untuk menambahkan elemen (baik berupa teks HTML yang ditulis dalam content ataupun objek lain dalam web yang dipilih dengan selector jQuery) dan diletakkan sebelum/di atas element yang ditunjuk selector. Contoh: $(“#divA”).before(“<div id=’1’></div>”), maka sebuah div baru akan ditambahkan sebelum/di atas divA. $(“#divA”).before($(“#divB”)), maka div lain dengan id=divB akan ditambahkan sebelum/di atas divA. Selector.after(content) dan Selector.after(object) : Digunakan untuk menambahkan elemen (baik berupa teks HTML yang ditulis dalam content ataupun objek lain dalam web yang dipilih dengan selector jQuery) dan diletakkan sesudah/di bawah element yang ditunjuk selector. Contoh: $(“#divA”).after(“<div id=’1’></div>”), maka sebuah div baru akan ditambahkan sesudah/di bawah divA. $(“#divA”).after($(“#divB”)), maka div lain dengan id=divB akan ditambahkan sesudah/di bawah divA.

- Menghapus elemen DOM. Selector.remove() : digunakan untuk menghapus semua elemen yang ditunjuk oleh selector.

Page 12: eBook Ksp JQuery

12

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Event Handler

Sama halnya dengan Javascript, jQuery juga dilengkapi dengan event handler. Event handler adalah event yang akan dipanggil (ditrigger) jika terjadi event-event tertentu. Contohnya, event onClick adalah event ketika kita melakukan penekanan mouse click. Jika kita memasangkan fungsi A sebagai handler pada event onClick, maka setiap kali terjadi penekanan mouse click, fungsi A akan dipanggil dan dijalankan. Method yang berkaitan dengan event handler pada jQuery adalah:

- .bind(event_type, handler) : digunakan untuk memasangkan suatu fungsi handler terhadap event tertentu. Contoh: misalkan kita memiliki fungsi bernama showMessage(), dan kita ingin setiap terjadi penekanan mouse click pada div dengan ID = ‘myDiv’, fungsi showMessage akan dipanggil, maka kita lakukan binding seperti demikian. $(‘#myDiv’).bind(‘click’,showMessage); Jika kita tidak ingin memanggil fungsi lain, maka kita dapat langsung membuat anonymous function sebagai handler. Contoh: $(‘#myDiv’).bind(‘click’, function(){

alert(‘Hello World’); }); jQuery juga menyediakan short-cut untuk mempersingkat penulisan event handler, yaitu dengan langsung mengetikkan nama eventnya. Misalkan, untuk event mouse click, kita hanya perlu mengetikkan: $(‘#myDiv’).click(showMessage); Perintah di atas sama persis dengan perintah $(‘#myDiv’).bind(‘click’,showMessage);

- .unbind() : digunakan untuk menghapus suatu handler dari event tertentu. Yang dihapus adalah event handlernya, bukan fungsi yang dipanggil oleh event tersebut.

Page 13: eBook Ksp JQuery

13

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Contoh: untuk menghapus event handler ‘click’ dari suatu element, kita dapat memberikan perintah Selector.unbind(‘click’); -> untuk event handler dengan anonymous function Selector.unbind(‘click’, showMessage); -> untuk event handler dengan function showMessage()

- .one() : merupakan method yang khusus, karena akan memasangkan fungsi handler dengan event tertentu, namun hanya dapat dipanggil sekali saja. Setelah terjadi event, maka event handler akan dihapus/di-unbind. Contoh: Selector.one(‘click’, oneMessage); -> dengan perintah ini, maka pada click pertama yang terjadi pada element sesuai selector, function oneMessage() akan dipanggil. Namun, setelah selesai, maka function akan di-unbind sehingga click-click berikutnya tidak akan memanggil function oneMessage().

- .trigger() : digunakan untuk memicu event handler tertentu secara manual. Contoh: Kita memasangkan handler function validate() pada saat submit form $(‘#myForm’).submit(validate); Namun, jika kita ingin menjalankan submit tersebut bukan hanya dari tombol submit, namun dari penekanan tombol lainnya, maka harus menggunakan trigger seperti berikut. $(‘#elemenLain’).click(function){

$(‘#myForm’).trigger(‘submit’); }); Dengan perintah di atas, maka event handler dari myForm akan dijalankan meskipun form tidak benar-benar mengalami event submit.

Page 14: eBook Ksp JQuery

14

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Effect/Animation

jQuery menyediakan beberapa fungsi bawaan siap pakai yang berhubungan dengan efek-efek animasi, seperti slide in, slide out, fade in, dll. Method-method yang dapat digunakan

- Selector.show([speed][,callback]) : digunakan untuk menampilkan elemen sesuai selector, dari yang semula hidden/invisible menjadi visible. Parameter speed dapat diisi dengan kecepatan animasi dalam milisecond (misalkan diisi 100,200 dsb). Namun, jQuery juga menyediakan 3 jenis speed, yaitu fast (200 ms), normal (400 ms), dan slow (600ms). Jika parameter speed ini tidak diisi, maka kecepatan normal yang digunakan. Callback function adalah fungsi yang akan dijalankan setelah suatu method (dalam hal ini adalah .show() ) selesai dijalankan.

- Selector.hidden([speed][,callback]): digunakan untuk menampilkan elemen sesuai selector, dari yang semula visible menjadi hidden/invisible.

- Selector.toggle([speed][,callback]) : digunakan untuk men-toggle status visible/hidden dari elemen sesuai selector. Jika elemen visible, maka akan menjadi hidden. Sebaliknya, jika elemen hidden, maka akan dimunculkan/visible.

- Selector.slideDown([speed][,callback]) : digunakan untuk menampilkan

animasi slideDown (dari elemen yang tertutup menjadi terbuka dengan animasi slide down) pada elemen yang ditunjuk selector.

- Selector.slideUp([speed][,callback]) : digunakan untuk menampilkan

animasi slideUp (dari elemen yang terbuka menjadi tertutup dengan animasi slide up) pada elemen yang ditunjuk selector.

- Selector.slideToggle([speed][,callback]) : digunakan untuk men-toggle

slideUp dan slideDown.

- Selector.fadeIn([speed][,callback]) : digunakan untuk menampilkan animasi fade in pada elemen yang ditunjuk selector.

Page 15: eBook Ksp JQuery

15

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

- Selector.fadeOut([speed][,callback]) : digunakan untuk menampilkan animasi fade out pada elemen yang ditunjuk selector.

- Selector.fadeTo(speed,opacity[,callback]) : digunakan untuk menampilkan animasi fade sesuai dengan opacity dan speed yang diinginkan user. Opacity yang dimasukkan bernilai antara 0 – 1.

Page 16: eBook Ksp JQuery

16

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

AJAX

Berikut merupakan method-method yang digunakan untuk menangani AJAX via jQuery.

- Selector.load(url [,data][,success]) : digunakan untuk me-load data yang diterima dari server dan meletakkan hasil HTML yang diperoleh pada elemen yang ditunjuk oleh selector. Parameter url diisi dengan alamat yang dikirimi request. Parameter data dapat diisi dengan data-data yang akan disertakan dengan request. Parameter success dapat diisi dengan function yang akan dijalankan jika request berhasil dijalankan. Request yang dijalankan secara default akan dikirimkan dengan metode ‘GET’, namun apabila terdapat data yang juga dikirimkan, maka request akan dikirimkan dengan metode ‘POST’. Contoh:

o Siapkan dua halaman html, index.html dan content.html. o Content.html diisi dengan teks sembarang di dalam tag <body> o Kita akan meload halaman content.html dari index.html dengan cara

$(“#div1”).load(‘content.html’); Isi content.html akan diload ke dalam isi div1.

- $.get(url [,data][,success]): digunakan untuk melakukan request AJAX

dengan metode ‘GET’ terhadap url yang dituju.

Contoh, kita akan melakukan sebuah request sederhana seperti demikian $.get("test.php", {username : us, password: ps}, function(data){ alert("Data Loaded: " + data); $("#result").html(data); });

Page 17: eBook Ksp JQuery

17

Knowledge Sharing Program – jQuery Basic – 18 Desember 2010 @Sekolah Tinggi Teknik Surabaya

Dari perintah di atas, kita melakukan AJAX request terhadap test.php dan mengirimkan dua data dengan nama variabel ‘username’ dan ‘password’. Nama variable ini nantinya akan diakses dari PHP dengan $_GET[‘username’] dan $_GET[‘password’]. *perhatikan bahwa nama variable yang ditulis dalam jQuery akan digunakan untuk mengakses isi variable itu dalam PHP* Pada function callback, kita dapat menangkap parameter pertama yang berisi response dari server yang diperoleh. Dalam kasus di atas, hasil kembalian dari server ditampung dalam variable bernama data dan akan ditampilkan dalam div dengan id “result”. Isi file PHP yang berhubungan dengan contoh ini. <?php $username = $_GET['username']; $password = $_GET['password']; echo "Username : " . $username . " <BR>"; echo "Password : " . $password; ?>

- $.post(url [,data][,success]): digunakan untuk melakukan request AJAX dengan metode ‘POST’ terhadap url yang dituju. Cara penggunaan sama persis dengan $.get(), hanya perlu mengganti kata ‘get’ dengan ‘post’.