PEMBUATAN APLIKASI MOBILE PEMESANAN
MAKANAN DAN MINUMAN BERBASIS
J2ME DAN BLUETOOTH
MIFTAKH ARKHAN ZEIN TAPTOZANI
NRP. 74 05 040 730
Dosen Pembimbing:
Yuliana Setyowati, S.Kom, M.Kom
Harits Ar Rosyid, S.T, M.T
JURUSAN TEKNIK INFORMATIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER
PEMBUATAN APLIKASI MOBILE PEMESANAN MAKANAN DAN MINUMAN BERBASIS
J2ME DAN BLUETOOTH
SOFTWARE DEVELOPMENT OF MOBILE APPLICATION ON FOOD AND BEVERAGE ORDERING SYSTEM USING
J2ME AND BLUETOOTH
Miftakh Arkhan Zein Taptozani NRP. 74 05 040 730
Dosen Pembimbing : Yuliana Setyowati, S.Kom, M.Kom
NIP. 19780706.200212.2.003 Harits Ar Rosyid, S.T, M.T
JURUSAN TEKNIK INFORMATIKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA 2009
ii
PEMBUATAN APLIKASI MOBILE PEMESANAN
MAKANAN DAN MINUMAN BERBASIS
J2ME DAN BLUETOOTH
PROYEK AKHIRDiajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains Terapan
pada
Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember
Oleh:
MIFTAKH ARKHAN ZEIN TAPTOZANI NRP. 74 05 040 730
Disetujui oleh: Tim Penguji Proyek Akhir:
Dosen Penguji I
Kholid Fathoni, S.Kom
NIP. 19801226.2008121.2.003
Dosen Pembimbing: Dosen Pembimbing I
Yuliana Setyowati, S.Kom, M.Kom
NIP. 19780706.200212.2.003 Dosen Penguji II Siyamta, S.Pd, S.ST, M.T NIP. 19740926.200212.1.002 Dosen Pembimbing II Harits Ar Rosyid, S.T, M.T
Dosen Penguji III
Farid Zuniawan, ST
Mengetahui,
Ketua Jurusan Teknologi Informasi
Arna Fariza, S.Kom., M.Kom
iii
MAKANAN DAN MINUMAN BERBASIS J2ME DAN BLUETOOTH
Nama Mahasiswa : MIFTAKH ARKHAN ZEIN TAPTOZANI
NRP : 74 05 040 730
Jurusan : Teknik Informatika
Dosen
Pembimbing :
1. YULIANA SETYOWATI, S.Kom, M.Kom 2. HARITS AR ROSYID, S.T, M.T
Abstrak
Penggunaan media bluetooth dan J2ME untuk restoran akan memudahkan proses pemesanan dan administrasi, karena untuk media alat tulis dan kertas untuk pemesanan makanan dan minuman menemui kendala-kendala antara lain adanya pemesanan yang rangkap (redudansi), tidak urutnya pembuatan pemesanan akibat bertumpuk nya nota pemesanan terutama pada saat ramai pengunjung.
Aplikasi pemesanan makanan dan minuman via bluetooth merupakan implementasi dari Java API (Application Programming
Interface) bluetooth (JSR-82) yang bertujuan untuk memberikan solusi
alternatif untuk pemesanan makanan dan minuman di foodcourt dengan menggunakan telepon selular. Aplikasi ini terdiri dari dua bagian yaitu aplikasi bluetooth server pada komputer dan aplikasi MIDlet bluetooth
client pada telepon selular yang mendukung JSR-82. Tipe jaringan bluetooth yang digunakan adalah piconet. Aturan komunikasi client-server
yaitu client mengirimkan request message pada server dan server akan membalas dengan reply message ke client.
Berdasarkan hasil pengujian lama waktu koneksi untuk pencarian perangkat antara client dengan server berkisar antara 13,2 - 15,5 detik. Sedangkan untuk transfer data berkisar antara 2 - 4 detik. Fitur-fitur yang tersedia pada aplikasi ini melihat daftar restoran, melihat daftar menu dan harga, melakukan pemesanan, melihat pesanan, melayani pembayaran, serta melihat pesanan yang harus dilayani. Dengan menggunakan aplikasi ini, pengguna dapat melakukan pemesanan makanan dan minuman dengan mudah dan nyaman
iv
SOFTWARE DEVELOPMENT OF MOBILE APPLICATION ON FOOD AND BEVERAGE ORDERING SYSTEM USING
J2ME AND BLUETOOTH
Name : MIFTAKH ARKHAN ZEIN TAPTOZANI
Student ID : 74 05 040 730
Departement : Informatics Engineering
Promotor
: 1. YULIANA SETYOWATI, S.Kom, M.Kom
2. HARITS AR ROSYID, S.T, M.T
Abstract
The usage of bluetooth and J2ME for restaurant will facilitate the ordering process and administration, because the uses of paper and stationery for the ordering food and beverage meet constraints, for example the redundancy of ordering which have double order, inappropriate between ordering and result because the cumulative effect of ordering note, especially at the time when many visitors come.
The food and beverage ordering via bluetooth application is implementation of Java API (Application Programming of Interface) bluetooth (JSR-82) to give alternative solution for the ordering of food and beverage in foodcourt by using cellular telephone. This application consist of two shares that is bluetooth server application at computer and MIDlet bluetooth client at cellular telephone with JSR-82 support. Network topology of bluetooth is use piconet. Communications process between client-server is client deliver request message to server and server will reciprocate with reply message to client.
From the trial result, time to make connection for the searching bluetooth devices between client and server is with range from 13,2 to 15,5 second. While to the data transfer is with range from 2 to 4 second. Fitures that available at this application is see restaurant list, see menu list and price, do ordering food or drink, see order, serving payment, and also see order which must serve. By using this application, consumer can do food and beverafe ordering easily and balmy.
v
KATA PENGANTAR
Alhamdulillah wa syukrulillah wash-shalatu wassalaamu ’alaa Rasulillah, Sayyidina Muhammadin wa’ala alihi wa shahbihi wa sallim. Segala puji dan syukur, kehadirat Allah SWT yang telah memberikan rahmat, cinta dan hidayah-Nya sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul:
“PEMBUATAN APLIKASI MOBILE PEMESANAN MAKANAN DAN MINUMAN BERBASIS
J2ME DAN BLUETOOTH”
Buku tugas akhir ini disusun dan diajukan sebagai salah satu syarat untuk menyelesaikan program pendidikan Diploma IV di Politeknik Elektronika Negeri Surabaya – Institut Teknologi Sepuluh Nopember Surabaya.
Dalam penyusunan Tugas Akhir ini, penulis berusaha untuk menerapkan ilmu yang telah didapat selama menjalani perkuliahan dengan tidak terlepas dari petunjuk, bimbingan, bantuan dan dukungan dari berbagai pihak. Tentu saja, dibalik semua usaha yang telah dilakukan, penulis menyadari bahwa masih banyak kekurangan di dalam penyusunan buku laporan proyek akhir ini, untuk itu penulis mohon maaf dan mengharapkan saran – saran serta kritik yang membangun dari pembaca. Dan tentunya semoga buku ini dapat bermanfaat agar dapat menghasilkan sumber daya manusia yang berkualitas, Amien.
Malang, Juli 2009
vi
UCAPAN TERIMA KASIH
Dalam kesempatan ini penulis hendak menyampaikan penghormatan dan terima kasih yang sebesar-besarnya kepada pihak-pihak yang telah memberi bantuan moral, material maupun spiritual secara langsung maupun tidak langsung, yaitu kepada:
1. Allah SWT dan Rasul-Nya Nabi Muhammad SAW.
2. Mursyid serta guru-guru yang kuhormati dan cintai. Semoga Allah senantiasa memberikanku manfaat dari berkah guru-guruku dan semoga Allah mencurahkan kesejahteraan dan rahmat-Nya kepada Syekh Muhammad Nazim Adil Al Haqqani, Syekh Muhammad Hisyam Kabbani, Syekh Muhammad Adnan Kabbani, Syekh Mustofa Mas’ud dan Syekh Muhammad Sholeh Hudi Muhyiddin Al Amin.
3. Ayah, Ibu dan adik-adik tercinta, yang selalu memberikan kasih sayang, pendidikan, pengarahan, pengawasan, dukungan dan doa kepada penulis.
4. Ibu Yuliana Setyowati S.Kom, M.Kom. dan Bapak Harits Ar Rosyid, S.T, M.T selaku dosen pembimbing, yang telah memberikan ide, masukan dan koreksi kepada penulis dalam menyusun Tugas Akhir ini.
5. Segenap Bapak dan Ibu dosen Jurusan Teknik Informatika Joint Program BA Malang dan Politeknik Elektronika ITS Surabaya atas segala kesabaran dan keikhlasannya dalam memberikan bimbingan, didikan dan perhatian serta ilmunya kepada penulis. 6. Iffa Zulfana, terima kasih atas perhatian dan kesabarannya. 7. Teman-teman “Begundal Tomini 24”, begur aang, hadi mesum,
gatut pak dhe, kakek udun fajar, mouse rio, hafez, nenjap, inoyla, mbah farul, pras terima kasih atas persahabatan, kebersamaan, canda tawa, susah senang, dan semangat kekeluargaannya. 8. Teman-teman teamwork di server pulsa, terima kasih atas semua
pengalaman yang tak terlupakan.
9. Teman-teman seangkatan V dan semua teman yang tidak dapat penulis sebutkan satu per satu, terima kasih atas semangat dan kebersamaannya.
vii
DAFTAR ISI
Halaman HALAMAN JUDUL HALAMAN PENGESAHAN ... ... ii ABSTRAK ... ... ... iii ABSTRACT ... ... ... iv KATA PENGANTAR ... ... vUCAPAN TERIMA KASIH ... ... vi
DAFTAR ISI ... ... ... vii
DAFTAR GAMBAR ... ... xi
DAFTAR TABEL ... ... . xiv
BAB I PENDAHULUAN 1.1. Latar Belakang ... ... 1 1.2. Tujuan ... ... ... 2 1.3. Rumusan Masalah ... ... 2 1.4. Batasan Masalah ... ... 2 1.5. Metodologi ... ... 3 1.6. Sistematika Pembahasan ... ... 4
BAB II TEORI PENUNJANG 2.1. Teknologi Bluetooth... ... 5
2.1.1. Spesifikasi Bluetooth ... ... 5
2.1.2. Bluetooth Protokol Stack ... 6
2.1.2.1 Jaringan Bluetooth... ... 7
2.1.2.2 Profile Bluetooth ... ... 8
2.2. Java ... ... ... 9
2.2.1. J2SE (Java 2 Second Edition) ... 10
2.2.2. J2ME (Java 2 Micro Edition) ... 11
2.2.2.1. Configuration... ... 12 2.2.2.2. Profile ... ... 13 2.2.2.3. Optional Package... ... 14 2.2.2.4. MIDP ... ... 14 2.2.2.5. MIDlet ... ... 15 2.2.2.5.1. Siklus MIDlet ... ... 16 2.2.3. Library Pendukung ... ... 16
viii
2.3. JAVA API FOR BLUETOOTH WIRELESS
TECHNOLOGY (JABWT) ... ... 17
2.3.1. JABWT Package ... ... 19
2.3.2. Device Management API Pada JABWT ... 21
2.3.2.1. Local Device... ... 21
2.3.2.2. Remote Device ... ... 22
2.3.2.3. Device Class ... ... 23
2.3.2.4. Pencarian Device dan Service Pada JABWT (device and service discovery)... ... 23
2.3.2.5. Discovery Agent ... ... 24
2.3.2.6. Service Record... ... 25
2.3.2.7. Komunikasi Bluetooth Menggunakan RFCOMM ... ... . 27
2.4. DATABASE... ... 28
2.4.1. Entity Relation Diagram (ERD)... 29
2.4.2. Structured Query Language (SQL) ... 30
2.4.3. Primary Key ... ... 31
2.4.4. Foreign Key ... ... 32
2.4.5. MySQL ... ... 32
2.5. CLIENT SERVER ... ... 32
2.5.1. Karakteristik Client Server ... 34
2.5.2. Keuntungan Dan Kerugian Arsitektur Client Server ... ... 34
BAB III PERANCANGAN DAN IMPLEMENTASI PERANGKAT LUNAK 3.1. DESKRIPSI UMUM ... ... 37
3.2. PERANCANGAN DATABASE APLIKASI ... 38
3.3. PERANCANGAN DAN IMPLEMENTASI SISTEM APLIKASI MENU PEMESANAN MAKANAN ... 42
3.3.1. KOMUNIKASI CLIENT SERVER ... 42
3.3.1.1. Sequnce Login ... ... 43
3.3.1.2. Sequence Daftar Foodcourt ... 44
3.3.1.3. Sequence Daftar Menu ... . 44
3.3.1.4. Sequence Input Pesanan... 45
ix
3.3.1.6. Sequence Input Pesanan ... 47
3.3.2. APLIKASI SERVER PADA KOMPUTER ... 47
3.3.2.1. User Interface Server ... .... 51
3.3.2.2. Koneksi Bluetooth Pada Server ... 52
3.3.2.3. Koneksi Database Pada Server ... 57
3.3.2.4. Proses Login ... ... 57
3.3.2.5. Proses Daftar Foodcourt ... 59
3.3.2.6. Proses Daftar Menu ... ... 61
3.3.2.7. Proses Pemesanan Makanan dan Minuman .. 62
3.3.2.8. Proses Komplain... ... 63
3.3.3. APLIKASI CLIENT ... ... 65
3.3.3.1. Aplikasi CLIENT PADA PELANGGAN .... 66
3.3.3.1.1. User Interface MIDlet client ... 70
3.3.3.1.2. Koneksi Bluetooth MIDlet client... 73
3.3.3.1.3. Proses Login Pada MIDlet client ... 76
3.3.3.1.4. Proses Menu Layanan, Daftar Foodcourt, dan View Pesanan ... ... 77
3.3.3.1.5. Proses Daftar Menu ... ... 79
3.3.3.1.6. Proses Input Pesanan ... . 81
3.3.3.1.7. Proses Komplain... ... 82
3.3.3.2. APLIKASI CLIENT PADA RESTORAN ... 83
3.3.3.2.1. User Interface Web ... .... 84
3.3.3.2.2. Login ... ... 84
3.3.3.2.3. Kasir ... ... 86
3.3.3.2.4. Foodcourt ... ... 89
3.3.3.2.5. Komplain ... ... 93
BAB IV UJI COBA DAN EVALUASI 4.1. Aplikasi Server (desktop)... ... 95
4.1.1. Tampilan Server ... ... 95
4.1.2. Tampilan Koneksi... ... 96
4.1.3. Tampilan Add Foodcourt... . 96
4.2. Aplikasi Client Pelanggan (mobile)... 96
4.3. Aplikasi Client Restoran dan Kasir (web) ... 98
4.3.1. Tampilan Login ... ... 98
4.3.2. Tampilan Web Foodcourt Restoran ... 98
x
4.4. Proses Komunikasi Client Server ... 102
4.4.1. Proses Discovery Bluetooth ... 103
4.4.2. Proses Login ... ... 104
4.4.3. Proses Daftar Restoran... ... 106
4.4.4. Proses Daftar Menu ... ... 106
4.4.5. Proses Masukkan Jumlah Pesanan... 107
4.4.6. Proses Menu Lihat Pesanan ... 108
4.4.7. Proses Pengiriman Transaksi Ke Server ... 109
4.4.8. Proses History Pesanan ... .... 113
4.4.9. Proses Detil History ... ... 114
4.4.10. Proses Komplain... ... 114
4.5. Hasil Percobaan Multi User... ... 116
BAB V PENUTUP 5.1. Kesimpulan ... ... 119
5.2. Saran ... ... ... 120
DAFTAR PUSTAKA ... ... 121
xi
DAFTAR GAMBAR
Gambar 2.1 Bluetooth protocol stack ... .... 6
Gambar 2.2 Topologi jaringan bluetooth ... 8
Gambar 2.3 Platform java ... ... 10
Gambar 2.4 Arsitektur JAVA... ... 12
Gambar 2.5 Daur hidup MIDlet ... ... 16
Gambar 2.6 Struktur paket JSR82 ... ... 18
Gambar 2.7 One to one relationship... ... 30
Gambar 2.8 One to many relationship... .... 30
Gambar 2.9 Many to many relationship ... . 30
Gambar 2.10 Arsitektur umum client server ... 33
Gambar 3.1 Gambaran umum aplikasi pemesanan makanan . 37
Gambar 3.2 Rancangan database... ... 38
Gambar 3.3 Sequence proses login... ... 43
Gambar 3.4 Sequence daftar foodcourt ... .. 44
Gambar 3.5 Sequence daftart menu... ... 45
Gambar 3.6 Sequence inpur pesanan... ... 45
Gambar 3.7 Sequence history... ... 46
Gambar 3.8 Sequence input komplain... .... 47
Gambar 3.9 Activity diagram server ... ... 49
Gambar 3.10 Class diagram aplikasi server... 50
Gambar 3.11 Design form pada aplikasi server (J2SE)... 51
Gambar 3.12 Hasil user interface aplikasi server (J2SE)... 52
Gambar 3.13 Sequence bluetooth connection... 53
Gambar 3.14 Log koneksi aplikasi server (J2SE)... 56
Gambar 3.15 Activity diagram proses login... 58
Gambar 3.16 Activity diagram daftar foodcourt... 60
Gambar 3.17 Activity diagram daftar makanan... 61
Gambar 3.18 Activity diagram input pesanan ... 62
Gambar 3.19 Activity diagram proses komplain ... 64
Gambar 3.20 Use case diagram aplikasi client ... 65
Gambar 3.21 Activity diagram aplikasi client (J2ME)... 67
Gambar 3.22 Sistem akses menu makanan oleh pelanggan.... 68
Gambar 3.23 Class diagram aplikasi client J2ME... 69
xii
Gambar 3.25 Design form pada aplikasi pelanggan (J2ME) .. 72
Gambar 3.26 Tampilan aplikasi client di emulator ... 73
Gambar 3.27 Activity diagram koneksi bluetooth client ... 74
Gambar 3.28 Tampilan login... ... 76
Gambar 3.29 Activity diagram menu layanan ... 77
Gambar 3.30 Tampilan menu layanan dan tampilan restoran. 79 Gambar 3.31 Activity diagram proses menu makanan ... 79
Gambar 3.32 Tampilan daftar menu makanan... 80
Gambar 3.33 Tampilan input jumlah... ... 81
Gambar 3.34 Activity diagram proses komplain ... 82
Gambar 3.35 Tampilan input komplain... .. 83
Gambar 3.36 Sistem akses makanan oleh makanan... 83
Gambar 3.37 Menu atau link yang tersedia pada web foodcourt client restoran... ... 84
Gambar 3.38 Login web foodcourt ... ... 86
Gambar 3.39 Flowchart proses pembayaran di kasir ... 87
Gambar 3.40 Tampilan kasir ... ... 89
Gambar 3.41 Flowchart aplikasi foodcourt client restoran... 90
Gambar 3.42 Tampilan daftar pesanan foodcourt... 93
Gambar 3.43 Tampilan daftar komplain... . 94
Gambar 4.1 Tampilan server ... ... 95
Gambar 4.2 Tampilan koneksi bluetooth... 96
Gambar 4.3 Tampilan sub menu add foodcourt... 97
Gambar 4.4 Tampilan shortcut client dan tampilan awal... 97
Gambar 4.5 Form login aplikasi web foodcourt client... 98
Gambar 4.6 Tampilan daftar pesanan... ... 99
Gambar 4.7 Tampilan daftar menu... ... 99
Gambar 4.8 Tampilan history daftar pesanan ... 100
Gambar 4.9 Tampilan kasir ... ... 100
Gambar 4.10 Tampilan daftar pelanggan... 101
Gambar 4.11 Tampilan daftar restoran ... ... 101
Gambar 4.12 Tampilan daftar user ... ... 102
Gambar 4.13 Diagram komunikasi client server ... 102
Gambar 4.14 Proses discovery pada server dan client... 103
Gambar 4.15 Proses server atau service tidak ditemukan... 104
xiii
Gambar 4.17 Login yang dilakukan client invalid... 105
Gambar 4.18 Proses login yang valid pada client dan server.. 105
Gambar 4.19 Proses daftar restoran... ... 106
Gambar 4.20 Proses daftar makanan atau minumann... 107
Gambar 4.21 Proses memasukkan jumlah pesanan salah... 107
Gambar 4.22 Proses pesanan telah dilakukan... 108
Gambar 4.23 Proses lihat pesanan... ... 108
Gambar 4.24 Proses lihat pesanan kosong ... 109
Gambar 4.25 Proses input nomer meja... ... 109
Gambar 4.26 Proses pengiriman pesanan... 110
Gambar 4.27 Tampilan kasir,pelanggan belum membayar... 111
Gambar 4.28 Tampilan kasir, pelanggan sudah membayar .... 111
Gambar 4.29 Tampilan foodcourt belum bayar belum dilayani ... ... 112
Gambar 4.30 Tampilan foodcourt sudah bayar belum dilayani... ... 112
Gambar 4.31 Tampilan foodcourt sudah bayar sudah dilayani... ... 113
Gambar 4.32 Proses history pesanan... ... 113
Gambar 4.33 Tampilan detil history server-client ... 114
Gambar 4.34 Tampilan input komplain... .. 115
Gambar 4.35 Tampilan halaman komplain... 115
xiv
DAFTAR TABEL
Tabel 2.1 Kelas-kelas bluetooth ... ... 5
Tabel 2.2 Platform java ... ... 11
Tabel 2.3 Interface pada javax.bluetooth package ... 19
Tabel 2.4 Class pada javax.bluetooth package ... 20
Tabel 2.5 Exception pada javax.bluetooth package ... 20
Tabel 3.1 tb_komplain... ... 39 Tabel 3.2 tb_detil_pesanan... ... 39 Tabel 3.3 tb_foodcourt ... ... 40 Tabel 3.4 tb_menu... ... .. 40 Tabel 3.5 tb_pegawai ... ... 40 Tabel 3.6 tb_pelanggan ... ... 41 Tabel 3.7 tb_pembayaran ... ... 41 Tabel 3.8 tb_pesan... ... .. 41 Tabel 3.9 tb_meja... ... ... 42
Tabel 4.1 Pengujian waktu pencarian perangkat menggunakan HP Sony Ericsson K530i ... ... 116
Tabel 4.2 Pengujian waktu pencarian perangkat menggunakan HP Nokia E50 ... ... ... 116
Tabel 4.3 Pengujian transfer data client server... 117
Tabel 4.4 Pengujian tiga client secara bersamaan dengan jarak 2 meter... 117
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Perkembangan teknologi saat ini telah memberikan pengaruh yang sangat besar bagi dunia teknologi informasi dan telekomunikasi. Munculnya beragam aplikasi memberikan pilihan dalam peningkatan kinerja suatu pekerjaan, baik yang besifat dekstop based, web baseb hingga yang sekarang ini munculnya aplikasi-aplikasi baru yang berjalan dalam mobile device/handphone.
Pemilihan mobile device/handphone untuk salah satu pengembangan aplikasi selain lebih mudah dalam pengoperasiannya, sifat dari handphone yang fleksibel menjadi salah satu alasannya.
Saat ini muncul teknologi baru dimana komunikasi tanpa menggunakan kabel, seperti dengan menggunakan media bluetooth pada handphone. Sebagai pendatang baru yang sudah mulai popular didunia komunikasi data wireless, bluetooth mulai memberikan beberapa solusi dan layanan yang bisa diimplementasikan dalam kehidupan sehari-hari. Bluetooth merupakan teknologi yang berkembang sebagai jawaban atas kebutuhan komunikasi antar perlengkapan elektronik agar dapat saling mempertukarkan data dalam jarak yang terbatas menggunakan gelombang radio dengan frekuensi 2,4 GHz. Salah satu implementasi bluetooth yang populer adalah pada peralatan handphone yang digunakan untuk pertukaran data.
Penggunaan media bluetooth dan J2ME untuk restoran akan memudahkan proses pemesanan dan administrasi, karena untuk media alat tulis dan kertas untuk pemesanan makanan dan minuman menemui kendala-kendala antara lain adanya pemesanan yang rangkap (redudansi), tidak urutnya pembuatan pemesanan akibat bertumpuk nya nota pemesanan terutama pada saat ramai pengunjung.
Aplikasi dikembangkan menggunakan J2ME, sehingga aplikasi menu pemesanan makanan adalah platform bebas yang dapat berjalan di setiap mobile phone yang mendukung JAVA API yang dibutuhkan.
1.2 TUJUAN
Tujuan dari proyek akhir ini adalah :
1. Membangun koneksi antar komputer dengan telepon seluler menggunakan bluetooth.
2. Membuat suatu aplikasi menu pemesanan makanan di sebuah foodcourt.
3. Aplikasi memungkinkan para pelanggan foodcourt untuk melihat semua menu dan harganya.
4. Pelanggan dapat melakukan pemesanan makanan secara langsung melalui handphone-nya masing-masing dan data pesanan tersebut akan langsung dikirim ke bagian server untuk diteruskan kepada restoran.
1.3 RUMUSAN MASALAH
Berdasarkan latar belakang, rumusan masalah yang terdapat pada proyek akhir ini adalah sebagai berikut:
1. Bagaimana proses perencanaan dan perancangan client? 2. Bagaimana proses perencanaan dan perancangan server? 3. Bagaimana proses implementasi aplikasi ini pada device
mobile yang sebenarnya? 1.4 BATASAN MASALAH
Adapun batasan masalah dalam pembangunan Proyek Akhir ini adalah sebagai berikut :
1. Karena sistem ini menggunakan bluetooth, maka terdapat keterbatasan range mobilitas handphone sesuai dengan daerah cakupan yang mampu dijangkau oleh bluetooth. 2. Program ini hanya berjalan pada handphone yang memiliki
profil dan konfigurasi Java ME dan didukung bluetooth API. 3. Pelanggan harus terdaftar sebagai member untuk
menjalankan aktifitas pemesanan makanan melalui handphone.
4. Foodcourt memiliki pembayaran (kasir) yang terpusat pada satu kasir.
5. Tidak membahas tentang Sistem Informasi Manajemen Foodcourt.
6. Tidak membahas tentang keamanan (security) didalam aplikasi yang dibuat.
1.5 METODOLOGI
Metodologi pembahasan pada proyek akhir ini direncanakan seperi berikut:
1. Pemahaman Sistem dan Studi Literatur
Mempelajari proses bisnis yang terjadi dan juga berbagai macam literatur tentang konsep-konsep yang berkaitan dengan rumusan masalah, termasuk di dalamnya mempelajari API-API pada Java ME yang berkaitan dengan pembuatan tugas akhir. 2. Penampungan dan analisis data
Dalam tahap ini akan dilakukan penampungan dan analisis terhadap data-data yang dibutuhkan.
3. Perancangan Perangkat Lunak
Tahap ini merupakan tahapan analisis dan desain perangkat lunak yang akan dikembangkan dengan mengacu pada proses bisnis dan data yang telah diperoleh dan dianalisa pada tahapan sebelumnya.
4. Implementasi
Pada tahap ini akan dilakukan proses pembuatan perangkat lunak yang akan dikembangkan.
5. Uji coba dan Evaluasi
Melakukan Uji coba dan evaluasi prototipe perangkat untuk mencari masalah yang mungkin timbul, mengevaluasi jalannya program, dan mengadakan perbaikan jika ada kekurangan. 6. Pembuatan Buku Tugas Akhir
Pada tahap terakhir ini disusun buku sebagai dokumentasi dari pelaksanaan Tugas Akhir.
1.6 SISTEMATIKA PEMBAHASAN
Buku laporan proyek akhir ini terdiri dari 5 bab dengan perincian sebagai berikut :
Bab I : Bab ini menjelaskan tentang latar belakang, rumusan masalah, tujuan, metodologi pengerjaan dan sistematika penulisan proyek akhir.
Bab II : Bab ini menjelaskan tentang landasan teori yang mendukung pembuatan proyek akhir.
Bab III : Bab ini menjelaskan tentang rancangan dan pembuatan sistem yang meliputi perancangan database, perancangan sistem, dan user interface.
Bab IV : Bab ini menjelaskan pengujian dan analisa sistem apakah hasil yang telah ditetapkan sesuai dengan tujuan perancangan.
Bab V : Bab ini menjelaskan tentang kesimpulan dan saran dari hasil pengamatan dan analisa terhadap sistem yang telah dibuat.
BAB II
TEORI PENUNJANG
2.1 TEKNOLOGI BLUETOOTH
Teknologi Bluetooth dikembangkan oleh Bluetooth Special Interest Group (SIG) yang diprakarsai oleh perusahaan-perusahaan besar yaitu companies 3Com, Ericsson, Intel, IBM, Agere, Microsoft, Motorola, Nokia dan Toshiba. Bluetooth telah didesain bagi alat komunikasi personal yang mendukung komunikasi tanpa kabel(wireless) seperti pada mobile phone maupun PDA dengan jarak sampai 10 kilometer. Bluetooth adalah sebuah protokol komunikasi yang beroperasi pada frekuensi 2.4 GHz. Sinyal dari bluetooth adalah omni-directional serta dapat menerima data dan juga suara.
Device yang mendukung komunikasi bluetooth dapat dengan mudah menemukan koneksi dan juga berkomunikasi dengan device yang lain secara otomatis. Bluetooth dapat digunakan untuk mengirim file, membangun sebuah jaringan tertentu, sinkronisasi data, mengkoneksikan sekitar misalnya dengan hands-free kits dan juga digunakan untuk gaming. Sesuai dengan power serta jangkauannya,bluetooth terbagi menjadi 3 kelas:
Tabel 2.1 Kelas-kelas Bluetooth Kelas Maksimum Power yang
diijinkan Jangkauan Maksimal
Kelas 1 100 mW (20 dBm) 100 meter
Kelas 2 2,5 mW(4dBm) 10 meter
Kelas 3 1 mW (0 dBm) 1 meter
2.1.1 Spesifikasi Bluetooth
Bluetooth spesifikasi di sini mengacu pada Java Specification Request 82 (JSR-82) dan juga Symbian Bluetooth API, mendefinisikan API-API yang terdapat dalam protokol bluetooth.
2.1.2 Bluetooth Protocol Stack
Bluetooth Protocol Stack secara umum dapat dibagi menjadi dua komponen yaitu: Bluetooth Host dan Bluetooth Controller yang disebut juga Bluetooth Radio. Bluetooth Protocol Stack terdiri dari protokol-protokol yang sejak dikembangkan sudah dimilikinya yaitu protokol L2CAP dan SDP, serta protokol lain hasil dari adopsi yaitu OBEX. Selain itu Bluetooth Protocol Stack dapat dibagi menjadi empat layer sesuai dengan peruntukannya, sesuai dengan yang ditunjukkan didalam gambar.
Gambar 2.1 Bluetooth Protocol Stack
Baseband yang berfungsi untuk mengaktifkan phisical RF sehingga Bluetooth dapat membuat koneksi.
Link Manager Protocol (LMP) adalah protokol yang bertanggung jawab untuk membangun koneksi antara Bluetooth device serta mengatur sistem keamanan didalam koneksi,seperti authentication dan encryption.
Logical Link Control and Adaptation Protocol (L2CAP) adalah protocol yang mangadaptasikan layer protokol yang ada di atas kepada baseband. Hal ini melibatkan banyak bagian, yaitu bermacam-macam koneksi logical yang berada pada layer diatasnya.
Service Discovery Protocol (SDP) digunakan untuk mendapatkan informasi tentang atribut device, service yang disediakan, dan berikut karakteristik dari service.
RFCOMM mengimplementasikan RS-232 kontrol dan data signal melalui Bluetooth baseband, yang menyediakan kemampuan transportasi untuk layer yang berada di atasnya dengan menggunakan antar muka serial sebagai makanisme transportasi.
TCS Binary mendefinisikan pemanggilan sinyal kontrol untuk membuat panggilan data dan suara antara Bluetooth device.
2.1.2.1 Jaringan Bluetooth
Bluetooth devices dibagi lagi menjadi group-group kecil yang disebut piconet. Didalam piconet, ada sebuah master dan satu atau lebih slaves. Sampai 7 buah slaves bisa diterima didalam sebuah piconet. Sedangkan master unit adalah sesuatu yang memulai proses komunikasi. Ia akan menggunakan komunikasi point-to-multipoint.
Sebuah device didalam sebuah piconet mampu berkomunikasi dengan bluetooth device didalam piconet yang lain. Sebuah slave didalam piconet tertentu mungkin dapat menjadi slave didalam piconet yang berbeda. Sebuah master didalam sebuah piconet dapat menjadi slave pada piconet yang lain. Komunikasi antar piconet tersebut dapat berasal dari jaringan manapun.
Dalam rangka untuk pemeliharaan baterai, bluetooth memiliki tiga low modus operasi yang hemat energi:
Pada modus sniff, sebuah slave device akan memperhatikan berkurangnya level energi, dimana ia tidak berpengaruh terhadap piconet.
Pada modus hold, sebuah device tidak hanya mengirimkan data tetapi ia juga melakukan sinkronisasi secara konstan dengan master. Ia bukanlah member aktif dari piconet, tetapi ia menyimpan alamat member yang aktif. Sebuah device pada modus park berlaku seperti device pada modus hold, akan tetapi ia tidak menyimpan alamat member yang aktif.
Gambar 2.2 Topologi Jaringan Bluetooth
2.1.2.2 Profile Bluetooth
Profile dari bluetooth telah ditentukan dengan memperhatikan interoperability antara device dan aplikasi dari beberapa manufaktur. Sebuah profile mendefinisikan roles dan kemampuan yang dimiliki oleh tipe aplikasi tertentu. Sebuah device hanya dapat berkomunikasi dengan device yang lain apabila mereka
memiliki profile yang sama. Semua bluetooth device harus menggunakan Generic Access Profile. Profile ini menentukan prosedure koneksi, device discovery, dan management link.
Sebuah Service Discovery Profile mendefinisikan fitur dan prosedur bagi aplikasi bluetooth untuk mengenali segala servis yang telah ditentukan pada bluetooth device yang lain.
Sebuah profile sinkronisasi menentukan hal-hal apa saja yang dibutuhkan pada dua atau lebih devices untuk mensinkronisasikan data.
Profile bluetooth yang lain telah didefinisikan juga pada spesifikasi bluetooth. Akan tetapi tidak akan dibicarakan dalam materi ini.
2.2 JAVA
Java dibuat pada tahun 1991 oleh James Gosling. Pada awalnya diberi nama Oak, dimana untuk menghormati pohon yang ada di luar jendela Gosling. Kemudian namanya diubah ke Java karena telah ada sebuah bahasa yang diberi nama Oak.
Motivasi sesungguhnya dari Java adalah kebutuhan akan sebuah bahasa yang bisa digunakan pada berbagai platform yang bisa dimasukkan ke dalam berbagai produk elektronik seperti pemanggang roti dan lemari es. Salah satu dari proyek pertama yang dikembangkan menggunakan Java adalah sebuah remote kontrol yang diberi nama Star 7.
Pada saat yang sama, World Wide Web dan Internet berkembang sangat cepat. Gosling menyadari bahwa Java dapat digunakan untuk pemrograman Internet.
Dengan keluarnya versi 1.2, platform Java akhirnya dipilah-pilah menjadi beberapa edisi, yaitu: The Standard Edition (Java SE), Enterprise Edition (Java EE), Micro Edition (Java ME) dan JavaCard API.
Tabel 2.2 Platform Java
Java SE – Java Standard Edition
Aplikasi Desktop
Java EE – Java Enterprise Edition
Aplikasi enterprise dengan fokus pada pengembangan sisi web server, termasuk servlet, JSP, EJB
dan XML Java ME – Java Micro Edition Perangkat Mobile
JavaCard Smart Cards
Gambar 2 .3 Platform Java
2.2.1 J2SE (Java 2 Second Edition)
Java 2 Second Edition atau yang lebih dikenal dengan J2SE adalah salah satu platform dari bahasa pemrogaman java yang diimplementasikan untuk aplikasi desktop. J2SE terdiri dari Java Runtime Environment (JRE) yang terdiri dari banyak library
standart. Sedangkan untuk Java Development Kit (JDK) adalah JRE yang ditambahkan development Tools & API. Untuk membuat aplikasi berbasis user interface, telah terdapat paket Abstract Window Toolkit (AWT) yang bergantung dari sistem operasi yang digunakan. User interface pada linux akan berbeda dengan user interface pada open solaris. Untuk membangun aplikasi user interface yang tidak bergantung pada sistem operasi yang digunakan dapat menggunakan paket Swing. Tampilan user interface akan selalu sama walaupun berpindah-pindah sistem operasi.
2.2.2 J2ME (Java 2 Micro Edition)
Java ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat mobile. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei, layar yang kecil dan bandwith jaringan yang rendah.
Dengan perkembangan perangkat mobile dari telepon, PDA, kotak permainan hingga peralatan-peralatan rumah, Java menyediakan suatu lingkungan yang portable untuk mengembangkan dan menjalankan aplikasi pada perangkat ini.
Program Java ME, seperti semua program Java adalah diterjemahkan oleh Virtual Machine (VM). Program-program tersebut dikompile ke dalam bytecode dan diterjemahkan oleh Java Virtual Machine (JVM). Ini berarti bahwa program-program tersebut tidak berhubungan langsung dengan perangkat keras. Java ME menyediakan suatu interface yang sesuai dengan perangkat keras. Aplikasi-aplikasi tersebut cukup dikompile sekali dan mampu dijalankan pada mesin yang berbeda.
Inti dari Java ME terletak pada configuration dan profile- profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem Java ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan.
Gambar 2 -4 Arsitektur Java ME
Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada sebuah perangkat. profile-profile menyediakan user interface (UI) API, persistence, messaging library, dan sebagainya.
Satu set library tambahan atau package tambahan menyediakan kemampuan program tambahan. Pemasukan package ini ke dalam perangkat Java ME dapat berubah-ubah karena tergantung pada kemampuan sebuah perangkat. Sebagai contoh, beberapa perangkat MIDP tidak memiliki Bluetooth built-in, sehingga Bluetooth API tidak disediakan dalam perangkat ini.
2.2.2.1 Configuration
Suatu configuration menggambarkan fitur minimal dari lingkungan lengkap Java runtime. Untuk menjamin kemampuan portabilitas dan interoperabilitas yang optimal diantara berbagai macam perangkat yang dibatasi sumber dayanya (memory, prosesor, koneksi yang dibatasi), configuration tidak menggambarkan fitur tambahan. Suatu configuration Java ME menggambarkan suatu komplemen yang minimum dari teknologi Java. Adalah merupakan tugas profile-profile untuk menggambarkan tambahan library untuk suatu kategori perangkat tertentu. Configuration menggambarkan:
Subset bahasa pemrograman Java
Kemampuan Java Virtual Machine (JVM) Core platform libraries
J2ME terdiri dari dua configuration yaitu :
1) Connected Limited Device Configuration (CLDC)
Digunakan pada device yang terbatas dalam hal memori yang kecil dan prosesor yang tidak begitu cepat. Hanya terdiri dari sebagian kecil class librari J2SE seperti java.lang dan java.util, kemudian ditambahkan paket untuk aplikasi mobile javax.microedition.io.CLDC banyak digunakan pada handphone dan PDA (Personal Digital Asistants).
2) Connected Device Configuration (CDC)
Berisikan semua dari java virtual machine (JVM), dan ditambahkan paket untuk aplikasi mobile sehingga membutuhkan memori yang lebih besar dan prosesor yang lebih cepat dari CLDC.CDC banyak digunakan pada internet tv, car tv dan nokia communicator .
2.2.2.2 Profile
Suatu profile menggambarkan set-set tambahan dari API dan fitur untuk pasar tertentu, kategori perangkat atau industri. Sementara configuration menggambarkan library dasar, profile-profile menggambarkan library yang penting untuk membuat aplikasi-aplikasi efektif. Library ini memasukkan user interface, jaringan dan penyimpanan API.
Profile merupakan class librari tambahan pada configuration yang digunakan untuk pengelompokan spesifikasi tertentu (domain-spesific), dan digunakan untuk mendukung paket-paket opsional agar dapat mengakses virtual machine. Profile merupakan kebalikan dari configuration yaitu mengatur hal-hal yang spesifik untuk sebuah device. Terdapat beberapa profile, namun profile pertama yang selesai dirilis adalah Mobile Information Device Profile (MIDP) yang bertugas untuk menjalankan aplikasi pada handphone atau pada pager. Satu device dapat terdiri dari beberapa profile seperti pada PDA, terdapat MIDP, dan Personal Basis Profile (PBP) yang digunakan untuk membuat tampilan grafik seperti window.
2.2.2.3 Optional Packages
Optional package adalah kumpulan API yang berisikan fungsi-fungsi tertentu yang tidak terdapat pada configuration dan profile. Optional package adalah kumpulan API yang berisikan fungsi-fungsi tertentu yang tidak terdapat pada configuration dan profile. Bluetooth optional package adalah salah satu contoh yang didukung oleh MIDP, paket yang terdapat pada bluetooth optional package ini seperti DiscoveryListener merupakan interface yang diimplementasikan untuk mencari perangkat bluetooth, mencari service pada perangkat bluetooth, LocalDevice merupakan class yang digunakan untuk mendapatkan dan mengontrol perangkat bluetooth.
2.2.2.4 MIDP
The Mobile Information Device Profile (MIDP) berada di atas dari CLDC. Kita tidak bisa menulis aplikasi mobile hanya dengan menggunakan CLDC API. Kita harus tetap memanfaatkan MIDP yang mendefinisikan UI.
Spesifikasi MIDP, kebanyakan seperti CLDC dan API lainnya sudah digambarkan melalui Java Community Process (JCP). JCP melibatkan sebuah kelompok ahli berasal dari lebih dari 50 perusahaan, yang terdiri atas pabrik perangkat mobile, pengembang software. MIDP terus berkembang, dengan versi-versi masa depan yang telah lulus dari proses ketat JCP.
Spesifikasi MIDP menggambarkan suatu perangkat MID yang memiliki karakteristik-karateristik ini sebagai batas minimum:
Tampilan:
o Ukuran Layar: 96x54 o kedalaman tampilan: 1-bit o Ketajaman pixel: sekitar 1:1 Masukan:
o Satu atau lebih mekanisme user-input: satu keybboard, dua keyboard, atau touch screen
Memory:
o 256 kilobytes of non-volatile memory untuk implementasi MIDP.
o 8 kilobytes of non-volatile memory for application-created persistent data
o 128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap)
Jaringan:
o dua jalur, wireless, bandwidth terbatas Sound:
o Kemampuan untuk memainkan nada-nada
MIDP menggambarkan model aplikasi, UI API, penyimpanan dan jaringan yang kuat, permainan dan media API, kebijakan keamanan, penyebaran aplikasi dan ketetapan over-the-air (OTA). 2.2.2.5 MIDlet
Suatu aplikasi MIDP disebut MIDlet. Perangkat application management software (AMS) berinteraksi langsung dengan MIDlet dengan method MIDlet create, start, pause, dan destroy. MIDlet adalah bagian dari package javax.microedition.midlet. Sebuah MIDlet harus di-extend dari class MIDlet. Dan dapat meminta parameter dari AMS seperti dirumuskan dalam java application descriptor (JAD).
Suatu MIDlet tidak harus memiliki (dan memang harus tidak mempunyai) sebuah method public static void main(String[] argv). Method tersebut tidak akan dikenal lagi oleh AMS sebagai titik awal sebuah program.
2.2.2.5.1 Siklus MIDlet
Gambar 2.5 Daur hidup MIDlet
Kehidupan MIDlet dimulai ketika di-instantiate oleh AMS. MIDlet pada awalnya masuk status “Pause” setelah perintah baru dibuat. AMS memanggil constructor public tanpa argumen dari MIDlet. Jika sebuah exception terjadi dalam constructor, MIDlet memasuki status “Destroyed” dan membuangnya segera.
MIDlet masuk ke dalam status “Active” atas pemanggilan method startUp() oleh AMS. MIDlet masuk ke dalam status “Destroyed” ketika AMS memanggil method destroyApp(). Status ini juga kembali diakses ketika method notifyDestroyed() kembali dengan sukses kepada aplikasi. Dengan catatan bahwa MIDlet hanya bisa memasuki status “Destroyed” sekali dalam masa hidupnya. 2.2.3 Library Pendukung
Aplikasi ini memerlukan beberapa software pendukung untuk menambah kebutuhan sistem. Software pendukung itu antara lain :
a) AvetanaOBEX
AvetanaOBEX adalah salah satu paket pendukung atau paket tambahan yang ada pada bahasa pemrograman java, yang berfungsi untuk membantu dalam pengiriman file. J2SE secara
default tidak mendukung JSR82, paket tambahan untuk JSR82 khusus untuk OBEX pada J2SE salah satunya adalah AvetanaOBEX yang dapat didownload pada http://avetana.sourceforge.net
b) Bluecove
Bluecove merupakah paket bluetooth API yang digunakan untuk operating sistem window, bluecove mengimplementasikan semua JSR82 tanpa OBEX. Bluecove dapat didownload pada http://bluecove.sourceforge.net.
c) COMM API
COMM API juga merupakan paket tambahan pada program java yang berfungsi untuk mengakses serial port yang ada pada komputer. J2SE secara default tidak dapat melakukan akses pada serial port seperti USB atau COM port. Sedangkan device bluetooth yang digunakan adalah USB bluetooth yang terinstal pada operating sistem, sehingga dibutuhkan COMM API untuk melakukan kontrol hardware. 2.3 JAVA API FOR BLUETOOTH WIRELESS
TECHNOLOGY (JABWT)
JABWT merupakan J2ME optional package yang didefinisikan Java Community Process JSR-82 (Java Specification Request). JABWT digunakan untuk membuat aplikasi java pada mobile device yang berhubungan dengan teknologi wireless pada bluetooth. Pada J2SE (Java 2 Second Edition) library yang digunakan untuk komunikasi bluetooth yaitu BlueCove. Method yang digunakan pada BlueCove dan JABWT adalah sama. BlueCove merupakan Bluetooth Stack yang menggunakan Java Native Interface (JNI) yang hanya dapat dijalankan pada sistem operasi Wndows XP service pack 2 pada PC, sebab pada sistem operasi ini terdapat Microsoft Bluetooth Stack yang digunakan untuk mengoperasikan USB Bluetooth Dongle. JABWT terdiri atas dua package yaitu :
a) javax.bluetooth
Digunakan untuk menangani transaksi data dengan menggunakan stream, banyak digunakan pada transaksi
pesan text atau transaksi bit per bit seperti audio. Terdiri dari enam class dan empat interface.
b) javax.obex
Digunakan untuk menangani transaksi data dengan menggunakan object, banyak digunakan untuk transfer data berupa file karena dapat menambahakan nama file, ukuran file, dan type data file. Terdiri dari tiga class dan lima interface.
Gambar 2.6 Struktur Paket JSR82
Untuk menjalan koneksi client/server diperlukan beberapa langkah yang harus dilakukan, yaitu :
1) Initialization
Pada saat menjalankan aplikasi bluetooth harus menginisialisasikan bluetooth stack, dan melakukan koneksi terhadap bluetooth device.
2) Server
Menciptakan service untuk client, menunggu client untuk bergabung, dan memperbolehkan mereka menggunakan layanan, mematikan service jika tidak dibutuhkan.
3) Client
Melakukan pencarian perangkat bluetooth yang ada didaerahnya, masing-masing device yang ditemukan akan
dicari service yang ada pada server, melakukan koneksi dengan server, mengakhiri koneksi jika tidak dibutuhkan. 2.3.1 JABWT Package
Telah dijelaskan pada subbab 2.3. mengenai JABWT package yang terdiri atas dua package. Berikut adalah tabel yang menjelaskan tentang interface, class, dan exception.
Tabel 2.3 Interface pada javax.bluetooth package
Interface Keterangan
DiscoveryListener mengijinkan aplikasi untuk menerima device discovery dan service discovery event.
L2CAPConnection mewakili connection-oriented pada L2CAP channel.
L2CAPConnectionNotifier menyediakan connection notifier. StreamConnection mewakili connection-oriented pada
RFCOMM
StreamConnectionNotifier menyediakan connection notifier pada RFCOMM
ServiceRecord interface yang menjelaskan karakteristik dari Bluetooth service
Tabel 2.4 Class pada javax.bluetooth package
Class Keterangan
DataElement Mendefinisikan berbagai macam data dimana Bluetooth mungkin mempunyai nilai service attribute. DeviceClass Mewakili class of device (CoD)
record sebagai gambaran dari Bluetooth spesifikasi
DiscoveryAgent Menyediakan method untuk
melakukan pencarian Bluetooth dan service-nya (device discovery dan service discovery).
LocalDevice Mendefinisikan fungsi dasar dari Bluetooth Manager.
RemoteDevice Menggambarkan Bluetooth device yang berada di sekitar lokal Bluetooth device.
UUID Mendefinisikan universally unique
identifiers.
Tabel 2.5 Exception pada javax.bluetooth package
Exception Keterangan
BluetoothConnectionException BluetoothConnectionException akan diberikan ketika koneksi Bluetooth (L2CAP,
RFCOMM, atau OBEX RFCOMM) tidak dapat dibangun.
BluetoothStateException BluetoothStateException akan diberikan ketika ada
permintaan ke Bluetooth systemdimana sistem tersebut tidak mendukung pada kondisi saat itu.
ServiceRegistrationException ServiceRegistrationException akan diberikan ketika terjadi kegagalam dalam
menambahkan service record ke dalam local Service Discovery Database (SDDB) atau pada saat merubah service record yang telah ada di SDDB
2.3.2 Device Management API Pada JABWT
Class pada JABWT yang digunakan untuk device management yaitu javax.bluetooth.LocalDevice, javax.bluetooth.RemoteDevice, dan javax.bluetooth.DeviceClass, dimana class-class tersebut merupakan bagian dari Generic AccessProfile (GAP).
2.3.2.1 Local Device
Local Bluetooth device diwakili oleh javax.bluetooth.LocalDevice. Class ini menyediakan method yang digunakan untuk mengatur dan mendapatkan local device dan informasi seperti Bluetooth address, device class, dan discovery agent. Beberapa method yang disediakan oleh javax.bluetooth.LocalDevice:
static LocalDevice getLocalDevice()
static method yang digunakan untuk mendapatkan LocalDevice object yang mewakili local Bluetooth device.
Digunakan untuk mendapatkan alamat Bluetooth (Bluetooth address) dari local device. Alamat Bluetooth ditunjukkan dalam java.lang.String yang terdiri atas 12 karakter long desimal. Java.lang.String getFriendlyName()
Digunakan untuk mendapatkan nama dari local device. DiscoveryAgent getDiscoveryAgent()
Mengembalikan nilai discovery agent untuk Bluetooth device yang digunakan.
boolean setDiscoverable(int mode)
Digunakan untuk mengatur discoverable mode dari device. Static java.lang.String
getProperty(java.lang.String property)
Digunakan untuk mendapatkan Bluetooth system properties
2.3.2.2 Remote Device
Remote local Bluetooth diwakili oleh
javax.bluetooth.RemoteDevice. Class ini menyediakan beberapa method untuk mendapatkan obyek RemoteDevice yang bergabung dengan Bluetooth connection, method yang mempelajari alamat dan alamat dari remote device, dan security-related method. Beberapa method Class ini yaitu :
static RemoteDevice
getRemoveDevice(javax.microedition.io.Connection )
static method yang digunkan untuk mendapatkan RemoteDevice yang bergabung dengan koneksi sebelumnya.
java.lang.String getBluetoothAddress()
Digunakan untuk mendapatkan alamat Bluetooth dari remote device. Alamat Bluetooth ditunjukkan dalam java.lang.String yang terdiri atas 12 karakter long desimal.
Digunakan untuk mendapatkan nama dari remoter device. boolean authenticate()
Untuk mengetahui apakah remote device pada kondisi authenticate atau tidak
2.3.2.3 Device Class
Class DeviceClass mewakili class of device (CoD) yang ditetapkan di Bluetooth specification. Class device yang mengidentifikasi menggunakan major, minor, dan service class. DeviceClass mendefinisikan beberapa method yaitu :
int getMajorDeviceClass()
Digunakan untuk mendapatkan major device class int getMinorDeviceClass()
Digunakan untuk mendapatkan minor device class. int getServiceClasses()
Digunakan untuk mendapatkan major service classes
2.3.2.4 Pencarian Device dan Service Pada JABWT (device and
service discovery)
Pada proses discovery (device dan service) tahap-tahapnya adalah sebagai berikut :
Proses inisialisasi
Proses ini merupakan proses untuk mendapatkan referensi objek LocalDevice. Metode yang digunakan untuk proses ini yaitu metode LocalDevice.getLocalDevice(). Objek LocalDevice berfungsi untuk memberikan akses ke bluetooth properties untuk device, seperti alamat bluetooth, nama bluetooth, dan discovery mode. Untuk mendapatkan objek DiscoveryAgent digunakan objek LocalDevice dengan memanggil metode LocalDevice.getDiscoveryAgent()
Proses device discovery
Dengan menggunakan objek DiscoveryAgent, proses device discovery dan service discovery dapat dikerjakan. Untuk mendapatkan RemoteDevice yang telah ada, yang didapat dari proses device discovery sebelumnya metode yang digunakan yaitu metode retrieveDevices(). Jika ingin melakukan device discovery dapat dilakukan dengan memanggil metode startInquiry(), dan interface DiscoveryListener yang mempunyai metode deviceDiscovered(), yang berfungsi untuk mendeteksi apabila ada bluetooth device yang ditemukan. Untuk Bluetooth device yang ditemukan akan disimpan pada objek RemoteDevice
Proses service discovery
Dengan menggunakan objek DiscoveryAgent, proses service discovery dapat dikerjakan. Metode untuk service discovery yaitu searchServices(). Apabila service telah ditemukan, maka metode servicesDiscovered() akan dipanggil. servicesDiscovered() terdapat pada interface DiscoveryListener. Bluetooth service yang ditemukan akan disimpan pada objek ServiceRecord.
Proses koneksi bluetooth.
Dalam membangun koneksi via bluetooth diperlukan koneksi URL (Uniform Resource Locator) dari bluetooth device yang dipilih. Untuk mendapatkan koneksi URL metode yang digunakan yaitu getConnectionURL(), yang mengambil koneksi URL dari ServiceRecord. Setelah koneksi URL didapatkan, dilanjutkan dengan proses membangun koneksi dengan metode Connector.open(). Tipe koneksi yang digunakan ada dua yaitu L2CAP dan RFCOMM. Untuk mengetahui informasi dari remote device seperti nama bluetooth, dan alamat, dapat menggunakan metode getRemoteDevice(). Jika koneksi telah dibangun maka pengiriman dan penerimaan data siap untuk dilakukan
2.3.2.5 DiscoveryAgent
DiscoveryAgent menyediakan beberapa method untuk menjalankan device dan service discovery. Berikut adalah method dari DiscoveryAgent:
boolean cancelInquiry(DiscoveryListener listener)
Digunakan untuk menghapus device dari inquiry mode. boolean cancelServiceSearch(int transID)
Digunakan untuk membatalkan service search transaction yang telah ada pada transaction ID.
RemoteDevice[] retrieveDevices(int option) Digunakan untuk mengembalikan data array dari Bluetooth device yang telah ditemukan oleh local device sebelum local device melakukan proses inquiry atau dapat disebut sebagai pre-known device.
int searchServices(int[] attrSet, UUID[] uuidSet, RemoteDevice btDev,DiscoveryListener discListener)
Digunakan untuk melakukan pencarian service pada remote Bluetooth device yang mempunyai UUID yang telah ditetapkan pada uuidSet.
java.lang.String selectService(UUID uuid, int security, boolean master)
Digunakan untuk mengalokasikan sebuah service yang berisi uuid yang ada pada ServiceClassIDList dari service record-nya. boolean startInquiry(int accessCode,
DiscoveryListener listener)
Digunakan untuk menempatkan device pada kondisi inquiry mode.
2.3.2.6 ServiceRecord
ServiceRecord merupakan gambaran dari remote service atau RemoteDevice. ServiceRecord menyediakan method untuk mendapatkan service attribute, connection URL, host remote device, seperti halnya dalam merubah Service Discovery Database :
int[] getAttributeIDs()
Digunakan untuk mengembalikan service attribute ID dimana nilainya dapat diperoleh kembali dengan memanggil getAttributeValue().
DataElement getAttributeValue(int attrID) Digunakan untuk mengembalikan nilai dari service attribute ID, yang disediakan di service record. Dengan kata lain, method ini kembali ke nilai null.
java.lang.String getConnectionURL(int requiredSecurity, boolean mustBeMaster)
Digunakan untuk mengembalikan nilai String, termasuk beberapa pilihan parameter dimana client dapat menggunakan untuk melakukan koneksi ke service yang telah digambarkan oleh ServiceRecord.
RemoteDevice getHostDevice()
Digunakan untuk mengembalikan remote Bluetooth device yang ditempati service record dengan nilai attribute.
boolean populateRecord(int[] attrIDs)
Digunakan untuk mendapatkan kembali nilai-nilai dengan menghubungi remote bluetooth device. Nilai-nilai yang dikembalikan merupakan satu set dari service attribute ID untuk sebuah service yang tersedia pada Bluetoothdevice.
boolean setAttributeValue(int attrID,
DataElement attrValue)
Digunakan untuk memodifikasi ServiceRecord ini yang untuk mengisi service attribute yang ditunjukkan dengan attribute-value pair(attrID,attrValue).
void setDeviceServiceClasses(int classes)
Digunakan oleh aplikasi server untuk mengindikasikan bit-bit major service class yang diaktifkan oleh DeviceClass milik server pada saat ServiceRecord ditambahkan pada SDDB 2.3.2.7 Komunikasi Bluetooth Menggunakan RFCOMM.
Setelah device discovery dan service discovery telah komplit dilakukan oleh client untuk mendapatkan semua informasi yang digunakan untuk mengatur communication link pada service di server. L2CAP link merupakan basis dari semua komunikasi melalui bluetooth. Format dari L2CAP link yaitu :
btl2cap://hostname:[PSM | UUID];parameters PSM (Protocol/Service Multiplexer) merupakan suatu nilai yang sama fungsinya dengan nomer port pada jaringan IP (Internet Protocol) dan digunakan oleh client untuk koneksi dengan server. Serial Port Profile menyediakan RFCOMM yang merupakan RS-232 serial emulation protocol melalui L2CAP. Format dari RFCOMM link yaitu :
btspp://hostname:[CN | UUID];parameters CN (Channel Number) merupakan suatu nilai yang hampir sama dengan nomor port service pada jaringan IP, yang digunakan oleh client untuk berkoneksi dengan server
Contoh aplikasi berikut ini menggunakan protokol serial RFCOMM untuk berkomunikasi dengan device bluetooth. Aplikasi ini adalah tulang punggung dari sebuah information server dan client-nya. Server pertama kali akan mendaftarkan service-nya:
localDevice = LocalDevice.getLocalDevice();
localDevice.setDiscoverable(DiscoveryAgent.GIAC); notifier = (StreamConnectionNotifier)
Connector.open(URL);
Kemudian ia akan menunggu koneksi:
StreamConnection conn = notifier.acceptAndOpen();
Sekali sebuah koneksi diterima, kemudian ia akan membaca command dan menjawab dengan jawaban yang tepat dengan menggunakan method untuk koneksi serial.
Client pertama kali akan mencari device yang tersedia untuk service tersebut: LocalDevice localDevice = LocalDevice.getLocalDevice(); discoveryAgent = localDevice.getDiscoveryAgent(); discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this);
Client akan meng-implement DiscoveryListener dan
meng-override method yang diperlukan untuk menerima notifikasi dari device. Sekali device ditemukan dan proses pencarian servis sudah selesai dilaksanakan, kemudian command tertentu akan dibutuhkan.
2.4 DATABASE
Database pada dasarnya memiliki pengertian kumpulan data-data dan informasi yang terstruktur dalam suatu tabel dan relasi sehingga memudahkan dalam pengolahan data. Database ini digunakan khususnya untuk arus informasi atau data dalam jumlah besar. Database dipakai untuk menyimpan data sehingga dapat dimanipulasi dengan mudah. Database dipakai untuk aplikasi sederhana sampai yang rumit dimana melibatkan beberapa user. Oleh karena itu Database dibagi sesuai dengankompleksitasnya. Ada dua model Database, yaitu:
1. Database yang berdiri sendiri (stand alone). Merupakan database yang sangat sederhana karena disimpan dalam sistem file lokal dan mengakses pada mesin yang sama. Database ini hanya dipakai untuk satu aplikasi saja.
2. Database terbagi (file share). Hampir sama dengan database stand-alone,tetapi dapat diakses oleh beberapa user. Database ini akan mengalami masalah jika aplikasi memerlukan banyak perhitungan dan pada saat yang bersamaan ada pengaksesan ke dalam database.
2.4.1 Entity Relation Diagram (ERD)
Sebuah ERD mendokumentasikan data sebuah informasi dengan cara menentukan data-data apa yang terdapat dalam setiap entity dan bagaimana relationship (hubungan) antara sebuah entity dengan yang lainnya. Dibawah ini akan dijelaskan beberapa hal yang dapat digunakan dalam ERD :
Entity (obyek data) adalah “sesuatu” atau “obyek” yang ada dalam dunia nyata yang dapat dibedakan dari objek lainnya. Entity dapat berupa environmental element (elemen di sekitar sistem yang berhubungan dengan sistem tersebut), resource (sumber daya yang berhubungan dengan system yang ada). Entity digambarkan dengan (kata benda tunggal) di dalamnya.
Attribute adalah menguraikan bagian-bagian yang ada berdasarkan jumlah dari entity yang mempunyai tipe yang sama dan kemudian membagi-bagikan bagian-bagian tersebut.
Identifier ialah atribut yang mengidentifikasikan sebuah entity secara unik.
Relationship ialah hubungan yang terjadi antara dua buah entity dan digambarkan dengan garis dan sebuah kata kerja di sampingnya.
Connectivity ialah jumlah yang menunjukkan berapa kali sebuah entity muncul dalam relasi dengan entiti lainnya. Ada 3 jenis hubungan, yaitu :
Merupakan hubungan di mana suatu anggota entity mempunyai hubungan dengan satu anggota entity pada entity yang berbeda.
Gambar 2. 7. One to one relationship
One-to-many
Merupakan hubungan antara beberapa anggota entity yang satu dengan beberapa anggota entity yang lainnya.
Gambar 2.8. One to many relationship
Many-to-many
Merupakan hubungan antara beberapa anggota entity yang satu dengan beberapa anggota entity yang lainnya.
2.4.2 Structured Query Language (SQL)
SQL adalah Cara berinteraksi/berkomunikasi antara pemakai dengan basis data diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu disebut Bahasa Basis Data. Bahasa Basis Data dapat dipilah ke dalam 2 bentuk yaitu: Data Definition Language (DDL)
Dengan bahasa ini kita dapat membuat tabel baru, membuat indeks, mengubah tabel dan sebagainya. Perintah DDL dalam SQL meliputi :
o CREATE TABLE – membuat tabel baru dalam database
o ALTER TABLE – mengubah definisi tabel o DROP TABLE – menghapus tabel
o CREATE INDEX – membuat index (search key) o DROP INDEX - menghapus index
Data Manipulation Language (DML)
Merupakan bentuk bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa:
Penyisipan /Penambahan data baru ke suatu basis data Penghapusan data dari suatu basis data
Pengubahan data di suatu basis data
Perintah SQl untuk DML (Data Manipulation Language) antara lain :
o SELECT – Mengekstrak data dari tabel-tabel di database
o UPDATE – Mengupdate data dalam tabel di database
o DELETE – Menghapus data dari tabel di database o INSERT INTO – Menyisipkan/menambah data baru
2.4.3 Primary Key
Pada tabel dalam database yang didesain dengan baik, terdapat sebuah atau lebih kolom yang digunakan sebagai primary key. Primary key adalah suatu informasi yang menjadikan suatu satu record adalah unik terhadap record yang lain dalam satu tabel. Contoh informasi yang dapat digunakan sebagai primary key adalah informasi Nomor Induk Pegawai atau Nomor Induk Mahasiswa. Pada saat pembuatan tabel, primary key dibuat dari kolom unik yang biasanya merupakan suatu tipe integer dan hindari untuk menggunakan tipe yang lain. Sebab indeks yang dibuat untuk primary key, ukurannnya menjadi besar. Dengan membuat informasi tambahan yang berupa integer sebagai primary key selain indeks yang digunakan berukuran kecil, juga meningkatkan kecepatan proses query. Primary key yang ditambahkan ini sering juga disebut kolom internalID.
2.4.4 Foreign Key
Tabel juga dapat berisi kolom foreign key. Foreign key pada suatu tabel dapat digunakan untuk mengidentifiksi informasi pada tabel yang lain. Foreign key juga digunakan untuk menciptakan referenstial integrity, yaitu jika pada suatu tabel di-update, maka tabel lain di update pula. Field yang menjadi foreign key pada tabel pertama tidaklah unik, tetapi pada tabel lain field tersebut harus menjadi primary key. Karena foreign key akan menjadi primary key pada tabel kedua, maka primary key harus dibuat terlebih dahulu. 2.4.5 MySQL
MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan MySQL menggunakan SQL (Structured QueryLanguage) sebagai bahasa dasar untuk mengakses database-nya. Selain itu software ini bersifat open source sehingga tidak perlu membayar untuk menggunakannya. MySQL termasuk jenis RDBMS (Relational Database Management System). Itulah sebabnya istilah seperti tabel, baris dan kolom digunakan pada MySQL. Pada MySQL, sebuah database mengandung satu atau
sejumlah tabel. Tabel terdiri dari sejumlah baris dan setiap baris mengandung satu atau beberapa kolom.
2.5 CLIENT SERVER
Client-server merupakan arsitektur komputasi yang memisahkan antara klien dengan server, dan kebanyakan arsitektur ini diimplementasikan pada jaringan komputer. Namun bisa juga diimplementasikan antar perangkat lain seperti juga handphone dengan handphone, ataupun handphone dengan komputer. Setiap klien atau server yang terhubung ke jaringan disebut sebagai node. Umumnya arsitektur ini memiliki 2 tipe node yaitu: klien dan server. Tipe ini biasanya disebut pula two-tier. Dengan arsitektur ini, memungkinkan device untuk melakukan sharing files dan resources.
Gambar 2.10 Arsitektur Umum Client Server
Setiap instance dari software pada klien dapat mengirimkan request kepada satu atau beberapa server yang terhubung kepadanya. Server kemudian menerima request tersebut, memprosesnya, setelah itu mengirimkan informasi yang dihasilkan kepada klien. Meskipun