II-1
BAB II
TINJAUAN PUSTAKA
Pada Bab II ini akan dibahas konsep dasar format teks Rich Text Format (RTF) yang dikeluarkan oleh Microsoft, Hyper Text Markup Language (HTML), Short Message
Service (SMS), Kompresi, dan Java 2 Micro Edition (J2ME) .
2.1 Format Teks Rich Text Format (RTF)
Rich Text Format adalah sebuah metode untuk menyandikan teks dan gambar pada
aplikasi atau data dan untuk melakukan transfer antar aplikasi [MIC04]. RTF dapat digunakan sebagai standar pemindahan data antar perangkat lunak pemroses kata (word
processing), document formatting, serta sebuah alat untuk melakukan migrasi dari satu
sistem operasi ke sistem operasi yang lain.
Perangkat lunak yang dapat membuat sebuah file format RTF disebut RTF writer. Sebuah RTF writer menulis file yang berisi teks dan RTF command yang bersesuaian dengan teks tersebut. Perangkat lunak yang dapat menampilkan teks dengan format yang sesuai disebut sebagai RTF reader.
2.1.1 Komponen File RTF
File RTF merupakan plain text (biasanya terdiri dari 7 bit ASCII) dan terdiri dari control
words, control symbols, dan groups. Control word adalah command yang menyimpan
informasi tampilan suatu karakter pada layar atau karakter yang akan dicetak dengan
printer. Sebuah control word tidak boleh lebih dari 32 karakter. Control word memiliki
format sebagai berikut:
\LetterSequence <Delimiter>
Contoh control word adalah \par. Control word selalu diawali dengan backslash (\) dan
control word bersifat case sensitive yang artinya huruf kecil dan huruf kapital dibedakan. LetterSequence disusun oleh huruf-huruf dari A-Z yang biasanya merupakan huruf kecil,
namun pada format RTF yang baru sudah digunakan pula huruf kapital.
Delimiter merupakan tanda akhir dari control word. Delimiter dapat berupa salah satu di
(\). Control symbol terdiri dari sebuah backslash yang diikuti oleh satu karakter nonalfabet. Control symbol tidak memiliki delimiters atau ruang kosong antara control
symbol tersebut dengan command berikutnya. Sebuah group dapat terdiri dari teks, control word, control symbol yang ditulis di dalam kurung kurawal ({}). Kurung kurawal buka menandakan awal dari group, sedangkan kurung kurawal tutup menandakan akhir dari group. Setiap group menampilkan teks khas sesuai atribut pada group tersebut. File RTF dapat mengandung group untuk format font, gambar, komentar (annotation),
header, dan footer.
2.1.2 Struktur File RTF
Sebuah file dengan format RTF memiliki memiliki dua bagian yaitu header dan dokumen. Bagian dokumen berisi RTF commands dan teks yang ditulis oleh pengguna. Setiap RTF reader harus dapat menginterpretasikan bagian header dan dokumen dengan benar. Header memiliki sintaks sebagai berikut:
\rtf <charset> <deffont> \deff? <fonttbl> <filetbl>? <colortbl>? <stylesheet>? <listtables>? <revtbl>? <rsidtable>? <generator>?
Setiap tag pada header harus ditulis dengan urutan seperti di atas. Jika suatu tag tidak ada maka tidak perlu dituliskan pada header.
• RTF Version
Seluruh dokumen RTF harus dianggap sebagai sebuah group sehingga harus diawali dengan kurung kurawal buka { dan ditutup dengan kurung kurawal tutup }. Tag \rtfN mengikuti kurung kurawal buka. Parameter N menunjukkan versi RTF yang digunakan. Jika parameter ini tidak ditulis, maka berarti RTF yang digunakan adalah versi satu.
• Character Set
Setelah versi RTF didefinisikan, character set yang digunakan dalam dokumen RTF juga harus didefiniskan. Spesifikasi RTF saat ini mendukung character set yang tercantum di dalam Tabel II-1.
Tabel II-1 Character Set pada RTF[MIC04]
Control Word Character Set
\ansi ANSI (default)
\mac Apple Macintosh
\pc IBM PC code page 437
\pca IBM PC code page 850, used by IBM Personal System/2 (not
implemented in version 1 of Microsoft Word for OS/2) • Default Fonts
Default Fonts setting digunakan untuk memberi informasi kepada program
tentang regional setting yang digunakan. Sebagai contoh \stshfdbchN digunakan untuk memberikan instruksi kepada program agar memiliki kemampuan formatting huruf Jepang.
• Font Table
Font table menginformasikan font yang akan digunakan pada dokumen.
• File Table
File table menginformasikan file yang diacu di dalam dokumen. File table ini
hanya dibuat jika sebuah dokumen mengandung subdokumen. • Color Table
Color table menginformasikan grup warna yang akan digunakan meliputi warna
layar, warna karakter, dan informasi warna yang lain. • Style Sheet
Style sheet menginformasikan style sheet group yang berisi definisi dan deskripsi
setiap style yang digunakan dalam dokumen. • List Table
List Table berfungsi untuk menyimpan informasi bullets dan numbering yang
digunakan oleh suatu dokumen. Sebuah paragraf yang mengandung bullets dan
numbering akan menyimpan indeks list table yang sesuai.
• Revision Table
Revision table menyimpan informasi revisi yang telah dilakukan terhadap
• Revision ID Table
Revision ID table digunakan untuk menyimpan id number revisi. Setiap kali
penulis melakukan revisi terhadap dokumen RTF, maka akan dibangkitkan id
number revisi secara random.
• Generator
Generator berfungsi untuk menghasilkan informasi mengenai nama, versi, serta
informasi lain mengenai program yang membuat suatu dokumen RTF.
2.2 Standard Generalized Markup Language (SGML)
SGML merupakan singkatan dari Standard Generalized Markup Language yaitu standar internasional untuk deskripsi teks markup [TEI06]. SGML adalah sebuah metalanguage artinya sebuah cara untuk mendeskripsikan suatu bahasa markup. Markup dideskripsikan sebagai anotasi atau tanda untuk memberi informasi bagaimana sebuah teks ditulis atau ditampilkan. Markup language berarti himpunan konvensi markup yang digunakan untuk menyandikan teks. Sebuah markup language harus mendefinisikan markup apa yang diizinkan, markup apa yang dibutuhkan, bagaimana markup dibedakan dengan teks biasa, dan apa makna setiap markup.
SGML memiliki tiga karakter yang membedakannya dengan markup language yang lain yaitu markup deskriptif, konsep document type, dan kebebasan data (data independence) [TEI06].
2.2.1 Markup Deskriptif
Sistem markup deskriptif menggunakan kode markup yang secara sederhana menyediakan nama-nama untuk melakukan kategorisasi bagian dokumen. Misalnya kode
markup <para> untuk mengidentifikasi suatu paragraf dalam dokumen, kode markup \end{list} untuk mengidentifikasi akhir list terakhir. Hal ini sangat berbeda dengan sistem markup prosedural yang melakukan pemanggilan prosedur untuk melakukan proses kategorisasi bagian dokumen.
2.2.2 Konsep Document Type
SGML memperkenalkan document type yang disebut Document Type Definition (DTD). Setiap dokumen memiliki tipe. Tipe dokumen ditentukan oleh bagian pokok serta struktur
dari dokumen tersebut. Misalnya definisi sebuah laporan (report) terdiri atas judul, penulis, abstrak kemudian satu atau lebih paragraf. Sebuah dokumen yang tidak mengandung salah satu dari bagian tersebut tidak dapat disebut sebagai laporan (report).
2.2.3 Kebebasan Data (Data Independence)
Tujuan perancangan SGML adalah untuk memastikan dokumen yang disandikan (encode) dapat dengan mudah ditransportasikan dari satu lingkungan hardware atau
software ke lingkungan hardware atau software yang lain tanpa kehilangan (loss)
informasi.
2.2.4 Struktur SGML 1. Elemen
Elemen merupakan istilah untuk menyebut sebuah unit tekstual pada SGML. Setiap elemen memiliki nama tersendiri. Nama elemen dapat menunjukkan fungsi elemen tersebut. Elemen terdiri dari tag pembuka dan tag penutup. Contoh elemen SGML adalah <quote> </quote>. Sebuah elemen dapat memiliki atribut yang menyatakan identifikasi terhadap elemen tersebut. Contoh sebuah elemen <para> memiliki atribut id dan status.
2. Isi (Content)
Isi merupakan teks yang terdapat di antara tag pembuka dan tag penutup sebuah elemen. Di dalam sebuah elemen dapat disisipkan satu atau lebih elemen lain. Pada dokumen SGML biasanya terdapat komentar yang ditandai dengan <!-- -->.
3. Entitas SGML
Entitas pada SGML adalah bagian dari dokumen markup yang diberi nama. Entitas dapat berupa string ataupun file. Deklarasi sebuah entitas dilakukan dengan menggunakan tag <!ENTITY [nama entitas] [nilai entitas]>. Setelah entitas dideklarasikan, entitas tersebut dapat dipanggil di dalam dokumen
2.3 Hyper Text Markup Language (HTML)
HTML merupakan singkatan dari Hyper Text Markup Language yaitu sebuah file yang mengandung markup tags untuk memberi tahu browser bagaimana menampilkan isi dari
file tersebut [W3S07]. Markup tags memberi informasi kepada browser bagaimana harus
menampilkan sebuah halaman. Setiap tag diawali dengan tanda kurung < dan diakhiri dengan tanda kurung >. Kerangka dasar file HTML adalah seperti yang ditunjukkan pada Kode II-1. <html> <head> <title> </title> </head> <body> </body> </html>
Kode II-1 Tag Dasar HTML
Tag pertama pada dokumen HTML adalah tag <html>. Tag ini memberikan informasi kepada browser awal dari sebuah dokumen HTML. Tag terakhir pada dokumen HTML adalah tag </html>. Tag ini memberikan informasi kepada browser akhir dari sebuah dokumen HTML. Teks yang berada di antara tag <head> </head> merupakan informasi
header dokumen. Teks yang berada di antara tag <title> </title> merupakan judul dokumen yang akan ditampilkan pada caption dari browser. Teks yang berada di antara
tag <body> </body> merupakan teks yang akan ditampilkan pada browser.
Tag HTML yang digunakan untuk mengatur tampilan huruf adalah tag <font> </font>.
Tag ini memiliki parameter-parameter yaitu face, size, dan color. Parameter face
digunakan untuk menentukan jenis huruf. Parameter size digunakan untuk menentukan ukuran font huruf. Parameter color digunakan untuk menentukan warna tampilan huruf. Di samping itu, terdapat tag-tag yang digunakan untuk menampilkan style tertentu seperti yang ditunjukkan pada Tabel II-2.
Tabel II-2 Tag HTML dan kegunaannya [W3S07]
Tag Kegunaan
<b> Menampilkan huruf tebal <i> Menampilkan huruf miring <u> Menampilkan huruf garis bawah <sub> Menampilkan huruf substring <sup> Menampilkan huruf superstring <em> Menampilkan huruf yang ditekankan <big> Menampilkan huruf dalam ukuran besar <small> Menampilkan huruf dalam ukuran kecil <strong> Menampilkan teks huruf kuat
<bdo> Mendefinisikan arah tampilan teks
2.4 Short Message Service (SMS)
Short Message Service (SMS) adalah layanan dasar yang memungkinkan pengiriman
pesan teks di antara pelanggan telekomunikasi seluler [BOD05]. Pesan pertama kali dikirim via SMS pada tahun 1992 yaitu pada jaringan GSM Eropa. Setelah keberhasilan itu, penggunaan SMS semakin meluas.
Teks yang dikirim melalui SMS berukuran maksimum 160 karakter alfabet latin [HOR05]. Setiap karakter berukuran 7 bit. Sementara itu pada alfabet yang lain seperti alfabet Cina, jumlah karakter yang dapat dikirim maksimum 70 karakter [HOR05]. SMS menggunakan prinsip store and forward [HOR05]. Pesan yang dikirim melalui SMS dari ponsel asal tidak secara langsung menuju ponsel tujuan. Pesan terlebih dahulu dikirim ke SMS center (SMSC). Jika ponsel tujuan tidak aktif, pesan disimpan (store) pada SMSC dan dikirim (forward) kemudian setelah ponsel tujuan aktif. Pesan akan disimpan pada SIM card ponsel tujuan selama tidak dihapus.
Suatu pesan teks yang dikirim melalui SMS sesungguhnya terdiri dari tujuh komponen [PAL05]. Ketujuh komponen pesan teks tersebut adalah header, service center
timestamp, originator address, protocol identifier, data coding scheme, user data length,
dan user data. Header menunjukkan tipe pesan. Originator Address adalah nomor telepon pengirim pesan. User Data Length menujukkan panjang pesan. User data merupakan pesan yang akan ditampilkan kepada penerima.
2.4.1 Jaringan dan Arsitektur
Jaringan dan Arsitektur SMS dapat dilihat pada Gambar II-1.
Gambar II-1 Arsitektur dan Jaringan SMS [GUP06]
Short Message Entity (SME) adalah entitas yang dapat mengirim atau menerima short message. Short Message Service Center (SMSC) adalah pihak yang bertanggung jawab
melakukan store and forward atas short message antara SME dan mobile station. Home
Location Register (HLR) adalah basisdata yang digunakan sebagai penyimpanan
permanen serta managemen pelanggan dan profil layanan. Mobile Switching Center (MSC) berfungsi melakukan kontrol terhadap panggilan dari dan kepada telepon seluler dan sistem data. Visitor Location Register (VLR) adalah basisdata yang menyimpan informasi sementara tentang pelanggan. The Base Station System (BSS) melakukan semua fungsi yang berkaitan dengan gelombang radio. BSS terdiri dari Base Station
Controller (BSC) dan Base Transceiver Station (BTS) dengan fungsi utama melakukan
transmisi suara dan data diantara mobile station. Mobile Station (MS) merupakan entitas yang akan menerima pesan.
2.4.2 Skenario Pengiriman SMS
Alur kerja SMS pada jaringan GSM, mulai dari pengiriman sampai adanya laporan pengiriman pesan dapat dilihat pada Gambar II-2.
Gambar II-2 Skenario Pengiriman SMS[IEC06]
Skenario pengiriman SMS pada jaringan GSM dapat dijelaskan sebagai berikut: 1. Pesan dikirim dari SME ke SMSC
2. SMSC menerima informasi routing dari HLR
3. SMSC mengirim pesan pada MSC dengan operasi forward short message 4. MSC menerima informasi pelanggan dari VLR (membutuhkan autentikasi) 5. MSC mengirim pesan kepada MS
6. MSC mengirim hasil operasi forward short message kepada SMSC
7. Jika diminta oleh SME, SMSC akan mengirim delivery report kepada SME
2.5 Kompresi Data
Teknik kompresi data dapat dibagi menjadi dua yaitu lossy dan lossless [NEL96]. Pada kompresi data lossy terdapat loss of accuracy (ketidakakuratan) dalam jumlah tertentu demi tingkat pemampatan yang tinggi. Kompresi data lossy terbukti efektif jika diaplikasikan dalam gambar dan suara digital. Sebagian besar kompresi data lossy dapat diatur kualitasnya. Dalam hal ini, keakuratan data berbanding terbalik dengan efektivitas kompresi. Kompresi data lossless merupakan teknik kompresi yang terjamin
menghasilkan data yang persis dengan data input [NEL96]. Teknik kompresi ini digunakan ketika meyimpan record basisdata, spreadsheets, serta file pemroses kata.
Secara umum, kompresi data meliputi pengambilan suatu stream of symbols dan mengubah simbol-simbol tersebut menjadi kode. Jika kompresi yang dilakukan efektif, ukuran kode yang dihasilkan akan lebih kecil daripada ukuran simbol-simbol asalnya. Pada kompresi data digunakan model. Model merupakan koleksi data dan aturan yang digunakan untuk memproses simbol-simbol masukan dan menentukan kode keluarannya.
2.5.1 Algoritma Shannon-Fano
Teknik untuk melakukan pengkodean simbol yang terkenal pertama kali adalah
Shannon-Fano Coding. Konsep penting dalam teknik ini adalah mengetahui probabilitas
setiap simbol. Kode yang yang merupakan hasil proses pengkodean simbol masukan harus memenuhi properti-properti sebagai berikut:
1. Kode yang berbeda harus memiliki bit yang berbeda.
2. Kode untuk simbol yang probabilitas atau frekuensinya lebih rendah harus memiliki bit yang lebih banyak daripada simbol yang probabilitas atau frekuensinya lebih tinggi.
3. Kode yang dibuat dapat di-decode secara unik. Algoritma Shannon-Fano adalah sebagai berikut:
1. Untuk sebuah daftar simbol masukan yang diberikan, dibuat daftar probabilitas atau frekuensi kemunculan simbol.
2. Daftar simbol diurutkan berdasarkan probabilitas atau frekuensinya secara menurun sehingga simbol dengan probabilitas atau frekuensi tertinggi berada pada daftar paling atas sedangkan simbol dengan probabilitas atau frekuensi terendah akan berada pada daftar paling bawah.
3. Daftar simbol dibagi menjadi dua bagian (atas dan bawah), selisih total frekuensi bagian atas dan total frekuensi bagian bawah seminimal mungkin.
4. Daftar simbol bagian atas (sesuai pembagian pada langkah nomor 3) di-assign dengan digit 0, sedangkan daftar simbol bagian bawah di-assign dengan digit 1. 5. Langkah nomor 3 dan nomor 4 dilakukan secara rekursif hingga daftar simbol
Algoritma Shannon-Fano ditunjukkan oleh Gambar II-3 dan Gambar II-4.
Gambar II-3 Daftar Simbol dan Frekuensi Kemunculan [NEL96]
Second Division First Division Third Division Fourth Division Symbol Count A 15 0 0 B 7 0 1 6 1 0 C D 6 1 1 0 E 5 1 1 1
Gambar II-4 Algoritma Shannon-Fano untuk Mendapatkan Kode [NEL96]
2.5.2 Algoritma Huffman
Algoritma Huffman memiliki karakteristik yang hampir sama dengan algoritma Shannon-Fano. Algoritma Huffman direpresentasikan dengan pohon biner. Pohon biner dibangun secara buttom up dimulai dari daun hingga akar. Pertama-tama setiap simbol dimasukkan dalam daftar node bebas yang akan saling dihubungkan dengan pohon biner. Setiap node memiliki bobot yang menunjukkan probabilitas dan frekuensi kemunculan simbol tersebut. Pohon biner dibagun dengan langkah-langkah sebagai berikut:
1. Dua buah node yang memiliki frekuensi kemunculan terkecil (pada daftar node bebas) diambil/ditempatkan.
2. Node orang tua dari kedua node tersebut dibuat dan diisi dengan penjumlahan
node kedua anaknya.
3. Node orang tua dimasukkan dalam daftar node bebas, sementara kedua anaknya dihapus dari dalam daftar node bebas.
5. Langkah nomor 1 hingga nomor 5 diulangi hingga hanya tersisa satu node pada daftar node bebas dan node tersebut dijadikan akar dari pohon biner.
Kode yang dihasilkan oleh algoritma Huffman memiliki prefiks yang unik sehingga tidak ada kode yang merupakan prefiks dari kode yang lain. Hal ini menjamin tidak akan terjadi ambiguitas pada saat melakukan dekompresi. Simbol dengan prioritas atau frekuensi kemunculan yang tertinggi akan memiliki kode yang terpendek. Algoritma Huffman diterapkan pada studi kasus yang sama dengan algoritma Shannon-Fano di atas dapat dilihat pada Gambar II-5, Gambar II-6, Gambar II-7, dan Gambar II-8.
Gambar II-5 Daftar Node Bebas dan Frekuensinya [NEL96]
A B C D E
7 6 6 5
13 11
0 1 0 1
Gambar II-6 Pohon Biner Algoritma Huffman Setelah Dua Langkah [NEL96]
Gambar II-8 Kode yang Dihasilkan dari Algoritma Huffman [NEL96]
Proses decoding pada algoritma Huffman dilakukan dengan membaca pohon biner dari akar. Kemudian, dilakukan pembacaan setiap bit yang dilalui. Pemilihan anak dilakukan berdasarkan bit yang dibaca (0 atau 1). Ketika mencapai daun, decoding simbol telah berhasil.
2.5.3 Arithmetic Coding
Ide awal dari algoritma Arithmetic Coding adalah mengganti simbol input dengan sebuah kode spesifik. Algoritma ini mengganti simbol input dengan sebuah nilai bilangan real (float). Output dari Arithmetic Coding adalah sebuah nilai float kurang dari 1 dan lebih besar atau sama dengan 0. Sebagai contoh, sebuah pesan bertuliskan “BILL GATES” akan dikompresi dengan algoritma Arithmetic Coding. Probabilitas kemunculan karakter pada pesan tersebut ditunjukkan pada Gambar II-9.
Gambar II-9 Karakter dan Peluang Kemunculan [NEL96]
Setelah semua karakter diketahui probabilitas kemunculannya, setiap karakter di-assign dengan sebuah range sebesar nilai probabilitasnya itu. Range tersebut bernilai lebih besar atau sama dengan 0 dan kurang dari 1. Range yang di-assign dapat saja tidak berurutan
tetapi harus dengan pola yang sama pada saat melakukan encoding dan decoding. Contoh
range yang diberikan pada setiap karakter ditunjukkan pada Gambar II-10.
Gambar II-10 Karakter, Peluang Kemunculan, dan Range Bilangan Real[NEL96]
Pada algoritma Arithmatic Coding ini, porsi yang paling penting terdapat pada simbol pertama. Pada contoh di atas simbol pertama adalah karakter B. Jika diperhatikan pada gambar, range untuk karakter B adalah lebih besar atau sama dengan 0.2 dan kurang dari 0.3. Kemudian, range karakter setelah karakter B, disesuaikan dengan range karakter B, sehingga karakter yang muncul setelah karakter B tersebut juga terdapat dalam range 0.2-0.3. Algoritma untuk menghitung range tersebut ditunjukkan oleh kode berikut:
low = 0.0; high = 1.0;
while ((c = getc(input)) != EOF) {
range = high – low;
high = low + range * high_range (c); low = low + range * low_range(c); }
output (low);
Kode II-2 Algoritma Penghitungan Range [NEL96]
Jika algoritma di atas diterapkan untuk semua karakter pada pesan ”BILL GATES” maka akan diperoleh nilai low value dan high value untuk setiap karakter deperti pada Gambar II-11.
Gambar II-11 Range Setiap Karakter Berkisar 0.2 - 0.3 [NEL96]
Nilai low value yang terakhir yaitu 0.2572167752 merupakan hasil kompresi yang dilakukan terhadap pesan teks “BILL GATES”.
Proses decoding pada algoritma Arithmetic Coding dilakukan sebagai berikut:
1. Huruf pada pesan dicari dengan huruf yang memiliki nilai range dimana nilai hasil encoding terdapat pada range tersebut (lihat Gambar II-10).
2. Range dari huruf tersebut dihitung
3. Perhitungan number dilakukan sebagaimana ditunjukkan Kode II-3. 4. Proses nomor 1 hingga 4 dilakukan hingga semua karakter ditemukan. number = input_code(); // hasil encoding
for(;;;) {
symbol = find_symbol();
range = high_range(symbol)-low_range(symbol); number = number – low_range(symbol);
number = number/range; }
2.6 Java 2 Micro Edition
Java 2 Micro Edition atau disebut J2ME adalah lingkungan pengembangan yang
didesain untuk meletakkan perangkat lunak Java pada barang elektronik beserta perangkat pendukungnya [SHA06]. J2ME membawa Java ke dunia informasi, komunikasi, dan perangkat komputasi selain komputer desktop yang ukurannya lebih kecil dibandingkan dengan komputer desktop. J2ME biasa digunakan pada telepon selular, pager, personal digital assistant (PDA).
J2ME adalah bagian dari J2SE, karena itu tidak semua library yang ada pada J2SE dapat digunakan pada J2ME. Namun J2ME memiliki beberapa library khusus yang tidak dimiliki J2SE. Arsitektur J2ME dapat dilihat pada Gambar II-12.
Profile
Configuration
Libraries
JVM
Operating System
Gambar II-12 Arsitektur J2ME [SHA06]
2.6.1 Configuration dan Profile
J2ME memperkenalkan dua konsep arsitektur yaitu configuration dan profile.
Configuration menyusun seperangkat API yang merupakan karakteristik runtime dari
sebuah lingkungan J2ME tertentu. Configuration menentukan Core Java Classes, Java
Programming Langugae Feature, dan Virtual Machine Feature. J2ME menyediakan dua
buah configuration yaitu CLDC (Connected Limited Device Configuration) dan CDC (Connected Device Configuration). CLDC biasanya digunakan pada perangkat kecil seperti pada telepon seluler, pager, dan PDA. CDC digunakan pada perangkat yang lebih besar seperti internet TV, Nokia Communicator, dan car TV.
MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan pada MIDP 1.0
dibandingkan dengan MIDP 2.0 adalah API untuk memainkan multimedia. Pada MIDP 2.0 terdapat dukungan memainkan tone, tone sequence, dan file WAV.
2.6.2 MIDlet
Aplikasi yang ditulis untuk MIDP disebut MIDlet. MIDlet memiliki beberapa method yang harus ada yaitu constructor(), protected void startApp() throws MIDletStateChangeException, protected void pauseApp(), protected void destroyApp(boolean unconditional) throws MIDletStateChangeException.
Ketika device menerima pesan untuk menjalankan MIDlet maka MIDlet diinstansiasi dan
method startApp() dipanggil. Pada saat pengguna keluar dari MIDlet maka method destroyApp() akan dipanggil. Method ini akan melakukan terminasi MIDlet serta membersihkan semua resource yang mengacu pada MIDlet. Siklus hidup MIDlet dapat dilihat padaGambar II-13.
Gambar II-13 Siklus Hidup MIDlet [TOP02]
2.6.3 Java Messaging
J2ME menyediakan antarmuka (interface) untuk messaging pada paket javax.wireless.messaging. Sebuah message memiliki 2 bagian yaitu bagian alamat (address part) dan bagian data (data part). Message direpresentasikan dengan sebuah kelas yang mengimplementasi antarmuka pada paket javax.wireless.messaging. Antarmuka dasar untuk messaging yang terdapat dalam paket tersebut adalah antarmuka Message. Untuk bagian data pada message, API messaging ini mendukung dua jenis data yaitu text message dan binary message. Kedua jenis pesan ini direpresentasikan oleh subantarmuka dari antarmuka Message yaitu TextMessage dan BinaryMessage.
Untuk pengiriman dan penerimaan pesan, J2ME menyediakan antarmuka MessageConnection. Antarmuka ini menyediakan method dasar untuk melakukan pengiriman dan penerimaan pesan. Instansiasi dari MessageConnection diperoleh dengan memanggil method Connector.Open(). Setelah objek MessageConnection terbentuk, pengiriman pesan dilakukan oleh objek tersebut dengan memanggil method send().