Jumat, 16 September 2016

Angular JS

Bab 1 Dasar-Dasar

Materi yang dipelajari pada bab ini :
  • Memasang AngularJs
  • Hello World
  • Workflow
  • Filter
  • Basic Directive

1.1 Memasang AngularJs

Proses instalasi atau pemasangan AngularJs ke dalam aplikasi yang akan kita bangun sangatlah mudah. Kita hanya perlu meng-include file AngularJs di dalam file HTML menggunakan tag <script> seperti layaknya file JavaScript biasa.
<html>
  <head>
  </head>
  <body>

  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.6/angular.min.js"></script>
  </body>
<html>
Atau jika pembaca lebih memilih untuk mengunduh filenya terlebih dahulu untuk direferensikan melalui folder lokal maka menjadi seperti di bawah ini.
<html>
  <head>
  </head>
  <body>

    <script src="js/angular.min.js"></script>
  </body>
<html>

1.2 Hello World

Supaya belajarnya jadi semangat maka akan saya tunjukkan sedikit kesaktian dari AngularJs. Idenya sangat sederhana namun akan membuat kita paham bagaimana flow dari AngularJs.
  1. Buat sebuah file dengan nama index.html dan pasang AngularJs seperti pada contoh di atas.
  2. Buat sebuah folder baru bernama js sejajar dengan file index.html.
  3. Buat file dengan nama app.js di dalam folder js tadi dan isikan kode berikut.
    var app=angular.module('FirstApp',[]);
    
  4. Include file app.js di dalam file index.html menggunakan tag <script>, letakkan pada bagian atas sebelum tag </body>.
  5. Buat folder baru dengan nama controllers di dalam folder js dan buat file. MainController.js di dalam folder baru ini.
  6. Isikan kode berikut di dalam file MainController.js.
    app.controller('MainController',['$scope', function($scope){
      $scope.title='Belajar AngularJs';
    }]);
    
  7. Include file MainController.js di dalam file index.html menggunakan tag <script>, letakkan pada bagian atas sebelum tag </body>.
  8. Edit file index.html menjadi seperti tampak pada kode berikut.
    <!DOCTYPE html>
    <html>
      <head>
        <title>Belajar AngularJs</title>
      </head>
      <body ng-app="FirstApp">
        <div ng-controller="MainController">
    
        </div>
    
        <script src="js/angular.min.js"></script>
        <script src="js/app.js"></script>
        <script src="js/controllers/MainController.js"></ script>
      </body>
    </html>
    
  9. Jalankan index.html pada browser.
Aplikasi AngularJs yang paling sederhana (seperti di atas) terdiri dari 1 modul dan 1 controller. Apa yang ada pada file app.js adalah modul sedangkan apa yang ada pada file MainController.js adalah controller.
Supaya HTML tahu modul apa dan controller apa yang digunakan kita perlu memberitahunya dengan menggunakan directive ng-app untuk modul dan ng-controller untuk controller.
Kalau pembaca sudah benar melakukan langkah-langkah di atas maka hasil yang muncul pada browserseharusnya adalah seperti gambar berikut.
Hello World
Sekarang coba ubah variabel title yang ada pada controller dengan kalimat sesuka pembaca dan kemudian refresh browser dan lihat perubahan yang terjadi.
Hal lain yang patut dicoba adalah menambahkan variabel baru dan kemudian coba dimunculkan padaview.
Peubahan pada controller
app.controller('MainController',['$scope', function($scope){
  $scope.title='Belajar AngularJs';
  $scope.book={
    title: 'Belajar AngularJs Bersama Agung Setiawan',
    author : 'Agung Setiawan',
    price  : 80000
  };
}]);
Perubahan pada view
<div ng-controller="MainController">
  {{title}} </br>
  {{book.title}} </br>
  {{book.author}} </br>
  {{book.price}}
</div>
Hello World
Sampai sini kita sudah belajar hal paling dasar untuk memahami AngularJs.

1.3 Workflow

Biasanya setiap developer memiliki workflow / urutan kerja yang berbeda dengan developer yang lain dalam mengerjakan aplikasi. Akan tetapi, seringnya ada suatu workflow yang bersifat umum yang diikuti oleh semua developer.
Dari langkah-langkah yang kita kerjakan pada sub bab 1.2 dapat disimpulkan bahwa workflow untuk membuat sebuah aplikasi AngularJs adalah :
  1. Membuat module, include file modul di HTML kemudian memberi tahu HTML modul apa yang digunakan menggunakan ng-app.
  2. Membuat controllerinclude file modul di HTML kemudian memberi tahu HTML controller apa yang digunakan menggunakan ng-controller.
  3. Menambahkan data pada controller menggunakan $scope.
  4. Menampilkan data di view menggunakan ekspresi ``.

