Kamis, 24 Mei 2012

CONTOH APLIKASI AJAX

Pada aplikasi Javascript konvensional jika kita menginginkan data dari server kita menggunakan Form dan memanggilnya dengan method GET atau POST. Sehingga pengunjung perlu mengklik tombol dan kemudian halaman akan kerefresh untuk menampilkan hasil dari request tersebut. Nah, kalau dengan Ajax, Javascript berkomunikasi langsung keserver dengan sebuah fungsi yang disebut XMLHttpRequest. 

Dengan XMLHttpRequest suatu halaman web dapat direquest dari server dan diterima hasilnya tanpa perlu terjadi refresh pada halaman web tersebut. XMLHttpRequest telah disupport oleh IE 5 keatas, Safari 1.2 keatas, Mozilla Firefox keatas dan Opera 8 keatas. Ajax merupakan penggabungan teknologi-teknologi Javascript, HTML/XHTML, XML, CSS dan Server Side Client. Jadi jika anda belum menguasai salah satu dari teknologi tersebut disarankan untuk anda mempelajari dahulu sebelum melanjutkan pemahaman tentang AJAX.
Pada artikel ini saya akan coba memberikan contoh ajax yang paling sederhana karena aplikasi-aplikasi website yang besar dimulai dari sesuatau yang sederhana. Untuk memulainnya silahkan anda buat sebuah File HTML dan tuliskan kode dibawah ini lalu simpan dengan nama index.html

   
<html>
<head>
<title>Contoh AJAX title>
<script language="javascript">
function GetXmlHttpObject(){
    var xmlHttp=null;
    try {
    //Untuk Browser Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
    //Untuk Browser Internet Explorer
        try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function getpages(url,centercol) {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp) {
        var obj = document.getElementById(centercol);
        xmlHttp.open("GET", url);
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 1) {
                obj.innerHTML = '<img alt=\"Halaman Sedang Dimuat \" src=\"images/wait.gif\" alt=\"loading\" / >';
            }
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                obj.innerHTML = xmlHttp.responseText;
            }
        }
        xmlHttp.send(null);
    }
}
</script>
</head>
<body>

<h1>Request File Dari HTML </h1>
<form>
    <input value="Request File  " onclick="getpages('request.html','centercol')" type="button">
</form>
<div id="centercol">
  File request.html akan ditampilkan disini
</div>
</body>
</html>

Sekarang buat file HTML dengan nama request.html yang disimpan dengan folder yang sama dengan File diatas kemudian isilah dengan text berikut ini:
?
1
   
Text ini ditampilkan dengan metode proses request <strong>Ajax</strong>

 
Keterangan :

Awalnya kita perlu membuat object XMLHttpRequest, objek ini wajib ada dalam website yang menggunakan Ajax. Untuk memanggilnya kita perlu menggunakan fungsi berikut ini:


