Apakah Java itu ? Java
merupakan bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun
Microsystem, suatu perusahaan yang terkenal dengan Workstation UNIX high-end. Sejak
dirilis pada tahun 1995, bahasa pemrograman Java dengan cepat memperoleh
popularitas di kalangan para pemrogram. Keberhasilan ini disebabkan teknologi
baru yang diperkenalkan Sun Microsystems yaitu Java Virtual Machine (JVM), yang
memungkinkan sebuah aplikasi dijalankan di atas platform apa saja sepanjang pada
mesin tersebut dipasang JVM.
Program yang
dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang berjalan
di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan
program Java Interpreter. Contoh program yang ditulis dengan bahasa Java adalah
HotJava yang berupa sebuah web browser. Pada dasarnya sintaks pada bahasa Java
mirip dengan sintaks pada bahasa C atau C++. Java bertipe kuat
(strongly-typed). Ini berarti semua tipe data terikat secara statis atau dengan
kata lain setiap nama variabel diasosiasikan dengan sebuah tipe data tunggal
yang dikenali pada saat kompilasi.
Sejarah singkat Java
·
Java diciptakan setelah C++ oleh Sun microsystems.
·
Proyek Java dimulai tahun 1991 oleh sejumlah insinyur pada
perusahaan Sun Microsystem Inc, dengan ide menggunakan bahasa komputer yang
tidak mengacu pada sebuah arsitektur. Proyek ini diberi kode sandi Green.
·
Tahun 1992, proyek Green meluncurkan produk pertama ' *7 '.
·
Tahun 1993 dan separuh th 1994, berganti nama First Person,
tetapi bubar.
·
Tahun 1995, dibuatlah browser yang mampu menerjemahkan kodebyte
tingkat menengah. Dan bahasa Java mulai digunakan secara luas.
KARAKTERISTIK JAVA
Ciri utama dari
program Java adalah :
·
JVM (Java Virtual Machine)
·
Garbage Collection
·
Code Security
Keuntungan dan Kelemahan dari Java
1.
Java merupakan bahasa pemrograman berorientasi objek (OOP).
2.
Memiliki tingkat fleksibilitas yang tinggi dan program Java
bersifat modular serta kode dapat digunakan kembali.
3.
Java relatif lebih mudah untuk dipelajari.
4.
Java lebih sederhana, karena telah menghilangkan beberapa fitur
dari C++ yang membingungkan dan sukar untuk dipelajari.
5.
Java memiliki kinerja yang tinggi dan handal.
6.
Java dapat dipergunakan sebagai penterjemah sehingga dapat
digunakan pada lingkungan komputer jenis apapun tanpa merubah kode program
kembali.
7.
Java memiliki tingkat keamanan yang sangat baik.
8.
Multithreading, sehingga program java dapat melakukan beberapa
perintah (program) sekaligus.
Java dengan bahasa
yang lain :
- Java tidak sama
dengan Javascript, salah satu contoh perbedaannya adalah javascript hanya
terbatas pada fungsi browser, sedang Java mirip syntax dengan C++. Tetapi
syntax Java tidak memerlukan header file, pointer arithmatic, struktur,
union, operator overlading, class virtual dan lain-lain. Perancang tidak
memperbaiki beberapa kelemahan pada C++, seperti switch statemen. Jika
kita mengenal C++ dengan baik, akan lebih memudahkan berpindah ke syntax
Java.
- Jika kita
menguasai Visual Basic, kita tidak berpendapat bahwa Java sederhana. Akan
ada banyak syntax asing. Yang menarik di Visual Basic adalah lingkungan
perancangan visual yang harus diprogram secara manual di Java.
·
Arsitektur Java
Arsitektur Java adalah kombinasi dari 4 komponen yaitu :
a. Java Programming
Language
b. Java Class file Format
c. Java Application
Programming Interface (APIs)
d. Java Virtual Machine
(JVM)
e.
Java Virtual Machine (JVM)
- JVM adalah mesin
computing abstrak yang menerjemahkan kompiler program Java/jembatan antara
program dan keunikan platform.\
- JVM menyembunyikan
kompleksitas platform dari program yang kita buat dan merupakan jantung
program.
- Secara sekilas
lapisan tambahan tersebut menyebabkan aplikasi berjalan lambat dibanding
aplikasi platform. Namun sekarang telah dikenal Just In Time (JIT) compiler.
JIT ini membaca program java, dan segera melakukan kompilasi terhadap
program java tersebut menjadi program spesifik platform. Contoh JVM pada
web browser, begitu web browser misal Netscape menerima applet, ia akan
mengkompilenya dengan JT (optimasi JIT dilakukan oleh para vendor).
·
Format File Class Java
- JVM tidak dapat
langsung menerjemahkan ke Java Programming language atau API sekalipun
- Dalam Java,
misalkan kita mengetik kode dengan text editor favorit, kemudian
menyimpannya sebagai file dengan ekstensi Java. Lalu Java kompiler kita
mengkompilasi kode tersebut menjadi Java Bytecode, tersimpan dalam
ekstensi Calass. Java bytecode tersebut akan ditangani untuk dieksekusi
oleh JVM yang saat ini ada dua modus dengan atau tanpa JIT.
·
Java Programming Language (Bahasa aplikasi program Java)
·
Bahasa Program ini lebih mengacu pada core java programming.
Diantaranya termasuk :
- Method, Interface
and class design, Threading, Even Handling, Perfomance and memory
management, Controlling Access to Resources.
- Aplication
Programming Interface's (API's)
·
Beberapa Edisi program Aplikasi (API - Aplication Programming
Interface)
- J2SE - Java 2
Standard Edition - Platform ini berisikan paket Java standar dan GUI dalam
Standard Edition mencakup :
1.
Swing Components (paket komponen aplikasi java dalam
direktori JTree C : /
2.
J2sdkee 1.2.1 = java 2 SDK software platform.
3.
JavaStuff
4.
Jdk_1.3 = Java
Development Kit, JRE termasuk di dalamnya.
5.
Jsse 1.0.1
6.
Data transfer API
7.
Printing API
8.
JDBC
9.
JNI (Java and nonjava
code interface), dll
- J2EE - Java 2
Enterprise Edition - Paket ini berisikan develop aplikasi berbasis web.
- J2ME - Java 2
Micro Edition - Untuk produk konsumer lingkungan teknologi mobile.
PEMROGRAMAN BERBASIS
OBJEK (OOP)
Java adalah bahasa yang termasuk dalam
pemrograman berorientasi object. Berbandingan anologi aliran dan interaksi
antar object antara Structured Procedural Programming (Basic, Pascal, C etc). Object
mempresentasikan entitas pada dunia nyata. Dalam membuat mobil kita dimulai
dari memecah-mecah kompleksitas sistem mobil ke dalam bagian kecil, seperti
roda, kemudi, dan sebagainya.
Pada masing-masing bagian kecil itu kita
definisikan field-field, seperti warna atau daya cengkeram. Selain itu, kita
definisikan apa saja yang bisa dilakukan terhadap bagian-bagian itu.
Perintah-perintah yang bisa diterima itu disebut method. Antarmuka dalam
interaksi antar obyek tersebut adalah method-method yang dimiliki object.
Objek-objek itu berinteraksi dengan saling memanggil method dari suatu objek,
atau sering disebut message passing.
Tiga Pilar OOP :
- Encapsulation
Terdiri dari method-method dalam Class, tahapnya meliputi Constructor dan
Destructor.
- Inheritance (Pewarisan
Sifat) Dengan inheritance, pengembang software dapat bekerja lebih efesien
dan lebih cepat. Berkat inheritance, dapat digunakan definisi class yang
sudah pernah dibuat sebelumnya untuk membuat class-class lain yang
menyerupai class tersebut.
- Polymorphism
Polymorphism didefiniskan sebagai kemampuan beberapa objek
bertipe sama, bereaksi secara berbeda terhadap message yang sama.
·
Object dan Class
·
Class adalah template untuk
obyek-obyek yang memiliki sifat yang sama. Dalam menulis program yang
berorientasi objek yang sebenarnya melainkan class dari objek tersebut.
·
Instance adalah kata lain dari
objek. Dalam bahasa OOP kita harus terlebih dahulu membuat instance dari class
tersebut. Jika Class adalah representasi generik dari objek, instance adalah
representasi konkritnya.
·
Bahasa Java telah menyediakan Class Library, yaitu kumpulan class-class yang telah siap digunakan
untuk membuat program-program baru. Class Library telah menyediakan class-class
dasar seperti fungsi matematika, array string dan sebagainya hingga ke class
untuk graphic, networking dan terutama internetworking (berbasis protokol
TCP/IP).
Tujuan &
Keuntungan dari Analis Berorientasi Obyek :
·
Lebih memahami inti permasalahan.
·
Dalam mengorganisasi analis dan spesifikasi dengan metode yang
digunakan cara berpikir manusia.
·
Mengurangi jarak antara aktivitas analis yang berbeda dengan
membuat atribut dan metode menjadi menjadi satu kesatuan.
·
Pewarisan dapat dilakukan dengan memberikan identifikasi sesuatu
yang umum pada atribut dan metode.
·
Menjaga stabilitas atas perubahan kebutuhan pada system yang
sama.
·
Hasil analisis dapat digunakan kembali.
·
Menghasilkan penggambaran yang konsisten.
Komponen JDK antara lain compiler(javac),
interpreter(java) disebut juga java virtual machine atau java runtime
environment, applet viewer(appletviewer), debugger(jdb), java class
library(jcl), header dan stub generator(javah), dan yang paling penting yaitu
java documentation(javadoc).
Penjelasan penggunaan komponen JDK :
1. Kompilator (javac)
Bertugas
untuk melaksanakan kompilasi
*.java menjadi *.class
Syntax umum : javac nama.java
2. Interpreter (java)
Bertugas untuk menjalankan bytecode (*.class)
Syntax umum : java nama.class.
3.
Applet
Viewer
Digunakan
untuk menjalanakan applet viewer, namun sekarang sudah digantikan browser.
Syntax umum : appletviewer nama.html
4.
Java
Debugger
Bertugas
untuk melakukan debugging aplikasi java. Syntax umum : jdb option
5. Java Class File Diassembler (javap)
Bertugas
membuat daftar method dan attribute public dari suatu kelas.
Syntax : javap namaKelas
6. Java Header and Stub Generator
Bertugas
menerjemahkan bahasa yang ditulis dalam bahasa java menjadi bahasa C.
Syntax umum : javah namaKelas
7. Java Documentation Generator
Menampilkan
pustaka kelas, interface, constructor, dan method standard yang telah dibuat
vendor. Dari hasil instalasi, dokumentasi ini dapat dilihat di
pada C:\java\docs\api\index.htmlatau
C:\Program
Files\NetBeans3.6\docs\junit\index.html
8. Source Code Java API
Source
code ini dapat diperoleh dari file src.zip.
Untuk
pemrogram pemula lingkungan pemrograman java dapat diringkas menjadi :
1. Editing
source code menggunakan editor teks.
2. Compiling menggunakan keyword javac melalui command
promp (dapat juga dari editor teks).
3. Executing menggunakan :
a.
Keyword java melalui command prompt (dapat juga dari editor teks)
b.
Browser atau applerviewer untuk applet.
TOKEN
Token adalah elemen terkecil
di program yang masih memiliki arti. Ada 5 token dalam bahasa java yaitu
identifier, keyword, literal dan tipe data, operator, serta separator
IDENTIFIER
Identifier adalah token yang
merepresentasikan nama sesuatu. Sesuatu tersebut adalah variabel, atau
konstanta, atau attribute, atau method, atau kelas, atau package, atau
interface, atau nama file, dan lain-lain.
KEYWORD
Kata kunci digunakan untuk
suatu tujuan tertentu. Ada 51 keyword dalam java yaitu :
abstract
|
continue
|
for
|
new
|
switch
|
boolean
|
default
|
goto
|
null
|
synchronized
|
break
|
do
|
if
|
package
|
this
|
byte
|
double
|
implements
|
private
|
threadsafe
|
byvalue
|
else
|
import
|
protected
|
throw
|
case
|
extends
|
instanceof
|
public
|
throws
|
catch
|
false
|
int
|
return
|
transient
|
car
|
final
|
interface
|
short
|
true
|
class
|
finally
|
long
|
static
|
try
|
const
|
float
|
native
|
super
|
void
|
|
|
|
|
while
|
LIBERAL
DAN TIPE DATA PRIMITIF
Literal adalah nilai variabel/attribute atau
nilai konstanta atau nilai objek data. Ada tiga besaran literal dalam java
yaitu angka, karakter, dan string. Angka terdiri
dari byte, short, int, long, float, double, dan boolean (dianggap angka true =
1 atau false = 0) Semua variabel dan
konstanta yang akan digunakan harus dipesan terlebih dahulu dalam
deklarasi.
Bentuk umum :
TipeData namaVar =
ungkapan_atau_nilai;
TipeData namaVar1, namaVar2, …;
[modifier] static final TipeData
NAMAKONSTANTA = nilai;
Contoh deklarasi :
double a=3, b=4;
double c = Math.sqrt(a*a+b*b);
static final PHI=3.14;
static final double CM_PER_INC = 2.54;
Berikut
tabel jangkauan dan ukuran dari semua tipedata sederhana dalam java :
Tipe Data Primitif
|
Jangkauan
|
Ukuran (bit)
|
byte
|
-128 s/d 127
|
8
|
short
|
-32767 s/d 32767
|
16
|
int
|
-2147483648 s/d 2147483647
|
32
|
long
|
-9223372036854775808 s/d
9223372036854775807
|
64
|
char
|
sebuah Unicode
|
16
|
float
|
3.4e-038 s/d 3.4e+038
|
32
|
double
|
1.7e-308 s/d 1.7e+308
|
54
|
boolean
|
false = 0 atau true = 1
|
8
|
OPERATOR
Operator melakukan komputasi terhadap satu/dua
objek data. Operan yang dioperasikan dapat berupa literal, variabel, atau nilai
yang dikirim method.
Berikut tabel dan hirarki
operator :
Prioritas
|
Kelompok Operator
|
Keterngan
|
1
|
. [] ()
|
Sekaligus
|
2
|
++var, –var, ~,
instanceof
|
preincrement,
predecrement, unary, instance dari kelas …
|
3
|
(type) (casting)
|
|
4
|
!
|
Not
|
5
|
*, /, %
|
perkalian,
pembagian, modulus
|
6
|
+, -
|
penjumlahan,
pengurangn
|
7
|
<<, >>,
>>>
|
geser untuk bil
biner
|
8
|
<, >, <=,
>=
|
pembandingan
|
9
|
==, !=
|
kesamaan,
ketidaksamaan
|
10
|
&
|
and
|
11
|
^
|
exclusive or
|
12
|
|
|
unconditional or
|
13
|
&&
|
conditional and
|
14
|
||
|
conditional or
|
15
|
? :
|
shorthand untuk
if..then…else…
|
16
|
=, +=, -=, *=, /=,
%=, ^=
|
operator penugasan
|
17
|
&=, |=,
<<=, >>=, >>>=
|
operator penugasan
|
18
|
var++, var–
|
postincrement,
postdecrement
|
SEPARATOR
Separator menginformasikan ke compiler java mengenai
adanya kelompok kode program.
Berikut
adalah daftar separator di java :
Notasi
|
Nama
|
Deskripsi
|
(…)
|
kurung
|
mengelompokkan
parameter method.
|
{…}
|
kurung kurawal
|
mengelompokkan
nilai-nilai suatu array, mendefinisikan blok kode kelas ataupun kode method.
|
[…]
|
kurung siku
|
mendeklarasikan tipe
array
|
:
|
titik koma
|
mengakhiri
pernyataan, merangkai pernyataan-pernyataan di dalam for.
|
,
|
koma
|
memisahkan
identifier-identifier di bagian deklarsi variable.
|
.
|
titik
|
memisahkan nama-nama
package, memisahkan kelas dari objek,
dan objek dari method.
|
KEYWORD
BREAK, CONTINUE AND RETURN
Kelompok
keyword ini pada prinsipnya merupakan kendali jump (variasi lain dari goto),
sehingga berakibat pengabaian sisa instruksi.