BAB 1
KONSEP PEMROGRAMAN
BERBASIS OBJEK
A. Latar
Belakang Bahasa JAVA
1.
Sejarah Singkat JAVA
Pada
1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling
ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Dikarenakan
perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil
dan mengandung kode yang liat. Juga karena manufaktur- manufaktur berbeda memilih processor yang berbeda pula, maka bahasa
harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.
Kebutuhan
untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform
mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus
Wirth, pencipta bahasa Pascal
telah merancang bahasa
portabel yang menghasilkan intermediate code untuk mesin
hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode
ini kemudian dapat digunakan di sembarang mesin yang memiliki interpreter.
Proyek Green menggunakan mesin maya untuk mengatasi isu utama tentang netral
terhadap arsitektur mesin.
Karena orang-orang di
proyek Green berbasis
C++ dan bukan
Pascal maka kebanyakan sintaks
diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural.
Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang
mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun
dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya
dengan JAVA. Nama JAVA sendiri
terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung
arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa
pemrograman tersebut dengan nama Java.
Produk
pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh yang sangat cerdas. Dikarenakan pasar masih
belum tertarik dengan produk konsumer cerdas
maka proyek Green
harus menemukan pasar
lain dari teknologi
yang diciptakan. Pada saat
yang sama, implementasi
WWW dan Internet
sedang mengalami perkembangan
pesat. Di lain pihak, anggota dari proyek Green juga menyadari
bahwa Java dapat
digunakan pada pemrograman
internet, sehingga penerapan
selanjutnya mengarah menjadi teknologi yang berperan di web.
Java telah mengakomodasi hampir seluruh
fitur penting bahasa–bahasa
pemrograman yang ada semenjak perkembangan komputasi modern manusia :
1. Dari SIMULA, bahasa pada tahun
65-an, bahasa yang paling mempengaruhi Java sekaligus C++. Dari bahasa ini
diadopsi bentukan–bentukan dasar dari pemrograman berorientasi objek.
2. Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection,
serta kemampuan untuk meniru generic list processing, meski fasilitas ini
jarang yang memanfaatkannya.
3. Dari Algol
– bahasa pada
tahun 60-an, diambil
struktur kendali yang dimilikinya.
4. Dari C++, diadopsi sintaks,
sebagian semantiks dan exception handling
5. Dari bahasa Ada, diambil strongly
type, dan exception handling.
6. Dari Objective C, diambil
fasilitas interface.
7. Dari bahasa
SmallTalk, diambil pendekatan
single-root class hiérarchie, dimana object adalah satu
kesatuan hirarki pewarisan
8. Dari bahasa Eiffel, fasilitas
assertion yang mulai diterapkan di sebagian JDK 1.4
B.
Apa itu Teknologi JAVA?
1.
Sebuah Bahasa Pemrograman
Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk
aplikasi, desktop, web dan
lainnya, sebagaimana dibuat
dengan menggunakan bahasa pemrograman konvensional yang lain.
Java adalah bahasa
pemrograman yang berorientasi
objek (OOP) dan
dapat dijalankan pada berbagai platform sistem operasi. Perkembangan
Java tidak hanya terfokus pada satu
sistem operasi, tetapi dikembangkan
untuk berbagai sistem operasi dan bersifat open source.
2.
Sebuah Development Environment
Sebagai sebuah peralatan pembangun, teknologi Java menyediakan banyak tools
: compiler, interpreter, penyusun dokumentasi, paket kelas dan sebagainya.
3.
Sebuah Aplikasi
Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang
dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment
(JRE).
4.
Sebuah Deployment Environment
Terdapat dua komponen utama dari Deployment Environment. Yang pertama
adalah JRE, yang terdapat pada paket J2SDK, mengandung kelas–kelas untuk semua
paket teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan
sebagainya. Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web
Browser komersial menyediakan interpreter dan runtime environment dari
teknologi Java.
C.
Mengapa Mempelajari JAVA?
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut
:
1. Sederhana
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 collection.
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. Dapat didistribusi dengan mudah
Java dibuat untuk membuat
aplikasi terdistribusi secara mudah dengan adanya libraries networking yang
terintegrasi pada Java.
4. Interpreter
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. Aman
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 yang berbeda dengan Java Virtual Machine.
8. Portabel
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 buatan Inprise, 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.
1.
Dinamis
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.
D.
Sebagian Fitur dari JAVA
1. Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai
aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi
hardware dan platform dimana kompilasi
kode Java terjadi.
Spesifikasi inilah yang
membuat aplikasi berbasis Java
menjadi bebas dari
platform manapun karena
proses kompilasi diselesaikan
oleh JVM.
Aplikasi program Java diciptakan dengan file teks berekstensi .java.
Program ini dikompilasi
menghasilkan satu berkas
bytecode berekstensi .class
atau lebih. Bytecode adalah serangkaian
instruksi serupa instruksi kode mesin. Perbedaannya adalah kode
mesin harus dijalankan
pada sistem komputer
dimana kompilasi ditujukan, sementara
bytecode berjalan pada
java interpreter yang
tersedia di semua platform sistem
komputer dan sistem operasi.
2. Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan
seorang programmer pengalokasikan memori pada saat dijalankan. Namun, setelah
menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan
kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C,
C++ dan bahasa lainnya, adalah programmer yang mutlak bertanggung jawab akan
hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa untuk
mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama
memory leaks.
Program Java melakukan
garbage collection yang
berarti program tidak
perlu menghapus sendiri objek–objek yang tidak digunakan lagi. Fasilitas
ini mengurangi beban pengelolaan memori oleh programmer dan mengurangi atau
mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang
memungkinkan alokasi dinamis.
3. Code Security
Code Security terimplementasi pada
Java melalui penggunaan
Java Runtime Environment (JRE).
Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari
untrusted Java Code.
1. Pertama,
Class-loader menangani pemuatan kelas Java ke runtime interpreter.
Proses ini menyediakan pengamanan dengan memisahkan kelas– kelas yang
berasal dari local
disk dengan kelas–kelas
yang diambil dari jaringan. Hal ini membatasi aplikasi
Trojan karena kelas–kelas yang berasal dari local disk yang dimuat terlebih
dahulu.
2. Kedua,
Byte code verifier membaca byte code sebelum dijalankan dan
menjamin bytecode memenuhi aturan–aturan dasar bahasa Java.
3. Ketiga,
Manajemen keamanan menangani
keamanan tingkat aplikasi dengan mengendalikan
apakah program berhak
mengakses sumber daya
seperti sistem file, port jaringan, proses eksternal dan sistem
windowing.
Setelah seluruh proses
tersebut selesai dijalankan,
barulah kode program
di eksekusi.
Java juga menyediakan beragam teknik pengamanan lain :
1. Bahasa dirancang
untuk mempersulit eksekusi
kode perusak. Peniadaan pointer merupakan langkah besar
pengamanan. Java tidak mengenal operasi pointer. Di tangan programmer handal,
operasi pointer merupakan hal yang luar
biasa untuk optimasi
dan pembuatan program
yang efisien serta mengagumkan. Namun mode ini dapat
menjadi petaka di hadapan programmer jahat. Pointer merupakan sarana luar biasa
untuk pengaksesan tak diotorisasi. Dengan peniadaan operasi pointer, Java dapat
menjadi bahasa yang lebih aman.
2. Java memiliki beberapa
pengaman terhadap applet. Untuk mencegah program bertindak
mengganggu media penyimpanan,
maka applet tidak diperbolehkan melakukan open, read
ataupun write terhadap berkas secara sembarangan. Karena Java applet dapat
membuka jendela browser yang
baru, maka jendela mempunyai
logo Java dan teks identifikasi terhadap jendela yang
dibuka. Hal ini
mencegah jendela pop-up
menipu sebagai permintaan
keterangan username dan password
E.
Fase – fase Pemrograman JAVA
Gambar dibawah ini
menjelaskan aliran proses
kompilasi dan eksekusi
sebuah program Java :
Gambar Fase dari
sebuah Program Java
Langkah pertama dalam pembuatan
sebuah program berbasis Java adalah
menuliskan kode pada text editor. Contoh text editor yang dapat digunakan
antara lain : notepad, vi, emacs dan lain sebagainya. Kode program yang
dibuat kemudian tersimpan
dalam sebuah berkas berekstensi .java.
Setelah membuat dan menyimpan kode program, kompilasi file yang berisi kode
program tersebut dengan menggunakan Java Compiler. Hasil dari kompilasi berupa
berkas bytecode dengan ekstensi .class.
Berkas yang mengandung bytecode tersebut kemudian akan dikonversikan oleh
Java Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang
digunakan.
Proses
|
Tool
|
Hasil
|
Menulis kode program
|
Text editor
|
Berkas berekstensi .java
|
Kompilasi program
|
Java Compiler
|
Berkas berekstensi .class
(Java Bytecodes)
|
Menjalankan program
|
Java Interpreter
|
Program Output
|
Tabel Ringkasan Fase dari sebuah Program Java
Tidak ada komentar:
Posting Komentar