JENI Intro1 Bab02 Pengenalan Bahasa Java

J.E.N.I.

BAB 2
Pe nge na la n Ba ha sa JAV A
2 .1 Tu j u a n
Pada bab ini akan dibahas secara singkat t ent ang sej arah JAVA dan definisi t eknologi
JAVA. Bab ini juga akan sedikit m enyinggung t ent ang fase–fase dalam program
JAVA.
Pada akhir pem bahasan, diharapkan pem baca dapat :
1. Menj elaskan fit ur–fit ur t eknologi dari Java m eliput i Java Virt ual Machine
( JVM) , garbage collect ion, dan code securit y.
2. Menj elaskan perbedaan fase pada pem rogram an JAVA

2 .2 La t a r Be la k a ng Ba h a sa JAVA
2 .2 .1 Se j a r a h Sin gk a t JAVA
Pada 1991, sekelom pok insinyur Sun dipim pin oleh Pat rick Naught on dan Jam es
Gosling ingin m erancang bahasa kom put er unt uk perangkat konsum er sepert i cable
TV Box. Dikarenakan perangkat t ersebut t idak m em iliki banyak m em ori, bahasa
harus berukuran kecil dan m engandung kode yang liat . Juga karena m anufakt urm anufakt ur berbeda m em ilih processor yang berbeda pula, m aka bahasa harus
bebas dari m anufakt ur m anapun. Proyek diberi nam a kode ”Green” .
Kebut uhan unt uk fleksibilit as, kecil, liat dan kode yang net ral t erhadap plat form

m engant ar t im m em pelaj ari im plem ent asi Pascal yang pernah dicoba. Niklaus Wirt h,
pencipt a bahasa Pascal t elah m erancang bahasa port abel yang m enghasilkan
int erm ediat e code unt uk m esin hipot esis. Mesin ini sering disebut dengan m esin
m aya ( virt ual m achine) . Kode ini kem udian dapat digunakan di sem barang m esin
yang m em iliki int erpret er. Proyek Green m enggunakan m esin m aya unt uk m engat asi
isu ut am a t ent ang net ral t erhadap arsit ekt ur m esin.
Karena orang–orang di proyek Green berbasis C+ + dan bukan Pascal m aka
kebanyakan sint aks diam bil dari C+ + , sert a m engadopsi orient asi obj ek dan bukan
prosedural. Mulanya bahasa yang dicipt akan diberi nam a ” Oak” oleh Jam es Gosling
yang m endapat inspirasi dari sebuah pohon yang berada pada seberang kant ornya,
nam un dikarenakan nam a Oak sendiri m erupakan nam a bahasa pem rogram an yang
t elah ada sebelum nya, kem udian SUN m enggant inya dengan JAVA. Nam a JAVA
sendiri t erinspirasi pada saat m ereka sedang m enikm at i secangkir kopi di sebuah
kedai kopi yang kem udian dengan t idak sengaj a salah sat u dari m ereka
m enyebut kan kat a JAVA yang m engandung art i asal bij ih kopi. Akhirnya m ereka
sepakat unt uk m em berikan nam a bahasa pem rogram an t ersebut dengan nam a Java.
Pengenalan Pemrograman 1

1


J.E.N.I.

Produk pert am a proyek Green adalah St ar 7 (* 7) , sebuah kendali j arak j auh yang
sangat cerdas. Dikarenakan pasar m asih belum t ert arik dengan produk konsum er
cerdas m aka proyek Green harus m enem ukan pasar lain dari t eknologi yang
dicipt akan. Pada saat yang sam a, im plem ent asi WWW dan I nt ernet sedang
m engalam i perkem bangan pesat . Di lain pihak, anggot a dari proyek Green juga
m enyadari bahwa Java dapat digunakan pada pem rogram an int ernet , sehingga
penerapan selanj ut nya m engarah m enj adi t eknologi yang berperan di web.

