Sekilas Tentang Pemrograman Java dan Kelebihannya
Table of Contents
Sebenarnya, aku gak tahu apapun tentang Pemrograman Java sebelum menginjak bangku kuliah. Untung saja aku pernah menginjak-injak bangku
kuliah hingga diomelin satpam minimal tahu sedikitlah tentang java. Konon kata "java" itu berasal dari kata "Jawa" lo, lah kok bisa ??? Ini bukan nyocok-nyocokin ya, memang Bapak java James A. Gosling paling suka kopi tubruk dari Pulau Jawa. Jika masih ngeyel ndak percaya, coba pakai google translate aja. English to Indonesia. Entrikan kata "Java", outputnya pasti "Jawa", bukan "Bambang".
Ya udah nih, aku bocoran dikit sedikit ya, JAVATM yang dikembangkan di Sun Microsystem
berawal dari gagasan untuk menciptakan suatu bahasa, perangkat lunak yang
bebas dan tidak bergantung pada platform atau sistem operasi tertentu (tidak
hanya bekerja pada sistem operasi tertentu). Tujuan awalnya adalah dengan
menggunakan bahasa yang sudah ada, yaitu C++ namun seiring dengan kemajuan
yang dicapai, para pencipta JAVA menyadari bahwa akan lebih baik bila mereka
menemukan (menciptakan) bahasa mereka sendiri daripada mengembangkan C++.
Tidak seperti bahasa-bahasa compiler tradisional, yang mengubah kode (source code)
menjadi perintah-perintah tingkat mesin (bahasa mesin), kompiler Java mengubah
(menterjemahkan) kode-kode sumber Java menjadi perintah-perintah yang akan di-
interpretasi (dibaca) oleh runtime Mesin Virtual Java (Java Virtual Machine).
Java dapat digunakan untuk membuat dua jenis program, yaitu applet dan aplikasi
mandiri (stand alone application). Secara sederhana, sebuah applet adalah bagian dari
halaman web entah itu berupa animasi, gambar sederhana (image) atau hanya sebuah
garis atau sekumpulan teks.
James A. Gosling, Iki Bapak Java rekk.... |
Para pencipta Java di Sun Microsystem mendefinisikan Java sebagai bahasa yang
sederhana, berorientasi object, terdistribusi, terinterpretasi, kokoh, aman, netral
arsitektur, akrab, berkinerja tinggi, multi jalinan (multithreaded) dan dinamis.
1. Sederhana
Ternyata bukan hanya wakil rakyat aja yang sok sederhana, java juga sederhana. Inti dari ke-"sederhana"-an Java terutama terletak pada kemiripannya dengan C dan
C++. Karena programmer-programmer masa kini khususnya yang tertarik
menggunakan Java telah memiliki pengalaman setidaknya dengan C dan mungkin
dengan C++, Java tentu saja terlihat sederhana dan akrab bagi programmer-
programmer ini.
Java menyederhanakan bahasa C++ dengan menambahkan fitur-fitur pendukung yang
belum terdapat dalam C++ dan membuang beberapa fitur yang membuat C++
menjadi bahasa yang rumit dan sulit untuk dikuasai. Java sederhana karena hanya ia
memiliki tiga tipe angka data primitif, tipe Boolean dan array. Selebihnya, semua
dalam Java adalah sebuah kelas. Salah satu fitur penting yang ditawarkan Java (yang
belum ada pada C++) adalah pengumpulan sampah (garbage collection). Dengan
mekanisme ini, user tidak perlu membebaskan memori yang dialokasikan, karena
semua dilakukan oleh Mesin Virtual Java. Java juga mendukung penulisan program
multi jalinan, yaitu suatu program yang dapat melakukan lebih dari satu pekerjaan
dalam waktu yang bersamaan.
2. Berorientasi Obyek
Dalam pendekatannya pada orientasi-obyek, Java lebih merujuk pada SmallTalk
daripada C++. Selain tipe data primitive-nya, semua yang ada pada Java adalah kelas.
Sebaliknya dalam C++ semuanya serba campur-aduk, dimana programmer dapat
secara bebas (benar-benar bebas)dalam mencampur kode-kode orientasi obyek (kelas)
(kelas) dengan kode prosedural (fungsi). Dalam Java semua ini tidak diperbolehkan.
Tidak ada fungsi global dalam Java, semua fungsi harus dipanggil melalui sebuah
obyek. Dukungan Java terhadap orientasi-obyek tidak termasuk penurunan (inheritansi)
ganda. Para perancang Java merasa kerumitan yang dimunculkan inheritansi ganda
tidak sebanding dengan keuntungan yang dihasilkan. Sebagai ganti dari inheritansi
ganda, Java kemudian menyediakan antarmuka (interface).
3. Terdistribusi
Java memudahkan pembuatan aplikasi terdistribusi dengan sekumpulan kelas yang digunakan pada aplikasi-aplikasi jaringan. Dengan menggunakan kelas URL (Uniform Resource Locator) Java, suatu aplikasi dapat dengan mudah mengakses server-jauh (remote server).
4. Terinterpretasi
Karena Java adalah bahasa interpretasi, sekali Interpreter Java terpasang, terinstal
pada suatu mesin tertentu, mesin tersebut dapat secara langsung menjalankan
aplikasi-aplikasi Java (tidak peduli platform atau sistem operasi apa yang terpasang
pada mesin tersebut).
Ketika menggunakan bahasa interpreter, programmer juga
terbebas dari kekhawatiran berkaitan dengan ketergantungan antar modul.
Keuntungan lain adalah waktu yang digunakan untuk lingkaran edit-compile-link-test
dapat dipotong. Tanpa adanya langkah kompile dan link, maka bekerja dalam
lingkungan interpreter lebih sederhana dan lebih hemat waktu karena hanya melalui
lingkaran edit-test.
5. Kokoh
Kokoh? kayak semen aja ya? maksudnya begini, membuat suatu program yang terdistribusi, mendukung multi-jalinan yang dapat
dijalankan pada berbagai sistem operasi dan berbagai prosesor bukanlah suatu
pekerjaan yang mudah. Berdasarkan pemikiran ini, maka Java diciptakan sebagai
bahasa yang sangat ketat dalam penulisan (strongly typed language).
Dalam Java management memori telah disederhanakan dengan dua cara. Pertama
Java tidak mendukung manipulasi pointer atau aritmatik secara langsung, sehingga
mustahil bagi program Java untuk menumpuk (meng-overwrite) memori atau
mengkorupsi data. Kedua Java menggunakan mekanisme pengumpulan sampah saat
program berjalan (runtime) daripada pembebasan memori secara eksplisit.
6. Aman
Karena Java tidak menggunakan pointer yang secara langsung merujuk pada lokasi
memori seperti yang terdapat pada C atau C++, Java memiliki kendali penuh terhadap
semua kode yang ada pada lingkungan Java. Sebelumnya telah diantisipasi bahwa
aplikasi-aplikasi Java akan dijalankan di internet dan akan secara dinamis dapat
dijalankan bersama atau mengeksekusi program lain di tempat yang berlainan melalui
internet, maka para pengembang Java berpendapat tentang perlu adanya kompiler
Java yang akan menghasilkan kode bite Java yang akan melewati standar keamanan
runtime Java. Gagasan ini memunculkan ide tentang pemeriksa kode byte yang akan
memeriksa semua kode yang masuk dan memastikan bahwa semua kode tersebut
telah mematuhi serangkaian aturan yang telah ditentukan dan aman untuk dijalankan. Mantap, ibarat rumah udah ada gembok segede lemari lah ya.
7. Arsitektur Netral
Sebelum dijalankan, program Java harus dikompile terlebih dulu menggunakan
kompiler Java. Proses kompilasi ini kemudian akan menghasilkan suatu kode bite
tertentu yang serupa dengan file kode (bahasa) mesin yang dapat dieksekusi pada
mesin apapun yang memiliki interpreter Java.
Jadi, Java dapat dijalankan dalam mesin (komputer) dengan system operasi apapun
selama ia memiliki interpreter Java, dan dengan demikian maka tuntutan arsitektur
netral pada Java dapat dipenuhi.
8. Portable
Salah satu tujuan penting pembuatan Java adalah kode-kode Java haruslah Portable,
sehingga ketika arsitektur baru (baik itu perangkat keras ataupun sistem operasi atau
keduanya) berkembang, lingkungan Java dapat diterapkan dan dipindahkan pada
mereka.
Pada Java, semua tipe data primitif (integer, long, float, double dan sebagainya)
memiliki ukuran tertentu, tidak bergantung pada mesin atau sistem operasi dimana
program Java dijalankan. Hal ini sangat berlawanan dengan bahasa seperti C atau
C++ yang menyerahkan ukuran tipe data primitif pada kompiler dan mesin (serta
sistem operasi). Java portable karena kompiler Java sendiri ditulis menggunakan
Java.
9. Berkinerja Tinggi
Sebuah aplikasi Java tidak akan menyamai kinerja aplikasi bahasa terkompilasi
penuh seperti C atau C++. Namun demikian untuk sebagian besar aplikasi termasuk
pengolahan grafis, satu dari berbagai macam hal yang dapat ditemui secara umum
pada World Wide Web, kinerja Java lebih dari cukup. Banyak pengadopsi awal C++ khawatir aanya kemungkinan penurunan kinerja saat
mereka mengubah program mereka dari C ke C++. Namun para pengadopsi
(pengguna) awal C++ menemukan walaupun program dalam C akan melebihi suatu
program C++ dalam banyak kasus, waktu untuk pengembangan lebih lanjut
dan biaya tidak sesuai dengan kinerja yang dihasilkan.
Walupun aplikasi Java mungkin tidak dapat menyamai aplikasi C++, namun secara
normal aplikasi Java akan cukup cepat, dan Java memungkinkan user melakukan
banyak hal yang tidak dapat dilakukan dengan C++.
10. Multi-Jalinan
Menulis suatu bahasa yang hanya bisa melakukan satu perkerjaan adalah hal yang
biasa dalam bahasa pemrograman. Program-program Java dapat terdiri atas beberapa
jalinan yang memungkinkan program untuk melakukan beberapa pekerjaan sekaligus.
Suatu contoh, sebuah program multi jalinan dapat me-render sebuah image di layar
pada satu jalinan disamping menerima masukan dari keyboard user pada jalinan
utama-nya.
Dukungan terhadap beberapa jalinan tersinkronisasi sekaligus telah terbangun (secara
internal) pada Java dan lingkungan runtime-nya. Jalinan tersinkronisasi sangat
berguna dalam membuat aplikasi yang terdistribusi dan berbasis jaringan. Aplikasi
semacam ini dapat berkomunikasi dengan server jauh pada satu jalinan dan
berinteraksi dengan user pada jalinan yang lain.
11. Dinamis
Karena terinterpretasi, Java adalah bahasa yang benar-benar dinamis. Saat runtime,
lingkungan Java dapat mengembangkan dirinya dengan terhubung pada kelas-kelas
yang mungkin terletak pada server-jauh pada suatu jaringan (misalnya, lewat
internet).
Pada C++ setiap kali anggota variabel atau fungsi ditambahkan pada suatu kelas,
maka kelas tersebut dan semua kode tambahan yang merujuk pada kelas tersebut
perlu dikompile ulang. Java menyederhanakan masalah ini dengan menyerahkan pada
runtime. Saat runtime interpreter Java melakukan resolusi nama ketika terhubung
dengan kelas-kelas yang bersangkutan. Interpreter Java juga bertanggung-jawab
dalam menentukan penempatan obyek dalam memori. Dua fitur pada interpreter Java
ini memecahkan masalah berkaitan degan perubahan definisi kelas ketika digunakan
kelas-kelas yang lain.
Malang, 5 Agustus 2013
Posted By
Post a Comment