November 20, 2007

Try-Catch-Finally Syntax

Try-Catch-Finally adalah keyword yang digunakan Java sebagai error handler, mirip dengan OnError GoTo pada Visual Basic.
Sytax-nya adalah sebagai berikut:
try {
//what you want to try to do
}
catch (Exception e) {
//what if there is some errors?
}
finally {
//and finally? what to do?
}

Penjelasannya adalah sebagai berikut:
-Di dalam blok try { } adalah perintah-perintah yang akan dicoba untuk dilakukan
-Di dalam blok catch adalah perintah-perintah yang akan dilakukan bila terjadi error
-Finally menampung perintah-perintah yang akan dieksekusi, tak peduli ada error atau tidak.

Di antara tanda kurung pada catch(), kita membuat sebuah variable yang digunakan untuk mendeteksi error. Variable tersebut adalah variable e dengan class Exception. Class ini menampung error-error secara global. Jadi bila terjadi error apapun, pasti akan terdeteksi oleh variable ini.

Misalkan saja Anda hanya ingin menangkap error-error tertentu yang lebih spesifik, seperti mungkin error dalam penginputan (I/O) atau mungkin kesalahan pada saat melakukan query ke database, Anda bisa menggunakan subclass-subclass dari Exception ini, yang menampung error-error yang lebih spesifik, seperti class IOException atau SQLException.

Finally ini bersifat optional. Anda bisa menyertakannya, bisa juga tidak. Tetapi setiap try harus selalu diikuti oleh catch

Contoh Exception handling:
- Buka text editor Anda
- Masukkan script:

public class ExceptionHandlerSample {
public static void main(String[] args) {

System.out.println("Exception Test");

try{
int result = 5/0;
}
catch (Exception e){
System.out.println("Some error occured");
}
finally{
System.out.println("End of the Test");
}

}
}


- Simpan file tersebut dengan nama sesuai dengan nama class yang Anda buat. Dengan contoh di atas, maka nama file-nya adalah: ExceptionHandlerSample.java .Perhatikan pula capitalize-nya
- Lakukan kompilasi terhadap file tersebut di command prompt / terminal
Ketikkan:
javac ExceptionHandlerSample.java

- Kemudian jalankan class Anda
Ketikkan:
java ExceptionHandlerSample

(Perhatikan bahwa nama class tidak diikuti ekstensi apapun)
- Maka bila tidak terjadi kesalahan penulisan program, di layar akan muncul

Exception Test
Some error occured
End of the Test


Pada contoh di atas, catch menangkap sebuah Exception dalam blok try. Exception tersebut terjadi karena terjadi pembagian oleh angka nol (div by zero). Exception ini sebenarnya berada di dalam subclass dari class Exception, yaitu ArithmeticException. Tapi ditangkap oleh variable e yang bertipe Exception yang akan menangkap segala jenis Exception.


RiffAlmighty
----------
"Every man's life ends the same way. It is only the details of how he lived and
how he died that distinguish one man from another."
- Ernest Hemingway

November 13, 2007

How to use JDK in your PC

