Home » » Sejarah dan Perkembangan Java Programming

Sejarah dan Perkembangan Java Programming

Minggu, 06 Mei 2012 | 0 komentar

Pengertian java
Java menurut definisi dari Sun Microsystem adalah nama untuk sekumpulan teknologi untuk membuat dan menjalanakan perangkat lunak pada komputer standalone ataupun pada lingkungan jaringan (Salahuddin, M., A.S. Rosa, 2010). Java2 adalah generasi kedua dari Java Platform (generasi awalnya adalah Java Development Kit). Java berdiri di atas mesin interpreter yang diberi nama Java Virtual Machine (JVM). JVM inilah yang akan membaca bytecode dalam file .class dari suatu program sebagai representasi langsung program yang berisi bahasa mesin. Oleh karena itu, bahasa Java disebut sebagai bahasa pemograman yang portable karena dapat dijalankan pada berbagai sistem operasi, dengan syarat sistem operasi tersebut terdapat JVM (Java Virtual Machine).
Platform Java terdiri dari kumpulan library, JVM, kelas-kelas loader yang dipaket dalam sebuah lingkungan rutin Java, dan sebuah compiler, debuger dan kakas lain yang dipaket dalam Java Development Kit (JDK). Agar sebuah program Java dapat dijalankan, maka file dengan ekstensi .java harus dikompilasi menjadi file bytecode. Untuk menjalankan bytecode tersebut dibutuhkan JRE (Java Runtime Environment) yang memungkinkan pemakai untuk menjalankan program Java, hanya menjalankan tidak untuk membuat kode baru lagi. JRE berisi JVM dan library Java yang digunakan, untuk lebih jelasnya dapat dilihat pada gambar 2.1.
Gambar:J2SE Version 5


Platform Java memiliki tiga buah edisi yang berbeda yaitu J2SE (Java2 Second Edition), J2ME (Java2 Micro Edition) dan J2EE (Java2 Enterprise Edition). J2EE adalah kelompok dari beberapa API (Application Program Interface) dari Java dan selain java. J2EE dibuat untuk membuat aplikasi yang kompleks, J2EE sering disebut sebagai midleware atau teknologi yang berjalan dilingkungan server, namun sebenarnya J2EE tidak hanya terbatas untuk lingkungan server. Faktanya J2EE juga mencangkup teknologi yang dapat digunakan di semua lapisan dari sebuah sistem informasi. Implementasi J2EE menyediakan kelas dasar dan API dari Java yang mendukung pengembangan dan rutin standard untuk aplikasi clinet maupun server, termasuk aplikasi yang berjalan di web browser. Ruang lingkup keterhubungan J2EE, J2ME, dan J2SE dapat dilihat pada gambar berikut.

Gambar:Arsitektur Hubungan J2SE, J2ME dan J2EE

Sejarah Perkembangan Java
Bahasa pemrograman Java terlahir 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 lain 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. Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).

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
Adapun yang menjadi kelebihan bahasa Java dibandingkan dengan bahasa pemograman yang lainya adalah sebagai berikut:
  1. 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.
  2. OOP (Object Oriented Programming - Pemrogram Berorientasi Objek)
  3. 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.
  4. 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 Serikat 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.
  5. 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
Selain menjadikan bahasa java menjadi bahasa yang multiplatform serta kelebihan-kelebihan yang lainya, namun bahasa Java juga memiliki beberapa kekurangan diantaranya:
  1. Tulis sekali, jalankan 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.
  2. Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode 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.
  3. 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.

Java2 Second Edition (J2SE)
J2SE adalah inti dari bahasa pemograman Java. JDK (Java Development Kit) adalah salah satu tool dari J2SE untuk mengkompilasi dan menjalankan program java. Di dalamnya terdapat tool untuk mengkompilasi program Java dan JRE (Java Runtime Environment). Tool J2SE yang salah satunya adalah JDK 1.5 (Java Development Kit) dapat didownload pada http://oracle.com/j2se/, JDK merupakan tool open source dari sun.

Java2 Micro Edition (J2ME)
Java2 Micro Edition atau biasa disebut J2ME adalah lingkungan pengembangan yang didesain untuk meletakkan perangkat lunak java pada perangkat elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat lunka berfungsi baik pada sebuah perangkat maka belum tentu juga berfungsi pada perangkat yang lainya. J2ME membawa java kedunia informasi, komunikas, dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada telepon seluler, pager, Personal Data Assistants (PDA’s) dan sejenisnya.
J2ME adalah bagian dari J2SE, karena tidak semua library yang ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimiliki J2SE. Arsitektur J2ME dapat dilihat pada gambar berikut:

Gambar: Arsitetur J2ME

Teknologi J2ME juga memiliki beberapa keterbatasan, terutama jika diaplikasikan pada ponsel. J2ME sangat tergantung pada perangkat (device) yang digunakan,dapat dilihat dari segi merek ponsel, maupun kemampuan ponsel, dan dukungan terhadap teknologi J2ME. Keterbatasan lainya adalah pada ukuran aplikasi, karena memori pada ponsel sangat terbatas. Sebagian besar ponsel tidak mengijinkan aplikasi J2ME menulis pada file karena alasan keamanan.

