Pemrograman Berorientasi Objek 1
Jika subrutin hanya melambangkan suatu tugas, objek merupakan gabungan data (dalam bentuk variabel instansi - atau "instance variable") dan beberapa tugas atau disebut "perilaku" terhadap kumpulan data tersebut (dalam bentuk metode instansi - atau "instance method"). Oleh karena itu objek merupakan stuktur baru yang dapat menangani semakin rumitnya kompleksitas suatu program.
Bagian
ini meliputi pembuatan dan penggunaan objek dalam bahasa Java. Juga akan
dibahas inti tentang pemrograman berorientasi objek, yaitu : pewarisan dan
poli morfisme (perubahan wujud).
^_^ Pemrograman dengan Java
OO
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.
^_^ Mengenal Bahasa JAVA
Sejarah Java
Java dipelopori oleh James
Gosling, Patrick Naughton, Chris Warth, Ed Frank, dan Mike Sheridan dari Sun
Microsystems, Inc pada tahun 1991. Mereka membutuhkan kurang lebih 18 bulan
untuk membuat versi pertamanya. Bahasa ini pada awalnya disebut “Oak” tapi
kemudian diubah menjadi “Java” pada tahun 1995 karena nama Oak telah dijadikan
hak cipta dan digunakan sebagai bahasa pemrograman lainnya. Antara pembuatan
Oak pada musim gugur 1992 hingga diumumkan ke publik pada musim semi 1995,
banyak orang yang terlibat dalam desain dan evolusi bahasa ini. Bill Joy,
Arthur van Hoff, Jonathan Payne, Frank Yellin, dan Tim Lindholm merupakan
kontributor kunci yang mematangkan prototipe aslinya.
Java Modern
Java telah digunakan dalam
banyak hal dan telah membuktikan keberadaannya pada abad ke 21. Saat ini, Java
digunakan bermacam jenis aplikasi seperti aplikasi embedded, aplikasi keuangan,
desktop, simulasi pesawat, pemrosesan citra, game, aplikasi perusahaan
terdistribusi yang disebut J2EE dan masih banyak lagi.
Java Virtual Machine (JVM)
Java Virtual Machine merupakan
aplikasi sederhana yang ditulis dalam bahasa C untuk mengeksi program yang
ditulis dalam bahasa Java. Pada saat kompilasi (perubahan dari bahasa tingkat
tinggi ke bahasa lebih rendah), program tersebut diubah menjadi KODE BYTE.
Kemudian pada saat eksekusi, JVM membaca kode byte tersebu dan mengubahnya
menjadi bahasa mesin yang dimengerti oleh sistem operasi tempat program
tersebut dijalankan.
Karena JVM sangat bergantung
pada platformnya (bahasa mesin merupakan bahasa level rendah yang hanya
dimengerti oleh suatu mesin tertentu, misalnya Intel, tapi tidak dapat
dimengerti oleh mesin lain, seperti Macintosh), byte code ini dapat dibuat
untuk terbebas dari kungkungan platform tertentu. Code byte yang dihasilkan
dalam proses kompilasi bahasa Java akan selalu sama untuk setiap sistem operasi
atau jenis mesinnya, tetapi JVM akan mengubah kode byte tersebut menjadi bahasa
mesin tujuannya.
Just In Time Compiler (JIT)
Meskipun Java didesain untuk
diinterpretasi, secara teknis tidak ada yang menghalangi Java untuk dikompilasi
menjadi bahasa mesin seperti bahasa-bahasa pemrograman lainnya. Sun menyediakan
kompiler Just In Time Compiler (JIT) untuk mengkompilasi kode byte itu menjadi
bahasa mesinnya pada saat yang bersamaan dengan eksekusinya. Walaupun demikian,
pendekatan JIT ini menghasilkan kemampuan yang lebih dibandingkan dengan
interpretasi biasa
^_^ Platform Independent
^_^ 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
^_^ 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.
^_^ Memulai Pemrograman Java
^_^ 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?");
}
}
{
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);
}
}
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
^_^ 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
^_^ 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>
<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.
^_^ Penutup
^_^ Penutup
Untuk
saat ini Anda telah mempunyai gambaran tentang bagaimana proses pembuatan
program Java secara sederhana dalam bentuk aplikasi biasa atau applet. Anda
juga dapat mencoba mengembangkan program sederhana tersebut sesuai dengan
keinginan Anda berdasarkan hal-hal yang sudah Anda ketahui. Konsep dasar yang
sudah Anda dapatkan akan dikembangkan lebih lanjut dalam topik-topik tutorial
selanjutnya. Selamat mencoba!!!
Tidak ada komentar:
Posting Komentar