Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Sabtu, 21 Agustus 2010

Java Servlet, Salam Keadilan !!

Mulai lagi posting di blog ini, mau posting yang ringan-ringan dulu,... yap inget pas kuliah dulu (padahal baru lulus ^^) pernah buat program kirim salam "Salam Keadilan" hehe.. waktu itu belajar tentang apa yang dinamakan servlet, yah sebuah konsep dasar yang perlu diketahui.

What is Servlet ? Servlet adalah teknologi Java untuk aplikasi web. Teknologi Servlet merupakan salah satu teknologi penting dari J2EE karena menjadi dasar dari teknologi JSP(Java Server Pages).

Siklus Internal Servlet
Sebelumnya kita harus memahami siklus internal Servlet. Interface yang menjadi dasar untuk program Servlet secara dasar adalah javax.servlet.Servlet. Ada 3 proses internal dalam Servlet, yakni :
1. init
* Method ini dipanggil setelah servlet container menginisialisasi class servlet. Pemanggilan method ini hanya dilakukan sekali. Method ini penting karena servlet container mem pass objek ServletConfig dari file konfigurasi web.xml. Jika method init ini menhasilkan ServletException, maka servlet container tidak dapat menempatkan servlet ke service.
2. service
* Method service dipanggil oleh servlet container setelah method init untuk mengizinkan servlet merespon request. Pada method ini, servlet container secara internal mengirimkan objek ServletRequest dan ServletResponse yang merupakan objek mewakili request klien dan respon terhadap klien. Dua objek ini penting karena memberikan fasilitas untuk menuliskan kode yang menentukan bagaimana sevlet menangani request.
3. destroy
* Method ini dipanggil oleh servlet container sebelum menghilangkan instance servlet dari service. Hal ini terjadi biasanya pada saat servlet container (misal : Tomcat) di-shutdown.

Ketiga proses ini merupakan method yang didefinisikan oleh javax.servlet.Servlet. Jadi tiap program servlet mengimplementasikan ketiga method ini.

Berikut ini adalah pemrograman dasar servlet yang mengimplementasikan interface dari javax.servlet.Servlet untuk mempelajari siklus internal dari Servlet serta menampilkan "Salam Keadilan" pada web browser. Akan lebih mudah jika menggunakan Netbeans IDE untuk menulis kode programnya.

package com.blogspot.littlebro;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class ServletDasar implements Servlet {
public void init(ServletConfig config) throws ServletException {
System.out.println("method init dipanggil");
}
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("method service dipanggil");
res.setContentType("text/html");
PrintWriter out = res.getWriter();

out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Dasar</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Salam Keadilan</h1>");
out.println("</body>");
out.println("</html>");
}
public void destroy() {
System.out.println("method destroy dipanggil");
}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
}

Konfigurasi web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ServletDasar</servlet-name>
<servlet-class>net.bentpinter.ServletDasar</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>ServletDasar</servlet-name>
<url-pattern>/ServletDasar</url-pattern>
</servlet-mapping>

<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>ServletDasar</welcome-file>
</welcome-file-list>
</web-app>

Run file ServletDasar.java maka pada web browser akan tampil seperti pada gambar berikut.


Apabila kita perhatikan pada konsol Tomcat terdapat tulisan "method init dipanggil" dan "method service dipanggil"



Hal ini menunjukkan bahwa method init dipanggil pertama kali kemudian method service. lakukan refresh berulang pada browser sehingga konsol tomcat akan menampilkan teks "method service dipanggil" berulang-ulang sejumlah kita melakukan refresh pada browser.


Kemudian lakukan shutdown pada Tomcat untuk menunjukkan method destroy, sehingga konsol tomcat akan menampilkan pesan "method destroy dipanggil".


Hal ini menunjukkan method destroy aka dipanggil setiap kali Tomcat melakukan restart, shutdown, atau reload servlet.

Minggu, 01 Februari 2009

Koneksi Java dengan Oracle Database ( ODBC Driver )

Gimana ya caranya koneksi java dengan database Oracle ???
kita coba dengan menggunakan ODBC driver, klo kita sudah menginstall oracle maka ODBC driver untuk oracle otomatis akan terinstall,..
untuk mencoba mengkoneksikan java dengan database Oracle, sebelumnya kita setting dulu ODBCnya :
1. klik Control Panel-->Administrative Tools-->Data Sources ODBC
2. pilih system DSN pada tab ODBC Data Sources Administrator


