Kamis, 01 Januari 2009

Celine Dion - I'm A Live


Materi J2ME

1. Definisi J2ME (Java 2 Micro Edition)

J2ME merupakan subset dari J2SE (Java 2 Enterprise Edition) yang digunakan untuk menangani pemrograman di dalam perangkat-perangkat kecil, yang tidak memungkinkan untuk mendukung implementasi J2SE secara penuh. J2ME juga merupakan sebuah kombinasi yang terbentuk antara sekumpulan interface Java yang sering disebut dengan Java API (Application Programming Interface) dengan JVM (Java Virtual Machine) yang didesain khusus untuk alat, yaitu JVM dengan ruang yang terbatas. Kombinasi tersebut kemudian digunakan untuk melakukan pembuatan aplikasi-aplikasi yang dapat berjalan di atas alat (dalam hal ini mobile device).

2. J2ME Wireless Toolkit.

J2ME Wireless Toolkit adalah sekumpulan tool yang digunakan untuk mengembangkan aplikasi-aplikasi dalam handphone dan wireless device lainnya.

3. MIDlet.

MIDlet adalah sebutan untuk aplikasi-aplikasi yang dibuat di dalam handphone dengan menggunakan profile MIDP (Mobile Information Device Profile).

Setiap aplikasi MIDlet harus merupakan turunan dari kelas MIDlet, yaitu kelas abstrak yang didefinisikan di dalam paket javax.microedition.midlet. Kelas abstrak ini memiliki tiga buah method yang harus di-override oleh kelas-kelas turunannya. Adapun ketiga buah method adalah sebagai berikut :

Nama Method

Kegunaan

startApp()

Untuk melakukan alokasi ruang memori yang dibutuhkan dan juga melakukan inisialisasi terhadap aplikasi.

pauseApp()

Untuk menghentikan aplikasi.

destroyApp()

Untuk membuang resource yang digunakan.

Kelas Command

Kelas Command adalah sebuah konstruksi yang membungkus semua hal-hal atau informasi-informasi yang berkaitan dengan sebuah aksi. Perilaku dari aksi itu sendiri tidak dibungkus di dalam objek Command, melainkan harus didefinisikan secara eksplisit melalui method commandAction(), yaitu method yang harus didefinisikan pada saat kita mengimplementasikan interface commandListener. Ini artinya, objek Command hanya berisi informasi tentang perintah, bukanlah sebuah aksi actual yang terjadi pada saat objek Command diaktivasi. Aksi-aksi yang telah didefinisikan pada interface commandListener kemudian akan diasosiasikan dengan layer aktif sehingga objek-objek Command yang terdapat pada layer tersebut dapat diaktivasi sesuai dengan kebutuhan. Berikut ini daftar tipe yang dapat digunakan pada saat membentuk objek Command :

Tipe

Nilai Yang Dimasukkan

Keterangan

BACK

2

Objek Command yang digunakan untuk melakukan navigasi ke layer sebelumnya.

CANCEL

3

Objek Command yabg berperan sebagai jawaban negative dari sebuah dialog box di dalam suatu layer tertentu.

EXIT

7

Objek Command yang digunakan untuk keluar dari aplikasi

HELP

5

Objek Command yang menentukan permintaan untuk menampilkan online-help.

ITEM

8

Objek Command yang digunakan untuk menghubungkan aksi dalam suatu Command dengan item di dalam sebuah layer.

OK

4

Objek Command yang berperan sebagai jawaban positif dari sebuah dialog box di dalam suatu layer tertentu.

SCREEN

1

Objek Command yang diaplikasikan untuk layer (screen) tertentu.

STOP

6

Objek Command yang akan menghentikan proses-proses atau operasi-operasi yang sedang berjalan, dan sejenisnya.

Kelas Alert

Alert adalah kelas turunan dari kelas Screen yang mempresentasikan layer informasi pada saat kondisi-kondisi tertentu selama aplikasi MIDP dieksekusi. Untuk memudahkan pemahaman, objek Alert yang terdapat dalam MIDlet ini seperti sebuah kotak dialog dengan tombol-tombol tertentu (misalnya tombol Yes/ No) yang terdapat pada aplikasi-aplikasi desktop (aplikasi PC). Alert dimunculkan untuk menampilkan informasi atau pesan-pesan tertentu : seperti pesan peringatan, konfirmasi, dan juga pesan kesalahan (error). Pada umumnya Alert akan hanya akan dimunculkan untuk selang waktu tertentu.