1.4 Filter

Terdapat fitur pada AngularJs yang bernama filter, digunakan untuk memformat tampilan sebuah variabel di view. Jadi alih-alih kita melakukan formatting di controller, kita melakukannya di view dengan bantuan filter.
Pada contoh kode sebelumnya terlihat kalau harga yang kita ketikkan berupa angka biasa dan ketika ditampilkan di view maka hasilnya masih apa adanya, tanpa format mata uang.
Kita bisa menggunakan filter currency yang disediakan AngularJs untuk memformat harga sehingga enak dilihat.
<div ng-controller="MainController">
  {{title}} </br>
  {{book.title}} </br>
  {{book.author}} </br>
  {{book.price | currency}}
</div>
Penggunaan filter sangat menyenangkan seperti bisa dilihat pada listing kode di atas. Kita menambahkan sebuah tanda pipeline ( | ) dibelakang variabel yang ingin kita filter kemudian diikuti dengan filter yang kita gunakan. Setelah lakukan perubahan dengan menambahkan filter coba jalankan pada browser.
Filter Mata Uang
Ada juga filter lain yang bisa digunakan misalnya date untuk mengatur format tanggal. Sebelumnya tambahkan terlebih dahulu variabel baru di controller.
app.controller('MainController',['$scope', function($scope){
  $scope.title='Belajar AngularJs';
  $scope.book={
    title: 'Belajar AngularJs Bersama Agung Setiawan',
    author : 'Agung Setiawan',
    price  : 80000,
    pubdate : new Date('2015','09',01'')
  };
}]);
Tampilkan variabel baru tersebut ke dalam view.
<div ng-controller="MainController">
  {{title}} </br>
  {{book.title}} </br>
  {{book.author}} </br>
  {{book.price | currency}} </br>
  {{book. pubdate | date }}
</div>
Filter Date
Ngomong-ngomong nih ada yang memperhatikan tidak kenapa bulan 09 kok jadinya Oktober yang seharusnya September?. Bertanya-tanya ya? Ini karena bulan di JavaScript dihitungnya mulai dari 0 bukan dari 1.
Untuk mengetahui filter apa saya yang telah disediakan oleh AngularJs, pembaca bisa merujuk ke dokumentasi yang ada di https://docs.angularjs.org/api/ng/filter.
Sudah pasti tidak semua filter yang tersedia mampu mengakomodasi kebutuhan kita seperti misalnya format mata uang dalam Rupiah. AngularJs memungkinkan bagi kita untuk membuat filter sendiri ataucustom filter.
Misalkan kita ingin membuat filter untuk memformat angka menjadi mata uang Rupiah. Lakukan perubahan pada file app.js.
var app=angular.module('FirstApp',[]);
app.filter('rupiah', function(){
  return function toRp(angka){
    var rev = parseInt(angka, 10).toString().split('').reverse().join('');
    var rev2    = '';
    for(var i = 0; i < rev.length; i++){
        rev2  += rev[i];
        if((i + 1) % 3 === 0 && i !== (rev.length - 1)){
            rev2 += '.';
        }
    }
    return 'Rp. ' + rev2.split('').reverse().join('') + ',00';
  }
});
Jangan pusing dengan logika yang digunakan untuk memformat angka menjadi dalam bentuk mata uang rupiah, perhatikan saja bagaimana cara membuat filter yang sesuai dengan kebutuhan kita. Itu pun logika yang digunakan saya dapat dari googling. Setelah itu pakai filter untuk memformat angka harga di halaman view.
<div ng-controller="MainController">
  …
  {{book.price | currency}} / {{book.price | rupiah}} </br>
  …
</div>
Lihat perubahan pada browser dan silahkan berteriak "Wwoooowww!".
Filter Rupiah

1.5 Basic Directive

Directive adalah tag khusus yang digunakan oleh AngularJs. Sampai saat ini kita baru mengenal 2 buah directive yaitu ng-app dan ng-controller. Sub bab ini akan membahas beberapa directive dasar yang wajib dimengerti.

1.5.1 ng-repeat