3. klik add lalu pilih driver oracle (Oracle in OraDb10g_home1) klik finish


4. isi jendela Oracle ODBC driver Configuration seperti berikut


catatan :
- data source name merupakan nama koneksi untuk menghubungkan database dengan aplikasi

5. lakukan test koneksi untuk mengecek apakah koneksi berhasil atau tidak, jika telah berhasil klik ok.




setelah konfigurasi ODBC selesai berikut ini source code java untuk koneksi dengan database Oracle,..

import java.sql.*;

public class OracleConection {
private Connection con;
OracleConection(){
con=null; //inisialisasi koneksi database
}
public ResultSet dbOpen() {
String dbname="jdbc:odbc:oraconnect"; //sesuaikan dengan data sources name yang telah dibuat pada konfigurasi ODBC
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//load koneksi driver odbc
con=DriverManager.getConnection(dbname,"scott","tiger");
if (con==null)
System.err.println("Koneksi ke Database gagal");
else
System.err.println("Koneksi ke Database Berhasil");
}catch(ClassNotFoundException ex) {
System.err.println("Driver Error");
ex.printStackTrace();
System.exit(1);
}catch(SQLException ex) {
System.err.println("Tidak Berhasil Koneksi dengan Northwind");
System.exit(1);
}
ResultSet rs=null;
Statement st;
try {
System.out.println("Employees\n" + "===========");
st=con.createStatement();
rs=st.executeQuery("select empno, ename, job from emp where deptno = 20 order by empno asc;");
}catch(SQLException ex){
ex.printStackTrace();
}
return(rs);
}

public void showEmployee (ResultSet rs) throws SQLException {
ResultSetMetaData rsData = rs.getMetaData();
String kolom1 = rsData.getColumnName(1);
String kolom2 = rsData.getColumnName(2);
String kolom3 = rsData.getColumnName(3);
while (rs.next()){
System.out.print(rs.getString(kolom1)+" ");
System.out.print(rs.getString(kolom2)+" ");
System.out.println(rs.getString(kolom3)+" ");
}
}

public void dbClose(){
try {
con.close();
}
catch(SQLException sqlex){
System.err.println("Error :Koneksi Database tidak Bisa diputus");
}
}

public static void main(String argv[]) throws Exception {
OracleConection app=new OracleConection(); //objek class OracleConection
ResultSet rs; //objek untuk menampung hasil query
rs=app.dbOpen();
app.showEmployee(rs);
app.dbClose();
}
}

Jumat, 23 Januari 2009

First step Java ME with Eclipse

Berikut ini adalah tutorial singkat penggunaan fitur eclipseme untuk membangun sebuah proyek Java ME. Penggunaan fitur eclipseme ini memerlukan software WTK yang didalamnya terdapat library Java ME dan device prototipe handphone.

Membuat Proyek baru Java ME
1. Melalui menu file pada eclipse, select New -> Other.

Pada kotak dialog diatas pilih folder J2ME -> J2ME Midlet Suite, lalu klik tombol 'Next >'.

2. Selanjutnya muncul kotak dialog sebagai berikut :

Beri nama proyek tersebut, lalu klik tombol 'Next >'.

3. Midlet Suite Properties

Jika devices belum terdefinisi klik tombol 'Manage Devices...'.


Klik 'Import...'.


Cari folder bin pada sofware WTK, lalu klik 'Refresh'.


Klik 'Finish'.


Pilih device yang akan digunakan sebagai display prototipe, kemudian klik 'Apply' dan 'OK'.


Setelah memilih device lanjut ke step berikutnya, Klik Next.

4. Java setting

Klik 'Finish'.

5. Project baru bernama JavaME telah terbuat.


Membuat file Java Midlet dalam Project JavaME yang sebelumnya telah dibuat.
1. Klik kanan pada folder project JavaME di package explorer select New -> Other... atau melalui menu file, select New -> Other...
Akan tampil kotak dialog sebagai berikut :

