JAVA BASIC : Sekilas Tentang Java
Anda mungkin sering mendengar "java" dalam kehidupan sehari-hari Anda. Mungkin ada yang mengaitkankannya dengan suatu suku, pulau atau bahasa komunikasi manusia yang hidup di Republik ini. Mungkin juga bagi para pecinta kopi, kata java membawa mereka pada suatu cita rasa kopi yang sangat khas. Tapi bagi orang yang mengikuti perkembangan teknologi komputer sepertinya "java" dikepala mereka merujuk pada suatu teknologi atau tepatnya bahasa pemrogramman yang sangat baik, bagus, dan handal.
Pemaknaan java (dalam dunia orang ilmu komputer) sebagai suatu bahasa pemrogramman sebenarnya tidak salah-salah amat. Hanya saja kurang lengkap. Java lebih dari sekedar suatu bahasa pemrogramman. Java juga dapat merujuk pada suatu mesin virtual yang diciptakan oleh Sun dan Java juga bisa merujuk pada suatu platform dalam pengembangan dunia software. Jadi secara sederhana sebenarnya java merujuk kepada tiga hal, yaitu :
- Sebagai suatu bahasa pemrogramman. Java memiliki sintak (mungkin dalam terminologi manusia adalah kosa kata, grammer dan kalimat) yang sangat mirip dengan bahasa C. Paradigma yang digunakan dalam melakukan pemrogramman java adalah object oriented programming (OOP). Di sini java hadir untuk mengatasi kendala-kendala bahasa pemrogramman berorientasi objek pendahulunya (C++). Java mengurangi kompleksitas programming C++, juga menghalangi hambatan operasional antar sistem operasi. Dalam hal ini java memiliki jargon yang cukup dikenal, write once run everywhere. Karena kemudahan dan kebagusan konsep yang dimilikinya, java sebagai bahasa pemrogramman sangat cepat berkembang luas. Bahkan memiliki komunitas yang sangat besar bahkan mungkin terbesar jika dibandingkan dengan komunitas bahasa pemrogramman lainnya. Teknologi-teknologi pendukung untuk pengembangan dengan menggunakan java sebagai plaformnya pun bermunculan.
- Sebagai suatu mesin virtual, Java Virtual Machine (JVM) adalah suatu mesin yang menginterpretasikan bytecode-bytecode (bahasa java yg telak dikompilasi dan menghasilkan suatu file berekstensi dot class (.class) java ke dalam bahasa mesin (biner). JVM ini dikembangkan oleh Sun Microsystem. Sebenernya ia bisa dikembangkan di level hardware tapi demi kemudahan, akhirnya JVM dikembangkan di level software (di atas sistem operasi). Sebenarnya paradigma pemrogramman dengan menginterpretasi kode (dalam java adalah bytecode) itu menurut para ahli tidak bagus dari sisi performance (Kecepatan). Tapi JVM mencoba mengatasi masalah ini dengan menerapkan teknik just-in-time (JIT) compilation, yaitu java byte code dikonversi langsung menjadi bahasa mesin untuk kode-kode program yang dijalankan secara berulang-ulang.
- Java Platform, ini juga tidak kalah pentingnya dibandingkan dengan java sebagai bahasa pemrogramman dan java virtual machine. Semua program yang ditulis dalam bahasa java memanfaatkan kelas-kelas yang telah disediakan (embeded) dalam java platform, yang terkumpul dalam paket-paket tertentu (java.lang, java.io, java.net, java.uti, dll). Rasanya sangat sulit mengembangkan suatu aplikasi java tanpa bantuan java platform ini.
Sebenarnya ada dua paradigma yang digunakan dalam pembuatan suatu bahasa pemrogramman.
Pertama dengan cara menginterpretasi kode-kode program, setiap kali suatu kode akan diekseksui oleh mesin, kode-kode tersebut diterjemahkan dulu ke bahasa yang dapat dimengerti oleh mesin (bahasa biner). Dalam hal ini percis seperti posisi seorang penerjemah yang menjembatani dua orang yang saling berkomunikasi dengan menggunakan dua bahasa yang berbeda. Posisi si penerjemah sangat sibuk, mendengarkan si pembicara kemudian menyampaikannya dengan bahasa yang dapat dimengerti oleh lawan bicaranya. Si interpreter menerjemahkan kode-kode program ke suatu bahasa yang bisa dimengerti oleh mesin. Contoh bahasa pemrogramman dengan teknik interpreter adalah Phyton, PHP dan mungkin PERL.
Kedua dengan meng-compile kode-kode program tersebut langsung menjadi bahasa yang dapat dimengerti oleh mesin. Mungkin analoginya ini seperti orang yang menerjemahkan suatu surat dari bahasa yang satu kepada bahasa yang lain. Ketika surat tersebut sudah diterjemahkan, si penerima langsung mengerti isi keseluruhan surat tersebut tanpa memerlukan perantara lagi. Contoh bahasa pemrogramman dengan teknik kompilasi adalah C dan C++.
Melihat gambaran yang diberikan, biasanya suatu bahasa pemrogramman dengan menggunakan teknik kompilasi jauh lebih cepat dibandingkan bahasa pemrogramman yang menggunakan teknik interpreter (penerjemah). Tapi pemrogramman dengan teknik kompilasi biasanya memilik kelemahan yaitu OS Dependent (ketergantungan pada Operating System - Sistem Operasi), artinya hasil kompilasi program pada system operasi tertentu tidak bisa dijalankan pada sistem operasi yang berbeda. Misal anda membuat aplikasi dengan menggunakan bahasa C (C menggunakan teknik kompilasi) pada Windows XP maka program tersebut tidak bisa dijalankan pada sistem operasi linux. Sementara pada program dengan teknik interpretasi, ketergantungan OS ini dapat diatasi. Anda menulis skrip python, baik menjalankannya pada linux ataupun windows hasilnya akan sama saja.
Terus teknik apa yang digunakan oleh java? Java menggunakan kedua teknik tersebut. Pertama kode-kode bahasa java di-compile menjadi byte code, kemudian oleh JVM, byte code - byte code ini diterjemahkan ke dalam bahasa mesin.
Buku yang menemani saat nulis tulisan ini adalah JAVA IN A NUTSHELL A Desktop Quick Reference karangan David Planagan, Penerbit O’Reilly tahun 2002