Bahasa Java adalah sebuah bahasa pemrograman yang dapat digunakan dalam berbagai macam platform yang ada. Hal inilah yang mendasari kesuksesan java dalam dekade ini, yaitu bahwa aplikasi Java dapat dieksekusi pada beragam sistem operasi dan lingkungan software, seperti halnya Mosaic, Netscape Navigator, atau Internet Explorer, mesin PC Windows , mesin Macintosh , mesin UNIX, atau pada sebuah mainframe IBM. Ketidakbergantungan ini pada platform inilah yang membuat Java ini unik. Java berprinsip “Code Once, Run Anywhereâ€.
Sejarah Java
Bahasa pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai “*7″ (Star Seven).
Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.
Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.
Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja “bapak java”, James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi “Java”. Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.
Bahasa Java
Bahasa Java ini memiliki sintaks yang mirip dengan Bahasa C dan C++, sehingga bagi para programmer C dan C++ tidak terlalu sulit untuk mempelajari bahasa Java. Namun, Java berbeda dari C dan C++ dalam hal berikut :
- dalam Java , operasi alamat memori, kadang disebut aritmatika pointer, ditangani secara internal oleh bahasa tersebut.
- Java tidak memiliki preprocessor bahasa; karenanya, tidak ada penunjuk preprocessor.
- Java tidak menjalankan konversi tipe secara otomatis. Ini adalah salah satu mengapa Java lebih kuat tipenya dari C dan C++.
- Java tidak mendukung definisi tipe melalui operator typedef.
- Java tidak mendukung template.
- Java tidak memungkinkan pemuatan operator eksplisit yang berlebihan.
- Java tidak mendukung multi-pewarisan
- Java juga mendukung multithreading. Maksudnya, multithreading memungkinkan sebuah aplikasi melakukan tugas secara bersamaan.
- Java adalah GRATIS (ini yang orang indonesia suka…he.he). Sun Microsystems menyediakan compiler Java, pustaka run-time, dan standar secara cuma-cuma. Anda bisa mendowload software dari situs Web Sun tanpa biaya, dan Anda tak perlu membayar royalti untuk menggunakannya.
Ini semua berarti bahwa Java adalah bahasa yang sudah dan sederhana dibandingkan C dan C++ . java mudah dipelajari dan digunakan dan lebih bisa diandalkan.
Pustaka Java
Bahasa Java sangat kecil. Dua tipe pustaka memperluas fungsionalitasnya, pustaka inti yang merupakan bagian Java Development Kit (JDK) dan tambahan pustaka opsional . Pustaka inti harus ada dalam setiap implementasi Java, walaupun pustaka opsional bisa ada atau tidak. Jumlah dan kompleksitas pustaka Java luar biasa dan bisa mengecutkan seorang programmer pemula. Contoh dari pustaka Java ini antara lain : java.lang, java.applet, java.awt, javax.swing, java.io, java.util, java.rmi, java.sql, java.sequrity, java.net , java.beans, java.text, java.math, java, accessibility.
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: - java.lang: Peruntukan kelas elemen-elemen dasar.
- java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
- java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
- java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
- java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
- java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
Kelebihan
- Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
- OOP (Object Oriented Programming – Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.
- Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
- Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++] sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
- Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).
Kekurangan
- Tulis sekali, perbaiki di mana saja – Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
- Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena koe 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.
- 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.
Java 2 Micro Edition (J2ME)
J2ME adalah bagian dari Java 2 Standard Edition (J2SE) yang digunakan untuk implementasi pada perangkat genggam seperti seperti hand phone, PDA (Personal Digital Assistant), Palm, PocketPC, Smart-Phone hingga PDA-Phone yang tidak mampu mendukung secara penuh implementasi menggunakan J2SE. Perangkat tersebut memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei, layar yang kecil dan bandwith jaringan yang rendah.
J2ME diterjemahkan oleh VM. Program dikompile ke dalam bytecode dan diterjemahkan denga Java Virtual Machine (JVM). Ini berarti bahwa program-program tersebut tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda.
J2ME terbagi menjadi 3 bagian yaitu :
Configuration
Bagian yang berisi JVM dan beberapa library kelas lainnya. Ada dua jenis konfigurasi yaitu CDC (Connected Device Configuration) dan CLDC (Connected Limited Device Configuration). Configuration menggambarkan fitur minimal dari lingkungan lengkap Java runtime. Untuk menjamin kemampuan portabilitas dan interoperabilitas optimal diantara berbagai macam perangkat yang dibatasi sumber dayanya (memory, prosesor, koneksi yang dibatasi), configuration tidak menggambarkan fitur tambahan. Suatu configuration J2ME menggambarkan suatu komplemen yang minimum dari teknologi JAVA.
Profile
Bagian perluasan dari konfigurasi artinya selain sekumpulan kelas yang ada di konfigurasi, terdapat juga kelas lain yang lebih spesifik yang didefinisikan di dalam profil. Oleh karena itu profil akan membantu secara fungsional dengan menyediakan kelas-kelas yang tidak terdapat di konfigurasi.
Profile menggambarkan set-set tambahan dari API dan fitur untuk pasar tertentu, kategori perangkat atau industri. Sementara configuration menggambarkan library dasar, profile-profile menggambarkan library yang penting untuk membuat aplikasi-aplikasi efektif. Library ini memasukkan user interface, jaringan dan penyimpanan API.
Paket Opsional
Paket tambahan yang dibutuhkan oleh aplikasi sehingga pada saat proses deployment paket-paket tersebut perlu didistribusikan sebagai bagian dari aplikasi yang bersangkutan. Paket tersebut bukan merupakan paket yang dibuat oleh perusahaan alat yang digunakan.
J2ME
• Java 2 Micro Edition adalah edisi Java untuk device
dengan kemampuan komputasi terbatas
– Nama J2ME digunakan sebagai “payung” untuk
aneka teknologi Java untuk device micro (di
antaranya adalah Personal Java, JavaCard, MIDP, dll
• Menggunakan bahasa Java yang sama, minus fitur
tertentu (baik fitur bahasa maupun API)
– fitur bahasa dan API yang ada dan tidak ada
tergantung dari konfigurasi (kemampuan) dan profil (jenis) device.
Cakupan J2ME
• Device yang bisa diprogram dengan
J2ME mulai dari smart card sampai PDA
• Masing-masing jenis device memiliki
kemampuan komputasi yang berbeda
– Smartcard memiliki memori <1Mb, dengan
kecepatan prosessor yang rendah
– PDA saat ini memiliki memori >8Mb dengan
kecepatan prosessor yang tinggi
– Device dengan kemampuan komputasi yang sama dibagi ke dalam