BAB 2 LANDASAN TEORI 2.1 Short Message Service (SMS) Short Message Service (SMS) adalah salah satu tipe Instant Messaging (IM) yang memungkinkan user untuk bertukar pesan singkat kapanpun, walaupun user sedang melakukan panggilan data/suara. Kata "short" yang berarti singkat pada SMS merujuk pada ukuran maksimum dari suatu pesan teks yaitu 160 karakter (huruf, nomor ataupun simbol pada alfabet latin). Untuk alfabet lainnya, misalkan, alfabet atau kanji China, ukuran maksimum SMS nya adalah 70 karakter. 2.2 Arsitektur SMS SMS dimaksudkan untuk menjadi alat pertukaran informasi antara dua mobile subscriber. Elemen-elemen utama pada arsitektur SMS terdiri dari Short Message Entity (SME), SMS Service Centre (SMSC), Email Gateway. 2.2.1 Short Message Entity (SME) Short Message Entity (SME) adalah elemen yang dapat mengirim atau menerima pesan singkat. SME dapat berupa software aplikasi pada mobile handset, dapat juga berupa perangkat facsimile, perangkat telex, remote internet server, dll. Sebuah SME dapat berupa server yang terkoneksi dengan SMS centre secara langsung atau melalui gateway. Dikenal juga External SME (ESME) yang merepresentasikan sebuah WAP proxy/server, Email Gateway atau Voice Mail server. 6 7 2.2.2 SMS Service Centre (SMSC) SMS Service Centre (SMSC) memegang peran kunci dalam arsitektur SMS. Fungsi utama SMSC adalah menyampaikan pesan singkat antara SME dengan MS, juga menyimpan dan meneruskan pesan singkat (menyimpan pesan jika penerima SME tidak tersedia). SMSC dapat terintegrasi sebagai bagian dari mobile network (cth: terintegrasi dengan MSC) atau sebagai entitas network independen. 2.2.3 Email Gateway Email Gateway memungkinkan sebuah email beroperasi menjadi SMS dengan iterkoneksi SMSC pada internet. Dengan email gateway, pesan dapat dikirim dari sebuah SME menuju sebuah host internet dan sebaliknya. Peran email gateway adalah mengubah format pesan (dari SMS ke email dan sebaliknya) dan merelay pesan antara SMS dan domain internet. Gambar 2.1 Cara kerja SMS 8 Ketika pengirim mengirim SMS, maka pesan terlebih dahulu dikirim ke Mobile Switching Center (MSC) melalui jaringan seluler yang tersedia yang meliputi tower Base Transceiver Station (BTS) lalu ke Base Station Controller (BSC), kemudian sampai ke Mobile Switching Center (MSC). Kemudian dari MSC, SMS diteruskan ke Short Message Service Centre (SMSC) untuk disimpan. SMSC kemudian mengecek lewat Home Location Register (HLR) untuk mengetahui apakah handphone tujuan sedang aktif dan lokasi handphone penerima tersebut. Jika handphone tujuan aktif maka pesan disampaikan MSC lewat jaringan yang sedang menghandle penerima (BSC dan BTS). Jika handphone sedang tidak aktif maka pesan disimpan di SMSC, menunggu pemberitahuan MSC bahwa handphone sudah aktif kembali dan seterusnya SMS dikirim dengan batas maksimum waktu tunggu yaitu validity period dari pesan SMS itu sendiri. 2.3 Basic Feature SMS SMS mempunyai beberapa basic feature, seperti : - Message Submission and Delivery - Status Report - Reply Path - Addresing Mode - Validity Period 2.3.1 Message Submission and Delivery Terdiri dari message sending dan message delivery. Pada message sending, pesan dikirm dari Mobile Station (MS) ke SMSC, dialamatkan ke SME lain sebagai mobile user lain atau host internet. Originator (asal) SME menentukan validity period dari 9 pesan tersebut, pesan yang sudah tidak valid lagi akan dihapus oleh SMSC sepanjang pengiriman pesan. Fitur ini dikenal sebagai Short Message-Mobile Originated (SMMO). Pada message delivery, pesan disampaikan oleh SMSC ke Mobile Station (MS). Dikenal sebagai Short Message Mobile Terminated (SM-MT). SM-MO dan SM-MT dapat dikirim / diterima saat voice call atau koneksi data sedang berlangsung. Pada GSM pesan dikirim pada channel Stand-Alone Dedicated Control Channel (SDCCH) / Slow Associated Control Channel (SACCH). Channel SDCCH ini berfungsi sebagai penyedia koneksi jaringan yang handal pada pensinyalan dan pesan sms dan channel SACCH digunakan untuk mendukung channel SDCCH. 2.3.2 Status Report SME asal (originator) meminta status report pada pengiriman pesan singkat ke SME penerima (recipient). Status report memberikan indikasi pada user asal apakah pesan terkirim dengan sukses atau tidak kepada SME penerima. 2.3.3 Reply Path Reply Path dapat diatur oleh SME asal (atau SMSC serving) untuk mengindikasikan bahwa SMSC serving dan mampu untuk menghandle secara langsung reply dari SME penerima. 10 2.3.4 Addressing Mode Addressing mode menggunakan Mobile Station Integrated Service Digital Number (MSISDN) yang merupakan nomor ISDN yang ditempatkan pada mobile station pelanggan dan digunakan untuk urusan sebuah panggilan kepada pelanggan. 2.3.5 Validity Period Pesan originator dimungkinkan untuk menentukan validity period sebuah pesan. Validity period ini menentukan batas waktu sebuah pesan harus dikirim sebelum akhirnya dihilangkan oleh jaringan. 2.4 Enkripsi Enkripsi merupakan proses untuk mengubah sebuah pesan (informasi) sehingga tidak dapat dibaca isi atau informasi aslinya tanpa menggunakan kunci pembuka. Enkripsi adalah cara yang paling efektif untuk memperoleh pengamanan data. Untuk membaca file yang di-enkrip, kita harus mempunyai akses terhadap kata sandi yang memungkinkan kita men-dekrip pesan tersebut. Data yang tidak di-enkrip disebut plaintext, sedangkan yang di-enkrip disebut ciphertext. Sebuah pesan dalam bentuk plaintext diubah dengan encryption menjadi ciphertext. Proses sebaliknya, untuk mengembalikan ciphertext ke plaintext disebut decryption. Menurut ISO 7498-2 istilah yang lebih tepat untuk encryption adalah enchipher sedangkan istilah yang lebih tepat untuk decryption adalah decipher. Encryption menggunakan algoritma tertentu untuk mengacak pesan. 11 Pada algoritma kriptografi modern, sistem kriptografi kunci simetri menggunakan operasi dalam mode bit yang dapat dikelompokkan menjadi stream cipher dan block cipher. Stream cipher beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, sedangkan block cipher beroperasi dalam bentuk blok-blok bit pesan. Berikut ini adalah contoh-contoh enkripsi dan salah satunya yang akan digunakan sebagai algoritma enkripsi skripsi ini adalah XOR cypher. 2.4.1 DES DES adalah algoritma block cipher yang sangat popular karena dijadikan standard algoritma enkripsi kunci-simetri, meskipun saat ini standard tersebut sudah dianggap tidak aman lagi. Pada DES data dienkrip dalam blok-blok 64 bit menggunakan kunci 56 bit. DES mentransformasikan input 64 bit dalam beberapa tahap enkripsi ke dalam output 64 bit. Dengan tahapan dan kunci yang sama, DES digunakan untuk membalik enkripsi. DES sangat banyak digunakan untuk melindungi data dalam dunia elektronika khususnya di bidang perbankan, finansial, dan e-commerce. Sayangnya, DES juga mempunyai kontroversi tentang keamanannya[16]. 2.4.2 A5 Algoritma A5 adalah algortima stream cipher yang digunakan untuk mengenkripsi pesan dalam transmisi udara. Stream chiper ini diinisialisasi dengan setiap frame yang dikirim. Stream chiper ini diinisialisasi dengan kunci sesi, Kc, dan jumlah frame yang akan dienkripsi. Kunci sesi yang sama digunakan sepanjang panggilan berlangsung, tetapi 22 bit nomor frame berubah selama proses berlangsung, kemudian membangkitkan keystream yang unik untuk setiap frame. 12 2.4.3 XOR CYPHER Dalam kriptografi, sandi XOR adalah algoritma enkripsi sederhana yang beroperasi sesuai dengan prinsip tabel kebenaran : Tabel 2.1 Table kebenaran XOR MASUKAN X KELUARAN Y Z 0 0 0 0 1 1 1 0 1 1 1 0 Dengan logika ini, sebuah string teks dapat dienkripsi dengan menerapkan operasi XOR bitwise untuk setiap karakter dengan menggunakan kunci tertentu. Untuk mendekripsinya kembali cukup sederhana yaitu dengan menerapkan operasi XOR bitwise kembali akan mengubah teks yang telah di enkrip menjadi plain text biasa. Contoh : Suatu string “W I K I “ dengan biner 01010111 01101001 01101011 01101001 dalam 8-bit ASCII dapat dienkripsi dengan contoh kunci biner 11110011 : 01010111 01101001 01101011 01101001 11110011 11110011 11110011 11110011 = 10100100 10011010 10011000 10011010 XOR 13 Dan sebaliknya untuk mendekripsinya , cukup menggunakan kunci yang sama dengan metode XOR : 10100100 10011010 10011000 10011010 11110011 11110011 11110011 11110011 XOR = 01010111 01101001 01101011 01101001 XOR cypher merupakan enkripsi yang sangat sederhana dibandingkan dengan enkripsi lainnya yang lebih kompleks. Dengan menggunakan kunci yang sama, XOR cypher dapat mengenkrip dan mendekrip plaintext. Kelebihan utamanya adalah sederhana untuk dilakukan karena operasi komputasinya tidak rumit. 2.5 Telepon Selular Telepon selular atau sering disebut handphone atau disebut pula sebagai telepon genggam yang disingkat menjadi ponsel adalah perangkat telekomunikasi elektronik yang mempunyai kemampuan dasar yang sama dengan telepon konvensional saluran tetap, namun dapat dibawa ke mana-mana (portabel, mobile) dan tidak perlu disambungkan dengan jaringan telepon menggunakan kabel atau nirkabel yang sering disebut wireless sehingga dapat melakukan dan menerima panggilan. Selain berfungsi untuk melakukan dan menerima panggilan telepon, telepon selular umumnya juga mempunyai fungsi pengiriman dan penerimaan pesan singkat yang biasa disebut dengan SMS (Short Message Service). Ada pula penyedia jasa telepon selular di beberapa negara yang menyediakan layanan generasi ketiga (3G) dengan menambahkan jasa video phone maupun televisi online di telepon seluar. 14 Sekarang, telepon selular menjadi gadget yang multifungsi. Mengikuti perkembangan teknologi digital, kini ponsel juga dilengkapi dengan berbagai pilihan fitur, seperti bisa menangkap siaran radio dan televisi, perangkat lunak pemutar audio (MP3), video, kamera digital, game dan layanan internet (WAP, GPRS, 3G). Selain fiturfitur tersebut, ponsel sekarang sudah ditanamkan fitur komputer. Jadi fungsi ponsel tersebut menyamai mini komputer. Ponsel yang memiliki fitur – fitur komputer sering dinamakan telepon pintar atau smart phone. Telepon pintar atau smart phone ini membutuhkan processor, memory, dan sistem operasi yang memadai agar dapat berfungsi dengan baik. 2.5.1 Sistem Operasi Sistem operasi atau dalam bahasa Inggris (operating system) adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan web browser. Secara umum, sistem operasi adalah software pada lapisan pertama yang ditaruh pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah sistem operasi berjalan, dan sistem operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, scheduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh sistem operasi. 15 Beberapa contoh sistem operasi pada telepon selular diantaranya : Nokia OS, Sony Ericson JP, Symbian, Blackberry OS, Android, dll. 2.5.2 Port Selain pembahasan fitur – fitur dan sistem operasi, agar suatu perangkat komputer dapat berinteraksi dengan perangkat lainnya dibutuhkan port sebagai jalur transfer data. port adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan. Pada sistem komputer sebenarnya ada dua jenis port yaitu : port fisik & port logika(non fisik). Port fisik adalah soket atau slot yang ada di belakang CPU sebagai penghubung peralatan input/output komputer, misalnya : mouse, keyboard, printer, dll. Sedangkan port logika (non fisik) adalah port yang digunakan oleh software sebagai jalur untuk melakukan koneksi dengan komputer lain, tentunya termasuk koneksi internet yang berada dalam jaringan TCP/IP ataupun UDP. Dilihat dari penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni sebagai berikut: • Well-known Port : yang pada awalnya berkisar antara 0 hingga 255 tapi kemudian diperlebar untuk mendukung antara 0 hingga 1023. Port number yang termasuk ke dalam well-known port, selalu merepresentasikan layanan jaringan yang sama, dan ditetapkan oleh Internet Assigned Number Authority (IANA). Beberapa di antara portport yang berada di dalam range Well-known port masih belum ditetapkan dan direservasikan untuk digunakan oleh layanan yang bakal ada di masa depan. • Registered Port : Port-port yang digunakan oleh vendor-vendor komputer atau jaringan yang berbeda untuk mendukung aplikasi dan sistem operasi yang mereka buat. 16 Registered port juga diketahui dan didaftarkan oleh IANA tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat menggunakan port number yang sama. Range registered port berkisar dari 1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically Assigned Port. • Dynamically Assigned Port: merupakan port-port yang ditetapkan oleh sistem operasi atau aplikasi yang digunakan untuk melayani request dari pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar dari 1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan. Berikut ini adalah contoh beberapa well-known port yang telah ditetapkan oleh Internet Assigned Number Authority (IANA) : 1. Port 80 digunakan untuk Web Server 2. Port 81 digunakan untuk Web Server alternatif ketika port 80 diblok 3. Port 21 digunakan untuk mengakses FTP Server 4. Port 23 digunakan untuk berhubungan dengan server Telnet 5. Dan seterusnya.. 2.6 JAVA 2.6.1 Teori Dasar Pemograman Java Dalam sebagian besar bahasa pemograman, sebuah kode program harus dikompilasi (compile) maupun diterjemahkan (interpret) sehingga dapat dijalankan didalam sebuah komputer. Software yang digunakan untuk melakukan kompilasi kode program disebut dengan compiler, sedangkan yang digunakan untuk melakukan interpretasi disebut dengan interpreter. Perbedaan antara compiler dan interpreter adalah terletak pada proses eksekusi kodenya. Compiler akan menerjemahkan isi kode program 17 secara keseluruhan, sedangkan interpreter akan menerjemahkan dengan cara baris demi baris. Karena proses eksekusinya dilakukan per baris, maka interpreter lebih lambat dibandingkan dengan compiler. Java menerapkan dua proses diatas. Ini berarti bahwa Java berperan sebagai compiler dan juga sebagai interpreter. Maksudnya mula-mula kode program yang ditulis dengan bahasa Java (berekstensi .Java) akan dikompilasi (oleh compiler) menjadi suatu kode objek yang biasa disebut dengan istilah bytecode dalam terminologi Java. Jadi dalam Java, hasil akhir programnya akan berupa bytecode (berekstensi .class) bukan file.EXE . Selanjutnya bytecode akan dieksekusi baris demi baris (oleh interpreter). Dengan demikian, proses kompilasi hanya dilakukan sekali akan tetapi proses interpret akan dilakukan setiap program dieksekusi. Bytecode dapat dianggap sebagai sekumpulan perintah dalam bahasa mesin untuk sebuah JVM (Java Virtual Machine). Setiap interpreter Java, baik yang berupa development tool maupun sebuah web browser, merupakan implementasi dari JVM. Program yang di buat dengan Java tidak mungkin dapat dijalankan di dalam komputer maupun alat lain yang tidak memiliki JVM. Dengan adanya konsep bytecode ini, dalam terminologi Java dikenali adanya istilah “write once, run anywhere” . Ini berarti bahwa sekali kita menulis program Java dan melakukan kompilasi terhadapnya, maka bytecode-nya dapat dijalankan di dalam platform manapun selama platform tersebut memiliki JVM. Adapun istilah JRE (Java Runtime Environment) pada Java yang fungsinya untuk menjalankan program Java atau file dengan ekstensi .Java karena pada JRE berisi JVM dan library – library Java. Tetapi JRE hanya dapat menjalankan program Java, JRE tidak dapat membuat kode baru. Untuk membuat kode program baru maka dibutuhkan JDK (Java Development Kit) yang 18 berisi compiler, debugger dan lainnya. Maka untuk membuat dan menjalankan program Java dalam suatu platform kita memerlukan JRE dan JDK. Java2 adalah generasi yang sekarang sedang berkembang dari platform Java. 2.6.2 Pembagian kebutuhan tipe aplikasi dari Java Platform Java memiliki tiga buah edisi yang berbeda, yaitu : - J2SE (Java2 Standard Edition) - J2EE (Java2 Enterprise Edition) - J2ME (Java2 Micro Edition) J2SE adalah lingkungan dasar dari Java atau inti dari bahasa pemograman Java. Pada J2SE terdapat tool JDK dan JRE untuk menulis, mengkompilasi dan menjalankan program Java. J2EE adalah mencakup lingkungan pembuatan aplikasi yang berskala enterprise. J2EE dibuat untuk membuat aplikasi yang kompleks. J2EE sering dianggap sebagai middleware atau teknologi yang berjalan di server namun sebernarnya J2EE tidak hanya terbatas untuk itu. Faktanya J2EE juga mencakup teknologi yang dapat digunakan di semua lapisan dari sebuah sistem informasi. J2ME adalah suatu lingkungan pengembangan yang didesain untuk meletakkan perangkat lunak Java pada barang elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak berfungsi baik pada sebuah perangkat maka belum tentu akan berfungsi baik pada perangkat lainnya karena tergantung pada merk, kemampuan dan dukungannya terhadap teknologi J2ME. Ruang lingkup J2ME ini akan dibahas lebih lanjut di sub bab berikutnya. 19 2.7 Ruang Lingkup J2ME J2ME membawa Java ke dunia informasi, komunikasi , dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada telepon selular, pager, PDA (Personal Digital Assistants) dan sejenisnya. Teknologi J2ME juga memiliki beberapa keterbatasan terutama jika diaplikasikan pada ponsel. J2ME sangat tergantung pada perangkat (device) yang digunakan, bisa dari segi merk ponsel, kemampuan ponsel, fitur dan dukungannya terhadap teknologi J2ME. Contohnya jika sebuah ponsel tidak memiliki kamera maka jelas J2ME pada ponsel tersebut tidak dapat mengakses kamera. Keterbatasan lainnya adalah pada ukuran aplikasi karena memori pada ponsel sangat terbatas. Sebagian besar ponsel tidak mengijinkan aplikasi J2ME menulis pada file karena alasan keamanan. Tabel 2.2 Tabel Arsitektur J2ME Profile Kumpulan Library Configuration JVM Sistem Operasi Configuration merupakan Java library minimum dan kapabilitas yang dimiliki oleh para pengembang J2ME, yang maksudnya sebuah mobile device dengan kemampuan Java yang akan dioptimalkan untuk menjadi sesuai. 20 Configuration hanyalah mengatur hal-hal tentang kesamaan sehingga dapat dijadikan ukuran kesesuaian antar device. Misalnya sebuah lampu sepeda dirancang sedemikian rupa sehingga dapat digunakan oleh berjenis-jenis sepeda. Dalam J2ME telah didefenisikan dua buah konfigurasi yaitu CLDC (Connected Limited Device Configuration) untuk perangkat kecil dan CDC (Connected Device Configuration) untuk perangkat yang lebih besar. Profile berbeda dengan Configuration, profile membahas sesuatu yang spesifik untuk sebuah perangkat. Sebagai contoh misalnya, sebuah sepeda dengan merk tertentu tentu mempunyai ciri spesifik dibandingkan dengan sepeda lain. Dalam J2ME terdapat 2 buah profile yaitu MIDP dan Foundation Profile. 2.7.1 Connected Limited Device Configuration (CLDC) Tabel 2.3 Tabel Lingkup CLDC MIDP Kumpulan Library CLDC KVM Sistem Operasi Connected Limited Device Configuration (CLDC) adalah perangkat dasar dari 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 21 sebagian fungsi JVM yang dikurangi agar dapat diimplementasikan dengan keterbatasan sumber daya pada alat tersebut, JVM yang digunakan disebut KVM (Kilobyte Virtual Machine) 2.7.2 Connected Device Configuration (CDC) Connected Device Configuration (CDC) adalah spesifikasi dari konfigurasi J2ME. CDC merupakan komunitas proses pada Java yang memiliki standardisasi. 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. Tabel 2.4 Tabel Perbandingan antara CLDC dan CDC CLDC CDC Mengimplementasikan sebagian fitur Mengimplementasikan seluruh fitur J2SE dari J2SE JVM yang digunakan adalah KVM JVM yang digunakan adalah CVM Digunakan pada perangkat genggam Digunakan pada perangkat genggam (handphone,PDA) dengan memori (internet TV, Nokia Communicator, Car terbatas (160 – 512 KB) TV) dengan memori minimal 2 MB Prosesor : 16/ 32bit Prosesor : 32 bit 22 2.7.3 Kilobyte Virtual Machine (KVM) KVM adalah paket JVM yang didesain untuk perangkat yang kecil. KVM mendukung sebagian dari fitur-fitur JVM, seperti misalnya KVM tidak mendukung operasi floating point dan finalisasi objek. KVM diimplementasikan dengan menggunakan C sehingga sangat mudah beradapatasi pada tipe platform yang berbeda. 2.7.4 C-Virtual Machine (CVM) CVM adalah paket 0020JVM optimal yang digunakan pada CDC. CVM mempunyai seluruh fitur dari virtual machine yang didesain untuk perangkat yang memerlukan fitur – fitur Java 2 virtual machine. 2.7.5 Mobile Information Device Profile (MIDP) MIDP atau Mobile Information Device Profile adalah spesifikasi untuk sebuah profil J2ME. MIDP memiliki lapisan diatas CLDC. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 adalah API untuk multimedia dan juga terdapat dukungan untuk memainkan tone, tone sequence dan file WAV walaupun tanpa adanya Mobile Media API (MMAPI). 2.7.6 MIDlet MIDlet adalah aplikasi yang ditulis untuk MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan sub kelas dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi J2ME dan aplikasi manajemen pada perangkat dapat terbentuk. Dalam implementasinya, MIDlet memiliki struktur direktori sebagai berikut : - Src 23 Direktori Src menyimpan source code untuk MIDlet dan kelas lain yang diperlukan. - Res Direktori Res menyimpan sumber daya yang dibutuhkan MIDlet, seperti misalnya gambar icon. - Lib Direktori Lib menyimpan file JAR yang berisi library tambahan yang dibutuhkan MIDlet. - Bin Direktori Bin menyimpan file JAR,JAD, dan file yang berisi muatan komponen MIDlet. 2.7.7 Java Application Descriptor (JAD) JAD atau Java Application Descriptor digunakan untuk mendeskripsikan isi aplikasi untuk keperluan pemetaan. File JAD berisi deskripsi file JAR dan pemetaan atribut MIDlet. JAR atau kepanjangan dari Java Archive berisi kumpulan kelas dan resource untuk menjalankan aplikasi J2ME. 2.7.8 Foundation Profile Foundation Profile adalah spesifikasi untuk device yang mendukung lingkungan J2ME dengan beragam jaringan. Foundation Profile tidak mensupport user interface atau antarmuka aplikasi. Foundation Profile memiliki lapisan diatas CDC. 24 2.8 Netbeans NetBeans IDE (Integrated Development Environment) adalah suatu IDE (Integrated Development Environment) yang dibangun menggunakan platform NetBeans. Dimana IDE (Integrated Development Environment) itu sendiri adalah program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Tujuan dari IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam membangun perangkat lunak. Sebuah IDE, atau secara bebas dapat diterjemahkan sebagai lingkungan pengembangan terpadu, setidaknya memiliki fasilitas: • Editor, yaitu fasilitas untuk menuliskan kode sumber dari perangkat lunak. • Compiler, yaitu fasilitas untuk mengecek sintaks dari kode sumber kemudian mengubah dalam bentuk binari yang sesuai dengan bahasa mesin. • Linker, yaitu fasilitas untuk menyatukan data binari yang beberapa kode sumber yang dihasilkan compiler sehingga data-data binari tersebut menjadi satu kesatuan dan menjadi suatu program komputer yang siap dieksekusi. • Debuger, yaitu fasilitas untuk mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat dalam program. NetBeans bisa ditulis dengan berbagai bahasa pemrograman contohnya Java, C++, C# karena netbeans sendiri memiliki lebih dari satu editor dan kompiler didalamnya. Program Netbeans yang dituliskan dengan bahasa pemograman Java bisa dijalankan di sistem operasi manapun pada suatu komputer asalkan JVM (Java Virtual Machine) terinstalasi didalamnya.