SUSUNAN KODE SUMBER.java
Posted in
Sabtu, 27 Oktober 2012
Susunan Kode Sumber .java
Dalam mengembangkan program Java, Anda menulis class dan class. Class ini ditulis
dalam kode sumber yang disimpan sebagai file teks biasa berekstension .java.
Dalam file .java, dapat dideklarasikan :
1. package
2. import
3. satu atau lebih class
Deklarasi Package
Deklarasi package digunakan untuk mengelompokkan class-class. Sebuah package dapat
mempunyai satu atau lebih sub-package ini sehingga dapat menyusun sebuah hirarki.
Tata cara penulisan :
package <namapackage>.<namasubpackage>.<namasubsubpackage>;
Contoh deklarasi package adalah :
package java.awt;
atau
package org.apache.tomcat.core;
atau
package net.developerforce.relieve.dataaccess;
Deklarasi package bersifat opsional, tidak harus ada. Tanpa deklarasi package maka sebuah class
dikelompokkan ke dalam default package.
Deklarasi Import
Deklarasi import, bersifat opsional, digunakan untuk menunjukkan package atau class
yang digunakan dalam sebuah program Java.
Contohnya adalah :
import java.io.RandomAccessFile;
import java.net.*;
Deklarasi import tidak akan menjadikan class atau package yang Anda cantumkan digabungkan
dengan program Anda saat kompilasi atau saat diluncurkan. Deklarasi import digunakan untuk
menunjukkan java atau javac dalam menemukan class yang Anda gunakan.
Deklarasi Class
Deklarasi class merupakan kandungan utama sebuah file berekstension .java. Deklarasi
class terutama memuat :
1. Nama class, bisa dilengkapi dengan kendali akses, deklarasi extends maupun deklarasi
implements. Pola yang lumrah adalah :
public class ClassName
3. extends SuperClassName
4. implements Interface1Name, Interface2Name, Interface3Name
5. constructor, yang dipanggil pada saat dibuat instans dari class.
6. deklarasi variabel-variabel
7. deklarasi prosedur-prosedur, yang di dalam Java disebut method
EXCEPTION HANDLING PADA JAVA
Posted in
Exception Handling
Eksepsi (exception) adalah suatu even, yang terjadi selama eksekusi
program, yang mengacaukan alir normal instruksi program. Pada
prinsipnya, eksepsi adalah suatu objek, yang diturunkan dari kelas
java.lang.Throwable. Dalam menangani suatu eksepsi, Java
menggunakan mekanisme penanganan eksepsi terstruktur.
• Menangkap Eksepsi
Ada dua jenis blok kode yang dapat kita gunakan untuk menangani
eksepsi, yaitu try dan catch. Blok try berisi kode yang berpotensi
membangkitkan eksepsi, sedangkan blok cath merupakan exception
handler-nya.
int i = 10;
int j = 0;
try {
// Baris berikut akan membangkitkan eksepsi, karena
// pembagian dengan nol, sehingga perlu ditangkap
int n = i / j;
// Baris berikut tidak akan dieksekusi
System.out.println(n);
} catch (Exception ex) {
System.out.println("Eksepsi ditangkap\n" + ex.getMessage());
}
Apabila penanganan eksepsi terdiri atas beberapa blok catch, sebaiknya
letakkan objek yang paling relevan di blok terdekat.
Langkah ini bertujuan agar eksepsi yang terjadi dapat ditangkap oleh
blok yang sesuai, dan menjadikan kode program mengalir secara
natural.
try {
int n = i / j;
System.out.println(n);
} catch (ArithmeticException ae) {
System.out.println("ArithmeticException");
} catch (Exception e) {
System.out.println("Eksepsi ditangkap");
}
Penanganan eksepsi juga dapat melibatkan blok finally, yaitu blok
yang akan selalu dieksekusi. Blok ini umumnya sering dimanfaatkan
untuk tahap pembersihan sumber daya karena sifatnya yang selalu
dijalankan.
try {
int n = i / j;
System.out.println(n);
} catch (ArithmeticException ex) {
System.out.println("ArithmeticException");
} catch (Exception ex) {
System.out.println("Eksepsi ditangkap");
} finally {
System.out.println("Ini akan selalu dieksekusi");
}
• Melempar Eksepsi
Untuk menspesifikasikan eksepsi yang akan diperiksa, kita dapat
memanfaatkan klausa throws.
public static int pembagian(int i, int j)
throws ArithmeticException {
return i/j;
}
throws di atas menyatakan bahwa pemanggilan method
pembagian harus dilakukan menggunakan blok try dan catch.
try {
int l = pembagian(2,0);
System.out.println(l);
} catch (ArithmeticException ex) {
ex.printStackTrace();
}
Kita juga dapat menangkap eksepsi secara eksplisit menggunakan
pernyataan throw (perhatikan, jangan keliru dengan throws).
public static int pembagian(int i, int j)
throws ArithmeticException {
if (j == 0) {
throw new ArithmeticException("Pembagian dengan 0");
}
return i/j;
}
• Informasi Eksepsi
Kelas Throwable mendefinisikan sejumlah method yang dapat
membantu kita untuk mendapatkan informasi-informasi terkait
dengan eksepsi, di antaranya adalah method getMessage dan
printStackTrace.
Apabila Anda ingin mendapatkan informasi mengenai method atau
nama kelas terkait, gunakan method getStackTrace dan objek
StackTraceElement.
try {
int l = pembagian(2,0);
System.out.println(l);
} catch (ArithmeticException ex) {
System.out.println("Nama File: " +
ex.getStackTrace()[0].getFileName());
System.out.println("Nama Kelas: " +
ex.getStackTrace()[0].getClassName());
System.out.println("Nama Method: " +
ex.getStackTrace()[0].getMethodName());
System.out.println("Baris ke-" +
ex.getStackTrace()[0].getLineNumber());
}
OBJEK PADA JAVA
Posted in
Objek pada Java
Di pemrograman berorientasi objek, objek adalah entitas dasar saat
runtime. Pada saat kode program dieksekusi, objek berinteraksi satu
sama lain tanpa harus mengetahui detil data atau kodenya. Interaksi
antara objek ini dilakukan menggunakan suatu message. Objek memiliki
suatu siklus hidup, yaitu diciptakan, dimanipulasi, dan dihancurkan.
• Menciptakan Objek
Objek diciptakan menggunakan operator new. Dari sisi kelas, langkah
ini merupakan instantiasi kelas. Selanjutnya objek yang berhasil
diciptakan tersebut akan diletakkan di memori heap.
ContohKelas ck = new ContohKelas();
Dalam kasus-kasus tertentu, terkadang kita juga dapat menciptakan
objek tanpa harus meng-assign ke variabel. Langkah ini umumnya
dilakukan apabila kita tidak memerlukan referensi ke objek tersebut.
Sebagai contoh, jika kita memiliki method yang menerima argumen
berupa objek ContohKelas, maka dapat kita tuliskan seperti berikut:
getData(new ContohKelas());
• Memeriksa Tipe Objek
Anda bisa memanfaatkan fungsionalitas operator instanceof untuk
mengetahui tipe suatu objek pada saat runtime. Operator ini akan
mengembalikan nilai true apabila tipe objek sesuai, sebaliknya
mengembalikan nilai false.
ContohKelas ck = new ContohKelas();
System.out.println(ck instanceof ContohKelas);
// Output: true
Perlu diperhatikan, instanceof akan selalu mengembalikan nilai
false jika variabel objek diinisialisasi dengan nilai null. Ini karena
nilai null tidak mencerminkan objek apa pun.
ContohKelas ck2 = null;
System.out.println(ck2 instanceof ContohKelas);
// Output: false
Operator instanceof hanya dapat digunakan pada tipe reference
dan objek. Penggunaan operator ini pada tipe primitif akan mengakibatkan
kesalahan saat kompilasi.
• Menghapus Objek
Java menggunakan teknik yang dikenal sebagai garbage collection
untuk menghapus objek-objek yang sudah tidak diperlukan. Dengan
demikian, kita tidak perlu khawatir akan terjadinya kebocoran memori.
Dalam praktiknya, garbage collector mampu mengidentifikasi
kapan suatu objek dialokasikan dan kapan ia tidak digunakan lagi.
Garbage collector melakukan tugasnya secara tak sinkron berdasarkan
ketersediaan sumber daya. Normalnya, jika suatu objek
sudah tidak diacu (di-refer), maka ia akan segera dibersihkan. Terlepas
dari mekanisme normal ini, kita juga dapat memanggil garbage
collector secara eksplisit menggunakan method statis gc.
System.gc();
NB : Perlu sekali diperhatikan, tidak semua jenis objek akan ditangani oleh
garbage collector. Untuk objek-objek eksternal, seperti file dan database,
sebaiknya kita tangani secara eksplisit.
METHOD PADA JAVA
Posted in
Method pada Java
Seperti halnya kelas, ada dua bagian utama dalam definisi method,
yaitu deklarasi dan body method. Deklarasi method mendefinisikan
semua atribut method, seperti level akses, tipe kembalian (jika ada),
dan argumen-argumen (jika ada).
• Method main
Method main merupakan method khusus yang berperan sebagai
entry point pada aplikasi. Setiap kelas di suatu aplikasi boleh memiliki
method main, namun hanya satu yang ditetapkan untuk dieksekusi
saat aplikasi dijalankan.
public static void main(String[] args) {
// isi method main
}
Method main harus didefinisikan sebagai public, static, tidak
mengembalikan suatu nilai (void), dan memiliki argumen berupa
array string. Apabila interpreter tidak menemukan method main di
suatu aplikasi, akan muncul pesan kesalahan yang diakibatkan tidak
adanya entry point.
Sebenarnya, Anda juga bisa mendefinisikan method utama dengan
keyword static saja. Pendefinisian seperti ini terlihat tidak mencerminkan
struktur method seperti pada umumnya.
public class ContohKelas {
static {
System.out.println("Halo Indonesia");
System.exit(0);
}
}
Meskipun kode program di atas dapat berjalan seperti yang diharapkan,
namun pendekatan tersebut tidak lazim digunakan.
• Modifier Method
Modifier dari sebuah method dapat terdiri atas nol atau lebih keyword
modifier, seperti public, protected, atau private. Keberadaan
modifier ini membantu kelas untuk mendefinisikan suatu kontrak,
sehingga client dapat mengetahui layanan-layanan yang ditawarkan
oleh kelas.
Selain beberapa keyword modifier di atas, yang umumnya sudah kita
pahami kegunaannya, ada beberapa modifier lain yang bisa kita
spesifikasikan. Salah satu keyword modifier yang sering digunakan
adalah static. Modifier ini mengizinkan kita untuk mengakses
method tanpa perlu menginstantiasi kelas yang mendefinisikannya.
Sebagai gantinya, sebelum memanggil method, kita terlebih dahulu
menuliskan nama kelas terkait.
class Test {
public static void sayHello() {
System.out.println("hello");
}
public void sayNo() {
System.out.println("no");
}
}
public class AksesStatis {
public static void main(String[] args) {
// Akses method statis
Test.sayHello();
// Error, akses method non-statis
// Test.sayNo();
// Harus begini
Test t = new Test();
t.sayNo();
}
}
• Variabel Lokal
Sebelum variabel lokal dapat digunakan, ia harus diinisialisasi terlebih
dahulu. Kondisi ini berbeda dengan variabel kelas, di mana
secara otomatis akan diinisialisasi. Penggunaan variabel lokal yang
tanpa diinisialisasi akan mengakibatkan kesalahan pada saat kompilasi.
• Overloading Method
Overloading method adalah kemampuan untuk mendefinisikan beberapa
method di sebuah kelas dengan nama sama. Aturan dasar
overloading adalah jumlah atau tipe argumen harus berbeda. Apabila
jumlah dan tipe argumen sama, maka urutannya harus berbeda.
int Test() {
return 1;
}
int Test(int a) {
return a;
}
int Test(double a, int b) {
return b;
}
int Test(int i, double j) {
return i;
}
// Ini akan error, sudah didefinisikan di method sebelumnya
void Test(int x, double y) {
}
Posted in
Kelas JAVA
Kelas merupakan salah satu konsep fundamental pemrograman berorientasi
objek. Kelas dapat diilustrasikan sebagai suatu cetak biru
(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
Terkait dengan konsep penting ini, ada beberapa subbahasan yang
akan kita ulas di sini.
• Definisi Kelas
Definisi kelas terdiri atas dua komponen, yaitu deklarasi kelas dan
body kelas. Deklarasi kelas adalah baris pertama di suatu kelas, dan
minimal mendeklarasikan nama kelas. Sementara itu, body dideklarasikan
setelah nama kelas dan berada di antara kurung kurawal.
// deklarasi kelas
public class ContohKelas {
// body kelas
}
Di Java, nama kelas sekaligus merepresentasikan nama file kode
program, dan sifatnya adalah case-sensitive.
• Konstruktor
Kegunaan utama konstruktor adalah untuk menetapkan status awal
manakala objek diciptakan. Ada beberapa catatan penting yang
harus kita perhatikan dalam pendeklarasian konstruktor. Pertama,
nama konstruktor harus sama dengan nama kelas. Kedua, konstruktor
boleh memiliki argumen lebih dari satu atau tidak sama sekali.
Ketiga, konstruktor tidak boleh mengembalikan suatu nilai.
public class ContohKelas {
// Konstruktor
public ContohKelas() {
}
}
Konstruktor yang tidak memiliki argumen dinamakan sebagai
konstruktor default. Apabila suatu kelas dideklarasikan tanpa adanya
sebuah konstruktor, maka secara implisit Java akan menambahkan
konstruktor default.
• Access Modifier
Kelas dan interface memiliki batasan akses (access modifier) yang
menyatakan level aksesnya. Apabila kelas dideklarasikan sebagai
public, maka ia dapat diakses dari mana saja. Jika batasan akses
tidak diberikan, kelas tersebut dinamakan default accessibility, dan
hanya dapat diakses dari dalam paket terkait (tidak termasuk subpaket).
Batasan akses lainnya untuk kelas level atas adalah abstract (tidak
dapat diinstantiasi) dan final (tidak dapat diperluas). Anda tidak
diperkenankan mendeklarasikan kelas level atas sebagai private
ataupun protected.
• Kelas Bersarang
Suatu kelas boleh mendeklarasikan kelas baru di dalamnya, atau
biasa disebut inner class, atau kelas bersarang. Apabila diperlukan,
inner class juga dapat memiliki kelas lagi di dalamnya.
public class ContohKelas {
public class KelasBersarang {
// body kelas KelasBersarang
}
}
Inner class juga dapat dideklarasikan secara lokal, yaitu di dalam
body method. Kelas seperti ini dinamakan local inner class atau local
nested class.
public void test() {
class KelasDiMethod {
// body kelas KelasDiMethod
}
}
• Keyword this dan super
Keyword this dapat digunakan untuk merepresentasikan suatu
current objek dan mengakses variabel-variabel kelas serta method.
public class KelasInduk {
int j;
public void setNilai(int i) {
// this ini mengacu pada objek KelasInduk
this.j = i;
}
}
Keyword super digunakan untuk mengakses member kelas yang
diturunkan (kelas induk).
// KelasAnak memperluas/mewarisi KelasInduk
class KelasAnak extends KelasInduk {
public KelasAnak() {
// Mengakses method di kelas induk
super.setNilai(3);
}
}
ELEMEN BAHASA JAVA
Posted in
Elemen Bahasa Java
Secara garis besar, elemen-elemen di setiap bahasa pemrograman
sebenarnya hampir sama. Meskipun demikian, ada elemen-elemen
khusus yang membedakan dan sekaligus mencerminkan identitas
suatu bahasa. Adapun mengingat di sini kita bekerja dengan bahasa
pemrograman Java, tentunya kita juga perlu memahami elemenelemen
dasar bahasa ini.
• Tipe Data
Tipe data di Java dikelompokkan menjadi dua jenis, yaitu tipe
primitif dan reference (kelas). Tipe primitif/dasar adalah tipe-tipe
bawaan, meliputi boolean, char, byte, short, int, long, float,
dan double. Sementara itu, tipe reference memiliki semantik seperti
pointer. Jenis tipe reference meliputi kelas, interface, dan array.
Apabila Anda ingin memperlakukan nilai primitif sebagai suatu
objek, Anda bisa memanfaatkan kelas-kelas pembungkus (wrapper).
Kelas-kelas tersebut meliputi Boolean, Character, Byte, Short,
Integer, Long, Float, dan Double. Perhatikan sintaksnya (penulisan
huruf kecil dan besar), agar tidak keliru dengan tipe-tipe
primitif.
Deklarasi dan Inisialisasi Variabel
Sebelum digunakan, setiap variabel harus dideklarasikan terlebih
dahulu. Langkah ini dilakukan dengan menetapkan tipe data dan
nama variabel. Pernyataan deklarasi variabel tunggal juga dapat
digunakan untuk mendeklarasikan lebih dari satu variabel, tetapi
semuanya harus bertipe sama.
int i;
int j;
// ekuivalen dengan kedua pernyataan di atas
int i, j;
Deklarasi juga dapat sekaligus melakukan inisialisasi terhadap suatu
variabel.
int i = 2;
int j = 3;
int i = 2, j = 3;
• Initial Value
Saat mendeklarasikan variabel kelas, kita tidak harus melakukan
inisialisasi karena kompiler akan meng-assign initial value (nilai awal
atau default). Nilai default untuk semua tipe reference adalah null.
Nilai default tipe primitif boolean adalah false, char adalah
\u0000, integer (byte, short, int, long) adalah 0, dan floating
point (float, double) adalah 0.0.
• Ruang Lingkup Variabel
Java mendefinisikan empat jenis variabel, meliputi variabel instance
(field non-statis), variabel kelas (field statis), variabel lokal, dan
parameter. Istilah field mengacu pada variabel instance dan variabel
kelas (terkadang disebut member variable). Sementara itu, istilah
variabel mengacu pada semua jenis variabel.
Lokasi di mana suatu variabel dideklarasikan secara eksplisit juga
menetapkan ruang lingkupnya. Ruang lingkup variabel adalah wilayah
di mana suatu variabel dapat diacu melalui namanya. Ruang
lingkup juga menyatakan kapan variabel akan diciptakan dan dihapus
dari memori.
• Blok
Blok adalah kelompok pernyataan (nol atau lebih) di dalam tanda
kurung kurawal. Penggunaan blok dengan pernyataan alir kontrol
sangat direkomendasikan, meskipun hanya melibatkan sebuah pernyataan.
if (kondisi)
{ // awal blok
// pernyataan
} // akhir blok
• Komentar
Penulisan komentar dapat mengadopsi blok komentar gaya C
ataupun C++. Komentar gaya bahasa C lazimnya digunakan untuk
komentar yang terdiri atas beberapa baris. Sementara itu, komentar
gaya C++, yang dinyatakan melalui karakter //, umumnya digunakan
untuk komentar satu baris.
Untuk komentar-komentar yang akan dimasukkan ke dokumentasi
dan dihasilkan melalui tool javadoc, disarankan menggunakan /**
dan diakhiri dengan karakter */.
LINGKUNGAN PENGEMBANGAN
Posted in
Lingkungan Pengembangan
Dalam mendiskusikan Java, kiranya penting sekali untuk membedakan
antara bahasa pemrograman Java, Java Virtual Machine,
dan platform Java. Bahasa pemrograman Java adalah bahasa yang
digunakan untuk menghasilkan aplikasi-aplikasi Java. Pada umumnya,
bahasa pemrograman hanya mendefinisikan sintaks dan perilaku
bahasa.
Pada saat program Java dikompilasi, ia akan dikonversi ke bentuk
bytecode, yang merupakan bahasa mesin yang portable. Selanjutnya,
bytecode tersebut dijalankan di Java Virtual Machine (atau
disebut Java VM atau JVM). Meskipun JVM dapat diimplementasikan
langsung di perangkat keras, namun biasanya diimplementasikan
dalam bentuk program perangkat lunak yang mengemulasi mesin
(komputer) dan digunakan untuk menginterpretasi bytecode.
Platform dapat didefinisikan sebagai perangkat lunak pendukung
untuk aktivitas-aktivitas tertentu. Platform Java sendiri pada prinsipnya
berbeda dengan bahasa Java atau JVM. Platform Java adalah
himpunan kelas-kelas Java yang sudah didefinisikan sebelumnya
dan eksis sejak instalasi Java. Platform Java juga mengacu pada
lingkungan runtime atau API (Application Programming Interface)
Java.
• Edisi Java
Guna mencakup lingkungan-lingkungan aplikasi yang berbeda, Sun
mendefinisikan 3 (tiga) edisi Java.
• J2ME (Java 2 Micro Edition)
Edisi ini ditujukan bagi lingkungan dengan sumber daya terbatas,
seperti smartcard, ponsel, dan PDA.
• J2SE (Java 2 Standard Edition)
Edisi ini ditujukan bagi lingkungan workstation, seperti pembuatan
aplikasi-aplikasi dekstop.
• J2EE (Java 2 Enterprise Edition)
Edisi ini ditujukan bagi lingkungan Internet atau aplikasi terdistribusi
dalam skala besar.
Perbedaan setiap edisi meliputi fitur-fitur bahasa yang didukung dan
API yang tersedia. Berdasarkan tingkatannya, edisi yang lebih tinggi
mampu mengemulasikan edisi yang lebih rendah. Adapun urutan
edisi dari yang tertinggi ke rendah adalah J2EE, J2SE, dan J2ME.
• Versi Java
Ada hal yang menarik dan perlu kita cermati mengenai versi-versi
Java yang telah dirilis. Sun menggunakan dua jenis versi untuk
mengidentifikasikan rilis Java, yaitu versi produk dan versi developer.
Seperti kita ketahui, versi terbaru saat ini adalah versi 6 (versi
produk) atau versi 1.6.0 (versi developer), dengan nama kode Mustang.
Sejak tahun 2006, Sun juga menyederhanakan penamaan platform
dengan tujuan untuk mencerminkan tingkat kematangan, stabilitas,
skalabilitas, dan sekuriti yang lebih baik. Jika penamaan versi sebelumnya
adalah Java 2 Platform, Standard Edition 5.0 (J2SE 5.0),
maka sekarang disederhanakan menjadi Java Platform, Standard
Edition 6 (Java SE 6, atau lebih sering disebut Java 6).
MEMULAI PEMROGRAMAN JAVA
Posted in
Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk
mengorganisir program dan dapat dilakukan dengan hampir semua bahasa
pemrograman. Namun Java sendiri telah
mengimplementasikan berbagai fasilitas agar seorang programer dapat
mengoptimalkan teknik pemrograman berorientasi objek.
Sedikit
perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi
konsep
orientasi objek dari C++ namun dengan menghilangkan aspek-aspek
kerumitan dalam
bahasa C++ tanpa mengurangi kekuatannya. Hal ini
mempermudah programer pemula untuk mempelajari Java namun mengurangi
keleluasaan programer berpengalaman dalam mengutak-atik sebuah program.
Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library
Java sendiri membuat seorang programer membutuhkan waktu yang tidak
singkat
untuk dapat menguasai penggunaan library-library tersebut.
Memulai Pemrograman Java
Untuk membuat
program Java, seperti telah disebutkan sebelumnya, Anda membutuhkan JDK. Proses
instalasi JDK tersebut sangat mudah dan tidak membutuhkan pengetahuan tertentu.
Namun untuk menggunakannya Anda perlu melakukan beberapa
penyesuaian dengan sistem operasi Anda. Umumnya yang
perlu Anda lakukan adalah memasukkan path ke direktori JDK Anda ke setting path
pada sistem operasi Anda. Misalkan direktori JDK Anda adalah C:\jdk1.4
maka pada Windows 98 Anda cukup menambahkan baris perintah SET
PATH=C:\jdk1.4\bin pada file autoexec.bat Anda. Untuk
Windows NT/2000/XP Anda cukup menambahkan direktori C:\jdk1.4\bin pada variabel path di System Environment. Caranya: klik kanan ikon
My Computer, pilih Properties. Kemudian pilih tab Advanced. Lalu klik
tombol Environment Variables, cari variabel
path, kemudian tambahkan path direktori
JDK Anda ke dalam variabel tersebut. Untuk Linux, tambahkan baris
perintah SET CLASSPATH=(direktori jdk Anda)
ke file profile Anda. Untuk mencoba JDK, ketikkan perintah java
dan javac pada shell prompt (atau DOS Command Prompt). Jika
perintah tersebut sudah dikenali maka program java atau javac
akan menampilkan sintaks penggunaan. Untuk kemudahan dan berbagai fasilitas tambahan Anda dapat
menggunakan Integrated Development Environment (IDE) untuk bahasa Java seperti Visual Café dari Symantec atau JBuilder dari Borland.
Urutan langkah-langkah
yang harus Anda lakukan untuk membuat sebuah program Java sederhana adalah:
- Membuat source code program dengan editor teks apapun. Ingat, file tersebut harus berekstensi .java dan case sensitive.
- Mengkompile source code dengan perintah javac. Misalnya: javac HelloWorld.java. Jika berhasil, hasilnya adalah file bytecode berakhiran .class.
- Mengeksekusi bytecode dengan perintah java. Parameter dari perintah ini adalah nama file hasil kompilasi tanpa ekstensi .class. Contoh: java HelloWorld.
Source Code
Berikut kode
untuk HelloWorld.java:
public class HelloWorld { public static void main(String[] args) { System.out.println("Apa Kabar Dunia?"); } }
Dan ini sebuah
contoh lain, yaitu applet sederhana untuk menampilkan
teks di applet. Sebutlah file ini bernama HelloWorldApplet.java:
import java.awt.Graphics; public class HelloWorldApplet extends java.applet.Applet { public void paint(Graphics g) { g.drawString("Apa Kabar Dunia?", 5, 25); } }
Secara
gamblang dapat diperhatikan bahwa struktur kedua program sangat mirip, dan
hanya berbeda dalam konteks eksekusi. Kedua program ini akan dibahas lebih lanjut setelah kita membahas cara mengkompile
dan mengeksekusi program tersebut.
Perlu
diingat bahwa bahasa Java bersifat case sensitive, sehingga Anda harus
memperhatikan penggunaan huruf besar dan kecil. Selain itu penulisan
source code program tidak harus memperhatikan bentuk tertentu, sehingga Anda
bisa saja menuliskan semua baris source code tersebut dalam satu baris asal Anda
tidak lupa membubuhkan tanda titik koma (;), atau menuliskan tiap kata dalam satu
baris tersendiri. Namun dianjurkan Anda mengikuti layout seperti
pada contoh agar program Anda mudah dibaca dan dimengerti.
Kompilasi
Setelah kedua
file disave dengan nama HelloWorld.java
dan HelloWorldApplet.java, kita akan mengkompile kedua program
tersebut dengan perintah:
prompt> javac HelloWorld.java prompt> javac HelloWorldApplet.java
Perlu
diperhatikan bahwa direktori aktif Anda saat ini adalah direktori tempat Anda
meletakkan file-file program tersebut. Anda tetap dapat mengkompile
program Anda dari direktori berbeda dengan perintah:
prompt> javac (direktori program)/namafile.java
Setelah perintah
ini selesai, Anda akan melihat bahwa telah tercipta
dua buah file .class, yaitu bytecode hasil kompilasi
source code kita.
Sintaks Program
Sekarang kita akan mencoba membahas elemen-elemen dalam kedua source code
tersebut.
Pada
awal Listing 2 kita menemukan perintah import.
Pada tahap awal ini Anda perlu mengetahui bahwa pernyataan tersebut hanya
berfungsi mempermudah penulisan metode atau dalam bahasa pemrograman lain disebut prosedur atau fungsi. Jadi Anda
hanya perlu menulis Graphics
sebagai pengganti java.awt.Graphics,
karena kita telah mengimpor java.awt.Graphics.
Kemudian
di masing-masing listing terdapat pernyataan public
class. Pernyataan ini adalah pernyataan
pembuka sebuah kelas. Kelas sendiri digunakan untuk menciptakan
objek. Ingat bahwa Java berorientasi objek.
Kata public di depannya berfungsi agar kelas tersebut
dapat diakses oleh semua program lain. Untuk saat ini
anggaplah objek sebagai suatu item yang dapat dimanipulasi oleh sebuah program.
Dalam Listing 2 terdapat tambahan kata extends. Hal ini berarti kelas yang kita
buat akan mewarisi sifat-sifat dari kelas yang kita extends.
Dengan kata lain kita menjadikan kelas yang kita extends sebagai
himpunan bagian dari kelas kita buat.
Kemudian kita
menemukan baris pernyataan public static void main(String[]
args) dan public void paint(Graphics g). Keduanya adalah pernyataan pembuka sebuah metode. Metode sendiri adalah kumpulan pernyataan untuk melakukan suatu
tugas tertentu dalam kelas. Keduanya sebenarnya mempunyai fungsi yang
sama namun dalam konteks yang berbeda. Dalam setiap aplikasi harus ada sebuah metode
yang bernama main yang akan
dieksekusi pertama kali saat program tersebut dieksekusi. Sementara dalam applet,
metode yang pertama kali akan dieksekusi ketika applet
diload adalah paint. Kata public di
depannya mempunyai fungsi yang sama dengan kata public
yang ada di depan baris permulaan kelas. Namun nantinya Anda akan
menemukan juga bentuk lain seperti private dan protect yang akan
kita bahas nanti.
Pada
Listing 1 terdapat kata static
pada pernyataan pembuka metode main. Hal ini berarti metode
main tidak mengubah atau
menggunakan objek yang diciptakan oleh kelas tersebut, sehingga dapat dikatakan
berdiri sendiri dan tidak terikat dengan objek. Dalam metode main
dalam aplikasi, parameternya adalah selalu String[] args,
di mana args hanyalah sebuah nama dari objek array
dari String. Array ini nantinya akan berisi parameter-parameter yang diberikan user sebagai argumen
command line. Sementara Anda tidak perlu mengerti mengenai
parameter tersebut, cukup diingat bahwa bentuk metode main harus selalu demikian.
Kemudian
di dalam kedua metode pada kedua listing tersebut, kita menemukan sebuah pernyataan.
Anda tentu dapat saja meletakkan lebih dari satu pernyataan
dalam sebuah metode. Setiap pernyataan dalam sebuah metode dipisahkan
oleh titik koma dan akan dieksekusi satu persatu.
Kedua pernyataan pada listing ternyata memanggil sebuah metode lain yaitu metode println dan paint. Tentunya
dapat Anda perhatikan bahwa untuk memanggil sebuah metode diperlukan tiga
komponen yaitu:
- Objek yang ingin kita pakai. Dalam hal ini objek System.out dan Graphics g.
- Nama metode yang ingin kita pakai. Dalam hal ini println dan paint.
- Sepasang tanda kurung yang berisi informasi tambahan yang diperlukan oleh metode yang dipanggil, yaitu parameter.
Dalam Listing 1, pernyataan
System.out.println("Apa
Kabar Dunia?"); berarti carilah objek out
dalam kelas System kemudian panggil metode println dari
objek out dengan parameter berupa string "Apa
Kabar Dunia?". Sedang dalam Listing 2, pernyataan g.drawString("Apa
Kabar Dunia?", 5, 25); berarti carilah objek g
kemudian panggil metode drawString pada objek g
dengan parameter "Apa Kabar Dunia?”, 5, 25);.
Eksekusi
Setelah selesai membahas
sintaks dasar Java dalam kedua listing, selanjutnya kita akan
mencoba mengeksekusi kedua program ini. Untuk program pertama yang berupa
aplikasi biasa, kita tinggal mengetikkan perintah java
HelloWorld pada prompt dan pesan Apa Kabar Dunia? akan tampil di layar (atau mungkin di tempat lain, bergantung
sistem operasi Anda). Sedangkan untuk applet kita mesti
membuat sebuah file HTML sebagai pembungkus—atau pemanggilnya. Berikut
diberikan contoh file HTML untuk membungkus applet yang kita buat.
<HTML> <HEAD> <TITLE>Coba Applet</TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML>
Beri nama helloword.html dan simpanlah di direktori
yang sama dengan lokasi file-file .java dan .class
sebelumnya. Untuk mengeksekusi applet kita cukup membuka file HTML tersebut di
browser yang Java-enabled atau mengetikkan perintah appletviewer
namafile.html di prompt.
PEMROGRAMAN DENGAN JAVA
Posted in
Java sebagai salah satu bahasa pemrograman baru menjanjikan banyak
kemudahan bagi programer junior maupun senior. Tutorial ini akan membawa Anda mengenal lebih jauh bahasa ini melalui
pembahasan konsep model perancangan dan petunjuk sederhana penggunaannya.
Apakah Java?
Java adalah bahasa pemrograman berorientasi
objek yang dikembangkan
oleh Sun Microsystems sejak tahun 1991. Bahasa ini
dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk,
namun
dirancang agar lebih mudah dipakai dan platform independent, yaitu
dapat
dijalankan di berbagai jenis sistem operasi dan arsitektur komputer.
Bahasa ini juga dirancang untuk pemrograman di Internet sehingga
dirancang agar aman dan portabel.
Platform Independent
Platform independent berarti program yang
ditulis dalam bahasa Java
dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan
berbagai
jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai
tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program
akan dijalankan oleh berbagai jenis komputer dengan berbagai
jenis sistem operasi. Sifat ini berlaku untuk level source code dan
binary code
dari program Java. Berbeda dengan bahasa C dan C++, semua
tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua
jenis
platform. Source code program Java sendiri tidak perlu dirubah sama
sekali jika Anda ingin mengkompile ulang di platform
lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau
instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan
berupa
bytecode yang berupa file berekstensi .class. Bytecode
tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java
Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.
JVM sendiri adalah
sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan
bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap
sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan
seperti di Gambar 1. Dengan cara ini, sebuah program
Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan
ada JVM di sana.
Kompiler dan
interpreter untuk program Java berbentuk Java Development Kit (JDK) yang
diproduksi oleh Sun Microsystems. JDK ini dapat didownload
gratis dari situs java.sun.com. Interpreter untuk
program Java sendiri sering juga disebut Java Runtime atau Java Virtual
Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment
(JRE) dapat didownload juga di situs yang sama. Untuk
mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan
bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi
applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload
JRE karena browser yang Java-enabled telah memiliki JVM sendiri.
Library
Selain kompiler dan interpreter, bahasa Java sendiri memiliki
library yang cukup besar yang dapat mempermudah Anda dalam membuat sebuah
aplikasi dengan cepat. Library ini sudah mencakup untuk
grafik, desain user interface, kriptografi, jaringan, suara, database, dan
lain-lain.
Langganan:
Postingan (Atom)