Java t elah m engakom odasi ham pir seluruh fit ur pent ing bahasa–bahasa
pem rogram an yang ada sem enj ak perkem bangan kom put asi m odern m anusia :
1. Dari SI MULA, bahasa pada t ahun 65- an, bahasa yang paling m em pengaruhi
Java sekaligus C+ + . Dari bahasa ini diadopsi bent ukan–bent ukan dasar dari
pem rogram an berorient asi obj ek.
2. Dari LI SP – bahasa t ahun 55- an. Diadopsi fasilit as garbage collect ion, sert a
kem am puan unt uk m eniru generic list processing, m eski fasilit as ini j arang
yang m em anfaat kannya.
3. Dari Algol – bahasa pada t ahun 60- an, diam bil st rukt ur kendali yang
dim ilikinya.

4. Dari C+ + , diadopsi sint aks, sebagian sem ant iks dan except ion handling
5. Dari bahasa Ada, diam bil st rongly t ype, dan except ion handling.
6. Dari Obj ect ive C, diam bil fasilit as int erface.
7. Dari bahasa Sm allTalk, diam bil pendekat an single- root class hiérarchie,
dim ana obj ect adalah sat u kesat uan hirarki pewarisan
8. Dari bahasa Eiffel, fasilit as assert ion yang m ulai dit erapkan di sebagian JDK
1.4

Pengenalan Pemrograman 1

2

J.E.N.I.

2 .2 .2 Apa it u Te k n ologi JAVA?
2 .2 .2 .1

Se bua h Ba ha sa Pem r ogr a m a n

Sebagai sebuah bahasa pem rogram an, Java dapat m em buat seluruh bent uk aplikasi,

deskt op, web dan lainnya, sebagaim ana dibuat dengan m enggunakan bahasa
pem rogram an konvensional yang lain.
Java adalah bahasa pem rogram an yang berorient asi obj ek ( OOP) dan dapat
dij alankan pada berbagai plat form sist em operasi. Perkem bangan Java t idak hanya
t erfokus pada sat u sist em operasi, t et api dikem bangkan unt uk berbagai sist em
operasi dan bersifat open source.

2 .2 .2 .2

Se bua h De ve lopm e n t En vironm en t

Sebagai sebuah peralat an pem bangun, t eknologi Java m enyediakan banyak t ools :
com piler, int erpret er, penyusun dokum ent asi, paket kelas dan sebagainya.

2 .2 .2 .3

Se bua h Aplik a si

Aplikasi dengan t eknologi Java secara um um adalah aplikasi serba guna yang dapat
dij alankan pada seluruh m esin yang m em iliki Java Runt im e Environm ent ( JRE) .


2 .2 .2 .4

Se bua h De ploym e nt En vir on m e n t

Terdapat dua kom ponen ut am a dari Deploym ent Environm ent . Yang pert am a adalah
JRE, yang t erdapat pada paket J2SDK, m engandung kelas–kelas unt uk sem ua paket
t eknologi Java yang m eliput i kelas dasar dari Java, kom ponen GUI dan sebagainya.
Kom ponen yang lain t erdapat pada Web Browser. Ham pir seluruh Web Browser
kom ersial m enyediakan int erpret er dan runt im e environm ent dari t eknologi Java.

Pengenalan Pemrograman 1

3

J.E.N.I.

2 .2 .5 M e n ga pa M e m pe la j a r i JAVA?
Berdasarkan whit e paper resm i dari SUN, Java m em iliki karakt erist ik berikut :
1.


Sederhana
Bahasa pem rogram an Java m enggunakan sint aks m irip dengan C+ + nam un
sint aks pada Java t elah banyak diperbaiki t erut am a m enghilangkan
penggunaan point er yang rum it dan m ult iple inherit ance. Java j uga
m enggunakan aut om at ic m em ory allocat ion dan m em ory garbage collect ion.

2.

Berorient asi obj ek (Obj ect Orient ed)
Java m engunakan pem rogram an berorient asi obj ek yang m em buat program
dapat dibuat secara m odular dan dapat dipergunakan kem bali. Pem rogram an
berorient asi obj ek m em odelkan dunia nyat a kedalam obj ek dan m elakukan
int eraksi ant ar obj ek- obj ek t ersebut .

3.

Dapat didist ribusi dengan m udah
Java dibuat unt uk m em buat aplikasi t erdist ribusi secara m udah dengan adanya
libraries net working yang t erint egrasi pada Java.


