Minggu, 11 Januari 2009

Keunggulan Java

Salah satu keunggulan Java adalah sifatnya yang 'platform independence', artinya Java - baik source program maupun hasil kompilasinya - sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan. Source code sebuah aplikasi dengan bahasa Java yang ditulis di atas sistem Windows NT misalnya, dengan gampang dapat dipindahkan ke sistem operasi UNIX tanpa harus mengedit satu baris kode-pun. Ini tentunya merupakan satu nilai tambah tersendiri. Bandingkan dengan bahasa C/C++ misalnya, jika kita bekerja pada UNIX FreeBSD dan ingin memindahkannya pada HP UNIX, kita terkadang harus juga mengedit source code-nya sehingga sesuai dengan HP UNIX, walaupun keduanya masih berada dalam keluarga UNIX.

Dan yang lebih hebat lagi, bukan hanya source code-nya saja yang bisa dipindah-pindahkan antar sistem komputer, bahkan hasil kompilasinya pun bisa dijalankan di berbagai sistem komputer. Hal ini dimungkinkan dengan adanya bytecode. Setiap program yang ditulis dengan bahasa Java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang kelihatannya seperti kode mesin (machine code) tapi tidak spesifik untuk satu jenis prosesor tertentu.

Umumnya jika kita menulis program -misalnya dalam bahasa C++- pada satu sistem komputer -misalnya PC-, kompiler akan menterjemahkan source code kedalam bahasa mesin yang spesifik untuk prosesor yang ada di PC. Jika hendak dijalankan di sistem lain, Macintosh misalnya, maka source code harus dikompilasi lagi pada mesin Macintosh yang bersangkutan, dan terkadang harus melakukan pengeditan source code terlebih dahulu. Menjalankan hasil kompilasi dari platform Windows pada platform UNIX tidak akan pernah berhasil. Berikut ini ilustrasinya:

Hal yang berbeda terjadi pada lingkungan Java. Lingkungan Java terdiri dari dua bagian yaitu Java compiler dan Java interpreter. Java compiler menterjemahkan source code kedalam bytecode. Hasil kompilasi, yaitu program Java (berekstensi class), akan bisa dijalankan dengan bantuan Java interpreter. Java interpreter dapat dijalankan langsung (dari command prompt) maupun dari program applet viewer atau web browser (untuk applet). Kenapa harus bersusah payah menambahkan satu layer bytecode interpreter? Jawabnya adalah untuk memungkinkan program Java bisa dijalankan pada bermacam-macam sistem komputer asalkan pada sistem komputer itu terdapat Java interpreter.

Kelemahan dari penggunaan bytecode adalah kecepatan operasi yang lebih lambat daripada program-program biasa. Hal ini karena program-program yang ditulis pada bahasa pemrograman yang hardware-specific dapat langsung berjalan di atas hardware dimana ia dikompilasi.. Program bytecode harus diterjemahkan terlebih dahulu oleh interpreter baru dijalankan di atas hardware.

Karena keunggulan-keunggulan di atas, program Java sangat baik digunakan untuk aplikasi internet maupun intranet, mengingat komunitasi internet dan intranet biasanya menggunakan sistem operasi dan platform yang sangat berbeda-beda dalam mendapatkan dan memberikan informasi.

Sejarah Java

Sejarah java berawal pada tahun 1991 ketika perusahaan Sun Microsystem memulai Green Project, yaitu proyek penelitian untuk membuat bahasa yang akan digunakan pada chip-chip embedded untuk Device Intelligent Costumer Electonic. Bahasa tesebut haruslah bersifat multi platform, tidak tergantung pada vendor yang manufaktur chip tersebut.

Karena pada awalnya ditujukan untuk pemrograman yang berdevice kecil, Java memiliki karakteristik berukuran kecil, efisien, dan portable untuk berbagai hardware. Proyek Green sempat terancam berhenti karena dalam perkembanganya, device ini belum memilki pasar seperti diramalkan semula. Selanjutnya Java diarahkan untuk pemprograman internet. Secara kebetulan fitur-fitur Java yang telah disebutkan sebelumnya sangat sesuai bagi penggembangan internet sehingga dalam beberapa tahun belakangan ini Java telah menjadi primadona untuk pemprograman yang berbasis internet. (Benny Hermawan 2004:6)

pengertian java