Bagi Anda yang bingung bagaimana cara menginstal / menggunakan JDK di komputer Anda, silakan ikuti langkah berikut: CMIIW(Correct Me If I'm Wrong)

Ketika Anda telah mendapatkan / men-download JDK, maka Anda akan memperoleh sebuah direktori yang berisi tool-tool. Sebagai contoh kita anggap direktori tersebut bernama "jdk" Pada direktori ini terdapat direktori "bin" yang berisi program-program untuk dapat menjalankan Java. Yang perlu Anda lakukan adalah meletakkan alamat dari direktori "jdk" serta "bin" itu tadi ke dalam environment variable. Anda perlu men-setting 2 environment variable untuk JDK, yaitu membuat variable baru bernama JAVA_HOME dengan value alamat direkroti "jdk" tadi serta menambahkan value pada variable Path dengan alamat direktori "bin" tadi.

Windows User
Letakkan direktori JDK Anda di manapun. Sebagai contoh, misalkan di C:\jdk
Buka System Properties (WinKey + PauseBreak), kemudian masuk ke Tab Advanced. Klik tombol Environment Variables. Kemudian di bagian bawah (System Variables) Klik New.
kemudian isi variable name dengan JAVA_HOME. Dan isi variable value-nya dengan alamat direktori jdk Anda. Sesuai dengan contoh di atas, maka variable value di sini saya isi dengan "C:\jdk\" Lalu klik OK


Kemudian pada System Properties, cari variable Path. Pilih variable tersebut lalu klik Edit. Pada variable value, tambahkan tanda titik koma ";" kemudian tambahkan alamat dari direktori "bin" yang ada di dalam direktori jdk Anda. Dengan contoh di atas, maka yang saya tambahkah adalah C:\jdk\bin.

Misalkan Anda meletakkan jdk Anda di D:\MyFolder\jdk1.6, maka yang Anda tambahkan adalah "D:\MyFolder\jdk1.6\bin"

Untuk mengujinya, pada Command Prompt, ketikkan echo %JAVA_HOME% atau echo %Path% untuk melihat apakah variable tersebut telah ter-setting dengan benar

Linux User
Letakkan jdk Anda, misal di /root/jdk/
Buka Terminal / Console Anda, kemudian ketikkan:
export JAVA_HOME=/root/jdk/

Ubahlah "/root/jdk" dengan direktori tempat Anda meletakkan JDK. Kemudian ketikkan lagi:
export PATH=$PATH:/root/jdk/bin/

Untuk mengujinya ketikkan echo $JAVA_HOME atau echo $PATH

riffAlmighty
----------
"Every man's life ends the same way. It is only the details of how he lived and
how he died that distinguish one man from another."
- Ernest Hemingway

Between JDK, JRE, JVM & SDK

Keempat istilah ini mungkin seringkali membuat para Java Developer (termasuk saya juga :)) menjadi sedikit bingung. Apa sih sebenernya masing-masing itu? CMIIW (Correct Me If I'm Wrong :D)

1. JVM (Java Virtual Machine)
JVM inilah yang merupakan jantung dari Java Platform. JVM ini adalah pihak yang bertanggung jawab untuk mengeksekusi program Java menjadi bahasa mesin untuk diproses oleh prosesor. JVM mampu menerjemahkan code-code Java ke hampir semua platform. JVM ini-lah yang membuat Java "write once, run everywhere" alias multi-platform

2. JRE (Java Runtime Environment)
JRE inilah yang memungkinkan sebuah program Java dapat berjalan di mesin Anda. JRE ini mengeksekusi binary-binary dari class-class dan mengirimnya ke JVM untuk diproses lagi ke prosesor. Setiap JRE pasti memiliki sebuah JVM di dalamnya untuk melakukan pemrosesan selanjutnya

3. JDK (Java Development Kit)
Seperti namanya, JDK adalah semacam kotak peralatan (kit) yang digunakan untuk development. JDK ini berguna saat Anda menulis code program. Seperti halnya JRE, JDK juga memiliki JVM di dalamnya.

4. SDK (Software Development Kit)
Ini lain lagi ceritanya. SDK ini biasanya adalah kumpulan dari tools yang dibutuhkan untuk membuat serta menjalankan program. Jadi di dalam SDK itu ada JDK-nya, ada JRE-nya serta mungkin IDE-nya juga.

Jadi kesimpulannya:
- JVM ada di dalam JRE
- JVM ada di dalam JDK juga
- JRE untuk "membaca" program Java
- JDK untuk "menulis" program Java
- SDK umumnya berisi JDK & JRE

Masih bingung? Mungkin Mbah Gugel lebih tau :-$

riffAlmighty
----------
"Every man's life ends the same way. It is only the details of how he lived and
how he died that distinguish one man from another."
- Ernest Hemingway

Using IDE for building

Mungkin Anda-Anda yang sudah pernah mencoba membuat program Java yang sederhana dengan menggunakan text editor sederhana, akan berpikir : Kok ribet banget sih? Musti compile dulu lah, musti gini gitu
Nah, ada satu jawaban untuk hal tersebut, yaitu: gunakan IDE / builder. Tapi ternyata IDE / Builder Java yang ada saat ini sangat beragam, semisal saja ada yang namanya NetBeans, yang masuk ke dalam SDK-nya Sun, atau Eclipse, JCreator dan banyak lain. Lalu, yang mana yang paling bagus?
Untuk menjawab mana yang paling bagus mungkin agak susah karena hal tersebut bersifat subjektif, serta tergantung dari segi mana orang menilai bagus/tidak-nya sebuah IDE. Jika Anda merasa bahwa "Java adalah produk Sun, maka seluruh tentang Java mungkin lebih baik yang berasal dari Sun", Anda tidak salah. Karena memang bagaimanapun, Sun yang tahu lebih jauh tentang Java, karena mereka yang mengembangkannya bukan? :)