Terdapat dua buah constructor untuk kelas Alert, yaitu sebagai berikut :

Alert(String title)

Alert(String title, String alertText, Image alertImage, AlertType alertType)

Keterangan :

Constructor pertama akan melakukan instansi objek Alert dengan isi judul yang diberikan sebagai parameternya. Sedangkan bentuk constructor kedua, kita diizinkan untuk menempatkan pesan teks, gambar dari tipe Alert yang akan ditampilkan.

Kelas List

Kelas List merupakan kelas turunan dari kelas Screen yang akan menampilkan daftar item pilihan yakni kita dapat melakukan scroll terhadap item-item tersebut. Namun perlu diketahui, bahwa operasi scroll tidak akan menimbulkan event aplikasi. Artinya, pada saat kita melakukan scroll terhadap item tersebut. Kita baru dianggap memilih bila kita melakukan, penekanan tombol select maupun menu Command yang disediakan oleh alat (emulator) yang digunakan.

Bentuk constructor dari kelas List adalah sebagai berikut :

List(String title, int ListType)

List(String title, int ListType, String[] choices, Image[] images)

Pada bentuk constructor pertama di atas, kita membuat sebuah objek List kosong yang hanya memiliki judul dan tipe saja. Artinya, item-item di dalamnya dapat kita manipulasi sendiri melalui kode program, yaitu denagn menggunakan method-method yang tampak pada table berikut :

Nama Method

Kegunaan

append()

Menambah item dengan menempatkannya di posisi terakhir.

insert()

Menambah item dan menempatkannya diposisi sebelum posisi item aktif (item yang sedang dipilih).

delete()

Menghapus item yang sedang dipilih.

deleteAll()

Menghapus semua item yang terdapat dalam objek List.

Adapun bentuk constructor kedua terdapat dua buah parameter tambahan, yaitu choices yang digunakan untuk melewatkan item-item yang akan diisikan dan images yang berfungsi untuk menyimpan daftar icon untuk item-item yang telah dimasukkan.

Terdapat tige tipe dari kelas List, yaitu seperti yang ditunjukan oleh table berikut :

Tipe

Keterangan

EXCLUSIVE

List ini berupa radio button, yakni user hanya dapat memilih satu pilihan.

MULTIPLE

List ini berupa list yang di dalamnya terdapat check box, user diizinkan untuk memilih beberapa pilihan.

IMPLICIT

List ini berupa list standar yang umumnya banyak digunakan.

Kelas TextBox

Kelas TextBox merupakan kelas turunan dari kelas Screen yang mempresentasikan sebuah kotak yang dapat digunakan untuk mengisikan teks. Dalam telepon selular, aplikasi tentu akan menampilakn sebuah layer kosong yang meminta Anda untuk mengisikan teks atau pesan yang akan dikirimkan tersebut. Layar yang tampil tersebut sebenarnya dibuat dengan menggunakan objek TextBox.

Constructor dari kelas TextBox memiliki bentuk sebagai berikut :

TextBox(String title, String text, int maxSize, int constraints)

Adapun daftar field yang terdapat dalam kelas TextBox, adalah sebagai berikut :

Nama Filed

Keterangan

ANY

User diizinkan untuk menulis sembarang karakter atau teks apa pun.

EMAILADDR

User hanya diizinkan untuk menulis teks yang berupa alamat email.

NUMERIC

User hanya diizinkan untuk menulis bilangan bulat, namun karakter pertama dapat berupa tanda minus (untuk bilangan negative).

PASSWORD

Teks yang ditulis oleh User akan ditampilkan dalam bentuk karakter sandi (biasanya karakter “*”), sehingga teks tidak dapat dibaca oleh orang lain.

PHONENUMBER

User hanya diizinkan untuk menulis nomor telepon.

URL

User hanya diizinkan untuk menulis alamat web atau URL (Uniform Resource Locator).