Configuration merupakan Java Library minimum dan kapabilitas yang dimiliki oleh para pengembang J2ME, yang maksudnya sebuah mobile device dengan kemampuan java akan dioptimalkan untuk menjadi sesuai. Configuration hanya mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran kesesuaiaan antar-device. Dalam J2ME telah didefinisikan dua buah konfigurasi yaitu CLDC (Connected Limited Device Configuration) untuk perangkat kecil dan CDC (Connected Device Configuration) untuk perangkat yang lebih besar. Lingkup CLDC dan CDC dapat dilihat pada gambar.
Gambar:Lingkup Configuration

Profile berbeda dengan configuration, profile membahas suatu yang spesifik untuk sebah perangkat. Dalam J2ME terdapat dua buah profile yaitu MIDP dan Foundation Profile. Keterhubunggan antara configuration dan profile yang ada pada J2ME beserta jenis mesin virtualnya dapat dilihat pada gambar.

Gambar:Hubungan J2ME dan J2SE

Connected Limited Device Configuration (CLCD)
CLDC atau Connected Limited Device Configuration adalah perangkat dasar J2ME, spesifikasi dasar yang berupa library dan API yang diimplementasikan pada J2ME, seperti yang digunakan pada telepon selular, pager, dan PDA. Perangkat tersebut dibatasi dengan keterbatasan memori, sumber daya, dan kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal dari package, kelas, dan berbagai fungsi JVM (Java Virtual Machine) yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat-alata tersebut, JVM yang digunakan disebut KVM (Kilobyte Virtual Machine). Posisi CLDC pada arsitektur J2ME dapat dilihat pada gambar di bawah ini:

Gambar:Arsitektur J2ME

Connected Device Configuration (CDC)
CDC atau Connected Device Configuration adalah spesifikasi dari konfiguration J2ME. CDC merupakan kumpulan proses pada Java yang memiliki standarisasi, CDC terdiri dari virtual machine dan kumpulan library dasar untuk dipergunakan pada profile industri. Implementasi CDC pada J2ME adalah source code yang menyediakan sambungan dengan berbagai macam platform. Berikut ini adalah tabel perbandingan antara CLDC dan CDC:


Mobile Information Device Profile (MIDP)
MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profile J2ME. MIDP memiliki lapisan diatas CLDC, API tambahan untuk daur hidup aplikasi, antarmuka, jaringan, dan penyimpanan presisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan MIDP 2.0 dibandingkan dengan MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat dukungan memainkan tone, tone squence, dan file WAV walaupun tanpa adanya Mobile Media API (MMAPI). Posisi MIDP pada arsitektur J2ME dapat dilihat pada tabel berikut ini:


MIDP User Interface API memiliki API level tinggi dan level rendah, API level rendah berbasiskan penggunaan dari kelas abstrak Canvas, sedangkan API level tinggi antara lain Alert, Form, List, dan TextBox yang merupakan ekstensi dari kelas abstrak Screen. API level rendah memberikan kemudahan kepada pengembang untuk memodifikasi sesuai dengan kehendaknya, sedangkan API level tinggi biasanya hanya memberikan pengaksesan yang terbatas. Arsitekrut antarmuka MIDP dapat dilihat pada gambar. 

 Gambar: MIDP User Interface

KVM adalah paket JVM yang didesain untuk perangkat yang kecil, KVM mendukung sebagian fitur-fitur JVM seperti KVM tidak mendukung operasi floating-point dan finalisasi objek. KVM diimplementasikan dengan menggunakan C sehingga sangat mudah beradaptasi pada tipe platform yang berbeda. Posisi KVM pada arsitektur J2ME dapat lihat pada gambar.

Sumber: Salahuddin, S. A.S. Rosa, Pemograman J2ME, Jakarta, 2010:9)


C-Virtual Machine (CVM)
CVM adalah paket JVM optimal yang digunakan pada CDC. CVM mempunyai seluruh fitur dari virtual machine yang didesain untuk perangkat yang memerlukan fitur-fitur Java Virtual Machine.

MIDlet
MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah bagian dari kelas javax.microedition.midlet. MIDlet yang didefinisikan pada MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan subkelas dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi J2ME dan manajemen pada perangkat dapat terbentuk.
Dalam implementasinya, MIDlet memiliki struktur direktori sebagai berikut:
  1. src, Menyimpan source code untuk MIDlet dan kelas lain yang diperlukan.
  2. res, Menyimpan sumber daya yang dibutuhkan oleh MIDlet, seperti gambar icon.
  3. lib, Menyimpan file JAR, atau ZIP yang berisi library tambahan yang dibutuhkan MIDlet.
  4. bin, Menyimpan file JAR, JAD, dan file manifest yang berisi muatan komponen MIDlet. MIDlet juga memiliki Atribut package sebagai berikut:


J2ME Wireless Toolkit
J2ME Wireless Toolkit (WTK) adalah aplikasi yang menyediakan lingkungan emulator, dokumentasi berserta contoh-contoh aplikasi java untuk aplikasi kecil (small device). J2ME WTK berbasiskan pada CLDC dan MIDP. J2ME WTK adalah program yang meniru kerja ponsel yang mendukung MIDP atau biasa disebut emulator. Oleh karena itu, belum tentu MIDlet yang berjalan di emulator dapat berjalan pada ponsel sebenarnya, karena bergantung pada kemampuan dan kapabilitas ponsel yang digunakan.
Share this article :

Tidak ada komentar:

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2012. MethaPhore++ - All Rights Reserved
Template Modify by Creating Website
Proudly powered by Blogger