Dari apa yang saya dapat dari surfing di Mbah Gugel, saya mendapat kesan bahwa performa NetBeans di mata para developer semakin meningkat. Tapi tetap saja Eclipse adalah IDE yang paling banyak digunakan, sehingga mendapat support plugin yang lebih banyak.
Saya juga membaca bahwa NetBeans lebih banyak dipakai untuk aplikasi GUI alias desktop application dengan menggunakan framework Swing, sementara Eclipse lebih ke arah JavaEE-nya.

Saya sendiri lebih prefer ke Eclipse, karena saya dulu pertama kali belajar JavaEE, bukannya JavaSE, jadi nurut sama omongan orang bahwa Eclipse lebih baik. Saya belum mencoba menggunakan NetBeans karena pada saat pertama memakai ternyata lebih berat untuk dijalankan daripada Eclipse. :)

Silakan pilih IDE mana saja untuk membangun aplikasi Anda, karena semua IDE (Integrated Development Environment) sama-sama bertujuan untuk memudahkan Anda membangun aplikasi (daripada pake Notepad hayoo :))

Beberapa kelebihan pemakaian IDE adalah :
1. Lebih user-friendly. IDE akan memberikan peringatan saat terjadi error. Atau bahkan mereka akan membetulkan kesalahan tersebut. Tersedia juga fasilitas auto-complete dimana mereka akan memberi suggestion untuk kata / syntax apa yang sedang Anda ketik
2. Tidak perlu manual compilation. Cukup tekan Run, maka Anda bisa melihat hasil program Anda
3. Tersedianya description untuk object-object, sehingga Anda bisa membaca deskripsi dari object yang akan Anda pakai
4. Masih banyak lagi... :D


Riff Almighty
----------
"Every man's life ends the same way. It is only the details of how he lived and
how he died that distinguish one man from another."
- Ernest Hemingway

October 27, 2007

First Java program : Hello Dunia!!!

Finally, setelah sesi teori yang membosankan, it's the time to make it real!! :D

Okay, langsung aja deh kita buat program java pertama kita. Yang akan kita buat kali ini ya kayak kalo orang pertama kali belajar bikin program, yaitu : HELLO WORLD :P

Pertama buka Text Editor kamu, notepad ato semacamnya, eits, oh ya lupa, sebelumnya kamu juga musti nginstall compiler-nya Java dulu donk, biar programnya bisa jalan. Get it here for free!! :P
OK, back to the topic, kalo uda nginstal + buka notepad, let's make the first class. Namai aja HelloWorld (jangan lupa tata nama-nya loh..)

public class HelloWorld{
}


Huff.. selesai deh class pertama kita? Lho kok? Hehehe ya maksudnya uda selese bkin class meskipun kosong melompong :P
Oke, klo gitu ayo kita isi!!