Tidak bisa tidak, perulangan for each dibutuhkan untuk mendapatkan isi dari variabel yang terdapat ada suatu koleksi / array. Bagi pembaca yang sudah familiar dengan bahasa pemrograman seperti C#, Java maupun PHP pasti sudah mengetahui kegunaannya dan sangat sering digunakan.
AngularJs menyediakan directive yang berguna untuk melakukan perulangan tersebut. Kita gunakan ng-repeat untuk melakukannya. Supaya lebih mudah dipahami maka saya tunjukkan langsung contoh kodenya. Masih menggunakan contoh yang sama maka pada file MainController.js hapus variabelbook dan title. Sebagai gantinya buat variabel books yang berisi array object.
app.controller('MainController',['$scope', function($scope){
  $scope.books=[
  {
    title: 'Belajar AngularJs Bersama Agung Setiawan',
    author : 'Agung Setiawan',
    price  : 80000,
    pubdate : new Date('2015','09','09')
  },
  {
    title: 'Belajar Ruby',
    author : 'Penulis Satu',
    price  : 65000,
    pubdate : new Date('2015','10','09')
  },
  {
    title: 'Belajar Ruby on Rails',
    author : 'Penulis Dua',
    price  : 90000,
    pubdate : new Date('2015','11','09')
  }];
}]);
Ingat workflow-nya, setelah menambahkan data di controller maka berikutnya adalah menampilkan data di view. Kali ini untuk menampilkan data buku yang ada pada variabel books digunakan ng-repeat.
<div ng-controller="MainController">
   <div ng-repeat="book in books">
      {{book.title}} </br>
      {{book.author}} </br>
      {{book.price | rupiah}} </br>
      {{book.pubdate | date}}
      <hr/>
  </div>
</div>
Jalankan di browser dan sekali lagi bolehlah berteriak "Wwoooowww!".
ng-repeat
Beberapa variabel bawaan yang perlu diketahui berkaitan dengan ng-repeat.
  1. $index – Indeks elemen yang sedang diakses
  2. $first - Boolean yang menandakan elemen pertama atau bukan
  3. $middle - Boolean yang menandakan elemen bukan pertama dan bukan terakhir
  4. $last - Boolean yang menandakan elemen terakhir atau bukan
  5. $even - Boolean yang menandakan elemen berindeks genap
  6. $odd - Boolean yang menandakan elemen berindeks ganjil

1.5.2 ng-click

Directive berikutnya yang perlu dimengerti adalah ng-click. Sudah bisa diduga dari namanya yadirective ini pasti digunakan untuk menjalankan sesuatu ketika diklik.
Kembali saya kasih contoh penggunaannya.
app.controller('MainController',['$scope', function($scope){
    $scope.books=[
      …
       …
    ];

    $scope.logToConsole=function(index){
      var book=$scope.books[index];
      console.log(book);
    };
}]);
Di dalam file MainController.js kita tambahkan sebuah method baru dengan nama logToConsole yang memiliki sebuah parameter bernama indeks. Apa yang dilakukan method ini adalah mengambil satu data buku berdasaran indeks array-nya dari variabel books kemudian dimuncukan melalui jendela console.
Method logToConsole ini yang akan kita gunakan di view bersama dengan ng-click. Berikut adalah kodenya.
<div ng-controller="MainController">
    <div ng-repeat="book in books">
      {{book.title}} </br>
      {{book.author}} </br>
      {{book.price | rupiah}} </br>
      {{book.pubdate | date}} </br>
      <button ng-click="logToConsole($index)">Log</button>
      <hr/>
  </div>
</div>
Jadi yang menjadi isi dari directive ng-click adalah nama method yang terdapat di controller, dalam hal ini adalah logToConsole.
Kode di atas sekaligus juga menunjukkan cara pengguna variabel $index yang sudah saya jelaskan pada sub bab sebeumnya yaitu tentang variabel-variabel yang ada di ng-repeat.
Ketika dijalankan pada browser cobalah untuk mengeklik button Log dan lihat hasil yang keluar diconsole.
ng-click
Saya ingin pembaca benar-benar memahami materi ini. Oleh karena itu, mari kita buat sebuah contoh lagi yang menggunakan ng-click.
Sekarang, pada tiap array object pada variabel books tambahkan sebuah variabel baru dengan nama likes dan nilainya adalah 0.
$scope.books=[
{
  title: 'Belajar AngularJs Bersama Agung Setiawan',
  author : 'Agung Setiawan',
  price  : 80000,
  pubdate : new Date('2015','09','09'),
  likes : 0
},
{
  title: 'Belajar Ruby',
  author : 'Penulis Satu',
  price  : 65000,
  pubdate : new Date('2015','10','09'),
  likes : 0
},
{
  …………….
}
];
Kita akan menampilkan jumlah like pada view kemudian membuat sebuah tombol yang ketika diklik akan menambah jumlah likes sebanyak 1. Untuk keperluan itu kita butuh untuk menambah method baru.
Buka file MainController.js dan buat method baru seperti berikut
app.controller('MainController',['$scope', function($scope){
    $scope.books=[
      {
        title: 'Belajar AngularJs Bersama Agung Setiawan',
        author : 'Agung Setiawan',
        price  : 80000,
        pubdate : new Date('2015','09','09'),
        likes : 0
      },
      {
         ….
          ….
      }
    ];

    $scope.logToConsole=function(index){
      var book=$scope.books[index];
      console.log(book);
    };

    $scope.likes=function(index){
      $scope.books[index].likes+=1;
    };
}]);
Sampai sini dapat kan logikanya bagaimana menambah nilai likes untuk masing-masing buku?. Seperti biasa, untuk mengetesnya perlu kita eksekusi di browser dan tekan tombol likes. Sebelumnya tentu buat terlebih dahulu bagian view-nya.
<div ng-controller="MainController">
    <div ng-repeat="book in books">
      {{book.title}} </br>
      {{book.author}} </br>
      {{book.price | rupiah}} </br>
      {{book.pubdate | date}} </br>
      {{book.likes}} <button ng-click="likes($index)">Like</button> </br>
      <button ng-click="logToConsole($index)">Log</button>
      <hr/>
  </div>
