BAB 2 LANDASAN TEORI 2.1 Sistem Terminal Informasi Terminal informasi adalah suatu perangkat yang memperbolehkan pengguna untuk mengakses ke suatu komputer, atau suatu tujuan akhir baik itu berupa web server, database, dan lain-lain. Sama seperti terminal bus atau terminal pada bandara udara, terminal merupakan suatu tempat persinggahan atau perpindahan atau suatu penghubung antara sumber dengan tujuan. Terminal informasi memberikan kemudahan bagi pengguna dalam melakukan komunikasi data, sehingga sistem komunikasi data dapat lebih terstruktur dan fleksibel. Sistem terminal informasi sudah banyak diterapkan di dalam kehidupan sehari-hari dalam berbagai bentuk, seperti terminal informasi dengan kiosk / touch screen, terminal informasi melalui teknologi Wireless Access Protocol (WAP), Wi-Fi, dan lain-lain sebagainya. Adanya terminal informasi tersebut memberikan kemudahan bagi pengguna dalam pengaksesan suatu sistem informasi. Contoh konkrit penerapan terminal informasi dengan kiosk adalah terminal informasi dalam bentuk touch screen pada lingkungan Universitas Bina Nusantara, yang digunakan untuk pengaksesan web server Binus Maya. Terminal informasi dalam bentuk kiosk ini memiliki kelebihan antara lain: • Pengguna tidak perlu memiliki perangkat tambahan untuk mengakses suatu sistem informasi. 6 7 • Terminal informasi dengan kiosk cenderung lebih mudah digunakan (user friendly). Selain kelebihan-kelebihan tersebut, juga terdapat kekurangan- kekurangan seperti: • Sebuah kiosk hanya mampu melayani satu orang dalam satu saat. • Privasi kurang terjaga. • Kehandalan sistem kurang. • Jangkauan layanan sistem terbatas. Terminal informasi dengan WAP lebih fleksibel dibanding dengan terminal informasi melalui kiosk, karena terminal informasi dengan WAP memanfaatkan perangkat telepon seluler. Kelebihan-kelebihan terminal informasi dengan WAP antara lain: • Ketersediaan sistem. • Dapat diakses oleh banyak pengguna dalam satu saat yang bersamaan. Sementara kekurangan dari sistem terminal informasi dengan WAP antara lain adalah: • Pengguna harus mengeluarkan biaya tambahan. • Tidak semua web server memiliki WAP server. • pengaturan yang cukup rumit pada perangkat telepon seluler. • Memerlukan perangkat tambahan untuk mengakses informasi. 8 Sistem terminal informasi yang akan dirancang pada skripsi ini merupakan pengembangan dari sistem terminal informasi dengan WAP. Penggunaan teknologi Bluetooth untuk sistem terminal informasi ini memiliki hampir semua fitur yang terdapat pada terminal informasi dengan WAP, ditambah dengan beberapa fitur tambahan lainnya. Perbandingan ketiga jenis terminal informasi ini dapat dilihat dari tabel 2.1. Tabel 2.1. Perbandingan antara Terminal Informasi Kiosk, WAP, dan Bluetooth No Fitur Kiosk WAP Bluetooth 1. Ketersediaan sistem Rendah Tinggi Tinggi 2. Biaya akses Gratis Bayar gratis 3. Keamanan informasi Kurang Sedang Sedang 4. Perangkat tambahan Tidak perlu Perlu Perlu 5. Biaya pemeliharaan sistem Mahal Sedang Sedang 6. Jangkauan layanan Kecil Luas Sedang 7. Jumlah client yang dapat Satu client Tergantung Satu client dilayani dalam satu saat kapabilitas WAP server 2.2 Bluetooth 2.2.1 Sejarah Bluetooth Ide dasar dari teknologi komunikasi Bluetooth lahir dari para teknisi yang berasal dari Swedish Telecommunications Manufacturer 9 Telefonaktiebolaget LM Ericsson (Hereafter, Ericson) yang mencoba menciptakan teknologi komunikasi dalam jarak pendek. Pada tahun 1994 Ericsson mencoba memulai mempelajari teknik komunikasi yang memerlukan daya rendah serta biaya yang murah dengan menggunakan gelombang radio untuk menghilangkan komunikasi kabel antara telepon selular dengan aksesorisnya. Agar penelitian dapat lebih terarah maka pada tahun 1998, beberapa perusahaan yang bergerak dalam bidang teknologi komunikasi seperti Ericsson, Intel Corporation, International Business Machines Corporation (IBM), Nokia Corporation dan Toshiba Corporation bekerja sama untuk mendirikan sebuah lembaga yang difokuskan untuk pengembangan teknologi Bluetooth yang dinamakan Bluetooth Special Interest Group (SIG). [2] Bluetooth versi 1.0 merupakan Bluetooth versi pertama yang diluncurkan secara resmi oleh Bluetooth SIG pada tahun 1999. Pada tahun 2001 diluncurkan Bluetooth versi 1.1 secara khusus yang dikenal dengan nama Bluetooth SIG 2001b, kemudian pada tahun 2003 diluncurkan Bluetooth versi 1.2 yang dikenal dengan nama Bluetooth SIG 2003a. Bluetooth versi 2.0 diluncurkan pada tahun 2004, kemudian dibuat standardnya oleh IEEE yang dikategorikan ke dalam group Wireless Personal Area Network (WPAN) dengan standard 802.15.1[3]. 2.2.2 Teknologi Bluetooth • Frekuensi operasi Bluetooth beroperasi dari frekuensi 2400 – 2483,5 MHz yang terbagi dalam 79 channel dengan bandwith sebesar 1 MHz untuk setiap channel. Bluetooth menggunakan frekuensi hopping di dalam melakukan komunikasi data dan 10 suara secara real time antara host-host bluetooth dengan jarak terbatas [1]. Frekuensi hopping adalah suatu teknik transmisi gelombang radio dengan menggunakan pergantian frekuensi yang berbeda-beda dan terus menerus untuk berkomunikasi supaya informasi yang dikirimkan tidak disadap oleh pihak yang tidak berwenang [2]. • Jangkauan layanan Jangkauan layanan bluetooh bervariasi antara 1 m, 10 m dan 100 m. Besar jangkauan layanan tergantung pada daya transmitter, semakin besar daya semakin jauh jarak jangkauan transmisinya. Berdasarkan jangkauanya Bluetooth dapat dikategorikan ke dalam tiga kelas[1][8]: Tabel 2.2. Kelas Bluetooth • kelas Daya (mW) Jangkauan (meter) 1 100 mW 100 meter 2 10 mW 10 meter 3 1 mW 1 meter Fasilitas Bluetooth Bluetooth dapat mendukung komunikasi data dan suara. Komunikasi suara pada Bluetooth menggunakan metode circuit-switching mode dengan jalur komunikasi Synchronous Connection Oriented (SCO) sedangkan komunikasi data menggunakan metode packet-switching mode dengan jalur komunikasi Asynchronous Connection Less (ACL). [1] 11 • Data rate Bluetooth versi 1.0 dapat mencapai kecepatan hingga 723,1 Kbps, sementara Bluetooth versi 2.0 memilik kecepatan hingga 2,1 Mbps. Teknologi Enhanced Data Rate (EDR) dikembangkan untuk meningkatkan kecepatan transmisi pada bluetooth versi 2.0. [1] • Topologi Jaringan Topologi jaringan pada teknologi Bluetooth dibagi menjadi dua yaitu piconet dan scatternet. ¾ Piconet Di dalam melakukan komunikasi data, Bluetooth dibagi menjadi dua bagian yaitu master dan slave. Komunikasi yang terbangun antara master dan slave dinamakan dengan piconet. Piconet terdiri dari point-to-point dan point-to-multipoint. Agar dapat berkomunikasi antara master dan slave harus mempunyai frekuensi yang sama. Komunikasi antara 1 master dan 1 slave Master Slave 12 Komunikasi antara 1 master dan beberapa slave S M S S S S Gambar 2.1. Piconet Slave harus menyesuaikan frekuensi yang dipancarkan oleh master sehingga komunikasi data dapat dilaksanakan. [1] ¾ Scatternet Scatternet adalah beberapa jaringan piconet yang saling berhubungan dan berkomunikasi antara yang satu dengan yang lain [1]. Gambar berikut merupakan contoh scatternet. Gambar 2.2. Scatternet 13 2.2.3 Arsitektur Bluetooth Perangkat bluetooth membutuhkan bluetooth protocol stack supaya dapat melakukan komunikasi data. Bluetooth protocol stack dapat berupa hardware maupun software. Bluetooth protocol stack dapat dilihat pada gambar 2.3. Bluetooth protocol stack terbagi ke dalam dua bagian yaitu bluetooth host dan bluetooth controller, Host Controller Interface (HCI) menyediakan layanan untuk interaksi antara bluetooth host dengan bluetooth controller. Gambar 2.3. Bluetooth Protocol Stack, warna hijau merepresentasikan protokol yang dikontrol oleh JAVA API Pada gambar 3 terdapat bagian yang ditandai dengan warnai hijau merepresentasikan bahwa bagian tersebut dikontrol oleh paket API dari Java (perangkat lunak). Layer radio bertanggung jawab untuk melakukan modulasi dan demodulasi data untuk transmisi gelombang radio. Baseband/Link Controller berfungsi untuk mengontrol jalur komunikasi melalui gelombang radio, misalnya 14 pengaturan frekuensi hopping untuk komunikasi. Link Manager Protocol (LMP) bertanggung jawab untuk keamanan transmisi data. RFCOMM merupakan protokol yang digunakan untuk melakukan data secara serial. Object Exchange (OBEX) merupakan protokol untuk melakukan pertukaran objek, misalnya untuk pertukaran file. Telephony Control Protocol Specification (TCS) menyediakan layanan telepon. Service Discovery Protocol (SDP) merupakan protokol yang berfungsi untuk mencari layanan perangkat bluetooth yang tersedia. RFCOMM merupakan protokol yang berfungsi untuk mengubah data ke dalam bentuk untaian bit sehingga siap untuk dikirimkan melalui medium gelombang radio. Logical Link Control and Adaptation Protocol (L2CAP) merupakan protokol yang berfungsi untuk melakukan konversi untaian bit dari RFCOMM ke dalam bentuk paket data.[2] 2.2.4 Perbandingan teknologi Bluetooth dengan teknologi lain. 2.2.4.1 Bluetooth dengan IrDA Infrared Data Association didirikan pada tahun 1993 dengan tujuan melakukan komunikasi point to point dengan biaya yang murah. IR terdiri dari dua yaitu Serial IR (SIR) yang dapat mendukung pertukaran data sampai dengan 115 Kbps dan Fast IR (FIR) yang dapat mendukung pertukaran data sampai dengan 4 Mbps dalam radius jangkauan sejauh 1 meter. Kelemahan dari IR adalah sinyal gelombang pada infrared tidak dapat digunakan untuk menembus tembok penghalang, dan jarak transmisi yang relatif pendek.[1] 15 2.2.4.2 Bluetooth dengan HomeRF Jangkauan dari HomeRF dapat mencapai 50 meter, dapat mencakup sebanyak 127 perangkat dalam satu jaringan. Home RF beroperasi pada frekuensi 2,4 GHz dengan daya transmit sebesar 100mW. Kecepatan transfer data dapat mencapai 10 Mbps dengan menggunakan frekuensi hopping spread spectrum dalam 50 hops per detik.[1] 2.2.4.3 Bluetooth dengan 802.11 Wireless LAN Wireless LAN di kembangkan oleh IEEE dengan standar yang sudah di tentukan yaitu 802.11 yang didukung oleh Wireless Ethernet Compatibility Association (WECA). Wireless LAN 802.11 dapat mendukung penggunaan 10 sampai dengan 100 access point dengan data rate yang mencapai 11 Mbps, dengan menggunakan medium access yaitu Direct Sequence Spread Spectrum (DSSS).[1] 2.3 Pemrograman Java 2.3.1 Sejarah Perkembangan Java Bill Joy, direktur utama Sun Microsystems, dipercaya sebagai orang yang pertama kali mencetuskan ide mengenai sebuah bahasa pemrograman yang kemudian dikenal dengan nama bahasa pemrograman Java. Pada akhir tahun 1970an, Joy ingin membangun sebuah bahasa yang dapat menggabungkan semua fitur yang terdapat pada bahasa MESA dan C. Pada tahun 1980an, Joy mencoba menulis ulang sistem operasi UNIX dan Joy menemukan bahwa C++ tidak cocok 16 untuk mendukung pekerjaannya tersebut. Sebuah perangkat yang lebih baik dari C++ dibutuhkan untuk menulis program secara pendek dan lebih efektif [4][9]. Pada januari tahun 1991, Bill Joy, James Gosling, Mike Sheradin, Patrick Naughton, dan beberapa orang pemrogram lainnya melakukan pertemuan untuk pertama kalinya di Aspen, Colorado untuk berdiskusi mengenai sebuah proyek rahasia. Tujuan dari proyek rahasia tersebut adalah untuk melakukan penelitian mengenai penerapan aplikasi komputer ke dalam pasar barang-barang elektronik. Visi dari proyek ini adalah untuk mengembangkan sebuah sistem perangkat elektronik yang pintar, yang dapat dikontrol secara terpusat dan dapat diprogram melalui sebuah perangkat yang menyerupai remote control. Dengan tujuan dan keinginan yang kuat dalam pikiran mereka, tim proyek rahasia yang terakhir dikenal dengan nama proyek The Green ini, mulai bekerja keras membangun sistem tersebut. Dalam pengembangan proyek The Green tersebut, James Gosling yang merupakan salah satu programmer yang bergabung dengan Sun sejak tahun 1984, melakukan modifikasi dan penambahan ke dalam bahasa C++ (atau dikenal juga C++ ++ --). Hal ini merupakan langkah awal dari pengembangan bahasa program yang diramalkan akan menjadi bahasa program yang cocok untuk pengembangan proyek The Green. James Gosling memberi nama kepada bahasa program hasil modifikasi tersebut dengan nama “Oak”, karena tempat kerja James Gosling menghadap ke sebuah pohon Oak, dan setiap hari dia selalu berhadapan dengan pohon Oak tersebut ketika bekerja. Nama Oak tidak dipakai ketika bahasa program ini diluncurkan pertama kalinya, karena sebelumnya sudah terdapat sebuah perangkat lunak yang terdaftar dengan merek dagang tersebut, sehingga 17 diambil nama penggantinya yaitu “Java”. Nama ini diambil dari kopi murni yang digiling langsung dari biji kopi kesukaan Gosling. Kelebihan bahasa pemrogramman java dibandingkan dengan bahasa lainnya antara lain adalah [4][7]: • Multiplatform, di mana program Java dapat dijalankan di beberapa platform atau sistem operasi komputer, sesuai dengan prinsip write once, run every where. • Java mengadopsi konsep pemrograman berorientasikan objek. • Library kelas sangat lengkap memudahkan para programmer untuk membangun aplikasinya. • Java memiliki fasilitas pengaturan penggunaan memori sehingga programmer tidak perlu melakukan pengaturan memori secara langsung. Kekurangan bahasa pemrograman Java antara lain [4]: • Ada beberapa hal yang tidak kompatibel antar platform sehingga membutuhkan waktu debug yang cukup lama. • Mudah didekompilasi, yaitu suatu proses membalikkan dari executable code menjadi source code. • Pemakaian resource memori yang cukup besar sehingga tidak efisien. Integrated Development Environment (IDE) merupakan program yang dibuat untuk membantu mempermudah pengguna dalam menulis sebuah bahasa program. IDE yang dirancang untuk Java diantaranya yaitu NetBeans, Eclipse 18 JDT, IntelliJ IDEA, Oracle JDeveloper, Xinox JCreator, dan lain-lain sebagainya [13]. 2.3.2 Pengenalan Java Java adalah bahasa pemrograman serbaguna yang tidak bergantung pada platform; artinya, program yang ditulis dengan bahasa Java dapat dijalankan pada sebarang komputer dan bahkan pada sebarang sistem operasi. Java mengadopsi konsep pemrograman berorientasi objek. Kode sumber (source code) di dalam bahasa pemrograman Java disimpan dalam file dengan bentuk format .java. Di dalam bahasa pemrograman Java disertakan paket Java Development Kit (JDK) yang berfungsi sebagai compiler untuk melakukan kompilasi atau menterjemahkan kode sumber ke dalam bentuk bytecode. Kode yang disebut bytecode dapat dijalankan pada berbagai sistem operasi karena kode ini berbeda dengan kode mesin. Kode mesin sangat bergantung pada platform, sedangkan bytecode dapat dimengerti oleh semua platform yang telah dilengkapi dengan interpreter Java. Java Runtime Environment (JRE) merupakan interpreter Java yang menterjemahkan bytecode ke dalam bahasa mesin sehingga aplikasi Java dapat dijalankan di dalam berbagai sistem operasi. [4] 19 . Gambar 2.4. Tahap-tahap dalam Pemrograman Java 2.3.3 Pemrograman Berorientasi Objek Pemrograman Berorientasi Objek dimulai pertama kali dengan bahasa Simula yang dikembangkan di Scandinavia di pertengahan tahun 60-an. Simula digunakan untuk penulisan program simulasi, yaitu dengan cara memodelkan suatu entitas eksternal / diluar sistem perangkat lunak dan kemudian memilih istilah-istilah untuk entitas-entitas tersebut dan tingkah lakunya. Tugas utama dari seorang perancang program dengan Simula adalah menentukan behaviour dari entitas tersebut.[6] Konsep pemrograman berorientasi objek menjadikan suatu objek sebagai komponen utama dalam program. Objek terdiri dari data dan fungsi sebagai satu kesatuan. Fungsi adalah subprogram atau sekumpulan kode yang diberi suatu 20 nama tersendiri untuk suatu tugas spesifik. Pendekatan pemrograman berorientasi objek membuat pengembangan program dapat dilakukan dengan lebih mudah, mengurangi duplikasi kode, dan mengurangi kesalahan. Pada pemrograman berorientasi objek terdapat dua istilah yang sangat terkenal yaitu kelas dan objek. Perbedaan kelas dan objek dapat dianalogikan dengan cetakan kue dan kue hasil cetakan. Kelas itu seperti cetakan kue, kelas adalah cetakan untuk objek. Sementara sejumlah kue yang diciptakan dengan menggunakan sebuah cetakan disebut sebagai objek. Ilustrasi di bawah ini menggambarkan kelas sebagai sebuah cetakan kue dengan bentuk bintang, dan objek atau kue hasil cetakan memiliki bentuk yang sama dengan bentuk cetakan kue atau kelas. [4] Objek Kelas Objek Objek Gambar 2.5. Kelas dan Objek Contoh sebuah kelas adalah mobil, sementara jika misalnya terdapat mobil Liman, mobil Tony, atau mobil Albert, masing-masing mobil ini berkedudukan sebagai objek. Objek berkelas mobil dapat memiliki data seperti merk mobil, warna mobil, tipe mobil, dan atribut lain yang berhubungan dengan 21 mobil. Metode atau fungsi yang dimiliki objek berkelas mobil dapat berupa cara menghidupkan mesin, mengerem, dan lain-lain sebagainya. [4] Abstraksi adalah suatu cara melihat suatu objek dalam bentuk yang sederhana. Sebagai contoh adalah sepeda motor, pengendara tidak perlu melihat susunan komponen mesin dan dukungan elektriknya yang cukup kompleks dan rumit, namun cukup melihat sepeda motor itu sebagai sebuah entitas / satuan tunggal (single entity) yang merupakan sebuah objek yang mempunyai sifat dan karakteristik tersendiri. Konsep abstraksi mempermudah programmer untuk melihat suatu sistem yang kompleks menjadi sebuah paket sistem yang lebih sederhana. Ciri khas pemrograman berorientasi objek adalah [6]: • Enkapsulasi Enkapsulasi adalah suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem sekaligus menyederhanakan penggunaan sistem itu sendiri. Akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface. • Pewarisan (Inheritance) Konsep pewarisan merupakan suatu proses di mana suatu kelas diturunkan dari kelas lainnya sehingga kelas turunan mendapatkan ciri atau sifat dari kelas induk. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik tambahan yang diinginkan dari karakteristik yang sudah ada pada kelas sebelumnya. 22 Gambar 2.6. Inheritance Ilustrasi di atas menggambarkan contoh pewarisan. Kelas anjing, kucing, dan monyet merupakan kelas turunan, dan telah memiliki karakteristik dari kelas induknya yaitu mamalia, dan kelas mamalia telah memiliki karakteristik dari kelas sebelumnya yaitu kelas binatang, sehingga programmer tidak perlu mendefinisikan ulang setiap kali penulisan program yang baru. • Polimorfisme Polimorfisme berarti banyak bentuk. Di dalam pemrograman berorientasi objek, konsep polimorfisme digunakan untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip adalah sama, namun secara proses berbeda. Contoh konkrit dari polimorfisme yaitu mobil. Mobil dengan tipe dan merk yang berbeda-beda memiliki interface kemudi yang sama, seperti: stir, tongkat transmisi, pedal gas dan rem. Interface yang sama tidak berarti cara kerjanya juga sama. Seperti pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tetapi proses peningkatan kecepatan ini dapat berbeda-beda untuk setiap jenis mobil. 23 Jika seseorang dapat mengemudikan salah satu jenis mobil, maka orang itu akan dapat mengemudikan hampir semua jenis mobil, demikian konsep polimorfisme diserap untuk diterapkan dalam penulisan program bagi programmer. 2.3.4 Platform Java Standard Edition (Java SE) 2.3.4.1 Pengenalan Java SE Java Platform, Standard Edition atau Java SE (dikenal juga dengan nama Java 2 Platform, Standard Edition) adalah sebuah koleksi APIs (Application Programming Interfaces) dalam bahasa pemrograman Java yang berguna untuk menulis program Java dalam berbagai jenis platform atau sistem operasi. Java Platform, Enterprise Edition memiliki semua jenis kelas yang terdapat di dalam Java Platform, Standard Edition, ditambah lagi dengan sejumlah APIs yang berguna untuk menjalankan program pada sebuah server[4]. Java SE biasanya dipakai untuk mengembangkan aplikasi atau program yang berjalan pada sebuah workstation atau pun terminal. Beberapa hal yang dapat dikerjakan oleh Java SE diantaranya yaitu untuk penulisan aplikasi pengaksesan database, aplikasi penunjang sistem operasi, antar muka dengan berbagai jenis media seperti misalnya Bluetooth, serta berbagai aplikasi permainan, dan kontrol terhadap suatu perangkat keras. 24 2.3.4.2 Arsitektur Java SE Paket API utama yang disediakan oleh Java SE dapat dikelompokkan atas General purpose package dan Special Purpose Package. General purpose package merupakan paket yang umum yang digunakan untuk antar muka dengan sistem operasi, sementara special purpose package merupakan paket yang dikhususkan untuk aplikasi-aplikasi tertentu seperti misalnya GUI (Graphical User Interface), pengaksesan database, antar muka dengan media Bluetooth, dan lain-lain sebagainya. [11] Java Runtime Environment (JRE) yang digunakan untuk interpretasi bytecode dari Java SE adalah Java Virtual Machine (JVM). Bagian Java SE terdiri dari sekumpulan library penunjang perancangan aplikasi. Secara garis besar, arsitektur dari Java SE dapat dilihat dari gambar berikut [4]: Applet / aplikasi J2SE JVM J2SE Gambar 2.7. Arsitektur Java SE 25 2.3.5 Platform Java Microedition (Java ME) 2.3.5.1 Pengenalan Java ME Java Micro Edition atau Java ME (dikenal juga dengan nama Java 2 Micro Edition atau J2ME) adalah lingkungan pengembangan yang didesain untuk meletakkan perangkat lunak Java pada perangkat elektronik berserta perangkat pendukungnya. Pada Java ME, jika perangkat lunak berfungsi baik pada sebuah perangkat, maka belum tentu juga berfungsi dengan baik pada perangkat yang lainnya. Java ME biasa digunakan untuk penulisan program pada telepon seluler, pager, Personal Digital Assistants (PDAs) dan sejenisnya. Teknik pemrograman pada Java ME menganut konsep pemrograman berorientasi objek [4] yang sama dengan teknik pemrograman pada Java Platform, Standard Edition (Java SE), tetapi pada Java ME memiliki arsitektur yang sedikit berbeda dengan Java SE. 2.3.5.2 Arsitektur Java ME Teknologi Java ME memiliki beberapa keterbatasan, terutama jika diaplikasikan pada ponsel. Java ME sangat tergantung pada perangkat (device) yang digunakan, bisa dari segi merk ponsel, maupun kemampuan ponsel, dan dukungannya terhadap teknologi Java ME. Misalnya, jika sebuah ponsel tidak memiliki fasilitas kamera maka jelas program yang ditulis dengan Java ME untuk ponsel tersebut tidak dapat mengakses kamera. Keterbatasan lainnya adalah pada ukuran aplikasi, karena memori pada ponsel sangat terbatas. Sebagian besar ponsel tidak mengijinkan aplikasi Java ME menulis pada file karena alasan keamanan. 26 Java ME adalah bagian dari Java SE, karena itu tidak semua library yang ada pada Java SE dapat digunakan pada Java ME. Tetapi Java ME mempunyai beberapa library khusus yang tidak dimiliki Java SE. Arsitektur Java ME dapat dilihat pada gambar berikut [5]: Profile Kumpulan Configuration Library JRE Sistem Operasi Gambar 2.8. Arsitektur Java ME Configuration dan profile Configuration merupakan Java library minimum dan kapabilitas yang dipunya oleh para pengembang Java ME, configuration berisi library yang digunakan untuk mendukung penulisan program yang berfungsi untuk mengatur hal-hal yang sama pada setiap mobile devices, seperti misalnya layar LCD pada mobile devices, sehingga dapat dijadikan sebagai acuan kesesuaian antar device. Dalam Java ME telah didefinisikan dua buah configuration yaitu CLDC (Connected Limited Device Configuration) untuk perangkat kecil dan CDC (Connected Device Configuration) untuk perangkat yang lebih besar [5]. Profile berbeda dengan Configuration, profile berisi library untuk membantu pengembangan aplikasi yang lebih spesifik untuk mobile device, seperti misalnya pengembangan aplikasi pada mobile device yang terintegrasi 27 dengan kamera, blutooth, dan lain-lain sebagainya. Profile terdiri atas dua yaitu MIDP (Mobile Information Device Profile) dan Foundation profile. Java Runtime Environment (JRE) yang akan digunakan untuk interpretasi bytecode pada Java ME tergantung pada jenis configuration yang digunakan, untuk configuration CLDC digunakan KVM (Kilobyte Virtual Machine), sementara untuk CDC digunakan CVM (C-Virtual Machine). Perbandingan CLDC dengan CDC Paket library dari configuration pada Java ME dapat dibedakan atas CLDC dan CDC, perbandingan antar keduanya dapat dilihat dari tabel berikut [5]: Tabel 2.3. Perbandingan CLDC dengan CDC CLDC CDC Mengimplementasikan sebagian dari Mengimplementasikan seluruh fitur Java SE Java SE JRE yang digunakan adalah KVM JRE yang digunakan adalah CVM Digunakan pada perangkat genggam Digunakan pada perangkat dengan (handphone, PDA, twoway pager) memori minimal 2 MB seperti dengan memori terbatas (160-512 misalnya Internet TV, KB) Communicator, dan Car TV Prosesor: 16 / 32 bit Prosesor: 32 bit Nokia 28 Mobile Information Device Profile (MIDP) MIDP atau Mobile Information Device Profile adalah salah satu spesifikasi untuk profile Java ME. MIDP merupakan profile untuk configuration CLDC, yang berupa API tambahan untuk kontrol aplikasi, antarmuka, jaringan, dan penyimpanan data. Pada saat ini terdapat MIDP 1.0 dan MIDP 2.0. Fitur tambahan MIDP 2.0 dibanding MIDP 1.0 adalah API untuk multimedia. Posisi MIDP pada arsitektur Java ME dapat dilihat pada gambar 2.8. Perbandingan antara MIDP 1.0 dengan MIDP 2.0 dapat dilihat dari tabel berikut [5]: Tabel 2.4. Perbandingan MIDP 1.0 dengan MIDP 2.0 Spesifikasi MIDP 1.0 MIDP 2.0 Display 96 x 54 96 x 54 Kedalaman 1-bit 1-bit Bentuk piksel Mendekati 1:1 Mendekati 1:1 Input Keyboard Display dan touch Keyboard dan touch screen screen Memori 128 KB memori non- 256 KB memori non-volatile volatile untuk MIDP untuk MIDP 8 KB memori untuk data 8 KB memori untuk data yang yang dibuat oleh aplikasi dibuat oleh aplikasi 32 KB memori volatile 128 KB memori untuk JRE untuk JRE 29 Jaringan Full duplex, wireless Full duplex, wireless Library Java Javax.microedition.lcdui Javax.microedition.lcdui ME Javax.microedition.midlet yang Javax.microedition.midlet bukan Javax.microedition.rms Javax.microedition.rms merupakan Javax.microedition.lcdui.game library Javax.microedition.media Java SE Javax.microedition.pki Multimedia Memiliki kemampuan untuk memainkan file multimedia (suara dan video) MIDlet MIDlet adalah aplikasi yang ditulis untuk MIDP. Aplikasi MIDlet adalah bagian dari kelas javax.microedition.midlet.MIDlet yang didefinisikan pada MIDP. MIDlet berupa sebuah kelas abstrak yang merupakan sub kelas dari bentuk dasar aplikasi sehingga antarmuka antara aplikasi Java ME dan aplikasi manajemen pada perangkat dapat terbentuk [5]. Record Management System (RMS) MIDlet tidak menggunakan file sistem unutk menyimpan data, tetapi menyimpan semua informasi dalam sebuah memori non-volatile (memori tetap) yang disebut dengan Record Management System (RMS). Record Management System (RMS) adalah kumpulan record yang disimpan sebagai array dari byte dalam sebuah record store. RMS memiliki orientasi record basis data yang 30 sederhana sehingga MIDlet dapat menyimpan informasi dan mengaksesnya. MIDlet yang berbeda dapat mengakses RMS yang sama. Keterkaitan MIDlet, RMS dan record store dapat dilihat pada gambar dibawah ini: MIDlet Record Store RMS API Gambar 2.9. Keterkaitan MIDlet dan Record Store Java ME Wireless Toolkit Java ME Wireless Toolkit adalah program yang menyediakan lingkungan emulator, dokumentasi beserta contoh-contoh aplikasi Java untuk perangkat kecil (small device). Java ME WTK berbasiskan pada CLDC dan MIDP. Java ME WTK adalah program yang meniru kerja ponsel yang mendukung MIDP atau yang biasa disebut emulator. Oleh karena itu, belum tentu MIDlet yang berjalan di emulator juga berjalan pada ponsel yang sebenarnya, karena juga bergantung pada kemampuan dan kapasitas ponsel yang digunakan [5]. 31 2.3.6 Bluetooth dengan Java Konsep dasar untuk membangun koneksi Bluetooth pada aplikasi java terdiri atas inisialisasi stack protokol, pencarian perangkat Bluetooth, menajemen perangkat Bluetooth, pencarian jenis layanan Bluetooth yang tersedia, dan komunikasi data. Stack Bluetooth adalah perangkat lunak yang mengendalikan perangkat Bluetooth. Inisialisasi stack berfungsi untuk mempersiapkan perangkat Bluetooth supaya dapat melakukan komunikasi data nirkabel. Manajemen perangkat Bluetooth dilakukan dengan menggunakan dua kelas pada java yaitu LocalDevice dan RemoteDevice. LocalDevice adalah kelas yang akan memberikan informasi tentang perangkat Bluetooth yang akan digunakan untuk melakukan komunikasi data. RemoteDevice adalah perangkat Bluetooth yang berada di sekitar perangkat bluetooh yang digunakan untuk melakukan komunikasi. Pencarian perangkat Bluetooth dilakukan dengan tujuan agar program Java dapat mendapatkan informasi mengenai perangkat Bluetooth yang berada dalam jangkauan. DiscoveryAgent dan DiscoveryListener adalah kelas pada Java yang digunakan untuk mencari perangkat Bluetooth. Pencarian layanan pada perangkat Bluetooth digunakan untuk mengidentifikasi layanan apa saja yang ditawarkan oleh perangkat Bluetooth. Hal ini dilakukan dengan metode searchServices() pada DiscoveryAgent. Metode serviceDiscovered() ditemukan.[12] akan dipanggil secara otomatis apabila layanan 32 2.3.6.1 Java SE dengan Bluetooth Koneksi Bluetooth pada Java SE dapat dilakukan dengan beberapa cara, diantaranya adalah dengan menggunakan paket javax.com atau dengan menggunakan Java Spesification Request – 82 (JSR-82) API. Aplikasi Bluetooth dengan JSR-82 menggunakan pendekatan penggunaan Bluetooth pada Java ME. JSR-82 dapat digunakan dengan cara menginstalasikan implementasi JSR-82 terlebih dahulu pada komputer. Bluecove adalah salah satu contoh implementasi JSR-82 yang dapat digunakan pada sistem operasi Windows XP SP 2, dan tersedia secara gratis. JSR-82 merupakan suatu spesifikasi komunikasi data dengan bluetooth menggunakan bahasa pemrograman Java yang dikeluarkan oleh Java Community Process (JCP). [9] 2.3.6.2 Java ME dengan Bluetooth Koneksi Bluetooth dengan menggunakan aplikasi Java ME dilakukan dengan menggunakan JSR-82, karena pada dasarnya Java ME tidak menyertakan implementasi untuk koneksi Bluetooth. Perangkat elektronik yang memiliki kemampuan komunikasi dengan Bluetooth pada umumnya sudah menyertakan implementasi JSR-82 API. Keterbatasan perangkat elektronik yang memiliki kemampuan komunikasi Bluetooth dapat menyebabkan adanya kemungkinan tidak semua JSR-82 API dapat digunakan, sehingga pemrograman dengan menggunakan JSR-82 API juga harus memperhatikan kemampuan perangkat elektronik dimana program java akan ditempatkan. [10] 33 2.3.7 Browser Web browser adalah suatu perangkat lunak yang membantu pengguna untuk berinteraksi dengan tulisan, gambar, dan informasi lainnya yang terdapat pada suatu halaman web yang berlokasi pada situs-situs yang terdapat di jaringan internet dunia (world wide web) atau pada sebuah jaringan lokal. Pada web pages biasanya terdapat hyperlinks yang berguna untuk mempermudah navigasi bagi pengguna. Beberapa jenis web browsers yang tersedia diantaranya Internet Explorer, Mozilla Firefox, Safari, Opera, dan Netscape. Web browsers berkomunikasi dengan suatu web server dengan menggunakan protokol HTTP (hypertext transfer protocol), dan alamat lokasi web server yang akan dituju dilihat dari URL (Uniform Resource Locator) yang biasanya terdapat pada setiap web browser. Format file yang diterima oleh suatu web browsers dari suatu web page biasanya berupa HTML (hyper-text markup language). Hampir setiap web browsers pada dasarnya mendukung berbagai jenis format file tambahan pada HTML, seperti JPEG, PNG, GIF, dan beberapa format file lainnya yang membutuhkan suatu plugins supaya dapat dikenali oleh protokol HTTP pada web browsers. [1]