Yang musti kita bikin di dalam class ini adalah method main. Apaan tuh? Method main ini adalah method yang akan dijalankan bila class tersebut dijalankan / diexekusi secra langsung, ga pake instance-instance segala macem.
Tulis aja di dalem class tu :

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


Nah, sekarang tahu kan, kalo fungsi main tu bersifat public dan static, serta ga me-return nilai alias void. Kalo maksudnya String args[] tuh parameter yang dimasukin buat ni method. Tapi ga usah diperhatikan, biarin aja gitu. :D

Oke, sekarang class kita ini sudah punya method yang akan dijalanin pada saat dia di-execute. Tapi ngejalanin apa? Oke, sekarang kita kasih ni method kerjaan! :P

tulis ajah di dalem method main tu

System.out.println("Hello World!!!!");


Maksudnya tuh, kita manggil fungsi println yang gunanya untuk mencetak "Hello World!!!!". Method ini sebenernya ada di class PrintStream. Tapi berhubung method ini tuh bukan class method alias non-static method, maka class PrintStream musti di-instance dulu biar bisa manggil tuh method. Dan ternyata yang meng-instance adalah variable out yang ada di class System. Jadinya yang bisa manggil ya si out ini. Dan berhubung si out ini tuh adalah class variable, maka si System bisa manggil dia secara langsung. (bingung? baca ajah ini)

Hoke..sekarang save file ntu dengan nama sesuai dengan nama class dan dengan ekstensi .java. kalo pake contoh di atas ya jadinya HelloWorld.java
Trus sekarang waktunya ngejalanin!!!
Buka Command Prompt (Windows) / Terminal (Linux) lalu pindah ke direktori tempat kamu nyimpen file .java tadi.

Eits, iya lupa lagi, :P kalo mau ngejalanin class Java, kita musti meng-compile dulu.
Gini compile-nya:

javac HelloWorld.java


Jadinya di direktori itu akan ada file baru yang namanya HelloWorld.class yang berisi biner-biner hasil kompilasi dari HelloWorld.java
Kalo uda, kita jalanin deh..
Ketik:

java HelloWorld


Dan jreng-jreng.. Di layar akan muncul:

"Hello World!!!!"


Gimana? Gampang kan? :D

October 05, 2007

Constructor

Constructor adalah sebuah method di dalam class yang bersifat istimewa. Constructor ini memiliki nama yang sama dengan nama class dan tidak memiliki nilai kembalian (return value). Constructor ini akan dipanggil ketika class tersebut di-instance oleh keyword new. Ketika dipanggil, constructor ini akan mengalokasikan tempat di memori untuk instance baru tersebut dan memberi nilai awal pada variabel tersebut sesuai dengan parameter yang diberikan.

Contohnya : costructor class Bicycle:
public Bicycle (int startSpeed) {
speed = startSpeed;
}


Construtor tersebut akan dipanggil ketika class Bicycle di-instance oleh keyword new:

Bicycle myBicycle = new Bicycle(10);


Hal tersebut berarti variabel myBicycle yang bertipe Bicycle telah di-construct sehingga mempunyai nilai speed = 10.

Construtor juga dapat di-set untuk tidak menerima parameter. Construtor semacam ini disebut dengan default constructor, artinya bahwa new instance dari class tersebut akan diberi sebuah nilai default yang sama pada setiap new instance. Dan apabila nilai default tersebut tidak disediakan, maka default-constructor hanya akan mengalokasikan tempat di memory saja

Contoh : Default constructor class Bicycle :
public Bicycle() {
speed = 5;
}


Jadi setiap ada sebuah variabel baru yang meng-instance class Bicycle, maka akan memiliki nilai speed yang sama, yaitu 5.

Sebuah class dapat memiliki sebuah default constructor dan non-default constructor secara bersama-sama, sehingga sebuah instance baru bisa men-set sendiri nilai awalnya dengan memanggil non-default constructor atau bisa menerima nilai default pada default construtor

