Seperti gambar diatas, lapisan terbawah adalah system operasi yang menjalankan
Java Virtual Machine (JVM), diatasnya terdapat Core APIs (Application Programming
Interfaces) dan integration APIs yang menyediakan kumpulan library.
Lapisan berikutnya adalah Swing dan AWT (Abstract Windowing Toolkit)
untuk
membuat
tampilan
aplikasi
yang bagus.
Lapisan
selanjutnya
adalah utilitas
untuk
menjalankan aplikasi pada
lingkungan desktop. Lapisan teratas adalah utilitas yang
digunakan oleh para programmer untuk
pengembangan, kompilasi, debug dan membuat dokumentasi program.
Beberapa fitur penting yang dimiliki oleh java antara lain :
a. 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.
b. Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer
mengalokasikan 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.
c. 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.
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.
Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan–aturan dasar bahasa Java.
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 :
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.
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.
Beberapa
fitur
yang
ditawarkan Java API
(Application
Programming Interface) antara lain sebagai berikut :
a. Applet
Program
Java
yang
dapat
berjalan di
atas browser,
yang
dapat
membuat
halaman HTML lebih dinamis dan menarik.
b. Java Networking
Sekumpulan API (Application Programming Interface) yang menyediakan fungsi–
fungsi untuk aplikasi–aplikasi jaringan, seperti penyediaan akses untuk TCP, UDP,
IP Adrress dan URL. Tetapi Java Networking tidak
menyediakan akses untuk ICMP
(Internet Control Message Protocol) dikarenakan alasan sekuriti dan pada kondisi
umum hanya administrator (root) yang bisa memanfaatkan protokol ICMP.
c. Java Database Connectivity (JDBC)
JDBC menyediakan sekumpulan API yang dapat
digunakan untuk mengakses
database seperti Oracle, MySQL, PostgreSQL, Microsoft SQL Server.
d. Java Security
Java Security menyediakan sekumpulan API untuk mengatur security dari aplikasi
Java baik secara high level atau low level, seperti public/private key management
dan certificates.
e. Java Swing
Java Swing menyediakan
sekumpulan API untuk membangun
aplikasi–aplikasi
GUI (Graphical User Interface) dan model GUI yang diinginkan bisa bermacam– macam, bisa
model Java, model Motif/CDE atau model yang dependent terhadap
platform yang digunakan.
f. Java RMI
Java RMI (Remote Method Invocation) menyediakan sekumpulan API
untuk membangun aplikasi–aplikasi Java yang
mirip dengan model RPC (Remote Procedure Call), jadi objek-objek java bisa dipanggil
secara remote pada jaringan.
g. Java 2D/3D
Java 2D/3D
menyediakan sekumpulan
API untuk membangun grafik – grafik
2D/3D yang menarik dan juga akses ke printer.
h. Java Server Pages
Berkembang
dari Java Servlet yang digunakan
untuk menggantikan aplikasi–
aplikasi CGI, JSP
(Java Server
Pages) yang
mirip
ASP
dan
PHP merupakan alternatif terbaik
untuk solusi aplikasi Internet.
i. JNI (Java Native Interface)
JNI menyediakan sekumpulan
API yang digunakan untuk
mengakses fungsi–
fungsi pada library (*.dll atau *.so) yang dibuat dengan bahasa pemrograman yang lain seperti C, C++, dan Basic.
j. Java Sound
Java Sound menyediakan sekumpulan API untuk
manipulasi sound.
k. Java IDL
+ CORBA
Java IDL (Interface Definition Language) menyediakan dukungan Java untuk
implementasi CORBA (Common Object Request Broker) yang
merupakan model distributed-Object untuk solusi aplikasi besar di dunia networking.
l. Java Card
Java Card utamanya digunakan untuk
aplikasi–aplikasi pada smart card, yang sederhana wujudnya seperti SIM Card pada handphone.
m. JTAPI (Java Telephony API)
Java Telepony API menyediakan sekumpulan API untuk memanfaatkan devices–
devices telepony, sehingga
akan cocok untuk aplikasi–aplikasi CTI (Computer
Telephony
Integration) yang
dibutuhkan
seperti ACD
(Automatic
Call
Distribution), PCPBX dan lainnya.
Referensi :
1. Hariyanto, Bambang, (2007),
Esensi-esensi Bahasa Pemrograman
Java,
Edisi 2, Informatika Bandung, November 2007.
2. Utomo, Eko Priyo, (2009), Panduan Mudah Mengenal Bahasa Java, Yrama Widya, Juni 2009.
3. Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007
No comments:
Post a Comment