Java Virtual Machine
è 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.
Garbage Collection
è merupakan
sistem manajemen memori yang
membuat programer tidak perlu secara manual
membebaskan memori dari objek yang tidak terpakai. Metode
ini diciptakan oleh John McCarthy sekitar 1959
untuk memecahkan masalah manajemen memori manual pada bahasa pemrograman Lisp buatannya.
Banyak bahasa
pemrogaman lain yang mengijinkan seorang pemrogram 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 pemrogram
yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana
pemrogram 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 pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang
terdapat pada bahasa yang memungkinkan alokasi dinamis.
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.
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.
Bytecode
verifier membaca bytecode
sebelum dijalankan dan menjamin bytecode memenuhi aturan–aturan
dasar bahasa Java.
3.
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 :
a)
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.
b)
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.
Fase – fase Pemrograman Java
Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi
sebuah program Java :
Gambar 2.1:
Fase dari sebuah Program Java
1. Write à menuliskan kode program 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.
2. Compile à 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.
3. Run à
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
(Write the
program)
|
Text editor
|
Berkas
berekstensi .java
|
Kompilasi
program
(Compile the
program)
|
Java compiler
|
Berkas
berekstensi .class
(Java Bytecodes)
|
Menjalankan
program
(Run the
program)
|
Java Interpreter
|
Program Output
|
sangat bermanfaat bro
BalasHapus