class Bicycle {

public Bicycle(int startSpeed){
speed = startSpeed;
}

public Bicycle(){
speed = 5;
}

}


Sehingga:
Bicycle myBicycle = new Bicycle(15); //akan meng-instance myBicycle dengan speed = 15
Bicycle yourBicycle = new Bicycle(); //akan meng-instance yourBicycle dengan speed = 5 (default)

Naming - penamaan

Java sebagai sebuah bahasa pemrograman dapat disebut sebagai bahasa yang case-sensitive. Oleh karena itu dalam dunia Java ditetapkan sebuah standar tentang naming / penamaan objek2 yang ada pada Java. Tata nama tersebut antara lain:
  • Untuk class, semua huruf kecil kecuali huruf pertama, bila lebih dari satu kata, maka kata-kata tersebut digabung dengan setiap kata diawali huruf besar. Contoh : Bicycle, MyNewBicycle
  • Untuk method semua huruf kecil, bila lebih dari satu kata, kata-kata tersebut digabung dengan kata pertama tiap kata harus huruf kapital kecuali kata pertama. Contoh : send(), getName()
  • Untuk variabel selain final variable, sama dengan tata nama method. Contoh : int word, int lastDate
  • Untuk variabel final, semua kata ditulis huruf besar. Contoh : final double PI = 3.14
  • Untuk package, semua huruf kecil dan memiliki pola : jenis_instansi.nama_instansi.nama_package.additional Contoh : org.apache.common, com.microsoft.sqlserver.jdbc (tetapi bila digunakan sendiri, maka penamaan package boleh tidak sesuai dengan tata nama) ;)

October 01, 2007

Jakarta-Java

Java di sini bukan berarti Pulau Jawa, tapi memiliku arti sebagai bijih kopi.
Tapi ada sebuah "tool" di Java yang ber-bau Jawa, yaitu sebuah proyek milik Apache yang mengembangkan komponen-komponen bagi Java, yaitu Jakarta Project.

Jakarta Project tersebut telah menelorkan tools, libraries serta framework yang cukup handal untuk Java environment, antara lain : Jakarta Tomcat (web server), Jakarta Ant (builder tool), Jakarta Struts (framework), Velocity (template design) dll

Mungkin saja proyek itu dinamai seperti itu karena Jakarta adalah kota terbesar di pulau Java :)

September 22, 2007

Overide / Hide a Method

Mungkin sebelum membaca bagian ini, sebaiknya Anda memahami terlebih dahulu tentang static & non-static method

Overide adalah sebuah proses pembuatan sebuah method baru oleh sebuah subclass, yang nama & identifier-nya sama persis dengan sebuah method lain di sebuah class induk. Overiding ini memungkinkan subclass untuk melakukan perubahan pada method class induk tanpa mengubah secara fisik.
Overide dapat juga diartikan membentuk ulang sebuah method yang ada di class induk.
Contoh:
public class Mother {
public void greetMom() {
System.out.println("Hello, Mommy");
}
}

//Contoh sebelum overide
public class Children extends Mother{
public static void main(String[] args){
Children myName = new Children();
myName.greetMom();
}
}


Contoh di atas akan menghasilkan output : "Hello, Mommy"

//Contoh overide
public class Children extends Mother{
public void greetMom(){
System.out.println("Good morning Mom");
}
public static void main(String[] args){
Children myName = new Children();
myName.greetMom();
}
}

Contoh ini akan menghasilkan "Good Morning Mom", karena fungsi greetMom() di class induk (Mother) telah di-overide alias dibentuk ulang di subclass Children.

Note:
Fungsi greetMom() pada Children, memiliki nama & identifier yang sama dengan greetMom() pada Mother

Sementara itu hiding method adalah proses membuat sebuah class yang sama dengan method di superclass. Hampir mirip dengan overide, hanya saja, hide ini membentuk ulang sebuah static method. Method yang baru pun, adalah static method. Dan apabila method yang baru ini dipanggil, yang tampil tetaplah method di superclass
Contoh :
//Contoh hide
public class Mother {
public static void greetMom() {
System.out.println("Hello, Mommy");
}
}