</div>
ng-click like
Jika kodingan pembaca belum berjalan sebagaimana mestinya coba untuk meneliti kode yang pembaca tulis dan baca lagi dari awal instruksi yang saya berikan dari awal secara lebih teliti.

1.5.2 ng-model

Di AngularJs terdapat sebuah jargon two way data binding. Maksudnya adalah kita bisa melakukandata binding dari kedua arah, yaitu dari controller ke view yang selama ini sudah lakukan dan yang satunya lagi yaitu arah kebalikan, dari view ke controller.
Untuk mengirim nilai dari view ke controller kita menggunakan directive ng-model yang berisi nama variabel yang terdapat pada controller.
Pada controller siapkan sebuah variabel dengan nama title serta sebuah method untuk menge-log nilai dari variabel tersebut.
app.controller('MainController',['$scope', function($scope){
    $scope.title=10;

    $scope.log=function(){
      console.log($scope.title);
    };
}]);
Buat view-nya yang berisi sebuah input dan sebuah ekspresi untuk menampikan title. Pada input gunakan ng-model.
<div ng-controller="MainController">
    Title : <input type="text" ng-model="title"/> </br>
    {{title}} </br>
    <button ng-click="log()">Log</button>
</div>
Pada saat pertama kali dijalankan maka akan muncul nilai 10 baik pada ekspresi maupun pada bagian input. Hal ini dikarenakan nilai bawaan dari title adalah 10 seperti yang tertulis di controller. Coba tekan tombol Log dan hasil pada console juga 10.
two way
Coba ubah nilai yang ada pada input maka nilai pada ekspresi pun akan ikut berubah seketika itu juga. Jangan lupa untuk menekan tombol Log maka nilai yang dimunculkan di console juga sesuai dengan apa yang ada kini pada input.
two way

Jumat, 09 September 2016

JQuery

Pengertian 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. 
JQuery adalah sebuah javascript library, jQuery mempunyai semboyan “write less, do more”. jQuery dirancang untuk memperingkas kode-kode javascript. JQuery adalah javascript library yang cepat dan ringan untuk menangani dokumen HTML, menangani event, membuat animasi dan interakasi ajax. jQuery dirancang untuk mengubah cara anda menulis javascript. Sebelum anda memulai mempelajari jQuery, anda harus mempunyai pengetahuan dasar mengenai HTML, CSS dan Javascript. 
Dengan JQuery, suatu halaman web yang menjadi aplikasi web, jika dilihat sourcenya, akan terlihat seperti dokumen HTML biasa; tidak ada kode JavaScript yang terlihat langsung. Teknik pemrograman web seperti ini disebut sebagai unobstrusive JavaScript programming. 
JQuery merupakan salah satu librari yang membuat program web di sisi klien, tidak terlihat sebagai program JavaScript biasa, yang harus secara eksplisit disisipkan pada dokumen web. Pada teknik pemrograman sisi klien dengan menggunakan JavaScript biasa, setiap elemen yang akan memiliki event, akan secara eksplisit terlihat ada event yang dilekatkan pada elemen tersebut. 