Pada folder J2ME pilih J2Me Midlet, lalu klik 'Next >'

2. J2ME Midlet

Beri nama file(class), lalu klik 'Finish'.

3. File HelloWorld.java bertipe Midlet telah terbuat,

Tuliskan Program berikut :



Penjelasan Singkat J2ME Midlet :
• Program Midlet mengimport paket javax.microedition.midlet dan javax.microedition.lcdui. Paket javax.microedition.midlet mendefinisikan MIDP dan paket javax.microedition.lcdui menyediakan fungsi-fungsi untuk memanipulasi antarmuka GUI pada handled.
• Setiap program Midlet harus merupakan turunan dari class Midlet yang didefinisikan pada paket javax.microedition.midlet. Hal ini mirip dengan Applet yaitu setiap applet Java haruslah turunan dari class Applet atau Japplet.
• MIDlet haruslah mengimplementasikan fungsi-fungsi abstract pada class MIDlet, minimal 3 fungsi berikut :
o public void startApp()
o public void pauseApp()
o public void destroyApp(boolean unconditional)
• Setiap program MIDlet tidak boleh memiliki fungsi public static void main(String args[]) selayaknya aplikasi Java non-Applet.

Running J2ME Midlet ;
1. Pada Menu Run, select Run As -> Emulated J2ME Midlet

Klik 'OK'.

2. Hasil Outputnya sebagai berikut :


Download Tutorial disini

Selasa, 20 Januari 2009

Install Plugins Eclipse for Java ME

Berikut ini tutorial menggunakan Eclipse untuk membangun sebuah proyek Java ME. Eclipse menyediakan berbagai plugins yang dapat kita pakai untuk mendevelop suatu program. Salah satu plugins itu adalah 'eclipseme' yang akan kita gunakan untuk mendevelop suatu program Java ME.
Caranya :
1. Download plugins eclipseme
2. Dari menu help pada eclipse, select Software Updates lalu klik Find and install...



Akan tampil kotak dialog seperti berikut :
Select 'Search for new features to install' lalu klik 'Next'.


3. Selanjutnya akan tampil kotak dialog seperti berikut :


Tekan tombol 'New Archived Site'.
4. Selanjutnya akan tampil kotak dialog seperti berikut :


Cari plugin file eclipseme.feature_1.7.7_site.zip lalu klik OK.


Klik 'OK'.


Klik 'Finish'
5. Kotak dialog selanjutnya yang muncul adalah kotak dialog update


Klik 'Next >'
6. Feature License


Klik 'Next >'
7. Installation


Klik Finish
8. Feature Verification


Klik tombol 'Install All'


Klik 'Yes'. plugins eclipseme telah terinstal untuk mendapat perubahan pada eclipse, maka
eclipse harus di restart.

Demikian instalasi plugin eclipseme, tutorial selanjutnya akan membahas First Step Programming Java ME With Eclipse.
Download Tutorialnya Disini

Jumat, 09 Januari 2009

OVERLOADING METHOD

Overloading method adalah beberapa method yang kita buat dengan nama yang sama pada suatu class dengan tujuan memudahkan penggunaan / pemanggilan method dengan fungsionalitas yang mirip.

Aturan pendeklarasian method overloading :
- Nama method harus sama
- Daftar parameter harus berbeda
- Return type boleh sama, juga boleh berbeda


Daftar parameter pada overloading :
- Perbedaan daftar parameter bukan hanyaterjadi pada perbedaan banyaknya parameter, tetapi juga urutan dari parameter tersebut.
- Misalnya saja dua buah parameter berikut ini:
function_member(intx, String n)
function_member(Stringn, intx)
Dua parameter tersebut juga dianggap berbeda daftar parameternya.


Contoh Overloading :

public class Bentuk{

public void Gambar(intt1) {

}
public void Gambar(intt1, intt2) {

}
public void Gambar(intt1, intt2, intt3) {

}
public void Gambar(intt1, intt2, intt3, intt4) {

}
}




Overloading juga bisa terjadi antara parent class dengan subclass-nya jika memenuhi syarat overload.

OVERRIDING METHOD