public class Children extends Mother{
public static void greetMom(){
System.out.println("Good morning Mom");
}
public static void main(String[] args){
Children myName = new Children();
myName.greetMom();
}
}


Contoh di atas ini tidak akan menghasilkan "Good Morning, Mom" seperti overide, tapi menghasilkan "Hello Mommy" yang merupakan output dari fungsi di superclass.

Note :
untuk meng-overide/hide sebuah method di superclass, method yang baru haruslah sama dalam hal static/tidaknya, bila tidak sama, maka akan terjadi error :P

Final modifier

Terdapat lagi sebuah modifier di Java, selain access modifier & static modifier, yaitu final.

Bila modifier final ini diterapkan pada variable, maka nilai pada variable tersebut tidak akan bisa berubah, alias variable tersebut berubah menjadi sebuah constant.
Contoh : public double final PI = 3.14;

Bila modifier final diterapkan pada method, maka method tersebut tidak bisa di overide

Dan bila diterapkan pada class, maka class tersebut tidak akan bisa di-inherit alias diwariskan.

September 21, 2007

Static modifier

Selain access modifier (public, private & protected) terdapat pula beberapa jenis modifier lain di Java. Modifier-modifier tersebut antara lain adalah static

Bila kita meambahkan keyword static pada variable, maka variable tersebut akan tetap menempati sebuah alamat di memory, tak peduli seberapa banyak kita menginstansi / membuat object baru.
Contoh:

public class TheClass {
private static int theVariable;

public void setTheVariable(int newVariable){ //method untuk megubah nilai theVariable
TheClass.theVariable = newVariable;
}

public int getTheVariable(){ //method untuk menampilkan nilai the Variable
return(theVariable);
}
}


Kemudian kita membuat 2 buah instance class TheClass
TheClass myVariable = new TheClass();
TheClass yourVariable = new TheClass();

Dan apablia myVariable mengubah variable theVariable, maka bila yourVariable menampilkan theVariable, nilai yang tampil adalah nilai yang di set oleh myVariable
myVariable.setTheVariable(5); //myVariable mengubah nilai theVariable

yourVariable.getTheVariable; //yourVariable menampilkan theVariable
//maka yang tampil adalah 5


Bila keyword static ditambahkan pada method, maka hak akses method tersebut akan berubah
- Non-Static method bisa mengakses static variable & static method secara langsung
- Non-Static method bisa mengakses non-static variable & non-static method secara langsung
- Static method bisa mengakses static variable & static method secara langsung
- Static method tidak bisa mengakses non-static variable & non-static variable secara langsung

Additional :
Modifier static bila diterapkan pada method/variable, maka akan membuat method/variable tersebut bisa dipanggil secara langsung tanpa perlu meng-instance class-nya

Contohnya:
public class MyClass {
private static String statVar = "I'm a class variables!";
private String thevar = "I'm a instance variables!";

public static String statMet () {
return "I'm a class mathod!!";
}

public String theMet(){
return "I'm a instance method!!"
}
}

Sehingga kita bisa mengakses statVar secara langsung dengan cara:

MyClass.statVar
Atau mengakses statMet langsung dengan cara :

MyClass.statMet()
Tapi untuk mengakses theVar / theMet, maka kita harus meng-instance MyClass terlebih dahulu

public class AnotherClass{
private MyClass anotherVar = new MyClass();
}

Jadi bila ingin mengakses theVar / theMet, caranya adalah:
anotherVar.theVar;
atau
anotherVar.theMet();

September 20, 2007

Tipe-tipe Variables

Di Java, terdapat 2 macam tipe variable

Primitive data type
Primitive data type ini adalah tipe variabel sederhana dan sudah dikenal secara umum
Contohnya : int, boolean, long dll