Sejarah Perkembangan JQuery 
John Resig merupakan otak dibalik jQuery, karyanya ini pertama kali diumumkan di NYC BarCamp pada awal tahun 2006. Di situs webnya dia mencatat, ia menciptakan jQuery karena ia tidak puas dengan library yang saat itu tersedia dan merasa bahwa seharusnya framework-framework tersebut bisa jauh lebih baik dengan mengurangi “syntactic fluff” dan menambahkan control khusus untuk tindakan-tindakan yang bersifat umum. 
Kemudian para pengembang datang untuk membantu menyempurnakan librari ini, dan akhirnya menghasilkan rilis stabil pertama dari jQuery versi 1.0 pada tanggal 2006. Sejak itu, jQuery telah berkembang ke versi 1.7.1 dan telah mempunyai plug-in yang banyak. Sebuah plug-in adalah ekstensi dari jQuery yang bukan bagian dari library inti. 

Perkembangan versi jQuery: 
1.  JQuery versi 1.0 (1.0.1, 1.0.2, 1.0.3, 1.0.4) 
2.  JQuery versi 1.1 (1.1.1, 1.1.2, 1.1.3, 1.1.3.1, 1.1.4) 
3.  JQuery versi 1.2 (1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6) 
4.  JQuery versi 1.3 (1.3.1, 1.3.2) 
5.  JQuery versi 1.4 (1.4.1, 1.4.2, 1.4.3, 1.4.4) 
6.  JQuery versi 1.5 (1.5.1, 1.5.2) 
7.  JQuery versi 1.6 (1.6.1, 1.6.2, 1.6.3, 1.6.4) 

Sekarang JQuery dikembangkan oleh team developer yang dipimpin oleh Dave Metvin. Dipakai oleh lebih dari 55% dari 10.000 website yang paling sering dikunjungi. JQuery menjadi Library Javascript yang paling popular Sekarang. 
Script JQuery  dibuat untuk memudahkan pengaturan document seperti menyeleksi object dengan element DOM dan membuat aplikasi dengan AJAX.  Jquery juga menyediakan layanan atau support  para developers untuk membuat plug-ins di dalam bahasa Javascript tentunya. Sehingga  memungkinkan para developer website membuat website lebih interaktif dengan animasi, efek – efek, tema dan widget. Dengan menggunakan JQuery kita bisa meluapkan kreatifitas untuk membuat website dinamis. 
Microsoft dan Nokia telah mengumumkan akan mengemas JQuery di platform mereka. Microsoft awalnya mengadopsinya dalam Visual Studio  untuk digunakan dalam ASP.NET AJAX dan ASP.NET MVC Framework, sedangkan Nokia akan mengintegrasikannya dalam kerangka Web Run-Time mereka. 

         Perbedaan versi pada Jquery 
Versi baru biasanya terdapat penambahan fungsi baru dari fungsi jquery yang sebelumnya. Tetapi pasti memiliki besar kapasitas yang lebih besar dari versi yang sebelumnya sehingga dengan versi yang baru dapat memperberat beban dan loading pada aplikasi website yang dibuat. Maka dari itu kita harus mempertimbangkan ketika kita memakai versi jquery yang kita akan gunakan.  
Perbedaan Jquery.js (tanpa min) dengan jquery.min.js(menggunkan min). 
Dari keduanya mempunyai kegunaan dan fungsi sama. Penggunaan “min” menandakan bahwa jquery tersebut telah dikompres (compress) sehingga muatan atau bebanya telah terkurangi dengan tujuan untuk mempercepat waktu loading. Compress jquery dilakukan dengan menghilangkan beerapa keterangan dan spasi yang sebenarnya berfungsi untuk memudahkan pengguna saat membuat desain baru dengan memanfaatkan jquery. Maka dari itu jika sekedar pengguna lebih baik menggunakan jquery.min.js agar loading lebih cepat. 

