Minggu, 18 Juli 2010
Java
08.48 |
Diposting oleh
Robiansyah |
Edit Entri
Mengapa Mempelajari JAVA?
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :
1. Sederhana (Simple)
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collectin.
2. Berorientasi objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.
3. Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.
4. Interpreted
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5. Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.
6. Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual Machine.
8. Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatanInprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.
VARIABEL DAN TIPE DATABerdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :
1. Sederhana (Simple)
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collectin.
2. Berorientasi objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.
3. Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.
4. Interpreted
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5. Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.
6. Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual Machine.
8. Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
9. Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatanInprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.
Bahasa pemrograman pada umumnya, mengenal adanya variabel yang digunakan untuk menyimpan nilai atau data. Sedangkan Java sendiri dikenal sebagai bahasa pemrograman dengan sifat strongly typed yang artinya diharuskan mendeklarasikan tipe data dari semua variabel, dan apabila lupa atau salah mengikuti aturan pendeklarasian variabel, maka akan mendapatkan error pada saat proses kompilasi.
A. Tipe Data
Java memiliki tipe data yang dapat dikategorikan menjadi dua kelompok, yaitu tipe data primitif dan referensi.
1. Tipe Data Primitif
Delapan macam tipe data primitif dalam pemrograman Java, yaitu :
a. Integer ( Bilangan Bulat )
Integer merupakan tipe data numerik yang digunakan apabila
tidak berurusan dengan pecahan atau bilangan desimal. Tipe data
numerik yang termasuk integer adalah sebagai berikut :
Tipe Deskripsi
Byte Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori
Short Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di
memori
Int Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32
bits ) di memori
Long Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan
menempati 8 bytes ( 64 bits ) di memori
Bilangan integer biasanya menggunakan int, dan bukan byte, short maupun long. Bilangan integer juga mengenal nilai positif dan negatif ( signed number ). Tipe data byte dan short hanya digunakan pada aplikasi khusus yang memperhatikan penggunaan memori. Sedangkan long jarang digunakan karena jarang memerlukan bilangan sebesar kapasitas long.
b. Floating Point ( Bilangan Pecahan )
Floating Point digunakan untuk menangani bilangan desimal atau perhitungan yang lebih detail dibanding integer. Ada dua macam floating point, yaitu :
Tipe Deskripsi
Float memiliki nilai -3.4x108 sampai +3.4x108 dan menempati 4 byte di memori
Double memiliki nilai -1.7x10308 sampai +1.7x10308 Semua bilangan pecahan atau
desimal dalam Java tanpa
diakhiri huruf f akan dianggap sebagai double. Sedangkan bilangan yang ingin dikategorikan sebagai float harus diakhiri dengan huruf F. Misalnya : 4.22 F atau 2.314f. Sedangkan untuk bilangan double, bisa menambah dengan huruf D, karena secara default bilangan dengan koma atau pecahan atau desimal akan dianggap sebagai double.
c. Char
Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data primitif, tetapi sudah merupakan sebuah objek. Tipe char mengikuti aturan unicode, sehingga dapat menggunakan kode /u kemudian diikuti bilangan dari 0 sampai 65535, tetapi yang biasa digunakan adalah bilangan heksadesimal dari 0000 sampai FFFF.
Boolean
Dalam Java dikenal tipe data boolean yang terdiri dari dua nilaisaja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.
EXCEPTION
Exception adalah event yang terjadi ketika program menemui kesalahan pada
saat instruksi program dijalankan. Banyak hal yang dapat menimbulkan event ini,
misalnya crash, harddisk rusak dengan tiba-tiba, sehingga program-program tidak
bisa mengakses file-file tertentu. Programmer pun dapat menimbulkan event ini,
misalnya dengan melakukan pembagian dengan bilangan nol, atau pengisian elemen
array melebihi jumlah elemen array yang dialokasikan dan sebagainya.
Exception terdiri dari dua macam kelompok, yaitu :
Exception yang merupakan subclass RunTimeException
Exception yang bukan subclass RunTimeException
RunTimeException biasanya disebabkan oleh kesalahan program atau pada desain
program. Misalnya NullPointerException yang disebabkan oleh proses inisialisasi
program yang tidak sempurna dan ArrayIndexOutOfBoundsException yang
disebabkan akses array yang melebihi kapasitas array yang ada.
Dalam bahasa Java, ketika terjadi kesalahan, otomatis akan dilemparkan
sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh
fungsi-fungsi yang siap menangani kesalahan tersebut. Proses pelemparan exception
tersebut sering dikenal dengan istilah throwing exception, sedangkan proses
penerimaan exception yang bersangkutan dikenal dengan istilah catch exception.
A. Blok Try – Catch
Untuk penanganan exception, dalam Java digunakan blok try dan catch. Blok
try digunakan untuk menempatkan kode-kode program Java yang mengandung kode
program yang mungkin melemparkan exception. Blok catch digunakan untuk
menempatkan kode-kode program Java yang digunakan untuk menangani sebuah
exception tertentu.
Setelah kita tambahkan blok try – catch untuk mengatasi error yang terjadi,
maka program akan menampilkan pesan error bahwa ada error yang terjadi pada
konsol. Sintaks blok try – catch adalah sebagai berikut :
Try
{
... kode program yang mungkin menghasilkan exception
}
Catch {exception xx}{...}
Catch {exception xx}{...}
Latihan 34. TryCatch.java
import java.io.*;
class TryCatch {
public static void main(String[] args) {
try{
System.out.println("Masuk 1 dari try catch");
File test = new File("c:\test.txt");
System.out.println("Masuk 2 dari try catch");
test.createNewFile();
System.out.println("Masuk 3 dari try catch");
}catch(java.io.IOException e) {
//code untuk menangani ekpsesi
System.out.println("Keluar dari try catch");
}
}
B. Objek Exception
Objek exception yang dihasilkan dapat kita manfaatkan untuk mengetahui
lebih lanjut mengenai error atau exception yang terjadi. Exception merupakan
subclass dari class Throwable yang mendefinisikan beberapa method yang juga
diwarisi oleh exception.
Tiga method yang penting adalah :
getMessage()
Method ini mengembalikan isi pesan untuk menggambarkan exception yang
terjadi.
printStackTrace()
Method ini menampilkan pesan error dan stack trace ke standard error output
stream yang biasanya merupakan konsol windows apabila program
merupakan program konsol.
printStackTrace(PrintStream s)
Method ini menampilkan pesan error ke objek PrintStream yang dijadikan
parameter. Apabila ingin menampilkan pesan ke konsol, kita dapat
menggunakan System.out sebagai parameter.
C. Blok Try – Catch – Finally
Selain try – catch, kita dapat mendefinisikan blok try – catch dan finally yang
memiliki proses yang lebih lengkap, karena pada finally kita dapat mendefinisikan
kode program yang selalu dieksekusi, baik ada exception yang terjadi maupun bila
tidak terjadi exception sama sekali.
Latihan 35. TryCatchFinally.java
class TryCatchFinally {
public static void methodLain(int i)
throws java.io.CharConversionException {
System.out.println("Buka file");
try{
System.out.println("Proses file");
System.out.println(i);
if(i==0)
{
System.out.println("True 1");
throw new java.io.CharConversionException("Test Eksepsi");
//System.out.println("True 2"); error
}
else
System.out.println("False");
}catch(java.io.CharConversionException e) {
System.out.println("Penanganan Eksepsi dalam method methodLain()");
throw e; //Eksepsi dilempar ke luar method
}
System.out.println("Tutup file");
}
public static void main(String[] args) {
try{
System.out.println(args.length);
methodLain(args.length);
}catch(java.io.CharConversionException e) {
System.out.println("Penanganan Eksepsi dalam method main()");
}
}
}
D. Membuat Class Exception Baru
Kita dapat membuat class baru yang mewarisi class exception dari
java.lang.Exception. Kadangkala kita perlu mendefinisikan class exception yang
lebih spesifik untuk keperluan tertentu, supaya penanganan exception dapat lebih
baik.
Floating Point digunakan untuk menangani bilangan desimal atau perhitungan yang lebih detail dibanding integer. Ada dua macam floating point, yaitu :
Tipe Deskripsi
Float memiliki nilai -3.4x108 sampai +3.4x108 dan menempati 4 byte di memori
Double memiliki nilai -1.7x10308 sampai +1.7x10308 Semua bilangan pecahan atau
desimal dalam Java tanpa
diakhiri huruf f akan dianggap sebagai double. Sedangkan bilangan yang ingin dikategorikan sebagai float harus diakhiri dengan huruf F. Misalnya : 4.22 F atau 2.314f. Sedangkan untuk bilangan double, bisa menambah dengan huruf D, karena secara default bilangan dengan koma atau pecahan atau desimal akan dianggap sebagai double.
c. Char
Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ‘ ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data primitif, tetapi sudah merupakan sebuah objek. Tipe char mengikuti aturan unicode, sehingga dapat menggunakan kode /u kemudian diikuti bilangan dari 0 sampai 65535, tetapi yang biasa digunakan adalah bilangan heksadesimal dari 0000 sampai FFFF.
Boolean
Dalam Java dikenal tipe data boolean yang terdiri dari dua nilaisaja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program.
EXCEPTION
Exception adalah event yang terjadi ketika program menemui kesalahan pada
saat instruksi program dijalankan. Banyak hal yang dapat menimbulkan event ini,
misalnya crash, harddisk rusak dengan tiba-tiba, sehingga program-program tidak
bisa mengakses file-file tertentu. Programmer pun dapat menimbulkan event ini,
misalnya dengan melakukan pembagian dengan bilangan nol, atau pengisian elemen
array melebihi jumlah elemen array yang dialokasikan dan sebagainya.
Exception terdiri dari dua macam kelompok, yaitu :
Exception yang merupakan subclass RunTimeException
Exception yang bukan subclass RunTimeException
RunTimeException biasanya disebabkan oleh kesalahan program atau pada desain
program. Misalnya NullPointerException yang disebabkan oleh proses inisialisasi
program yang tidak sempurna dan ArrayIndexOutOfBoundsException yang
disebabkan akses array yang melebihi kapasitas array yang ada.
Dalam bahasa Java, ketika terjadi kesalahan, otomatis akan dilemparkan
sebuah objek yang disebut exception, yang kemudian dapat diproses lebih lanjut oleh
fungsi-fungsi yang siap menangani kesalahan tersebut. Proses pelemparan exception
tersebut sering dikenal dengan istilah throwing exception, sedangkan proses
penerimaan exception yang bersangkutan dikenal dengan istilah catch exception.
A. Blok Try – Catch
Untuk penanganan exception, dalam Java digunakan blok try dan catch. Blok
try digunakan untuk menempatkan kode-kode program Java yang mengandung kode
program yang mungkin melemparkan exception. Blok catch digunakan untuk
menempatkan kode-kode program Java yang digunakan untuk menangani sebuah
exception tertentu.
Setelah kita tambahkan blok try – catch untuk mengatasi error yang terjadi,
maka program akan menampilkan pesan error bahwa ada error yang terjadi pada
konsol. Sintaks blok try – catch adalah sebagai berikut :
Try
{
... kode program yang mungkin menghasilkan exception
}
Catch {exception xx}{...}
Catch {exception xx}{...}
Latihan 34. TryCatch.java
import java.io.*;
class TryCatch {
public static void main(String[] args) {
try{
System.out.println("Masuk 1 dari try catch");
File test = new File("c:\test.txt");
System.out.println("Masuk 2 dari try catch");
test.createNewFile();
System.out.println("Masuk 3 dari try catch");
}catch(java.io.IOException e) {
//code untuk menangani ekpsesi
System.out.println("Keluar dari try catch");
}
}
B. Objek Exception
Objek exception yang dihasilkan dapat kita manfaatkan untuk mengetahui
lebih lanjut mengenai error atau exception yang terjadi. Exception merupakan
subclass dari class Throwable yang mendefinisikan beberapa method yang juga
diwarisi oleh exception.
Tiga method yang penting adalah :
getMessage()
Method ini mengembalikan isi pesan untuk menggambarkan exception yang
terjadi.
printStackTrace()
Method ini menampilkan pesan error dan stack trace ke standard error output
stream yang biasanya merupakan konsol windows apabila program
merupakan program konsol.
printStackTrace(PrintStream s)
Method ini menampilkan pesan error ke objek PrintStream yang dijadikan
parameter. Apabila ingin menampilkan pesan ke konsol, kita dapat
menggunakan System.out sebagai parameter.
C. Blok Try – Catch – Finally
Selain try – catch, kita dapat mendefinisikan blok try – catch dan finally yang
memiliki proses yang lebih lengkap, karena pada finally kita dapat mendefinisikan
kode program yang selalu dieksekusi, baik ada exception yang terjadi maupun bila
tidak terjadi exception sama sekali.
Latihan 35. TryCatchFinally.java
class TryCatchFinally {
public static void methodLain(int i)
throws java.io.CharConversionException {
System.out.println("Buka file");
try{
System.out.println("Proses file");
System.out.println(i);
if(i==0)
{
System.out.println("True 1");
throw new java.io.CharConversionException("Test Eksepsi");
//System.out.println("True 2"); error
}
else
System.out.println("False");
}catch(java.io.CharConversionException e) {
System.out.println("Penanganan Eksepsi dalam method methodLain()");
throw e; //Eksepsi dilempar ke luar method
}
System.out.println("Tutup file");
}
public static void main(String[] args) {
try{
System.out.println(args.length);
methodLain(args.length);
}catch(java.io.CharConversionException e) {
System.out.println("Penanganan Eksepsi dalam method main()");
}
}
}
D. Membuat Class Exception Baru
Kita dapat membuat class baru yang mewarisi class exception dari
java.lang.Exception. Kadangkala kita perlu mendefinisikan class exception yang
lebih spesifik untuk keperluan tertentu, supaya penanganan exception dapat lebih
baik.
THREAD
Thread merupakan kemampuan yang disediakan oleh Java untuk membuat
aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas
tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam
hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses
dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk
pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber
daya secara konkuren.
Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :
Membuat subclass dari thread
Untuk menjalankan thread, dapat dilakukan dengan memanggil method
start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan
dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run()
pada definisi class. Konstruktor dari cara ini adalah :
ClassThread namavar = new ClassThread();
Namavar.start();
Atau dapat juga langsung dengan cara:
New ClassThread().start();
Mengimplementasikan interface Runnable
Cara ini merupakan cara yang paling sederhana dalam membuat thread.
Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan
interface ini hanya cukup mengimplementasikan fungsi run(). Dalam
mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang
membangun sebuah thread. Konstruktor dari cara ini adalah :
ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());
A. Daemon Dan User Thread
Ada dua Macam thread dalam Java, yaitu daemon dan user thread. Daemon
thread merupakan thread yang siklus hidupnya tergantung pada thread utama atau
induk, sehingga apabila thread induk berakhir, maka otomatis thread-thread daemon
juga ikut berakhir. Sedangkan user thread memiliki sifat berbeda, dimana apabila
thread utama sudah selesai, maka user thread akan terus dijalankan.
B. Sleep
Mengatur thread untuk menghentikan prosesnya sejenak dan memberi
kesempatan pada thread atau proses lain. Sleep dilakukan dengan cara memanggil
method :
Sleep(long waktu);
Waktu untuk method ini merupakan tipe long dalam milisekon.
C. Interrupt
Apabila menginginkan suatu thread untuk menghentikan proses, maka perlu
memanggil method interrupt. Interrupt digunakan untuk memberi signal pada thread
untuk menghentikan prosesnya.
Latihan 36. Thread.java
class ThreadBaru extends Thread {
public ThreadBaru(String id) {
super(id);
start(); //Mulai eksekusi thread baru
}
public void run() {
for(int i=0;i<5;i++){
try{
Thread.sleep(100);
}catch(InterruptedException e) {}
}
}
}
class DemoThread {
public static void main(String[] args) {
ThreadBaru thread1 = new ThreadBaru("Thread1");
ThreadBaru thread2 = new ThreadBaru("Thread2");
ThreadBaru thread3 = new ThreadBaru("Thread3");
System.out.println("Thread1 masih dieksekusi : " + thread1.isAlive());
System.out.println("Thread2 masih dieksekusi : " + thread2.isAlive());
System.out.println("Thread3 masih dieksekusi : " + thread3.isAlive());
//tunggu hingga semua child thread selesai dieksekusi
try{
thread1.join();
System.out.println("Thread1 selesai dieksekusi");
thread2.join();
System.out.println("Thread2 selesai dieksekusi");
thread3.join();
System.out.println("Thread3 selesai dieksekusi");
}catch(InterruptedException e) {
System.out.println("Thread utama diinterupsi " + e);
}
System.out.println("Thread utama selesai dieksekusi");
}
}
D. Synchronized
Sinkronisasi adalah method atau blok yang memiliki tambahan keyword
synchronized, sehingga apabila dijalankan maka hanya satu thread pada suatu waktu
yang dapat menjalankan method atau blok program. Thread lain akan menunggu
thread yang sedang mengeksekusi method ini hingga selesai. Mekanisme sinkronisasi
penting apabila terjadi pembagian sumber daya maupun data di antara thread-thread.
Sinkronisasi juga melakukan penguncian pada sumber daya atau data yang sedang
diproses.
Pewarisan, Polimorfisme, dan Interface
Pewarisan
Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini.
Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut.
Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya sendiri dan induknya.
Polimorfisme
Sekarang, class induk Person dan subclass Student dari contoh sebelumnya, kita tambahkan subclass lain dari Person yaitu Employee.
Dalam Java, kita dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Sebagai contohnya,
public static main( String[] args )
{
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //Person menunjuk kepada
// object Student
//beberapa kode di sini
}
Interface
Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant ). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh.
Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface.
11.5.1 Kenapa Kita Memakai Interface?
Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah-olah class yang berhubungan.
Mari kita ambil contoh class Line dimana berisi method yang menghitung panjang dari garis dan membandingkan object Line ke object dari class yang sama. Sekarang, misalkan kita punya class yang lain yaitu MyInteger dimana berisi method yang membandingkan object MyInteger ke object dari class yang sama. Seperti yang kita lihat disini, kedua class-class mempunyai method yang mirip dimana membandingkan mereka dari object lain dalam tipe yang sama, tetapi mereka tidak berhubungan sama sekali. Supaya dapat menjalankan cara untuk memastikan bahwa dua class-class ini mengimplementasikan beberapa method dengan tanda yang sama, kita dapat menggunakan sebuah interface untuk hal ini. Kita dapat membuat sebuah class interface, katakanlah interface Relation dimana mempunyai deklarasi method pembanding. Relasi interface dapat dideklarasikan sebagai,
public interface Relation
{
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}
Alasan lain dalam menggunakan interface pemrograman object adalah untuk menyatakan sebuah interface pemrograman object tanpa menyatakan classnya. Seperti yang dapat kita lihat nanti dalam bagian Interface vs class, kita dapat benar-benar menggunakan interface sebagai tipe data.
Pada akhirnya, kita perlu menggunakan interface untuk pewarisan model jamak dimana menyediakan class untuk mempunyai lebih dari satu superclass. Pewarisan jamak tidak ditunjukkan di Java, tetapi ditunjukkan di bahasa berorientasi object lain seperti C++.
Interface vs. Class Abstract
Berikut ini adalah perbedaan utama antara sebuah interface dan sebuah class abstract: method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
11.5.3 Interface vs. Class
Satu ciri umum dari sebuah interface dan class adalah pada tipe mereka berdua. Ini artinya bahwa sebuah interface dapat digunakan dalam tempat-tempat dimana sebuah class dapat digunakan. Sebagai contoh, diberikan class Person dan interface PersonInterface, berikut deklarasi yang benar:
PersonInterface pi = new Person();
Person pc = new Person();
Bagaimanapun, Anda tidak dapat membuat instance dari sebuah interface.
Contohnya:
PersonInterface pi = new PersonInterface(); //COMPILE
//ERROR!!!
Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.
11.5.4 Membuat Interface
Untuk membuat interface, kita tulis,
public interface [InterfaceName]
{
//beberapa method tanpa isi
}
Sebagai contoh, mari kita membuat sebuah interface yang mendefinisikan hubungan antara dua object menurut urutan asli dari object.
public interface Relation
{
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}
Langganan:
Posting Komentar (Atom)
Slider
Labels
- kenalin dong (1)
My Blog List
Oleh: Robiansyah
Glider Content
Video
FEATLIST
TABDIV
Random
Diberdayakan oleh Blogger.
Mengenai Saya
- Robiansyah
- sekayu, sumatera selatan, Indonesia
- Saya adalah manusia biasa,yang ingin mencari keluar biasaan,maski tak kan mungkin kan sempurna,karna kesempurnaan hanya milik Allah SWT,saya akan Terus belajar,berkarya dan berdoa,menjalani hidup sebaik mungkin.
bagaimana menurut anda blog ini
Followers
About Me
Terus berusaha dan berdoa,demi masa depan cerah
Labels
- kenalin dong (1)
0 komentar:
Posting Komentar