Reference data type
Reference data type ini menggunakan class sebagai tipe datanya. Hal ini berarti variable tersebut membentuk sebuah object baru dengan tipe class tersebut.
Contoh :
Bicycle myBike = new Bicycle();


ini artinya kita membuat sebuah variable myBike yang bertipe Bicycle. Dan hal ini juga berarti bahwa kita telah membuat sebuah object Bicycle baru. Class Bicycle yang telah ada sebelumnya dapat diartikan sebagai sebuah blueprint atau gambar rancangan.
Seperti di dunia nyata, saat kita merancang sebuah sepeda, masih belum ada sepeda yang tercipta. Begitu pula saat kita membuat class Bicycle, masih belum ada object Bicycle yang tercipta.
Referenced variable menginstansi class tipenya dengan mengalokasikan space di memory untuk object tersebut. Dan apabila sebuah variable lain dibuat, maka variable lain tersebut akan mengalokasikan alamat memory yang lain.

Contoh :
Bicycle myBike = new Bicycle();
Bicycle yourBike = new Bicycle();


Contoh di atas berarti di memory komputer kita terdapat dua object Bicycle, yaitu myBike dan yourBike.

Note :
Apabila kita hanya menulis :
Bicycle myBike;


itu berarti bahwa masih belum tercipta sebuah object baru. Sama dengan di dunia nyata, kita masih belum membuat sepeda baru, tapi kita masih memberi gambaran bahwa sepeda kita akan dibuat dengan blueprint yang sudah kita buat. Keyword new-lah yang kemudian mengalokasikan memory untuk object baru kita.

Note (again) :
int myNumber;

BERBEDA dengan
Integer myNumber;


int myNumber hanyalah variabel dengan tipe data primitif int yang hanya bisa menampung data integer, sedangakan Integer myNumber adalah sebuah object dengan class Integer baru yang memiliki fungsi2 / method2 sama seperti yang ada di class Integer.

September 19, 2007

Previllege

Di dalam Java, terdapat 3 macam hak akses (previllege) untuk tiap2 objectnya.
Ketiganya adalah:

Public
seluruh object-object yang memiliki atribut public, dapat diakses oleh class-class ataupun method-method manapun yang ada. Atribut ini umumnya dipakai oleh class, method dan interface, karena keduanya sering dipakai/diakses oleh object-object lain

Private
Object-object yang beratribut private, hanya bisa diakses oleh object-object lain yang ada dalam satu class yang sama. Biasanya hanya digunakan oleh variabel2.
Seperti contohnya variabel numberOfTire pada class Bicycle hanya bisa diakses oleh object-object lain di dalam class Bicycle.
Sehingga apabila object lain ingin mengakses variabel tersebut, class Bicycle harus memiliki sebuah public method untuk me-return variabel tersebut. Jadi object diluar class diharuskan mengakses method tersebut, barulah method tersebut yang mengakses private variable tersebut.

Protected
Atribut protected sebenarnya mirip dengan private, hanya saja bila private hanya bisa diakses oleh object-object dalam satu class, maka protected juga bisa diakses oleh class-class yang mewarisi class induk.
Seperti contoh variable numberOfTire di class Bicycle dapat juga diakses oleh class MountainBike yang merupakan subclass dari class Bicycle

September 18, 2007

Interface

Interface adalah sebuah bentuk object lain selain class. Berbeda dengan class, interface hanya berisi kumpulan method-method tanpa ada implementasinya. Method-method tersebut baru bisa diimplementasikan apabila interface tersebut diimplementasikan di sebuah class.
Interface ini bisa dibilang hanya memuat method-method apa saja yang akan digunakan pada sebuah class

Contoh :
public interface Operation {
public int tambah(int a, int b); //method2 hanya dideklarasikan
public int kurang(int a,int b);
}