Kegunaan JQuery 
1.      Mengakses bagian halaman tertentu dengan mudah. 
Tanpa adanya library Javascript khusus, untuk mengakses suatu bagian tertentu dari halaman, harus mengikuti aturan Document Object Model (DOM) dan pengaksesan harus secara spesifik menyesuaikan dengan struktur HTML. Dengan kata lain, pengaksesan bagian tertentu dari halaman sangat tergantung  pada struktur dari HTML. JQuery menawarkan cara yang mudah (bahkan sangat mudah) dalam mengakses bagian tertentu dari halaman. Pengaksesan juga tidak terlalu bergantung pada struktur HTML. 
2.      Mengubah tampilan bagian halaman tertentu. 
CSS (Cascading Style  Sheet) menawarkan metode yang cukup handal dalam mengatur dan mempercantik halaman web. Namun terkadang CSS punya kelemahan yang cukup mengganggu, yaitu beberapa perintah CSS tidak didukung oleh semua browser. Cukup merepotkan jika kita harus mendesign halaman web dengan beberapa CSS sekaligus. Sekali lagi JQuery menawarkan solusi untuk mengatasi hal  tersebut. Dengan JQuery, “kesenjangan” yang  terjadi antara browser dalam urusan CSS akan tertutup dengan baik. 
3.      Mengubah isi dari halaman. 
Jaman dulu (baca:sebelum JQuery lahir) cukup sulit jika kita akan mengubah sebagian isi dari halaman. Mengubah disini dapat berarti mengganti teks, menambahkan teks atau gambar, mengurutkan suatu daftar (list), menghapus baris tabel dan sebagainya. Dengan JQuery, hal tersebut dapat dilakukan dengan hanya beberapa baris perintah. 
4.      Merespond interaksi user dalam halaman 
Website yang baik tidak cukup digambarkan dengan user-interface dan tampilan yang memukau. Namun lebih dari itu, bagaimana pengunjung dapat berinteraksi dengan website dan dapat mengatur tampilannya sendiri. Interaktivitas sangat bergantung bagaimana pemrograman yang dipakai dalam menangani event-handling. Javascript sendiri memiliki beberapa event-handling seperti onclick untuk menangani event saat terjadi click. Namun demikian, event handling pada Javascript terbatas pada object-object tertentu, dan jenisnya pun terbatas. JQuery melengkapi semuanya dengan tambahan penanganan event-handling yang semakin mudah. 
5.      Menambahkan animasi ke halaman. 
Animasi seringkali disertakan dalam suatu halaman web untuk menambah kecantikannya. Saat ini animasi masih cukup digemari oleh para peselancar situs. Animasi dapat dibuat dalam berbagai gaya, ada yang menggunakan Flash, gambar bergerak (GIF), video, dan sebagainya.  Masing-masing tentu memiliki kelebihan dan kekurangan masing-masing. JQuery sendiri menawarkan konsep animasi (walaupun masih sederhana) yang cukup apik namun ramah bandwidth alias ringan. Salah satu animasi yang bisa dibuat dengan JQuery adalah fading jika terdapat suatu bagian dari halaman ditambahkan atau dihilangkan. 
6.      Mengambil informasi dari server tanpa me-refresh seluruh halaman. 
Mengambil informasi dari server tanpa refresh halaman merupakan salah satu konsep dasar dari yang namanya AJAX (Asynchronous Javascript and XML). Pada penerapannya, cukup ribet jika harus membangun website dengan konsep AJAX, saat ini banyak library khusus yang berusaha mempermudahnya. JQuery merupakan salah satunya. 
7.      Menyederhanakan penulisan Javascript biasa. 
Semboyan JQuery  adalah “Write less, do more”  atau  dengan  kata  lain  kesederhanaan  dalam penulisan code, tetapi menghasilnya tampilan yang lebih. Sebenarnya inilah yang menjadi daya tarik tersendiri buat para pengembang web untuk menggunakan JQuery.  

Cara menggunakan JQuery 
         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!"); 
   }); 
 }); 
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. 

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

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


Kelebihan dan Kekurangan JQuery 
Library jQuery mempunyai kemampuan : 
1.      Kemudahan mengakses elemen-elemen HTML 
2.      Memanipulasi elemen HTML 
3.      Memanipulasi CSS 
4.      Penanganan event HTML 
5.      Efek-efek javascript dan animasi 
Kelemahan JQuery : 
Meskipun diklaim jquery memiliki beban kerja yang ringan (load CPU dan RAM) untuk browser, tetap saja lebih ringan (cepat di-load) website yang tidak menggunakan jquery, alias HTML murni. 
Dari sisi server hosting pun, CPU dan RAM harus mengalokasikan resource yang mereka miliki untuk menangani request terhadap jquery. Pada level tertentu request yang sangat banyak (sangat-sangat banyak) akan membebani server. Solusi: host jquery pada situs lain, seperti Google yang menyediakan request jquery dari servernya. 

Sintaks, Selector, Attribute Selector,dan Efek-efek JQuery 
1.      Sintaks jQuery 
Sintaks jquery biasanya dibuat untuk memilih elemen-elemen HTML dan melakukan aksi terhadap elemen yang dipilih. 
Sintaks : 
$(selector).action() 
Tanda dollar, untuk mendefinisikan jQuery. (selector), untuk menunjukkan elemen yang dipilih atau dituju. action(), adalah jQuery action yang akan dilakukan terhadap elemen yang dipilih. 
2.      jQuery Selector 
Selector memungkinkan anda untuk memanipulasi elemen HTML sebagai kelompok atau sebagai elemen tunggal. jquery elemen selectors dan attribute selectors memungkinkan anda untuk memilih elemen HTML dengan nama tag, nama atribut, atau konten. 
contoh : 
$("p") memilih semua elemen <p>. 
$("p.intro") memilih semua elemen <p>  yang mempunyai class = "intro". 
$("p#demo") memilih semua elemen <p> yang mempunyai id="demo". 
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: 
         Element: untuk memilih element dengan tag tertentu. 