Java menurut definisi dari Sun adalah nama untuk sekumpulan teknologi untuk membuat menjalankan perangkat lunak pada komputer standalone ataupun pada komputer dalam lingkungan jaringan. Java2 adalah generasi kedua dari Java platform (generasi awalnya adalah Java Development Kit). Platform Java memilik tiga buah edisi yang berbeda yaitu J2EE (Java2 Enterprise Edition), J2SE (Java2 Second Edition) dan J2ME (Java2 Micro Edition).

definisi lain:
Java adalah sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Java diciptakan setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara bermacam platform dan sistem operasi). Program yang dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang jalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter. Contoh program yang ditulis dengan bahasa Java adalah HotJava yang berupa sebuah web browser.

tentang j2me

Penjelasan tentang mengenai 2 Java 2 Platform, Micro Edition (J2ME)
Java 2 Platform, Micro Edition (J2ME) adalah salah satu dari produk Sun Microsystems. Java 2 Platform, Micro Edition (J2ME) merupakan bagian dari platform Java 2. Platform Java 2 sendiri terdiri dari tiga elemen, yaitu:
· Java programming language.
Bahasa pemrograman yang digunakan mirip dengan bahasa pemrograman C++ tetapi secara fundamental berbeda. C++ menggunakan pointer-pointer yang kurang aman dan mengharuskan programmer untuk mengalokasikan dan mengosongkan memori. Sedangkan Java menggunakan typesafe object references dan setiap memori yang tidak digunakan akan dikosongkan secara otomatis. Java juga mendukung multiple inheritance dengan konstruksi yang lebih baik, yaitu Interface.
· Java Virtual Machine.
Java Virtual Machine atau JVM adalah dasar dari platform Java. Arsitektur JVM menawarkan beberapa fitur menarik, salah satunya adalah JVM dapat diimplementasikan untuk berjalan pada berbagai macam operating system dan hardware. Ketika mengcompile sebuah program dengan C++ akan dihasilkan file executeable(*.exe) yang hanya dapat dijalankan pada Windows OS. Hal ini berbeda dengan Java, program akan dicompile dengan JIT-compiler dan menghasilkan bytecode. Bytecode inilah yang akan diterjemahkan oleh JVM dan dijalankan sebagai sebuah aplikasi.
· Application Programming Interfaces(API).
Dengan dukungan API yang luas, programmer dapat membuat berbagai macam program sesuai keinginannya dengan mudah dan cepat
Ketiga elemen di atas apabila disatukan akan membentuk platform Java. Java juga didesain untuk kompatibel dengan berbagai macam hardware komputer, mulai dari smart card hingga server. Java dibagi menjadi 3 edisi dan masing-masing memiliki fungsi yang berbeda, yaitu:
· Java 2 Platform, Standard Edition(J2SE)
J2SE didesain untuk digunakan pada komputer desktop atau PC. J2SE paling sering dijalankan pada OS X, Linux, Solaris, dan Microsoft Windows.
· Java 2 Platform, Enterprise Edition(J2EE)
J2EE adalah platform yang sangat luas untuk aplikasi multi-user dan banyak digunakan oleh perusahaan-perusahaan. J2EE berbasis pada J2SE dengan tambahan API untuk pemrograman sisi server.
· Java 2 Platform, Micro Edition(J2ME)
J2ME adalah satu set teknologi dan spesifikasi yang dikembangkan untuk perangkat kecil seperti pager dan hanphone. J2ME menggunakan subset dari komponen J2SE, seperti virtual machine yang lebih kecil dan API.
Berbeda dengan J2SE, J2ME bukanlah sebuah software atau sebuah spesifikasi tunggal. Perbedaan ini mungkin sangat membingungkan, bahkan untuk developer yang sudah mengenal J2SE. J2ME adalah sebuah platform, sebuah kumpulan dari teknologi dan spesifikasi yang didesain untuk perangkat kecil.