Implementasi dari interface tsb. adalah:
public class Math implements Operation {
private int hasil;

/* seluruh
method di interface di implementasikan */
public int tambah(int a,int b){
hasil = a+b;
return hasil;
}

public int kurang(int a,int b){
hasil = a-b;
return hasil;
}
}


Catatan:
Semua method yang didefinisikan di Interface, harus diimplementasikan di class

Seperti halnya class, interface pun dapat diturunkan / diwariskan
Contoh :

public interface OperationComplex extends Operation {
public int kali(int a, int b);
}


Pewarisan dari interface Operation ke OperationComplex menyebabkan semua class yang akan mengimplementasikan OperationComplex, selain harus mengimplementasikan method2 di OperationComplex, juga harus mengimplementasikan method2 di Operation.

Tetapi class yang mengimplementasikan Operation, tak perlu mengimplementasikan method2 di OperationComplex

September 17, 2007

Inheritance (pewarisan)

Pewarisan / Inheritance adalah pemberian sifat-sifat dari sebuah class utama (super class) kepada class2 lain yang memiliki sifat-sifat yang sejenis (sub-class). Class utama biasanya bersifat umum/global, sementara sub-class bersifat spesifik/khusus.

Contohnya:
Class bicycle yang sebelumnya dibuat adalah sebuah contoh sepeda pada umumnya (super class). Class ini dapat diwariskan kepada sub-class yang lebih spesifik, contohnya adalah sepeda gunung, sepeda balap, atau sepeda BMX. Dimana ketiga sepeda tersebut adalah sama-sama sebuah sepeda, yang memiliki sifat-sifat yang sama dari sepeda pada umumnya, dan juga memiliki sebuah sifat khusus yang tidak dimiliki sub-class lainnya.

Untuk mendefinisikan sebuah pewarisan, scriptnya adalah:
public class MountainBike extends Bicycle { //artinya kelas MountainBike mewarisi kelas Bicycle
// enter your code here
}

Class & Method

Class adalah kumpulan dari variabel-variabel dan fungsi-fungsi (method) yang membentuk suatu entitas yang baru. Class dapat diidentikkan dengan sebuah objek nyata.
Contohnya adalah sebuah sepeda diidentikkan dengan sebuah class Bicycle. sebuah sepeda memiliki properti-properti seperti : kecepatan, jumlah ban, pedalnya atau tidak, dll.
Properti2 tersebut diidentikkan menjadi variabel-variabel di class Bicycle yaitu :
int currentSpeed, int numberOfTire dan boolean pedal, dimana int dan boolean adalah tipe dari variabel2 tersebut.

Sebuah sepeda juga memiliki tingkah laku seperti: berjalan cepat, mengerem berbelok dll. Tingkah laku tersebut diidentikkan dengan fungsi2 pada class Bicycle: runFast(), brake(), turn() dll.

Sehingga dari sebuah sepeda, kita dapat membuat sebuah class Bicycle seperti berikut

public class Bicycle() {
/* pendeklarasian variabel2 */
private int numberOfTire; //variabel jumlah Ban
numberOfTire = 2; //memberi nilai awal pada variabel (inisialisasi)
private boolean pedal; //variabel pedal (ada/tidak)
pedal = true;
private int currentSpeed; //variabel kecepatan
currentSpeed = 0; //kecepatan awalnya adalah 0 (berhenti)

/* Method(fungsi) berjalan
menambah kecepatan sesuai dengan akselerasi */
public void runFast(int accelereation){
currentSpeed += accelereation;
}

/* Method mengerem
mengurangi kecepatan sampai menjadi nol (berhenti) */
public void brake(int decrement){
while(currentSpeed != 0){
currentSpeed -= decrement;
}
}
}

Mengapa Java disebut Java?

Bahasa pemrograman Java dinamai Java adalah karena pada saat para penemunya mendapat inspirasi pada saat mereka sedang minum kopi bersama. Java sendiri bermakna bijih kopi.

Salah satu komponen Java ada yang bernama Beans. Beans sendiri bermakna bijih. :)