Syntax:  $(“E”).  
Contoh: $(“a”) akan menyelect semua elemen tag <a> di halaman web. 
         ID: untuk memilih element dengan ID tertentu. 
Syntax:  $(“#id”).  
Contoh: $(“#content”) akan menyelect semua elemen dengan id=”content” 
tanpa melihat tag elementnya. 
         Class: untuk memilih element dengan class tertentu. 
Syntax:  $(“.class”).  
Contoh:  $(“.myClass”)  akan menyelect semua elemen dengan 
class=”myClass” tanpa melihat tag elementnya. 
         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”) 
 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’. 
         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>. 
         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>. 
         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 
         :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. 8 
Contoh pemakaian praktis dari selector ini adalah untuk membuat alternating row suatu table, di mana warna dari baris ganjil dan genap suatu table berbeda. 
         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). 
         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. 
         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. 
         jQuery Attribute Selectors 
jQuery mirip XPath dalam hal memilih elemen berdasarkan atribut yang ada : 
$("[href]") memilih semua elemen dengan atribut href. 
$("[href='#']") memilih semua elemen dengan atribut href bernilai = "#". 
$("[href!='#']") memilih semua elemen dengan atribut href dengan nilai bukan sama dengan "#". 
$("[href$='.jpg']") memilih semua elemen dengan atribut href yang mengandung ".jpg". 
3.      Efek-Efek dengan jQuery 
Salah satu kemampuan jQuery adalah adanya fungsi-fungsi efek yang siap pakai. biasanya untuk membuat efek memudar di javascript. Dengan menggunakan jQuery kita cukup menggunakan fungsi $(selector).fadeIn(). berikut adalah efek-efek siap pakai yang disediakan jQuery : 
a.        jQuery show() 
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. 
b.       jQuery hide() 
Berguna untuk menyembunyikan elemen yang dipilih. 
c.        jQuery toggle() 
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. 
d.      jQuery slideDown() 
Menampilkan elemen yang tersembunyi , secara efek sliding. 
e.        jQuery slideUp() 
Menyembunyikan elemen secara efek sliding. 
f.        jQuery slideToggle() 
Gabungan antara slideDown() dan slideUp(). 
g.       jQuery fadeIn() 
Menampilkan elemen yang dipilih jika tersembunyi. 
h.       jQuery fadeOut() 
Menyembunyikan elemen yang dipilih secara efek memudar. 
i.         jQuery fadeTo() 
Mengatur tingkat kepudaran elemen terpilih menuju tingkat opacity yang ditentukan. 
j.        jQuery animate() 
Mengubah suatu elemen dari satu keadaan ke keadaan lainnya

 Event yang Ada pada JQuery 
1.      Keypress() 
Merupakan Event pemicu untuk mengikat fungsi dari perintah tombol dari element yang dipilih. 
$( selector ).keypress()                              //memicu keypress untuk pemilihan item 
$( selector ).keypress( function )           // Optional. Menjalankan fungsi yang spesifik ketika ada pemicu berupa penekanan tombol keyboard. Dari sekian tombol yang ada pada keyboard,akan memiliki devinisi kode yang berbeda-beda. 
Contoh : Perintah ketika kita memberian fungsi ketika ada pemicu pada penekanan kode 27 = Esc. 

2.      Click() 
Digunakan untuk memicu event pada element HTML saat user mengklik elemen yang mempunyai fungsi click() ini. Event click dikirim ke elemen saat pointer mouse diatas elemen dan tombol mouse ditekan lalu dilepaskan.
$(“p”).click() kode  ini berarti bahwa JQuery mencari tag <p> HTML dan menunggu diklik oleh user.   $(this).hide() kode ini berarti bahwa isi dari paragraph dihide. 

3.      fadeIn() 
Digunakan untuk menampilkan elemen dengan efek pudar. $(‘selector’).fadeIn(‘durasi’,’callback’) 
Keterangan: 
Selector digunakan untuk memilih elemen yang akan dikenakan efek fadeIn. ‘durasi’ adalah waktu yang menunjukkan berapa lama efek fade ini akan berlangsung