Jika dalam suatu subclass kita mendefinisikan sebuah method yang sama dengan yang dimiliki superclass, maka method yang kita buat dalam subclass dikatakan meng-override superclass-nya. Sehingga jika kita mencoba memanggil method tersebut dari instance subclass yang kita buat, maka method milik subclasslah yang aka dipanggil, bukan lagi method milik superclass.

Overriding mempunyai ciri-ciri sebagai berikut :
1. Nama method harus sama
2. Daftar parameter harus sama
3. Return type harus sama

Beberapa aturan yang perlu diperhatikan :
• Mode akses overriding method harus sama atau lebih luas daripada overriden method.
• Subclass hanya boleh meng-override method super class satu kali saja, tidak boleh ada lebih dari satu method pada kelas yang sama yang sama persis.
• Overriding method tidak boleh throw checked exceptions yang tidak dideklarasikan oleh overridden method.

Berikut ini contoh terjadinya overriding dimana method Info() pada class Child meng-override method Info() pada class parent:

class Parent {
public void Info() {
System.out.println(“Ini class Parent”);
}
}
class Child extends Parent {
public void Info() {
System.out.println(“Ini class Child”);
}
}

JAVA INHERITANCE

Salah satu konsep dasar dari pemrograman berbasis objek pada java adalah Inheritance, berikut ini sedikit gambaran tentang inheritance. Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass.
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.


Contoh implementasi inheritance :
public class Pegawai {
public String nama;
public double gaji;
}

public class Manajer extends Pegawai {
public String departemen;
}


Pada saat class Manajer menurunkan atau memperluas (extend) class Pegawai, maka ia mewarisi data member yang dipunyai oleh class Pegawai. Dengan demikian, class Manajer mempunyai data member yang diwarisi oleh Pegawai (nama, gaji), ditambah dengan data member yang ia punyai (departemen).

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.
2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.
3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan). Di dalam java, kontrol pengaksesan dapat digambarkan dalam tabel berikut ini:


4. Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format penulisannya adalah sebagai berikut:
super.data_member -> merujuk pada data member pada parent class
super.function_member() -> merujuk pada function member pada parent class
super() -> merujuk pada konstruktor pada parent class

Percobaan 1 : Menggunakan kata kunci super
Berikut ini listing penggunaan kata kunci super.

class Parent {
public int x = 5;
}

class Child extends Parent {
public int x = 10;
public void Info(int x) {
System.out.println("Nilai x sebagai parameter = " + x);
System.out.println("Data member x di class Child = " + this.x);
System.out.println("Data member x di class Parent = " +
super.x);
}

}
public class NilaiX {
public static void main(String args[]) {
Child tes = new Child();
tes.Info(20);
}
}


Ketika program tersebut dijalankan, akan tampak hasil seperti dibawah ini :
Nilai x sebagai parameter = 20
Data member x di class Child = 10
Data member x di class Parent = 5

Percobaan 2 : Kontrol pengaksesan
Buatlah class Pegawai seperti dibawah ini:

public class Pegawai {
private String nama;
public double gaji;
}
Kemudian buatlah class Manajer seperti ini dibawah ini.
public class Manajer extends Pegawai {
public String departemen;
public void IsiData(String n, String d) {
nama=n;
departemen=d;
}
}

Sekarang cobalah untuk mengkompilasi class Manajer diatas. Apa yang terjadi?.
Pesan kesalahan akan muncul seperti ini:

Manajer.java:5: nama has private access in Pegawai
nama=n;

Ini membuktikan bahwa class Manajer tidak mewarisi data member nama dari parent
class-nya(Pegawai).

Senin, 05 Januari 2009

Single Linked List dengan Java

Gambar berikut merupakan ilustrasi dari penerapan single linked list :



Single linked list atau biasa disebut linked list terdiri dari elemen-elemen individu, dimana masing-masing individu akan saling terhubung. Masing-masing elemen terdiri dari dua bagian, yaitu bagian data / informasi yang disimpan dan bagian lainnya sebagai penghubung dengan elemen selanjutnya.

Untuk mengakses elemen dalam linked list, dimulai dari instance head dan menggunakan instance nextNode dari elemen selanjutnya untuk berpindah dari elemen ke elemen berikutnya sampai elemen yang diminta dicapai. Dengan single linked list, list dapat dilintasi hanya satu arah dari head ke tail karena masing-masing elemen tidak terdapat link dengan elemen sebelumnya. Sehingga, apabila kita mulai dari head dan berpindah ke beberapa elemen dan berharap dapat mengakses elemen sebelumnya, kita harus mulai dari head.