4.

I nt erpret er
Program Java dij alankan m enggunakan int erpret er yait u Java Virt ual Machine
( JVM) . Hal ini m enyebabkan source code Java yang t elah dikom pilasi m enj adi
Java byt ecodes dapat dij alankan pada plat form yang berbeda- beda.

5.

Robust
Java m em puyai reliabilit as yang t inggi. Com piler pada Java m em punyai
kem am puan m endet eksi error secara lebih t elit i dibandingkan bahasa
pem rogram an lain. Java m em punyai runt im e- Except ion handling unt uk
m em bant u m engat asi error pada pem rogram an.

6.

Am an
Sebagai bahasa pem rogram an unt uk aplikasi int ernet dan t erdist ribusi, Java

m em iliki beberapa m ekanism e keam anan unt uk m enj aga aplikasi t idak
digunakan unt uk m erusak sist em kom put er yang m enj alankan aplikasi
t ersebut .

7.

Archit ect ure Neut ral
Program Java m erupakan plat form independent . Program cukup m em punyai
sat u buah versi yang dapat dij alankan pada plat form yang berbeda dengan
Java Virt ual Machine.

8.

Port abel
Source code m aupun program Java dapat dengan m udah dibawa ke plat form
yang berbeda- beda t anpa harus dikom pilasi ulang.

9.

Perform ance

Perform ance pada Java sering dikat akan kurang t inggi. Nam un perform ance
Java dapat dit ingkat kan m enggunakan kom pilasi Java lain sepert i buat an
I nprise, Microsoft at aupun Sym ant ec yang m enggunakan Just I n Tim e
Com pilers ( JI T) .

Pengenalan Pemrograman 1

4

J.E.N.I.

10.

Mult it hreaded
Java m em punyai kem am puan unt uk m em buat suat u program yang dapat
m elakukan beberapa pekerj aan secara sekaligus dan sim ult an.

11.

Dinam is

Java didesain unt uk dapat dij alankan pada lingkungan yang dinam is. Perubahan
pada suat u class dengan m enam bahkan propert ies at aupun m et hod dapat
dilakukan t anpa m enggangu program yang m enggunakan class t ersebut .

2 .2 .4 Se ba gia n Fit u r da r i JAVA
2 .2 .4 .1

Ja va Virt u al M a chine ( JVM )

JVM adalah sebuah m esin im aj iner ( m aya) yang bekerj a dengan m enyerupai aplikasi
pada sebuah m esin nyat a. JVM m enyediakan spesifikasi hardware dan plat form
dim ana kom pilasi kode Java t erj adi. Spesifikasi inilah yang m em buat aplikasi
berbasis Java m enj adi bebas dari plat form m anapun karena proses kom pilasi
diselesaikan oleh JVM.
Aplikasi program Java dicipt akan dengan file t eks berekst ensi .j ava. Program ini
dikom pilasi m enghasilkan sat u berkas byt ecode berekst ensi .class at au lebih.
Byt ecode adalah serangkaian inst ruksi serupa inst ruksi kode m esin. Perbedaannya
adalah kode m esin harus dij alankan pada sist em kom put er dim ana kom pilasi
dit uj ukan, sem ent ara byt ecode berj alan pada j ava int erpret er yang t ersedia di
sem ua plat form sist em kom put er dan sist em operasi.


2 .2 .4 .2

Ga r ba ge Colle ct ion

Banyak bahasa pem rogam an lain yang m engij inkan seorang program m er
m engalokasikan m em ori pada saat dij alankan. Nam un, set elah m enggunakan alokasi
m em ori t ersebut , harus t erdapat cara unt uk m enem pat kan kem bali blok m em ori
t ersebut supaya program lain dapat m enggunakannya. Dalam C, C+ + dan bahasa
lainnya, adalah program m er yang m ut lak bert anggung j awab akan hal ini. Hal ini
dapat m enyulit kan bilam ana program m er t ersebut alpa unt uk m engem balikan blok
m em ori sehingga m enyebabkan sit uasi yang dikenal dengan nam a m em ory leaks.
Program Java m elakukan garbage collect ion yang berart i program t idak perlu
m enghapus sendiri obj ek–obj ek yang t idak digunakan lagi. Fasilit as ini m engurangi
beban pengelolaan m em ori oleh program m er dan m engurangi at au m engelim inasi
sum ber kesalahan t erbesar yang t erdapat pada bahasa yang m em ungkinkan alokasi
dinam is.