4. Css();
jQuery juga mempunyai kemampuan dalam hal memanipulasi CSS. Ada 3 fungsi utama dalam jQuery untuk melakukan manipulasi. 
$(selector).css(name,value) 
$(selector).css({properties}) 
$(selector).css(name) 
Fungsi css() berguna untuk mendapatkan atau set sebuah properti CSS atau lebih untuk elemen yang dipilih. Jika parameter name dan value diisi, artinya kita me-set nilai dari properti CSS. Untuk me-set nilai-nilai untuk properti CSS lebih dari satu, bisa gunakan {properties} Jika hanya untuk mendapat nilai dari properti CSS yang diinginkan dari elemen yang dipilih cukup isi parameter name saja. 

Implementasi JQuery 
Kemudahan atau kenapa orang banyak menggunakan framework javascript ini adalah karena banyaknya plugin aplikasi yang siap jadi atau siap digunakan. Plugin adalah semacam fungsi atau fitur tambahan yang digabungkan ke dalam sebuah JQuery mempercepat atau memudahkan dalam pembangunan sebuah website. 
Dibawah ini adalah beberapa plugin jquery yang sering digunakan oleh beberapa web developer dalam membuat atau membangun sebuah website, diantaranya: 
1.      Drop-Down-Menu 
Jika dalam sebuah website terdiri dari beberapa menu, dan dari menu tersebut ada sub menu lagi, maka cocok menggunakan drop down menu. Drop down menu ini juga mendukung multi level menu (menjadi sub-sub menu yang lebih banyak), selain itu menu dropdown ini juga dilengkapi dengan fasilitas timeout effect. Timeout effect ini digunakan ketika lama waktu mouse over atau mouseout. 

2.      Tool-Tips 
Tool tips adalah bubble/gelembung atau semacam kotak informasi digunakan untuk menginformasikan sesuatu ketika mouse didekatkan pada sebuah teks, gambar, tombol atau elemen lain dalam sebuah web yang muncul diatas elemen tersebut. Biasanya informasi yang disuguhkan adalah informasi yang pendek. Cara kerjanya adalah ketika mouse didekatkan, maka akan muncul bubble. Fasilitas lebih dari bubble ini adalah desainnya yang cantik, seperti fasilitas tombol close, background shadow, dll. 

3.      Autocomplete-Search 
Plugin ini digunakan untuk melakukan pencarian secara real time, dimana ketika kita memasukan kata atau huruf dalam sebuah teks input dalam sebuha web, secara otomatis hasil pencarian akan muncul seusai dengan yang kita masukan secara real time. Plugin ini mirip seperti pencarian pada website facebook, sehingga sangat menarik untuk dicoba. 

4.       Validasi-Form 
Plugin ini digunakan untuk melakukan validasi data dalams sebuah form, seperti pengecekan e-mail, pengecekan password,username dan input lainnya secara real time (tidak menekan tombol submit). Jadi ketika user memasukan teks atau huruf, maka plugin ini akan melakukan validasi terhadap inputan user.

Langkah Pembuatan: 
  • Pertama, buatlah form ( form.html ):  
  • Setelah itu kita menyisipkan script dibawah ini untuk menghubungkan file  library JQuery dengan file  form.html. Hal ini agar kita dapat menggunakan Jquery tersebut.  misalkan kita memakai  jquery-1.4.js.  Sisipkan diantara tag <head> </head>.
  • Mengatur validasi
  • Masih pengetikan di <head></head>, ketik scipt di bawah ini.
  • Mengaktifkan validasi
  • Pengetikan di antara <script></script>, ketik script di bawah ini.
  • Mengecek ada tidaknya text di dalam suatu form  
  • Pengetikan di antara $("#form1").validate, ketik scipt di bawah ini.
  • Mengatur password
  • Buat form password dan ulang password. Letakkan scipt di bawah form Nama. 
  • Memvalidasi panjang form password dan form ulang password yang harus sama dengan password. Tambahkan scipt di bawah ini di dalam rules, message.
5.      jQuery-Cycle-Plugin 
Plugin ini digunakan untuk animasi image dalam sebuah website, plugin ini menggantikan fungsi flash sebagai animasi. Jadi dengan plugin ini, kita bisa menganimasikan image yang ada menjadi sebuah animasi seperti fade in, fade out, slide show, scroll.

6.      Teks-Berjalan 
Plugin ini digunakan untuk memannipulasi teks, sehingga teks yang kita tampilkan kelihatan menarik, seperti berjalan dari kiri ke kanan atau sebaliknya atau dari atas ke bawah, mirip fungsi marquee dalam tag HTML, tetapi dengan plugin ini, teks berjalan lebih lembut.