Representasi simpul node
Model struktur dari linked list tersebut dalam Java adalah sebagai berikut:
public class Node {
private int data; /* integer data diisikan dalam node */
Node nextNode; /* node selanjutnya dalam list */

Node(){
this.data = 0;
this.nextNode = null;
}
public int setData(int n){
return this.data = n;
}
public int getData(){
return this.data;
}
}

Dalam hal ini, tipe Node berisi :
- Informasi berupa data, serta
- Instance dari class node bernama nextNode sebagai penghubung antara node satu dengan node selanjutnya.

Implementasi dari class Node dengan menggunakan class TestNode
class TestNode{
public static void main(String args[]) {
/* head points untuk node pertama dalam list */
Node head = new Node();
/* inisialisasi node pertama dalam list */
head.setData(5);
head.nextNode = new Node();
head.nextNode.setData(10);
/* null menandai akhir dari list */
head.nextNode.nextNode = null;

/* mencetak elemen list */
Node currNode = head;
while (currNode != null) {
System.out.print(currNode.getData());
System.out.print(", ");
currNode = currNode.nextNode;
}
}
}

Output :
5, 10,

Minggu, 09 November 2008

Catatan kecil penulisan program Java

1.Program Java yang kita buat harus selalu diakhiri dengan ekstensi file .java
2.Nama file harus sama dengan nama class public-nya.
3.Dalam satu file tidak boleh terdapat dua atau lebih class public.
4.Biasakan memberi komentar sebagai penjelasan pada kode yang Anda tulis, yaitu komentar yang berisi keterangan yang berisi perintah pada class atau apa yang dijalankan oleh method yang akan Anda tulis tersebut.
5.Pada saat pembuatan blok, Anda dapat meletakkan kurung kurawal buka pada baris dengan pernyataan seperti pada contoh berikut :

public static void main(String[] args){
Pernyataan;
}


Atau seperti berikut :

public static void main(String[] args)
{
pernyataan;
}


6.Anda harus memberi jarak (indent) pernyataan selanjutnya setelah awal dari blok seperti contoh diatas.
7.Untuk pemberian nama dari class Java, diberikan huruf kapital untuk huruf pertama pada nama class. Untuk nama method dan variabel, huruf pertama dari kata harus kecil. Sebagai contoh :

ThisIsAnExampleOfClassName
thisIsAnExampleOfMethodName


8.Untuk menghindari kebingungan dalam evaluasi matematika, buatlah pernyataan sesederhana mungkin dan gunakan bantuan tanda kurung.

Senin, 27 Oktober 2008

History of Java

Yang saya pernah baca Bahasa pemrograman Java itu pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992 hm...cukup singkat juga. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh pak Patrick Naughton, pak Mike Sheridan, pak James Gosling dan saudara Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh bung Joe Palrang.
Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer. Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner.
Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemeritaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "bapak java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Versi Awal
Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
• java.lang: Peruntukan kelas elemen-elemen dasar.
• java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
• java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
• java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.

Rabu, 15 Oktober 2008

Java Enkapsulasi

Enkapsulasi Java
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :
Information hiding.
Interface to access data.
Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.
Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

Implementasi UML
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 program - 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 program - 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){
System.out.println("Creating a vehicle with a 10,000 kg maximum load.");
Vehicle1 vehicle = new Vehicle1(10000);
System.out.println("Add box #1 (500kg) : " + vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : " + vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : " + vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : " + vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : " + vehicle.addBox(300));
System.out.println("Vehicle load is " +vehicle.getLoad() + "kg");
}
}
Compile Vehicle1.java dan TestVehicle1.java lalu jalankan TestVehicle1.java. Maka akan keluar tampilan sebagai berikut :
Analisa program
Kita lihat bahwa pada output program tersebut pada penambahan box ke-5 terjadi kelebihan kapasitas maksimal sehingga method addBox mengembalikan nilai false, dalam arti bahwa terjadi penolakan terhadap penambahan box ke 5.

Download Tutorial