PENGENALAN
JAVA
·
Sejarah Java
Pada
tahun 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 dan memakai
CPU yang berbeda, maka bahasa harus berukuran kecil serta bersifat
multiplatform atau bisa dijalankan di berbagai platform. Proyek tersebut diberi
nama “Green Project”.
Karena
harus bersifat Architecture Neutral (multiplatform), maka Green Project
menggunakan Virtual Machine (dikenal dengan Java Virtual Machine) yang berasal
dari model omplementasi bahasa Pascal. Karena orang-orang di Green Project
berbasis C++, maka sintaks yang diambil dari C++, serta mengadopsi orientasi
objek bukan procedural objek. Mulanya bahasa yang diciptakan bernama “Oak” oleh
James Gosling, terinspirasi dari sebuah pohon yang berada di seberang
kantornya. Namun dikarenakan 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
yang kemudian 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.
Perkembangannya
sempat terhenti karena tidak ada yang tertarik. Ketika teknologi internet
berkembang, Java diarahkan untuk menjadi bahasa pemrograman internet karena
fitur-fitur Java sesuai dengan pengembangan internet.
Java
telah mengakomodasi hamper seluruh fitur penting bahasa-bahasa pemrograman,
misalkan
o
SIMULA.
Dari bahasa ini diadopsi bentuk-bentuk dasar dari pemrograman berorientasi
objek
o
LISP.
Dari bahasa ini diadopsi fasilitas garbage collection, serta kemampuan meniru
generic list processing.
o
Algol.
Dari bahasa ini diadopsi struktur kendali yang dimilikinya.
o
C++.
Dari bahasa ini diadopsi sintaks, sebagian semantics dan exception handling.
o
Ada.
Dari bahasa ini diadopsi strongly type dan exception handling.
o
Objective
C. Dari bahasa ini diadopsi fasilitas interfacenya.
o
Smalltalk.
Dari bahasa ini diadopsi pendekatan single-root class hierarchie, dimana object
adalah satu kesatuan hirarki pewarisan.
o
Eiffel.
Dari bahasa ini diadopsi fasilitas assertion yang mulai diterapkan di sebagian
JDK.
·
Pengertian Java
Pengertian Java menurut perannya
dapat dibagi menjadi 4 :
1.
Sebagai
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 system operasi. Perkembangan Java tidak
hanya terfokus pada satu system operasi, tetapi dikembangkan untuk berbagai
system operasi dan bersifat open source.
2.
Sebagai
sebuah Development Environment
Sebagai sebuah peralatan
pembangun, tekonologi Java menyediakan banyak tools seperti compiler,
interpreter, penyusun dokumentasi, dan paket kelas.
3.
Sebagai
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.
Sebagai
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 tekonologi Java.
·
Java Versi Awal
Versi awal Java ditahun 1996 sudah merupakan versi release
sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar
awal yang terus dikembangkan pada versi selanjutnya:
o
Java.lang :Peruntukan kelas elemen-elemen dasar
o
Java.io :Peruntukan kelas input dan output, termasuk
penggunaan berkas.
o
Java.util :Peruntukan kelas pelengkap seperti
kelas struktur data dan kelas-kelas penanggalan.
o
Java.net :Peruntukan kelas TCP/IP, yang
memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
o
Java.awt :Kelas dasar untuk aplikasi antarmuka
dengan pengguna (GUI)
o
Java.applet :Kelas dasar aplikasi antar muka untuk diterapkan
pada penjelajah web.
·
Karakteristik pada 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 menggunakan pemrograman
berorientasi objek yang membuat program dapat dibuat secara modular dan dapat
dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata ke
dalam 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 mempunyai reliabilitas yang
tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih
teliti dibandingkan bahasa pemrograman yang 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 system 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 JVM
8.
Portable
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 ataupu Symantec yang
menggunakan Just In Time Compilers (JIT)
10. Multithread
Java mempunyai kemampuan untuk
membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus
dan simultan.
11. Dinamis
Java didesain untuk dapat
dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan
menambahkan properties ataupun method dapat dilakukan tanpa mengganggu program
yang menggunakan class tersebut.
·
Tipe data pada Java
Ada 8 jenis tipe data dalam Java :
Jenis Data
|
Deskripsi
|
Ukuran
|
Minimum
|
Maksimum
|
Boolean
|
Hanya bisa berisi benar atau salah
|
1-bit
|
||
Char
|
Karakter Unicode
|
16-bit
|
||
Byte
|
Bilangan bulat
|
8-bit
|
-127
|
128
|
Short
|
Bilangan bulat
|
16-bit
|
-32768
|
32767
|
Int
|
Bilangan bulat
|
32-bit
|
-2147483648
|
2147483647
|
Long
|
Bilangan bulat
|
64-bit
|
-9223372036854775808
|
9223372036854775807
|
Float
|
Bilangan riil
|
32-bit
|
1.40129846432481707e-45
|
3.40282346638528860e+38
|
Double
|
Bilangan riil
|
64-bit
|
4.94065645841246544e-324
|
1.79769313486231570e+308
|
·
Fitur-fitur Java
o
Java
Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner
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.
o
Garbage collection
Maksud dari garbage collection
yaitu program tidak perlu menghapus sendiri objek-objek yang tidak digunakan
lagi. Fasilitas ini mengurangi beban pengelolaan programmer dan mengurangi atau
mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang
memungkinkan alokasi dinamis.
o
Code security
Code security terimplementasikan
pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan
model pengamanan 3 lapis untuk melindungi system dari untrusted Java Code.
a.
Class-loader,
menangani pemuatan kelas Java ke runtime interpreter. Proses ini 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.
b.
Bytecode
verifier, membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi
aturan-aturan dasar bahasa Java.
c.
Management
security, menangani keamanan tingkat aplikasi dengan mengendalikan apakah
program berhak mengakses sumber daya seperti system file, port jaringan, proses
eksternal dan system windowing.
Java juga menyediakan beragam
teknik pengamanan lain :
§
Peniadaan
pointer
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 tidak diotorisasi.
§
Pengamanan
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.
·
Kelebihan Java
1.
Multiplatform
Java
dirancang untuk mendukung aplikasi yang dapat beroperasi di lingkungan jaringan
berbeda. Untuk mengakomodasi hal tersebut, Java compiler membangkitkan
bytecodes (sebuah format yang tidak tergantung pada arsitektur tertentu yang
didesain untuk mengirimkan kode ke banyak platform perangkat keras dan perangkat
lunak secara efisien). Java dapat dijalankan oleh banyak platform seperti
Linux, Unix, Windows, Solari, maupun Mac.
2.
Berorientasi
Objek (OOP)
Java
adalah bahasa pemrograman yang berorientasi pada objek. Java membagi program
menjadi objek-objek serta memodelkan sifat dan tingkah laku masing-masing dalam
menyelesaikan suatu masalah.
3.
Dapat
didistribusikan dengan mudah
Java
memiliki library rutin yang lengkap untuk dirangkai pada protocol TCP/IP
(seperti HTTP dan FTP) dengan mudah. Kemampuan networking Java lebih kuat dan
lebih mudah digunakan. Java memudahkan tugas pemrograman jaringan yang sulit
seperti membuka dan mengakses sebuah soket koneksi. Java juga mamudahkan
pembuatan CGI (Common Gateway Interface).
4.
Bersifat
dinamis
Java
dirancang untuk beradaptasi dengan lingkungan yang sedang berkembang. Java
bersifat dinamis dalam tahap linking. Class yang ada dapat di link sebatas yang
diperlukan, apabila diperlukan modul kode yang baru dapat di link dari beberapa
sumber, bahkan dari sumber dalam jaringan Internet.
5.
Garbage
Collection
Java
mempunyai pengumpul sampah otomatis sehingga mengefisienkan waktu programmer.
6.
Mirip
C++
Java
memiliki sintaks yang mirip dengan C++ sehingga bagi para programmer berbasis
C++ akan mudah dalam belajar Java.
·
Kekurangan Java
1.
Mudah
didekompilasi
Dekompilasi
adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan
karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa
tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama
juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang
digunakan program akan lebih sulit disembunyikan dan mudah
dibajak/direverse-engineer.
2.
Penggunaan
memori yang banyak
Penggunaan
memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat
tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi,
Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang
menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi
menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer
berumur lebih dari 4 tahun.
·
Struktur Data
o
Comments
Comments digunakan untuk
memberikan keterangan/penjelasan suatu baris program. Comments tidak akan
dikompilasi oleh compiler. Lambang untuk comments ada 2 yaitu :
a.
Double
slash (//) : untuk memberikan penjelasan satu baris
b.
Slash
bintang (/* dan */) : untuk memberikan penjelasn lebih dari satu baris.
o
Reserved
word
Reserved words atau keywords
merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan
pemrograman. Contohnya yaitu class, digunakan untuk membuat class pada java.
o
Modifiers
Modifiers digunakan untuk
menentukan penggunaan dari suatu data, methods dan class. Contoh modifiers
adalah public, static, private, final, abstract dan protected.
o
Statements
Statements merupakan baris
perintah atau kumpulan perintah. Setiap statement pada java selalu diakhiri
dengan titik koma (;).
o
Blocks
Blocks digunakan untuk membentuk
suatu grup statements. Blocks diawali dengan kurung kurawal buka ({) dan
diakhiri dengan kurung kurawal tutup (}). Blocks dapat digunakan secara nested
(blocks di dalam blocks).
o
Classes
Classes merupakan inti dari
program java. Suatu class merupakan “blueprint” untuk menciptakan suatu objek.
o
Methods
Methods merupakan kumpulan dari
statements yang melakukan suatu fungsi atau operasi secara sekuens. Setiap java
aplikasi harus mempunyai method main() (kecuali applet). Method main() pada
java selalu berbentuk :
public
static void main(String[] args){
//statement
}
0 komentar:
Posting Komentar