Kelas Form

Kelas Form dapat dikatakan sebagai kelas yang paling serba guna. Pasalnya, kita dapat menempatkan beraneka ragam control (turunan dari kelas Item) ke dalam objek Form, misalnya seperti : objek TextField, DataField, StringItem, ImageItem, dan lainnya..

Kelas Form memiliki dua buah constructor, yaitu sebagai berikut :

Form(String title)

Form(String title, Item[] item)

ChoiceGroup

Kelas ChoiceGroup sangat mirip dengan kelas List; kedua kelas tersebut sama-sama menimplementasikan interface Choice, yang memiliki banyak method-method esensial untuk proses pemilihan item dari suatu daftar tertentu. Perbedaanya objek ChoiceGroup tidak dapat berdiri sendiri untuk dijadikan layar aktif melalui method setCurrent() yang terdapat pada kelas Display, sedangkan objek List bisa. Objek ChoiceGroup harus ditempatkan ke dalam objek Form, dan objek Form inilah yang nantinya akan kita jadikan sebagai layar aktif. Kelas ChoiceGroup memiliki 3 buah constructor. Berikut ini bentuk umum constructor dari kelas ChoiceGroup :

ChoiceGroup(String label, int type)

ChoiceGroup(String label, int type, String[] choices, Image[] images)

Nilai-nilai yang diperbolehkan untuk mengisikan parameter type di dalam kelas ChoiceGroup adalah MULTIPLE, EXPLICIT, dan POPUP. Nilai POPUP digunakan untuk menjadikan sebuah objek ChoiceGroup tampil dalam bentuk combo box.

Kelas Canvas

Canvas adalah kelas dasar (base class) untuk semua kelas yang membutuhkan control tingkat rendah (low-level) dan proses penggambaran. Canvas adalah sebuah kelas abstrak sehingga perlu untuk diperluas. Artinya, kelas-kelas turunan Canvas harus mengimplementasikan method paint(). Canvas juga memiliki objek Command.

Kelas Graphics

Kelas Graphics menyediakan method-method untuk penggambaran aktual di dalam objek Canvas. Objek dari kelas Graphics biasanya dilewatkan pada method paint() dari kelas Canvas. Kita tidak pernah memanggil method paint() atau melakukan instansiasi terhadap kelas Graphics secara langsung dalam aplikasi yang kita buat. Tugas-tugas semacam itu sudah ditangani oleh Java runtime.

Berikut ini method-method umum yang sering digunakan di dalam kelas Graphics untuk melakukan penggambaran di atas objek Canvas.

public void setColor(int red, int green, int blue)

public void setColor(int RGB)

public void setGrayScale(int value)

public void setStrokeStyle(int style)

public void setFont(Font font)

Terdapat beberapa method penggambaran yang dimiliki oleh kelas Graphics. Method-method tersebut digunakan untuk keperluan menggambar objek-objek berikut :

  • Garis
  • Outline dari bentuk geometri seperti lingkaran dan segiempat ( tanpa warna di dalamnya)
  • Bentuk-bentuk geometri yang mengandung warna di dalamnya
  • Teks
  • File gambar

Adapun method-method yang dimaksud adalah sebagi berikut :

public void drawChar(char c, int x, int y, int anchor)

public void drawChars(char[] data, int x, int y, int anchor)

public void drawString(String str, int x, int y, int anchor)

public void drawSubString(String str, int offset, int len, int x, int y, int anchor)

public void drawImage(Image img, int x, int y, int anchor)

public void drawLine(int x1, int y1, int x2, int y2)

public void drawArc(int x1, int y1, int width, int height, int StartAngel, int arcAngel)

public void fillArc(int x1, int y1, int width, int height, int StartAngel, int arcAngel)

public void drawRect(int x1, int y1, int width, int height)

public void drawRoundRect(int x1, int y1, int width, int height, int arcWidth, int arcHeight)

public void fillRoundRect(int x1, int y1, int width, int height, int arcWidth, int arcHeight)

public void fillTriAngle(int x1, int y1, int x2, int y2, int x3, int y3)