Karena J2ME mendukung banyak perangkat, tidak mungkin untuk membuat solusi “satu ukuran untuk semua”. Oleh karena itu, J2ME dibagi-bagi menjadi Configuration, Profiles, dan Package optional. Configurations adalah spesifikasi yang menjabarkan sebuah virtual machine dan satu set API dasar yang dapat digunakan dengan beberapa perangkat tertentu. Sebuah Configuration, sebagai contoh, mungkin ditujukan untuk perangkat yang memiliki memori dibawah 512KB dan koneksi jaringan yang naik turun. Virtual machine dapat berupa Java Virtual Machine lengkap atau berupa bagian dari Java Virtual Machine.
Sebuah profile dibangun berdasarkan Configuration, ditambah API yang lebih spesifik untuk membuat sebuah environment lengkap untuk pembuatan aplikasi. Walaupun sebuah Configuration mendeskripsikan sebuah JVM dan satu set API dasar, tetapi masih kurang untuk menspesifikasikan cukup detail untuk pembuatan aplikasi. Profile biasanya menyertakan API untuk siklus hidup, user interface dan persistent storage suatu aplikasi.
Sebuah optional Package menyediakan fungsionalitas yang mungkin tidak berhubungan dengan Configuration atau Profile tertentu. Sebuah contoh untuk optional Package adalah Bluetooth API(JSR 82), yang menyediakan API standar untuk mengakses jaringan Bluetooth. Optional Package ini dapat diimplementasikan dengan kombinasi Configuration dan Profile lainnya.


Lingkungan Java

gambar 1.1 lingkungan java

Pengertian j2me

J2ME adalah lingkungan pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang elektonik beserta perangkat pendukungnya. J2ME membawa Java kedunia informasi, komunikasi, dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada ponsel, peger, PDA dan sejenisnya.(M. Salahuddin, Rosa A.S, 2006:5).

Menurut (Budi Raharjo 2007:3) J2ME merupakana kombinasi yang terbentuk antara sekumpulan interface Java yang sering disebut Java API (application Programming Interface) dengan JVM (Java Virtual Machine) yang didisain khusus untuk alat, yaitu JVM dengan ruang yang terbatas. Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat berjalan diatas alat (dalam hal ini mobile device).

Beberapa keterbatasan teknologi J2ME jika diaplikasikan pada ponsel antara lain:

· J2ME sangat tergantung pada perangkat (device) yang digunakan, bisa dari segi merek ponsel, maupun kemampuan ponsel dan dukungan terhadap J2ME.

· Ukuran aplikasi, memory ponsel yang terbatas.

· Sistem kemanan yang dibuat oleh ponsel yang tidak mengijinkan aplikasi J2ME menulis pada ponsel tersebut.

J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada pada J2SE dapat

digunakan pada J2ME, tetapi J2ME mempunyai beberapa library khusus yang tidak J2SE.

Sekilas CLDC

CLDC atau Connected Limeted Device Configuration adalah perangkat dasar dari J2ME, spesifikasi dasar yang berupa library dan API yang diimplementsikan pada J2ME seperti yang digunakan pada telepon sellular, pager, dan PDA. Perangkat tersebut dibatasi oleh keterbatasan memory sumber daya, kemampuan memproses. Spesifikasi CLDC pada J2ME adalah spesifikasi minimal dari package, kelas dan sebagai fungsi Java Virtual Machine yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat-alat tersebut, JVM yang digunakan disebut KVM (Kilobyte Virtual Machine)

Mobile Information Device Profile (MIDP)

MIDP adalah spesifikasi untuk sebuah profile J2ME. MIDP memiliki lapisan diatas CLDC , API tambahan untuk daur hidup aplikasi, antarmuka, jaringan dan penyimpanan persisten. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. fitur tambahan MIDP 2.0 dibanding MIDP 1.0 adalah API untuk multimedia. Pada MIDP 2.0 terdapat dukungan memainkan tone, tone sequence, dan file wav walaupun tanpa adanya Mobile Media API (MMAPI).

MIDP memiliki User Interface API memiliki API level tinggi dan level rendah. API level rendah berbasiskan penggunaan dari kelas abstrak, sedangkan kelas API level tinggi antara lain Alert, Form, List, dan Texbox yang merupakan ekstensi dari kelas abstrak yaitu Screen. API level rendah lebih memberikan kemudahan kepada pengembang untuk memodifikasi sesuai dengan kehendaknya, sedangkan API level tinggi biasanya hanya memberikan pengaksesan yang terbatas.

Object Oriented Programming (OOP)

Menurut (Adi Nugroho 2005:4) pemprograman berorientasi objek adalah suatu cara baru dalam berfikir serta berlogika dalam menghadapi masalah-masalah yang akan dicaoba-diatasi dengan bantuan komputer.

Menurut (Sholiq 2006:21) Objek oriented merupakan paradigma baru dalam rekayasa perangkat luak yang memandang system sebagai kumpulan objek-ojek diskrit yang ssalng berinteraksi. Yang dimaksud berorientasi objek adalah bahwa mengorganisasikan prangkat lunak sebagi kumpulan objek-objek diskrit yang bekerjasama antara informasi atau struktur data dan prilaku yang mengatur.