function GetXmlHttpObject(){
    var xmlHttp=null;
    try {
    //Untuk Browser Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
    //Untuk Browser Internet Explorer
        try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e){
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

Pertama kita set xmlHttp=null tidak aktif, kemudian baru kita aktifkan lagi dengan membuat objek yang baru xmlHttp = new XMLHttpRequest(); Khusus untuk Internet Explorer, karena menggunakan ActiveX untuk membuat XMLHttpRequest kita harus membuat kode xmlHttp = new ActiveXObject("Microsoft.XMLHttp");

Setelah kita membuat objek XMLHttpRequest sekarang kita membuat fungsi untuk mengambil file dan menampilkannya. Disini kita membuat fungsi function getpages(url,centercol), yang didalamnya terdapat xmlHttp.open ("GET", url); yang berarti kita mengambil url dengan method get. dengan menggunakan method get maka kita harus mengirimkan sesuatu keserver, tapi karena kita tidak mengirim apa-apa maka kita kirimkan saja nilai kosong dengan kode: xmlHttp.send(null);

xmlHttp.status merupakan status http. Jika statusnya 200 berarti file html nya ada dan siap ditampilkan. Sehingga kita perlu mengecek kedua status tersebut dengan kode if (xmlHttp.readyState == 4 && xmlHttp.status == 200)

Jika kedua statusnya oke, maka kita perlu menampilkannya dengan perintah obj.innerHTML = xmlHttp.responseText Dimana ini berarti kita menampilkannya di obj, sementara variabel obj telah kita isi dengan centercol, ini kode ketika kita mengisi obj dengan centercol, var obj = document.getElementById(centercol).

Terakhir Kita memanggil fungsi getpages pada tombol serta mengirim url yang akan ditampilkan. Inilah kode yang digunakan untuk memanggil fungsi getpages: <input type="button" value="Tampilkan Request" onclick="getpages('request.html' ,'centercol')">.


Sumber :

ULASAN TENTANG AJAX

PENGERTIAN AJAX

AJAX adalah singkatan dari Asynchronous JavaScript and XML. Pada dasarnya ajax menggunakan XMLHttpRequest object Javascript untuk membuat request ke server secara asynchronous atau tanpa melakukan refresh halaman website. Yang dibutuhkan agar ajax dapat berjalan adalah javascript harus di enable pada browser yang digunakan. Walaupun javascript merupakan dasar dari Ajax, dimana javascript sangat susah pada implementasi dan maintenance, tetapi Ajax memiliki struktur pemrograman yang lebih mudah untuk dipahami. Anda tinggal membuat object XMLHttpRequest dan memastikan object tersebut terbentuk dengan benar. Kemudian menentukan kemana hasilnya akan ditampilkan atau dikirim.
Ajax dapat digunakan untuk melakukan banyak hal, seperti loading halaman HTML tanpa refresh halaman web, validasi form dan banyak lagi yang bisa dilakukan dengan ajax. Di tutorial ini Ajax akan dipadukan dengan bahasa pemrograman PHP yang sangat powerfull. Ajax bertugas melakukan request ke web server dan PHP yang berada di server akan melakukan apa yang diminta oleh Ajax, mengirim hasilnya ke web browser dan Ajax menampilkannya kepada user. Karena Ajax dibangun dengan javascript maka untuk dapat mengikuti tutorial ini dengan baik anda perlu memiliki dasar-dasar javascript. Selain itu anda juga perlu memiliki dasar-dasar pemrograman PHP. Jika anda belum memiliki dasar-dasar PHP anda dapat memperoleh tutorialnya di website ini. Sedangkan untuk tutorial javascript anda bisa memperolehnya dari berbagai sumber yang ada di internet.


Pada website tradisional biasa jika kita mengklik suatu tombol/link tertentu maka browser akan melakukan refresh dimana document HTML akan di baca dari awal dan layar browser akan menjadi blank sesaat karena pada saat itu browser sedang meminta/merequest data dari web server dan hal itulah yang membuat aplikasi website menjadi kurang interaktif dan responsif. Ajax digunakan untuk memecahkan masalah tersebut, Ajax membuat aplikasi website menjadi lebih interaktif dan responsif serta memiliki kecepatan dalam memproses request ke server. Saat ini Ajax sudah menjadi teknologi yang wajib diterapkan bagi website-website moderen (Web 2.0).
Asal Mula Bahasa Pemrograman Ajax



Pada mekanisme di atas, proses berawal dari web client. Web client merequest sebuah halaman PHP ke server melalui Javascript. Selanjutnya server akan merespon dan menjalankan script PHP. Script PHP akan menghasilkan respon dalam bentuk XML dan data XML tersebut akan dikirim kembali ke web client untuk diolah oleh Javascript. Hasil olahan javascript tersebut akhirnya akan ditampilkan di web client sebagai output tanpa harus merefresh halaman web. Bandingkan dengan mekanisme biasa dalam menjalankan PHP seperti yang ditunjukkan pada gambar berikut


Pada mekanisme biasa, respon yang dihasilkan oleh server berupa HTML yang mengakibatkan halaman web akan merefresh tampilan. Dilihat dari sisi efisiensi, hal ini tentu kurang sekali. Sedangkan kekurangan AJAX dibandingkan mekanisme biasa adalah memiliki tingkat kesukaran pemrograman yang lebih tinggi, karena programmer harus menguasai 4 hal yaitu HTML-(XHTML), Javascript, XML dan juga server side programming seperti PHP dan lain sebagainya.


sumber :

Kamis, 19 April 2012

Polymorphisme pada Java

Merupakan konsep pokok didalam perancangan orientasi objek. Polymorphisme berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek itu mempunyai antarmuka-antarmuka yang identik namun mempunyai perilaku-perilaku berbeda. Polymorphisme berupa satu nama tunggal (seperti deklarasi fungsi) dan dapat menyatakan objek-objek kelas-kelas berbeda yang terhubung dengan satu super kelas yang common diantara kelas-kelas itu. Sembarang objek ditandai dengan nama ini akan dapat menanggapi sekumpulan operasi yang common.

Polymorphisme merupakan fitur yang ada karena interaksi konsep pewarisan dan dynamic binding. Polymorphisme merupakan fitur penting dan ampuh bahasa pemrograman orientasi objek. Kepentingannya merupakan peringkat kedua setelah dukungan terhadap abstraksi orientasi objek. Fitur ini merupakan pembeda orientasi objek dari bahasa tradisional yang hanya sampai pada tipr data abstrak. Bahasa yang tidak mendukung polymorphisme belum layak disebut bahasa pemrograman orientasi objek, paling-paling bahasa disebut bahasa berbasis objek bila telah mendukung pengapsulan.

Polymorphisme memungkinkan kita mengenali dan mengeksploitasi keserupaan-keserupaan di antara kelas-kelas berbeda. Ketika kita mengenali bahwa beberapa jenis objek dapat menanggapi pesan yang sama. Kita mengenali tidak adanya pembeda antara nama pesan dan metode. Objek mengirim pesan, jika penerima mengimplementasikan metode dengan penanda sama maka objek itu akan memberi tanggapan khas. Tanggapan-tanggapan berbeda dimungkinkan, metode-metode yang berbeda dari instan kelas-kelas berbeda. Pengiriman cukup menerima pesan, tidak perlu peduli dengan kelas dari objek pertama. Berikut adalah contoh programnya :
  
Inilah kelas utamanya :

class Student {
   public void Write(int ID, int Grad, String Fname, String Lname) {
       m_ID = ID;
       m_Graduation = Grad;
       m_First = Fname;
       m_Last = Lname;
    } 
    public void Display()
    { 
        System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
    } 
    private int m_ID, m_Graduation; 
    private String m_First; 
    private String m_Last;
}


-    Ini adalah kelas subkelas nya :

class StudentGrad extends Student {
    public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major)
   {
       super.Write(ID, Grad, Fname, Lname);
       m_UndergradSchool = unSch;
       m_Major = major;
       m_Grad = Grad;
       YearGraduated = yrGrad;
    }
    public void Display(){
        super.Display();
        System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " + YearGraduated);
    }  
    private Integer YearGraduated,m_Grad;
    private String m_UndergradSchool;
    private String m_Major;
}


-   Ini adalah pelengkapnya (info) :

class StudentInfo {
     public static void main (String args[]) {
         StudentGrad myStudent = new StudentGrad();
         myStudent.Write(10,1,"Imam","Febri", 2012,"Gunadarma University","CS");
         myStudent.Display();  
        }
}


-      -    Dan inilah outputnya : 



      Teman Sekelompok : Taufiq Ramadhan (56410837)

Pewarisan (inheritance) pada Java


Pewarisan

Pewarisan adalah salah satu konsep penting dalam pemograman berbasis objek dan mempunyai dampak langsung pada cara merancang dan menulis kelas. Pewarisan merupakan suatu proses penciptaan kelas baru dengan mewarisi karakteristik kelas yang telah ada, ditambah karakteristik unik kelas baru tersebut. Pewarisan adalah mekanisme yang ampuh dengan memungkinkan kelas mewarisi fungsionalitas kelas yang telah ada. Untuk menciptakan kelas baru, kita hanya perlu menspesifikasikan cara kelas itu berbeda dari kelas yang telah ada. Pewarisan merupakan mekanisme yang ampuh dan alami untuk mengorganisasikan program. Dalam terminologi Java, kelas yang diwarisi disebut dengan superkelas,sedangkan kelas yang mewarisi disebut subkelas. dengan demikian, subkelas adalah versi spesial dari superkelas. Subkelas mewarisi semua metode dan variabel superkelasnya. secara praktis berarti jika superkelas telah didefinisikan kelas yang kita perlukan maka kitak tidak harus mendefinisikan ulang source code dari kelas lain. Superkelas secara otomatis memberi perilakunya ke subkelas pewaris. Berikut adalah contoh programnya:

- Pertama kita buat dulu superkelasnya

public class Manusia {

String nama;
int umur;
String pekerjaan;

public Manusia(String nm, int um, String pkj) {
this.nama = nm;
this.umur = um;
this.pekerjaan = pkj;
}

public String tampilkanNama() {
return nama;
}

public int tampilkanUmur() {
return umur;
}

public String tampilkanPekerjaan() {
return pekerjaan;
}

public void olahraga() {
System.out.println("Bernyanyi");
}

public void kerja() {
System.out.println(" ");
}
}

- Kemudian buat subkelas pertama

public class Programmer extends Manusia{

public Programmer(String nm4, int um4, String pkj4) {
super(nm4, um4, pkj4);
}

@Override
public void kerja() {
System.out.println("tik tak tok");
}
}


- kemudian kita buat kelas main nya (kelas utama)

public class main {

public static void main(String args []){
Manusia orang1 = new Programmer("Imam Febriyuwanto", 20, "Programmer");
System.out.println("Nama :"+orang1.tampilkanNama());
System.out.println("Umur :"+orang1.tampilkanUmur());
System.out.println("Profesi :"+orang1.tampilkanPekerjaan());
System.out.print("Hobby: ");
orang1.olahraga();
orang1.kerja();
}
}

outputnya adalah seperti ini:



Teman Sekelompok : Taufiq Ramadhan (56410837)

Selasa, 17 April 2012

PENJELASAN JAVASCRIPT

Pengertian JavaScript
JavaScript adalah bahasa pemrograman berbasis prototipe yang berjalan disisi klien. Jika kita berbicara dalam konteks web, sederhananya, kita dapat memahami JavaScript sebagai bahasa pemrograman yang berjalan khusus untuk di browser atau halaman web agar halaman web menjadi lebih hidup. Kalau dilihat dari suku katanya terdiri dari dua suku kata, yaitu Java dan Script. Java adalah Bahasa pemrograman berorientasi objek, sedangkan Script adalah serangkaian instruksi program.

Secara fungsional, JavaScript digunakan untuk menyediakan akses script pada objek yang dibenamkan ( embedded ). Contoh sederhana dari penggunaan JavaScript adalah membuka halaman pop up, fungsi validasi pada form sebelum data dikirimkan ke server, merubah image kursor ketika melewati objek tertentu, dan lain lain.

Yang Harus Diperhatikan Dalam Penulisan JavaScript
Yang harus diperhatikan dalam pengelolaan pemrograman JavaScript, diantaranya JavaScript adalah “case sensitive”, yang artinya JavaScript membedakan huruf besar dan huruf kecil. Jika Anda pernah belajar bahasa pemrograman seperti Turbo C atau C++, maka sama seperti bahasa pemrograman tersebut, dimana huruf T tidak sama dengan huruf t.

Dalam bahasa pemrograman JavaScript juga, sebagai contoh fungsi perintah var tidak boleh ditulis Var dan juga tidak boleh ditulis VAR (huruf besar semua), yang benar adalah var (huruf kecil semua). Perintah lain adalah new Date tidak boleh ditulis new date (huruf kecil semua), dsb.

Kelebihan JavaScript
JavaScript bekerja pada sisi browser. maksudnya begini : untuk menampilkan halaman web, user menuliskan alamat web di address bar url. setelah itu, browser “mengambil” file html ( dengan file jJvaScript yang melekat padanya jika memang ada ) ke server yang beralamat di URL yang diketikan oleh user. Selesai file diambil, file ditampilkan pada browser. Nah, setelah file JavaScript berada pada browser, barulah script JavaScript tersebut bekerja.

Efek dari Javascript yang bekerja pada sisi browser ini, Javascript dapat merespon perintah user dengan cepat, dan membuat halaman web menjadi lebih responsif. JavaScript melakukan apa yang tidak bisa dilakukan oleh HTML, PHP, dan CSS : menangani hal – hal yang membutuhkan respons cepat terhadap aksi dari user.

Contoh : fungsi validasi pada form. ketika anda mengisi sebuah form yang divalidasi menggunakan JavaScript, anda mengetikkan data lalu mengetik submit, sebelum data dikirimkan ke server, data akan “dicek” terlebih dahulu pada browser menggunakan fungsi JavaScript yang ada pada halaman web. sehingga, jika memang data yang anda isikan tidak valid, daripada membuang – buang waktu dengan mengirimkan data ke server baru di validasi di server dan lalu server mengirimkan respons balik mengenai ketidak validan input data anda, lebih baik cek validasi data form dilakukan secara lokal di browser menggunakan fungsi JavaScript.

Lebih Cepat dan Lebih Hemat
Implementasi terpopuler saat ini dari pemrograman JavaScript adalah teknik AJAX. (Asynchronous JavaScript and XMLHTTP ). teknik ini sering digunakan oleh aplikasi berbasis web seperti Gmail, Google Reader, dan lain lain. Teknik yang membuat pertukaran data antara server dan browser terjadi di belakang layar sehingga interaksi antara user dan aplikasi web semakin responsif. Post tersendiri untuk membahas hal ini akan kita siapkan.

Menggunakan Javascript

Sekarang ada ribuan menggunakan untuk bahasa pemrograman Javascript, termasuk item halaman web dekoratif seperti “mengupas” tab di sudut halaman web, mouseover, kejenakaan dirancang untuk membuatnya tampak seolah-olah halaman sebenarnya balik dalam sebuah buku, pop -up iklan, panah yang berbeda dan hewan dan grafis statis lainnya yang muncul untuk bergerak ketika kursor bergerak, gerakan api, awan, bintang berkilauan, dan air berkilauan, script yang membuat salju tampak jatuh, dan glitter tampak berkilau, serta sebagai efek lainnya. Lebih dari sekedar prettying atas halaman, namun ada menggunakan lebih penting untuk Javascript, seperti “berjalan” real-time jam, stasiun cuaca, kalender, kalkulator online, dan pengembangan widget dan script lain yang menangani hal-hal seperti belanja online gerobak untuk e-commerce.

Asosiasi Produsen Komputer Eropa (ECMA)

Netscape melewati pengkodean bahasa mereka untuk JavaScript ke ECMA untuk standarisasi. ECMA menghasilkan standar skrip, mengadaptasi inti dari sintaks perintah JavaScript. Ruang lingkup keseluruhan dan standar ECMA termasuk mengembangkan sintaks dan semantik untuk platform silang dan netral vendor yang bahasa scripting, dan untuk mengevaluasi dan mempertimbangkan proposal untuk teknologi pelengkap atau tambahan untuk meningkatkan bahasa-bahasa dan kode.

Javascript Babak IV

Pada tahun 1997, Netscape dikembangkan dan diperkenalkan bahasa canggih yang disebut DHTML. DHTML menggunakan kombinasi tag HTML milik dan bagian dari coding CSS style sheet baru untuk memberikan programmer kemampuan untuk mengubah gaya untuk komponen dokumen HTML. Pengkodean ini adalah khusus untuk posisi dan visibilitas elemen pada halaman. Pengkodean tidak diadaptasi dengan sangat cepat karena kesetiaan asli, namun sekarang dengan cepat menangkap sebagai standar untuk bahasa pemrograman interaktif.

Elemen Desain di Javascript Pemrograman

Dalam berurusan dengan kode Javascript, elemen banyak dan beragam yang dikategorikan ke dalam sisi-klien, sisi server, dan komponen inti; jendela dan dokumen kontrol; acara dan event handler, penciptaan objek baru dan kelas objek, integrasi teknologi, seperti penggunaan applet, HTML, Java dan Audio Live; keamanan; operand dan variabel, dan bekerja dengan dan mengembangkan bentuk dan frame.

Sumber :
http://kutubuku.web.id/2549/sejarah-javascript
http://id.wikipedia.org/wiki/JavaScript
http://gugling.com/2009/08/24/pengertian-javascript-dan-sejarahnya/

Sejarah Javascript

JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript.

Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para programmer yang non-Java. Maka dikembangkanlah bahasa pemrograman bernama LiveScript untuk mengakomodasi hal tersebut. Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama JavaScript, walaupun tidak ada hubungan bahasa antara Java dengan JavaScript.

JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX.

JavaScript pertama kali diperkenalkan oleh Netscape pada tahun 1995. Pada awalnya bahasa yang sekarang disebut JavaScript ini dulunya dinamai “LiveScript”” yang berfungsi sebagai bahasa sederhana untuk browser Netscape Navigator 2 yang sangat populer pada saat itu. Kemudian sejalan dengan sedang giatnya kerjasama antara Netscape dan Sun (pengembang bahasa pemrograman “Java”) pada masa itu, maka Netscape memberikan nama “JavaScript” kepada bahasa tersebut pada tanggal 4 desember 1995.

Pada saat yang bersamaan Microsoft sendiri mencoba untuk mengadaptasikan teknologi ini yang mereka sebut sebagai “Jscript” di browser milik mereka yaitu Internet Explorer 3. JavaScript sendiri merupakan modifikasi dari bahasa pemrograman C++ dengan pola penulisan yang lebih sederhana dari bahasa pemrograman C++.


Lalu mengapa sekarang berubah nama menjadi Javascript?

Pada masa itu bahasa ini banyak di kritik karena kurang aman, pengembangannya yang terkesan buru buru dan tidak ada pesan kesalahan yang di tampilkan setiap kali kita membuatkesalahan pada saat menyusun suatu program. Kemudian Netscape melakukan kerjasama dengan Sun (pengembang bahasa pemrograman “Java” ) pada masa itu, maka Netscape memberikan nama “JavaScript” kepada bahasa tersebut pada tanggal 4 desember 1995.

Pada saat itu pula Microsoft melakukan adaptasi dengan teknologi ini yang diberi nama "Jscript"pada browser Internet Explorer 3.

Javascript adalah bahasa yang berbentuk kumpulan skrip yang pada fungsinya berjalan pada suatu dokumen HTML dan bergantung kepada browser,sepanjang sejarah internet bahasa ini adalah bahasa skrip pertama untuk web. Bahasa ini adalah bahasa pemrograman untuk memberikan kemampuan tambahan terhadap bahasa HTML dengan mengijinkan pengeksekusian perintah perintah di sisi user, yang artinya di sisi browser bukan di sisi server web.

Sumber :

Kamis, 12 April 2012

Enkapsulasi dalam Java

Pada tulisan kali ini saya akan menjelaskan tentang enkapsulasi(pengkapsulan) dalam bahasa pemograman berbasis objek. bahasa pemograman yang saya gunakan adalah bahasa java yang sangat mengimplementasikan OOP(Object Oriented Programming). langsung saja kita mulai.
Enkapsulasi merupakan proses pemaketan data bersama metode-metodenya. Manfaat utama dari enkapsulasi ini adalah meyembunyikan rincian-rincian implementasi dari pemakai. Bagian internal objek mempunyai ketampakan terbatas dibanding bagian eksternal objek. Penyusunan seperti ini menjaga bagian internal dari pengaksesan eksternal yang tidak diinginkan.
Bagian eksternal objek sering disebut antarmuka objek karena berlaku sebagai antarmuka objek terhadap objek lain. Karena objek lain harus berkomunikasi dengan objek itu hanya melalui antarmuka maka bagian internal objek dapat dilindungi dari gangguan luar. Karena program luar tidak dapat mengakses implementasi internal objek, implementasi internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
Enkapsulasi menyediakan duan manfaat utama bagi pemograman, yaitu:
  • Penyembunyian Informasi: Penyembunyian implementasi (implementation hiding) mengacu perlindungan implementasi internal objek. Objek disusun dari antarmuka public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utama adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.
  • Modularitas (modularity) : Objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antar muka, maka kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistribusikan objek-objek di sistem.
Enkapsulasi pada Java dilakukan dengan pembentukan kelas-kelas, yaitu keyword class. Sedangkan penyembunyian informasi dilakukan dengan pengendalian terhadap pengaksesan pembentuk kelas dengan keyword-keyword untuk kendali pengaksesan default, private, protected, dan public. Penyembunyian informasi dilakukan dengan menerapkan kendali pengaksesan private atau protected pada elemen data.
Berikut ini kita akan coba untuk lebih memahami penggunaan konsep enkapsulasi dengan mengimplementasikan UML berikut :



UML Vehicle class with no hiding
Vehicle class berisi atribut yang mempunyai modifier public(+), sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.

Listing  Vehicle.java


public class Vehicle{

public double load, maxLoad;




public Vehicle (double maxLoad){

maxLoad = maxLoad + load;




public double getLoad(){

return load;


}

public double getMaxLoad(){


return maxLoad;

}


}


 
Listing Test – TestVehicle.java

public class TestVehicle{

public static void main(String[] args){

System.out.println("Creating a vehicle with a 10,000kg maximum load.");

Vehicle vehicle = new Vehicle(10000.0);


System.out.println("Add box #1 (500kg)");

vehicle.load = vehicle.load + 500.0;

System.out.println("Add box #2 (250kg)");

vehicle.load = vehicle.load + 250.0;


System.out.println("Add box #3 (5000kg)");

vehicle.load = vehicle.load + 5000.0;


System.out.println("Add box #4 (4000kg)");

vehicle.load = vehicle.load + 4000.0;


System.out.println("Add box #4 (300kg)");

vehicle.load = vehicle.load + 300.0;


System.out.println("Vehicle load is = " +vehicle.getLoad() + "kg");

}


}

Compile Vehicle.java dan TestVehicle.java lalu jalankan TestVehicle.java. Seharusnya akan keluar tampilan sebagai berikut :


Analisa program

Kita lihat bahwa pada output program tersebut kita menginisialisasi batas maximum load 10,000 kg,
Vehicle vehicle = new Vehicle(10000.0);
akan tetapi dengan memberikan akses kontrol / modifier public pada atribut class Vehicle
public double load, maxLoad, kita dapat mengakses langsung atribut class yang seharusnya perlu diberi pengecekan agar tidak sampai melebihi maxload
vehicle.load = vehicle.load + 500.0;
maka dapat mengakibatkan masalah(trouble) yakni batas maximum load yang kita buat tidak berpengaruh apapun sehingga terdapat penambahan boxes yang melebihi kapasitas(10050.0kg) dikaernakan tidak ada pengecekan kapasitas maksismum.


UML Vehicle class with hiding
Vehicle class berisi atribut yang mempunyai modi_er public, sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.

Listing program – Vehicle.java


public class Vehicle1{

private double load, maxLoad;


public Vehicle1 (double max){

this.maxLoad = max;


}

public double getLoad(){


return this.load;

}


public double getMaxLoad(){

return this.maxLoad;


}

public boolean addBox(double weight){


double temp = 0.0D;

temp = this.load + weight;


if(temp <= maxLoad){

this.load = this.load + weight;


return true;

}


else{

return false;


}

}

Listing program – TestVehicle.java


public class TestVehicle1{

public static void main(String[] args){