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 berbagai 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. Platform Java memilik tiga buah edisi yang berbeda yaitu JEE (Java Enterprise Edition), JSE (Java Second Edition) dan J2ME (Java Micro Edition). J2ME inilah yang digunakan pada perangkat berukuran kecil seperti ponsel.
CLDC dan MIDP
Pada J2ME terdapat kategori berdasarkan spesifikasi perangkat. Pada istilah pemrograman kategori ini bernama Configuration. Configuration adalah spesifikasi minimal sebuah perangkat yang menjadi target Java ME. Configuration terdiri dari sebuah virtual machine, sekumpulan API/library minimal yang harus disediakan perangkat tersebut. Saat ini Java ME mendefinisikan 2 jenis CLDC (Connected, Limited Device Configuration) dan CDC (Connected Device Configuration).
CLDC digunakan untuk perangkat jenis mobile phone dan PDA dengan koneksi jaringan yang intermiten (tidak selalu ada), memori terbatas dan prosesor yang lambat, umumnya memiliki prosesor16-bit atau 32 bit, dan memori minimal sebesar 192 KB. CDC digunakan untuk perangkat yang memiliki prosesor dan memori yang lebih besar dibandingkan CLDC, misalnya higher end PDA, TV set top boxes. Implementasi CDC dapat menggunakan JVM standar (Java SE), dengan perangkat yang memiliki memori sebesar 2MB atau lebih.
Selanjutnya terdapat kategori Profile. Profile adalah ekstensi dari Configuration, dengan menambahkan sekumpulan API (Application Programming Interface) tambahan yang umum digunakan untuk jenis kebutuhan tertentu. Profile juga mendefinisikan life cycle aplikasi, antar muka pengguna dan akses ke fitur lainnya dari sebuah perangkat. Profile yang umum digunakan adalah MIDP (Mobile Information Device Profile), FP (Foundation Profile), dan PP (Personal Profile).
MIDP adalah profile yang ditargetkan untuk perangkat ponsel serta low-end PDA. MIDP mendefinisikan fungsionalitas aplikasi dasar, seperti tampilan antar muka pengguna, konektivitas dasar, serta penyimpanan data lokal. Aplikasi MIDP disebut sebagai MIDlet.
FP adalah layer yang paling dasar yang tersedia pada CDC. FP menyediakan layanan konektivitas jaringan untuk aplikasi pada CDC yang memerlukan konektivitas tanpa harus memiliki GUI (Graphical User Interface). PP adalah layer pada CDC yang menyediakan dukungan GUI.
CLDC, sebagai framework dari Java, muncul pertama kali dalam versi 1.0. Namun seiring perkembangannya dimana versi 1.0 memiliki banyak kekurangan, versi 1.1 muncul dan menjadi versi terbaru hingga saat ini.
CLDC 1.1 adalah versi revisi dari spesifikasi CLDC 1.0, dan mencakup fitur-fitur baru seperti Floating Point dan dukungan referensi yang lemah. CLDC 1.1 kompatibel dengan CLDC 1.0, dan terus menargetkan ke perangkat kecil dan sumber daya terbatas.
MIDP juga mengalami perkembangan dari versi awal 1.0 menjadi 2.0. Dimana pada umumnya MIDP 1.0 berjalan pada framework CLDC 1.0 dan versi revisi MIDP 2.0 berjalan pada framework CLDC 1.1. Dimana perbedaan MIDP 2.0 dengan MIDP 1.0 adalah sebagai berikut:
Spesifikasi untuk MIDP 1.0
1. Memiliki minimal resolusi layar 96x€54 pixel.
2. Memiliki minimal 128kB memori nonvolatile untuk mengimplementasikan MIDP.
3. Memiliki minimal 32kB memori volatile untuk JVM heap space.
4. Memiliki minimal 8kB memori novolatile dari aplikasi untuk menyimpan data persistent.
5. Mendukung beberapa tipe dari mekanisme input.
6. Mendukung untuk network connectivity.
7. Sistem Operasi harus menyediakan minimal scheduling, exception handling dan interrupt processing.
8. Sistem Operasi harus mendukung penulisan grafik gambar (bitmap) untuk tampilan.
Adapun spesifikasi MIDP 2.0 merupakan pengembangan dari MIDP 1.0. Secara singkat MIDP 2.0 adalah MIDP 1.0 + API untuk multimedia. Kebutuhan memori pun bertambah, minimal 256kB memori nonvolatile dan 128kB memori volatile. MIDP 2.0 juga kompatibel atau bisa menjalankan aplikasi MIDP 1.0. Untuk spesifikasi lainnya adalah:
Keamanan Networking dengan HTTPS | Push aplikasi dengan class javax.microedition.io.PushRegistry | Communication Serial Port telah standarisasi | Pengembangan aplikasi nirkabel dengan Over-the-Air provisioning (OTA) | Lebih baik untuk aplikasi game dengan package javax.microedition.lcdui.game | Akses ke kamera dan perekaman Video | Mendukung aneka format Audio dan Video | Memiliki batasan minimum hardware yang lebih tinggi. RY