Parameter anchor menandakan bahwa objek akan digambar secara relatif dari lokasi yang ditentukan. Nilai-nilai dari parameter anchor adalah field statik yang didefinisikan dalam kelas Graphics. Berikut ini adalah daftar dari nilai-nilai tersebut.

Nilai

Keterangan

BASELINE

Garis dasar atau pangkal dari teks.

BOTTOM

Di bawah teks atau gambar.

TOP

Di atas teks atau gambar.

LEFT

Di sebelah kiri teks atau gambar.

RIGHT

Di sebelah kanan teks atau gambar.

VCENTER

Di tengah-tengah (secara vertical) teks atau gambar.

HCENTER

Di tengah-tengah (secara horizontal) teks atau gambar.

Record Management System (RMS)

Midlet dalam menyimpan data / informasi dalam sebuah memori non-volatile (memori tetap) atau yang disebut dengan Record Management System (RMS).

RMS adalah sekumpulan record dan record disimpan sebagai array dari byte sebuah record store. RMS memiliki orientasi record basis data yang sederhana sehingga memungkinkan menyimpan informasi dan mengaksesnya.

Pada konsepnya, record yang disimpan dalam record store diakses berdasarkan recordId yang berupa integer. RecordId ini biasanya digunakan untuk mengakses record seperti pada pengaksesan array.

Metode-metode dalam mengambil informasi dari record store adalah sebagai berikut :

Metode

Keterangan

static RecordStore openRecordStore(String recordstorename, boolean createIfNecessary)

Membuka Record Store atau secara otomatis membuat sebuah record store jika belum ada (bergantung pada boolean masukan)

void closeRecordStore()

Menutup record store

static void deleteRecordStore(String recordStoreName)

Menghapus RecordStore

static String[] listRecordStores()

Mengembalikan list dari record store yang dapat diakses oleh Midlet.

int addRecord(byte[] data, int offset, int numByte)

Menambahkan record data mulai dari indeks offset sepanjang numbytes

void setRecord(int recordId, byte[] newData, int offset, int numBytes)

Mengganti record dengan id recordId, diganti dengan newdata dimulai dari indeks offset sepanjang numBytes.

void deleteRecord(int recordId)

Menghapus sebuah record dengan id recordId

byte[] getRecord(int recordId)

Mengembalikan array byte record dengan id recordId

int getRecord(int recordId, byte[] buffer, int offset)

Menyalin record dengan id recordId ke array masukan mulai dari indeks offset

RecordEnumeration enumerteRecords(RecordFilter filter, RecordComparator comparator, boolean keepUpdated)

Membangun sebuah enumerasi untuk mengambil record dan record store

void addRecordListener(RecordListener listener)

Mengembalikan sebuah listener untuk mendeteksi even yang diakibatkan perubahan record.

void removeRecordListener(RecordListener listener)

Menghapus Listener

long getLastModified()

Mengembalikan waktu terakhir dimodifikasi

String geName()

Mengembalikan nama dari record store

int getNextRecordID()

Mengembalikan nilai integer dari penanda record selanjutnya, biasanya digunakan untuk mengetahui indeks dari operasi penambahan record

Int getNumRecords()

Mengembalikan jumlah record yang berada pada record store.

int getRecordSize(int recordId)

Mengembalikan nilai ukuran dalam bentuk byte dari record dengan id masukan (recordId)

int getSize()

Mengembalikan nilai ukuran record store dalam byte.

int getSizeAvailable()

Mengembalikan nilai ukuran maksimum yang boleh dipergunakan dalam record store

int getVersion()

Mengembalikan versi terakhir dari record store

Exception

Keterangan

InvalidRecordIDException

Mengeluarkan pesan kesalahan jika record dengan id record yang dicari tidak ada dalam record store

RecordStoreFullException

Mengeluarkan pesan kesalahan jika memasukan atau mengubah sebuah record sedangkan kondisi record store sudah penuh

RecordStoreNotFoundException

Mengeluarkan pesan kesalahan jika saat membuka atau menghapus sebuah record store yang tidak ada.

RecordStoreNotOpenException

Mengeluarkan pesan kesalahan jika menutup koneksi record store tanpa membukanya terlebih dahulu

Postingan Lebih Baru Postingan Lama Beranda