Pengenalan Pemrograman 1

5

J.E.N.I.

2 .2 .4 .3

Code Se cu r it y

Code Securit y t erim plem ent asi pada Java m elalui penggunaan Java Runt im e
Environm ent ( JRE) . Java m enggunakan m odel pengam anan 3 lapis unt uk m elindungi
sist em dari unt rust ed Java Code.
1. Pert am a, class-loader m enangani pem uat an kelas Java ke runt im e
int erpret er. Proses ini m enyediakan pengam anan dengan m em isahkan kelas–
kelas yang berasal dari local disk dengan kelas–kelas yang diam bil dari
j aringan. Hal ini m em bat asi aplikasi Troj an karena kelas–kelas yang berasal
dari local disk yang dim uat t erlebih dahulu.
2. Kedua, byt ecode verifier m em baca byt ecode sebelum dij alankan dan
m enj am in byt ecode m em enuhi at uran–at uran dasar bahasa Java.
3. Ket iga, m anaj em en keam anan m enangani keam anan t ingkat aplikasi dengan
m engendalikan apakah program berhak m engakses sum ber daya sepert i
sist em file, port j aringan, proses ekst ernal dan sist em windowing.
Set elah seluruh proses t ersebut selesai dij alankan, barulah kode program
eksekusi.

di

Java j uga m enyediakan beragam t eknik pengam anan lain :
1. Bahasa dirancang unt uk m em persulit eksekusi kode perusak. Peniadaan
point er m erupakan langkah besar pengam anan. Java t idak m engenal operasi
point er. Di t angan program m er handal, operasi point er m erupakan hal yang
luar biasa unt uk opt im asi dan pem buat an program yang efisien sert a
m engagum kan. Nam un m ode ini dapat m enj adi pet aka di hadapan
program m er j ahat . Point er m erupakan sarana luar biasa unt uk pengaksesan
t ak diot orisasi. Dengan peniadaan operasi point er, Java dapat m enj adi bahasa
yang lebih am an.
2. Java m em iliki beberapa pengam an t erhadap applet . Unt uk m encegah
program bert indak m engganggu m edia penyim panan, m aka applet t idak
diperbolehkan m elakukan open, read at aupun writ e t erhadap berkas secara
sem barangan. Karena Java applet dapat m em buka j endela browser yang
baru, m aka j endela m em punyai logo Java dan t eks ident ifikasi t erhadap
j endela yang dibuka. Hal ini m encegah j endela pop- up m enipu sebagai
perm int aan ket erangan usernam e dan password.

Pengenalan Pemrograman 1

6

J.E.N.I.

2 .2 .5 Fa se – fa se Pe m r ogr a m a n JAVA
Gam bar dibawah ini m enj elaskan aliran proses kom pilasi dan eksekusi sebuah
program Java :

Gam bar 2.1: Fase dari sebuah Program Jav a

Langkah pert am a dalam pem buat an sebuah program berbasis Java adalah
m enuliskan kode program pada t ext edit or. Cont oh t ext edit or yang dapat digunakan
ant ara lain : not epad, vi, em acs dan lain sebagainya. Kode program yang dibuat
kem udian t ersim pan dalam sebuah berkas berekst ensi .j ava.
Set elah m em buat dan m enyim pan kode program , kom pilasi file yang berisi kode
program t ersebut dengan m enggunakan Java Com piler. Hasil dari kom pilasi berupa
berkas byt ecode dengan ekst ensi .class.
Berkas yang m engandung byt ecode t ersebut kem udian akan dikonversikan oleh Java
I nt erpret er m enj adi bahasa m esin sesuai dengan j enis dan plat form 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 1: Ringk asan Fase dari sebuah Program Jav a

Pengenalan Pemrograman 1

7