aplikasi mobile pemesanan makanan via bluetooth

138
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 SURABAYA 2009 PROYEK AKHIR

Upload: ardi-einz

Post on 03-Aug-2015

617 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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 SURABAYA

2009

PROYEK AKHIR

Page 2: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

PROYEK AKHIR

Page 3: Aplikasi Mobile Pemesanan Makanan via Bluetooth

ii

PEMBUATAN APLIKASI MOBILE PEMESANAN

MAKANAN DAN MINUMAN BERBASIS

J2ME DAN BLUETOOTH

PROYEK AKHIR

Diajukan 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

NIP. 19710708.199903.2.001

Page 4: Aplikasi Mobile Pemesanan Makanan via Bluetooth

iii

PEMBUATAN APLIKASI MOBILE PEMESANAN

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

Kata kunci : Bluetooth, Pemesanan Makanan, Java, Telepon Selular

Page 5: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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.

Keyword : Bluetooth, Ordering food system, Java, cellular telephone

Page 6: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

Penulis

Page 7: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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.

Page 8: Aplikasi Mobile Pemesanan Makanan via Bluetooth

vii

DAFTAR ISI

Halaman

HALAMAN JUDUL

HALAMAN PENGESAHAN ................................ ............... ii

ABSTRAK ................................ ................................ ............ iii

ABSTRACT ................................ ................................ .......... iv

KATA PENGANTAR ................................ ........................... v

UCAPAN 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

Page 9: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

3.3.1.5. Sequence History dan Detil History.............. 46

Page 10: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

4.3.3. Tampilan Web Foodcourt Kasir....................... 99

Page 11: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

RIWAYAT HIDUP ................................ ............................. 122

Page 12: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

Gambar 3.24 Blok diagram tampilam MIDlet client .............. 70

Page 13: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

Gambar 4.16 Login tidak lengkap ................................ .......... 104

Page 14: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

Page 15: Aplikasi Mobile Pemesanan Makanan via Bluetooth

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

Page 16: Aplikasi Mobile Pemesanan Makanan via Bluetooth

1

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.

Page 17: Aplikasi Mobile Pemesanan Makanan via Bluetooth

2

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.

Page 18: Aplikasi Mobile Pemesanan Makanan via Bluetooth

3

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.

Page 19: Aplikasi Mobile Pemesanan Makanan via Bluetooth

4

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.

Page 20: Aplikasi Mobile Pemesanan Makanan via Bluetooth

5

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.

Page 21: Aplikasi Mobile Pemesanan Makanan via Bluetooth

6

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.

Page 22: Aplikasi Mobile Pemesanan Makanan via Bluetooth

7

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:

Page 23: Aplikasi Mobile Pemesanan Makanan via Bluetooth

8

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

Page 24: Aplikasi Mobile Pemesanan Makanan via Bluetooth

9

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.

Page 25: Aplikasi Mobile Pemesanan Makanan via Bluetooth

10

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

Page 26: Aplikasi Mobile Pemesanan Makanan via Bluetooth

11

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.

Page 27: Aplikasi Mobile Pemesanan Makanan via Bluetooth

12

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

Fitur sekuriti dan jaringan.

Page 28: Aplikasi Mobile Pemesanan Makanan via Bluetooth

13

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.

Page 29: Aplikasi Mobile Pemesanan Makanan via Bluetooth

14

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

Page 30: Aplikasi Mobile Pemesanan Makanan via Bluetooth

15

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.

Page 31: Aplikasi Mobile Pemesanan Makanan via Bluetooth

16

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

Page 32: Aplikasi Mobile Pemesanan Makanan via Bluetooth

17

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

Page 33: Aplikasi Mobile Pemesanan Makanan via Bluetooth

18

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

javax.obex

Page 34: Aplikasi Mobile Pemesanan Makanan via Bluetooth

19

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

Page 35: Aplikasi Mobile Pemesanan Makanan via Bluetooth

20

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.

Page 36: Aplikasi Mobile Pemesanan Makanan via Bluetooth

21

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.

java.lang.String getBluetoothAddress()

Page 37: Aplikasi Mobile Pemesanan Makanan via Bluetooth

22

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.

java.lang.String getFriendlyName()

Page 38: Aplikasi Mobile Pemesanan Makanan via Bluetooth

23

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()

Page 39: Aplikasi Mobile Pemesanan Makanan via Bluetooth

24

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

Page 40: Aplikasi Mobile Pemesanan Makanan via Bluetooth

25

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.

Page 41: Aplikasi Mobile Pemesanan Makanan via Bluetooth

26

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).

Page 42: Aplikasi Mobile Pemesanan Makanan via Bluetooth

27

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)

Page 43: Aplikasi Mobile Pemesanan Makanan via Bluetooth

28

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:

Page 44: Aplikasi Mobile Pemesanan Makanan via Bluetooth

29

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 :

One-to-one relationship

Page 45: Aplikasi Mobile Pemesanan Makanan via Bluetooth

30

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.

Gambar 2.9. Many to many relationship

Page 46: Aplikasi Mobile Pemesanan Makanan via Bluetooth

31

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

ke dalam tabel di database

Page 47: Aplikasi Mobile Pemesanan Makanan via Bluetooth

32

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

Page 48: Aplikasi Mobile Pemesanan Makanan via Bluetooth

33

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

Page 49: Aplikasi Mobile Pemesanan Makanan via Bluetooth

34

konsep ini diaplikasikan pada berbagai jenis aplikasi, namun secara

garis besar pola request dan response nya tetap sama. Beberapa

penerapan arsitektur client server, yaitu pada web browser sebagai

klien, serta web server, database server, dan mail server sebagai

server.

2.5.1 Karakteristik Client Server

Secara umum karakteristik dari client adalah sebagai berikut:

Aktif

Menginisialisasi request

Menunggu balasan dari request

Umumnya terhubung dengan sedikit server dalam suatu

waktu

Umumnya berinteraksi secara langsung dengan end-user

menggunakan GUI (Graphical User Interface).

Sedangkan karakteristik server secara umum yaitu:

Pasif

Menunggu request dari klien

Seketika terdapat request yang masuk kepadanya, server

akan langsung memproses dan mengirimkan hasil

informasinya kepada klien yang memintanya

Umumnya menerima koneksi dari klien dalam jumlah yang

besar

Umumnya tidak berinteraksi secara langsung dengan end-

user.

Dapat bersifat stateless ataupun stateful.

2.5.2 Keuntungan dan Kerugian Arsitektur Client Server

Keuntungan dari penerapan arsitektur client server antara

lain:

Semua data disimpan pada server, sehingga manajemen

sekuritas penuh berada pada server, hal ini menjadi baik

dibandingkan dengan manajemen sekuritas data yang

Page 50: Aplikasi Mobile Pemesanan Makanan via Bluetooth

35

tersebar, server menjamin siapa-siapa saja yang berhak

mengakses data.

Oleh karena storage terpusat, proses update data menjadi

mudah untuk dilakukan daripada melakukan update data

yang tersebar. Pada kasus peer to peer, update data

dilakukan di setiap peer, hal ini tentunya sangat memakan

waktu dan rentan terjadinya inkonsistensi data.

Sedangkan kerugian dari penerapan arsitektur klien server

antara lain:

Kongesti trafik menjadi masalah utama arsitektur klien

server. Semakin banyak jumlah request client secara

simultan, dapat mengakibatkan server dan jaringan kelebihan

beban.

Jika server mengalami kegagalan, maka request dari klien

tidak dapat dipenuhi, hal ini berlaku untuk semua klien yang

terkoneksi dengan server.

Page 51: Aplikasi Mobile Pemesanan Makanan via Bluetooth

36

{Halaman sengaja dikosongkan}

Page 52: Aplikasi Mobile Pemesanan Makanan via Bluetooth

37

BAB 3

PERANCANGAN DAN IMPLEMENTASI

PERANGKAT LUNAK

3.1 DESKRIPSI UMUM

Perangkat lunak yang akan dikembangkan dalam Tugas

akhir ini adalah mengenai sistem pemesanan makanan pada

foodcourt. Secara garis besar aplikasi ini nantinya terdiri dari 3

bagian utama yaitu: aplikasi pada handphone, aplikasi pada server

dan aplikasi pada agen rumah makan (restoran). Gambaran umum

dari aplikasi menu pemesanan makanan ini dapat dilihat pada

gambar 3.1.

Gambar 3.1 Gambaran umum aplikasi pemesanan makanan

Perangkat lunak pada server akan dibuat menggunakan J2SE

dan berbasis desktop. Aplikasi di sisi server berfungsi untuk

menangani koneksi bluetooth dengan client dan juga koneksi

database. Setiap request dari client akan ditangani dan dilayani oleh

aplikasi server. Perangkat lunak pada client (pelanggan) dibuat

menggunakan J2ME, aplikasi ini akan dipasang di telepon selular

Page 53: Aplikasi Mobile Pemesanan Makanan via Bluetooth

38

pelanggan. Syarat dari handphone yang akan di gunakan adalah

harus mendukung MIDP2.0 dan bluetooth API (JSR-82). Aplikasi ini

berfungsi untuk melakukan pemesanan makanan terhadap restoran-

restoran yang ada di foodcourt. Sedangkan aplikasi di sisi client

restoran akan dibuat menggunakan PHP karena berbasiskan web,

aplikasi ini akan menampilkan daftar pesanan disertai dengan nomer

meja dan bill yang harus dibayar. Daftar pesanan yang tampil harus

di layani oleh restoran.

3.2 PERANCANGAN DATABASE APLIKASI

Pada bagian ini akan diberikan gambaran mengenai

rancangan database. Database yang digunakan diberi nama

“foodcourt”dan terdiri dari 9 tabel. Penjelasan dari masing-masing

tabel termasuk seluruh atribut dan kegunaannya yang digambarkan

pada model data fisik ini dapat dilihat pada tabel 3.1 sampai dengan

tabel 3.9. Rancangan model database ditunjukkan pada gambar 3.2

berikut:

Gambar 3.2 Rancangan database

Page 54: Aplikasi Mobile Pemesanan Makanan via Bluetooth

39

tb_komplain digunakan untuk menyimpan komplain dari pelanggan.

tb_detil pesan dan tb_pesan digunakan untuk menangani proses

pemesanan dan pembayaran. tb_foodcourt digunakan untuk

menyimpan data nama-nama restoran. tb_pegawai berisi data

pegawa, tb_pelanggan berisi data pelanggan. Untuk penjelasan dari

masing-masing atribut untuk setiap tabel akan dijelaskan pada Tabel

3.1 sampai Tabel 3.9 di bawah ini:

Tabel 3.1 tb_komplain

Field Tipe Data Key Deskripsi ID_Komplain int(8) PRI Unique identifier

komplain

ID_Pelanggan int(8) Unique identifier

pelanggan

Isi_Komplain varchar(150) Isi komplain

Tanggal_Komplain datetime Tanggal komplain

Status smallint(1) status komplain sudah

selesai atau belum

Tabel 3.2 tb_detil_pesanan

Field Tipe Data Key Deskripsi

ID_Detil_Pesanan int(8) PRI Unique identifier detil

pesanan

ID_Pesan int(8) Unique identifier

pesan

ID_Menu int(8) Unique identifier menu

Jumlah int(4) Jumlah/banyaknya

pesanan

Total_Harga double(8,0) Harga total diperoleh

dari jumlah*harga

Status smallint(2) Status pesanan sudah

dilayani atau belum

Tanggal_Jam_Pesan datetime tanggal dan jam

pemesanan

Tanggal_Jam_Selesai datetime tanggal dan jam selesai

dilayani

Page 55: Aplikasi Mobile Pemesanan Makanan via Bluetooth

40

Tabel 3.3 tb_foodcourt

Field Tipe Data Key Deskripsi

ID_Foodcourt int(8) PRI Unique identifier foodcourt

Nama_Foodcourt varchar(30) Nama restoran yang ada di

foodcourt

Pengelola varchar(25) Nama pemilik foodcourt

Telp varchar(25) Nomer telp pemilik

Tabel 3.4 tb_menu

Field Tipe Data Key Deskripsi

ID_Menu int(8) PRI Unique identifier menu

ID_Foodcourt int(8) Unique identifier foodcourt

Nama_Menu varchar(25) Nama makanan / minuman

Harga double(8,0) Harga makanan / minuman

Deskripsi varchar(35) Penjelasan singkat tentang

menu

Status_Aktif smallint(2) Status makanan tersedia atau

tidak

Tabel 3.5 tb_pegawai

Field Tipe Data Key Deskripsi

ID_Pegawai int(8) PRI Unique identifier pegawai

ID_Foodcourt int(8) Unique identifier foodcourt

Nama varchar(35) Nama pegawai

Jenis_Kelamin varchar(2) Jenis Kelamin

Alamat varchar(25) Alamat pegawai

Telpon varchar(20) Telpon pegawai

Username varchar(10) username untuk login ke

sistem

Password varchar(15) password untuk login ke

sistem

status_aktif smallint(1) Status pegawai aktif atau

tidak

Page 56: Aplikasi Mobile Pemesanan Makanan via Bluetooth

41

Tabel 3.6 tb_pelanggan

Field Tipe Data Key Deskripsi

ID_Pelanggan int(8) PRI Unique identifier

pelanggan

Nama_Pelanggan varchar(30) Nama pelanggan

Alamat varchar(30) Alamat Pelanggan

Telp varchar(25) Telp pelanggan

Username varchar(10) username pelanggan untuk

pemesanan

Password varchar(10) password pelanggan untuk

pemesanan

MAC_ADDRESS varchar(30) MAC Address bluetooth

pelanggan

Tabel 3.7 tb_pembayaran

Field Tipe Data Key Deskripsi

ID_Pembayaran int(8) PRI Unique identifier

pembayaran

No_Nota varchar(10) nomer nota pembayaran

ID_Pesan int(8) Unique identifier pesan

Tanggal_Bayar datetime nomer nota pembayaran

Total_Bayar double(8,0) Total pembayaran

ID_Pegawai int(8) Unique identifier pegawai

Tabel 3.8 tb_pesan

Field Tipe Data Key Deskripsi

ID_Pesan int(8) PRI Unique identifier pesan

ID_Pelanggan int(8) Unique identifier

pelanggan

No_Meja int(8) nomer meja

Total_Bayar int(25) Total Pembayaran

Status smallint(1) Status pesan sudah selesai

atau belum

Tanggal varchar(10) Tanggal Pemesanan

MAC_ADDRESS varchar(30) MAC Address pelanggan

Page 57: Aplikasi Mobile Pemesanan Makanan via Bluetooth

42

Tabel 3.9 tb_meja

Field Tipe Data Key Deskripsi

No_Meja int(3) PRI Nomer Meja (Unique)

Status smallint(1) Status meja sudah terisi

atau belum

3.3 PERANCANGAN DAN IMPLEMENTASI SISTEM

APLIKASI MENU PEMESANAN MAKANAN

Pengaksesan menu pemesanan makanan merupakan aplikasi

dan pengembangan dari komunikasi client-server via bluetooth dan

client-server via wired LAN. Tentunya ada yang bertindak sebagai

server dan ada yang menjadi client, dalam kasus ini komputer (PC)

sebagai server, dan telepon selular yang mendukung JSR-82 sebagai

client. Selain itu dibutuhkan juga aplikasi client yang menggunakan

komputer untuk digunakan oleh restoran. Sistem ini dapat diakses

oleh orang lebih dari satu. Dan sistem ini sering disebut Piconet.

3.3.1 KOMUNIKASI CLIENT SERVER

Pada komunikasi antara bluetooth MIDlet dan aplikasi

bluetooth server data akan dikirimkan melalui koneksi bluetooth. Di

mana MIDlet client mengirimkan request message (pesan

permintaan) ke server dan menerima reply message (pesan balasan)

dari aplikasi bluetooth server, sedangkan aplikasi bluetooth server

akan menerima request message dari client dan mengirim reply

message (pesan balasan) ke MIDlet client. Komunikasi data akan

terbangun dengan baik apabila antara MIDlet client dengan aplikasi

bluetooth server dapat menginterpretasikan setiap pesan yang

diterima di antara keduanya. Komunikasi yang terjadi antara client

server merupakan proses request data oleh client dan proses

pengolahan data serta reply data oleh server. Pada aplikasi ini proses

yang tarjadi yaitu proses login, proses permintaan daftar restoran dan

daftar menu makanan atau minuman, proses input pesanan, proses

permintaan history dan proses komplain.

Page 58: Aplikasi Mobile Pemesanan Makanan via Bluetooth

43

3.3.1.1 Sequence Login

Dari Gambar 3.3. dapat dilihat bahwa pertama-tama client

akan mengirimkan username dan password-nya kepada server dalam

bentuk string. Setelah itu akan diterima oleh server, selanjutnya akan

diproses ke database. Pada bagian ini akan dilakukan proses validasi.

Dan hasil pengolahan oleh database akan dikirimkan kembali ke

server untuk kemudian disampaikan kepada client.

Foodcourt Client

Foodcourt Bluetooth Server

Database (mysql)

LOGIN_STATE: username, password

loginValidasi-proses query

LOGIN_INVALID

loginValidasi-hasil query

LOGIN

Menu Layanan

} OR

Gambar 3.3 Sequence proses login

Pada gambar 3.3 menunjukkan bahwa proses login yang

dilakukan oleh user. Jika login valid maka bluetooth application

server mengirimkan data LOGIN pada MIDlet Client sebagai reply

message. Yang kemudian MIDlet client akan menampilkan Menu

Layanan. Apabila username dan password yang dikirimkan tidak

sesuai maka data yang dikirikan ke client adalah LOGIN_INVALID.

Namun pada saat request message gagal di kirimkan, maka MIDlet

Client akan menampilkan pesan error.

Page 59: Aplikasi Mobile Pemesanan Makanan via Bluetooth

44

3.3.1.2 Sequence Daftar Foodcourt

Pada gambar 3.4. merupakan message sequence dari proses

permintaan daftar nama-nama foodcourt yang aktif pada bluetooth

application server dari MIDlet client (request message). Bluetooth

application server akan mengirimkan reply message berupa data

foodcourt. Apabila pada saat MIDlet client mengirimkan request

message gagal, maka MIDlet Client akan menampilkan pesan error

Foodcourt Client

Foodcourt Bluetooth Server

Database(mysql)

DAFTAR_FOODCOURT;1;

sqlDaftarFoodcourt : proses query

sqlDaftarFoodcourt : hasil query

TampilanRestoranData Foodcourt aktif

Gambar 3.4 Sequence daftar foodcourt

3.3.1.3 Sequence Daftar Menu

Setelah proses menampilkan daftar foodcourt pada MIDlet

client, user akan memilih nama foodcourt dan kemudian dikirimkan

oleh MIDlet client ke bluetooth application server untuk

mendapatkan daftar menu makanan atau minuman. dan message

sequence dari proses ini ditunjukkan pada gambar 3.5. bluetooth

application server akan melakukan proses query untuk mengambil

data menu makanan atau minuman pada database. Daftar menu akan

dikirimkan pada MIDlet client sebagai reply message.

Page 60: Aplikasi Mobile Pemesanan Makanan via Bluetooth

45

Foodcourt Client

Foodcourt Bluetooth Server

Database(mysql)

DAFTAR_MENU;ID,NamaResto,;

sqlDaftarMenu(ID) : proses query

sqlDaftarMenu : hasil query

Daftar Makanan RestoranTampilanMakanan

Gambar 3.5 Sequence daftar menu

3.3.1.4 Sequence Input Pesanan

Proses pemesanan makanan pada bluetooth server terdiri

atas dua proses query yaitu proses sqlInputPesanan() dan

sqlInputDetailPesanan() yang message sequence-nya

ditunjukkan pada gambar 3.6. Sebagai reply message dari bluetooth

application server yaitu data konfirmasi berupa ID Pesanan, nomer

meja dan total pembayaran.

Foodcourt

ClientFoodcourt

Bluetooth ServerDatabase(mysql)

INPUT_PESANAN (DataPesanan)

sqlInputPesanan()

sqlInputDetailPesan()

Input Transaksi Sukses

OrderConfirmation

Order ID, nomeja,total Bayar

Gambar 3.6 Sequence input pesanan

Page 61: Aplikasi Mobile Pemesanan Makanan via Bluetooth

46

3.3.1.5 Sequence History dan Detil History

History dan detilhistory merupakan fasilitas yang disediakan

untuk melihat transaksi yang pernah dilakukan sebelumnya, Pada

gambar 3.7. merupakan message sequence dari proses permintaan

history dan detilhistory. Pertama client melakukan request

SHOW_HISTORY + id pelanggan dan Bluetooth application server

akan mengirimkan reply message berupa tanggal, Id pesanan, total

bayar dan status pembayaran. Selanjutnya client mengirimkan

request DETIL_HISTORY + id pesanan, dan server mengirimkan

reply berupa detil pemesanan dengan id pesanan tersebut.

Foodcourt Client

Foodcourt Bluetooth Server

Database (mysql)

SHOW_HISTORY;"idPelanggan ;

dataStringTransmit = history;

sqlHistoryPesanan(idPelanggan)

sqlHistoryPesanan-hasil query

DETIL_HISTORY;idPesanan;

sqlDetilHistory(idPesanan)

sqlDetilHistory-hasil query

dataStringTransmit = detilhistory

Gambar 3.7 Sequence history

Page 62: Aplikasi Mobile Pemesanan Makanan via Bluetooth

47

3.3.1.6 Sequence Input Komplain

Pada proses komplain, client mengirimkan data

INPUT_KOMPLAIN + isi komplain. Kemudian bluetooth server

melakukan input pesanan dengan menjalankan fungsi

sqlInputKomplain(). Sebagai reply message dari bluetooth

application server yaitu data konfirmasi berupa ID Komplain.

Message sequence-nya ditunjukkan pada gambar 3.8.

Foodcourt Client

Foodcourt Bluetooth Server

Database(mysql)

INPUT_KOMPLAIN;idPlgn;komplain

sqlInputKomplain

Input Komplain Sukses

dataStringTransmit = IDkomplain

Gambar 3.8 Sequence input komplain

3.3.2 APLIKASI SERVER PADA KOMPUTER (J2SE)

Aplikasi server merupakan aplikasi yang berfungsi untuk

menangani koneksi bluetooth dengan client (pelanggan). Selain itu,

data yang dikirimkan dari client akan diolah oleh aplikasi server,

yang akan diteruskan dengan pengolahan ke database. Hasil

pengolahan itu akan di dikirimkan kembali ke client. Dalam

mendesain Foodcourt Bluetooth Server diperlukan beberapa hal agar

sebuah mobile device yang berkerja dengan menggunakan aplikasi

dari J2ME dapat berkomunikasi dengan PC (Personal Computer)

yang menggunakan aplikasi J2SE. Pemrograman Bluetooth pada java

hal terpenting yang harus dimiliki adalah Java Bluetooth Stack,

Page 63: Aplikasi Mobile Pemesanan Makanan via Bluetooth

48

dimana stack ini akan menyediakan “jembatan” antara pemrograman

java dan bluetooth hardware. Salah satu cara untuk mendapatkan

Java Bluetooth Stack ialah dengan menggunakan Microsoft

Bluetooth Stack API dan BlueCove. Microsoft Bluetooth Stack API

adalah sebuah socket-style atau lebih sering disebut dengan WinSock.

Stack ini adalah sebuah aplikasi c-based untuk mengoperasikan

generic USB Bluetooth Dongle.BlueCove API dibuat berdasarkan

JSR-82 API, sehingga sifatnya sangat terbuka dan gratis terhadap

pengembang-pengembang Bluetooth. BlueCove dapat digunakan

untuk beberapa aplikasi seperti Serial Port Profile, General Access

Profile dan Service Discovery Profie.

Tabel 3.10 Kebutuhan Aplikasi server

No Kebutuhan Keterangan

1 Bluetooth device Alat untuk menerima dan mengirim

pesan

2 J2SDK-6.0 Kompiler untuk bahasa pemrograman

java

3 BlueCove Paket java untuk mengontrol

bluetooth device

4 CommAPI 2.0 Paket java untuk mengakses serial

port

5 JDBC-Connector Paket java untuk menghubungkan

dengan database, untuk mysql

menggunakan mysql-connector-java

Foodcourt Bluetooth Server dibuat dengan menggunakan

BlueCove stack yang dapat diperolah di http://sourceforge.net/

projects/bluecove/ dan Microsoft Bluetooth Stack.

Proses yang dilakukan oleh server diperlihatkan pada activity

diagram pada gambar 3.9. Yang pertama kali dilakukan oleh server

yaitu melakukan inisialisasi bluetooth device kemudian menjalankan

service setelah itu melakukan proses listening client. Jika ada client

yang terhubung dengan server maka server akan melakukan validasi

dan menunggu request data dari client. Data yang telah di terima

akan diolah oleh server kemudian mengirimkan jawaban ke client

sesuai dengan permintaan.

Page 64: Aplikasi Mobile Pemesanan Makanan via Bluetooth

49

tampilkan pesan

Melakukan request koneksi ke server

Mengirim Data

ada client connect?

Login?

request restoran?

tidak

requestmenu?

tidak

requesthistory ?

tidak

inputpesanan?

tidak

inputkomplain?

tidak

hasil login ya

Menerima dan mengolah data

daftar menu

ya

daftar history ya

input komplain

input komplain

Tutup koneksi database

Tutup koneksi bluetooth

Buka koneksi database

Initial Bluetooth device

Menjalankan service

Menunggu koneksi client

Melakukan koneksi bluetooth

Daftar Restoran

ya

input pesanan ya

Kirim Pesan

ya

tidak

tidak

y a

ServerClient

Gambar 3.9 Activity diagram server

Page 65: Aplikasi Mobile Pemesanan Makanan via Bluetooth

50

Berdasarkan activity diagram server pada gambar 3.9, maka dapat

dibuat class diagram. Class diagram server ini terdiri dari empat

buah class, yaitu class TaServer, class bluetoothConnection, class

logConnectionFrame dan class ClientThread. Hasil class diagram

yang telah dibuat dapat dilihat pada gambar 3.10 berikut ini.

Gambar 3.10 Class diagram aplikasi server

Page 66: Aplikasi Mobile Pemesanan Makanan via Bluetooth

51

3.3.2.1 User Interface Server

Berdasarkan rancangan sistem pada gambar 3.9. maka pada

aplikasi Server dapat dibuat visualisasi design form pada gambar

3.11 berikut ini

Gambar 3.11 Design Form pada aplikasi Server (J2SE)

Untuk membuat tampilan dengan desain seperti diatas maka

digunakan JFrame yang kemudian dipanggil pada main() dan di

set dengan size 640x480. Form aplikasi server diberi title “Foodcourt

Desktop Server”. Source untuk membuat form aplikasi server adalah

sebagai berikut:

public static void main(String args[]) {

FoodCourtServer mainFrame = new

FoodCourtServer();

mainFrame.setSize( 640, 480 );

mainFrame.setLocation( 80,70 );

mainFrame.setTitle("Food Court Desktop

Server");

mainFrame.setVisible( true );

}

Dari source diatas akan menghasilkan tampilan form seperti gambar

3.12. Form tersebut memiliki menu file, koneksi, foodcourt dan help.

FoodCourt Desktop Server _ [ ] X File Koneksi FoodCourt Help Server > Create server.... Server> Menunggu koneksi client......

Page 67: Aplikasi Mobile Pemesanan Makanan via Bluetooth

52

Gambar 3.12 Hasil user interface aplikasi server (J2SE)

3.3.2.2 Koneksi Bluetooth Pada Server

Aplikasi server digunakan untuk menangani koneksi

bluetooth, sehingga diperlukan sebuah tampilan log untuk

mengetahui dan memonitoring apakah ada client yang sedang konek

atau tidak. Server akan mendeteksi (listen) adanya perangkat yang

melakukan koneksi dengan server. Dan ketika ada client yang

melakukan koneksi dengan server maka server akan menangkap data

yang dikirimkan oleh user. Untuk menangani koneksi bluetooth

maka digunakan class javax.bluetooth.*;

Gambar 3.13 menunjukkan bagaimana proses discovery

Bluetooth pada server bakerja.sehingga dapat melakukan

pengaksesan terhadap sistem pemesanan makanan. Method-method

yang digunakan untuk melakukan koneksi bluetooth telah dijelaskan

sebelumnya di bab 2. Dari method-method tersebut dapat

digambarkan sequence diagram nya seperti pada gambar 3.13 berikut

ini.

Page 68: Aplikasi Mobile Pemesanan Makanan via Bluetooth

53

ConnectorService Record Remote Device ConnectionMIDlet Local Device Discovery Agent

getLocalDevice()

getDisscoveryAgent()

retriveDevice()

startInquiry()

deviceDiscovered()

searchServices()

servicesDiscovered()

getConnectionURL()

Connector.open()

getBluetoothAddress()

Send()

Gambar 3.13 Sequence bluetooth connection

Berdasarkan Gambar 3.13, maka dapat di tentukan beberapa

class yang digunakan untuk koneksi bluetooth dalam pembangunan

aplikasi pemesanan makanan ini. Proses pertama yang dilakukan

untuk membangun koneksi client-server via bluetooth yaitu

melakukan inisialisasi pada local device bluetooth yang bertujuan

untuk mendapatkan informasi dari local device bluetooth dan untuk

mendapatkan akses ke bluetooth manager.

getLocalDevice() : berfungsi menyediakan akses untuk

mengontrol perangkat bluetooth yang ada pada sisi client pada tugas

akhir ini adalah berupa HandPhone. Class ini berfungsi untuk

mengambil informasi pada local device seperti bluetooth address,

device class dan discovery agent. Source code untuk proses

inisialisasi adalah sebagai berikut :

Page 69: Aplikasi Mobile Pemesanan Makanan via Bluetooth

54

...

private LocalDevice localDevice;

// local bluetooth manager

...

//mendapatkan informasi dari local device dan untuk

dapat

//mengakses bluetooth manager

localDevice = LocalDevice.getLocalDevice();

//pengesetan discoverable mode GIAC pada server

localDevice.setDiscoverable(DiscoveryAgent.GIAC);

...

Setelah melakukan proses inisialisasi, proses selanjutnya adalah

membuat koneksi server dengan menggunakan

Connector.open() method

/koneksi server

import javax.microedition.io.Connector;

private StreamConnectionNotifier notifier;

...

//membuat koneksi server menggunakan Serial Port

Profile URL,

//spesifik UUID, dan nama service

notifier =

(StreamConnectionNotifier)Connector.open(

"btspp://localhost:102030405060708090A0B0C0D0E0F010

;" +

"name=FOODCOURT;authenticate=false;encrypt=false");

...

Proses berikutnya yaitu mengeset attribute service record pada

Service Discovery Database (SDDB). Berikut potongan source code-

nya :

...

//mengambil record dari SDDB

ServiceRecord record =

localDevice.getRecord(notifier);

//mengeset service record ServiceAvailability

(0x0008)

Page 70: Aplikasi Mobile Pemesanan Makanan via Bluetooth

55

//attribute yang mengindikasikan service tersedia,

record.setAttributeValue(0x0008,new DataElement(

DataElement.U_INT_1, 255 ) )

...

Agar client dapat membangun koneksi dengan server dengan service

yang disediakan oleh server, maka server perlu meregistrasikan

service record pada SDDB dan melakukan proses menunggu koneksi

dari client. Berikut source code pada proses ini :

...

// koneksi pada remote device

StreamConnection client = null;

try {

//memasukkan service record pada SDDB dan menunggu

koneksi dari client

client = notifier.acceptAndOpen();

...

} catch (IOException e) {…}

..

Apabila server menerima koneksi dari client, maka proses

selanjutnya yaitu proses penerimaan dan pengiriman data dari dan ke

client serta menginterpretasikan data yang diterima oleh server yang

digunakan sebagai variabel untuk proses query database dan proses

pemeriksaan untuk keperluan validasi. Berikut source code pada

proses ini :

...

try {

//memperoleh input stream dari client

DataInputStream in = conn.openDataInputStream();

//membaca input message yang berupa data string

String dataStringReceive = in.readUTF();

//menginterpretasikan data input dengan mengubah

data string ke array

string2array(dataStringReceive);

....

//proses pengiriman data pada client

Page 71: Aplikasi Mobile Pemesanan Makanan via Bluetooth

56

DataOutputStream stream =

conn.openDataOutputStream();

stream.writeUTF( dataStringTransmit );

stream.flush();

conn.close();

}catch (Exception e) {}

Gambar 3.14. Merupakan hasil tampilan dari aplikasi server

untuk menangani proses koneksi bluetooth. Pada gambar 3.14

sebelah kiri menunjukkan error handling saat bluetooth tidak

ditemukan pada komputer server. Sedangkan pada gambar sebelah

kanan menunjukkan log saat server siap untuk menerima koneksi

dari client. Server akan terus melakukan listening sampai ada client

yang melakukan koneksi.

Gambar 3.14 Log koneksi aplikasi server (J2SE)

3.3.2.3 Koneksi Database Pada Server

Untuk melakukan insert, select, delete, dan update data,

tahapan pertama yang dilakukan yaitu melakukan koneksi dengan

database MySQL. Kemudian dilanjutkan dengan membuat objek

Statement dengan menggunakan objek Connection . Oleh

karena itu pernyataan (statement) SQL dibuat dan dalam bentuk

data string. Pernyataan SQL dijalankan dengan melalui dua metode

berdasarkan fungsinya. Jika ingin mengambil data (select)

Page 72: Aplikasi Mobile Pemesanan Makanan via Bluetooth

57

pernyataan SQL dijalankan dengan metode executeQuery(),

sedangkan untuk membuat atau memodifikasi (create, insert, update,

delete) tabel data dari database metode yang digunakan yaitu executeUpdate().

Berikut source code untuk melakukan koneksi database maka

digunakan JDBC driver.

private void koneksi() throws Exception{

String driver = "com.mysql.jdbc.Driver";

String url =

"jdbc:mysql://127.0.0.1/foodcourt";

String username = "root";

String password = "tarantula";

try {

Class.forName( "com.mysql.jdbc.Driver" );

con = DriverManager.getConnection(

url,username,password );

System.out.println( "Terhubung

Database" );}

catch (ClassNotFoundException cnfex) {

System.err.println("Koneksi Driver JDBC

- ODBC Gagal");

cnfex.printStackTrace();

System.exit(1);}

catch (SQLException sqlex) {

System.err.println("Koneksi Tidak Dapat

Dilakukan");

sqlex.printStackTrace();}

}

3.3.2.4 Proses Login

Pada saat koneksi client-server dibangun, proses yang

dilakukan setelah koneksi terbangun adalah user melakukan login

yang bertujuan untuk pengidentifikasian pada user. Aplikasi client

akan mengirimkan data LOGIN_STATE disertai dengan username

dan password. Data tersebut kemudian oleh server diolah dan

dicocokkan dengan database. Jika login valid maka server akan

mengirimkan data LOGIN disertai dengan id pelanggan dan nama

pelanggan Sedangkan jika login salah atau tidak sesuai, maka pesan

Page 73: Aplikasi Mobile Pemesanan Makanan via Bluetooth

58

yang dikirimkan oleh server adalah LOGIN_INVALID. Activity

diagram dari proses validasi login dapat dilihat pada gambar 3.15.

Melakukan Login

Discovery Bluetooth

Cek Kondisi

LOGIN_STATE;uname;passw

login valid?

koneksi database

proses loginValidasi

kirim pesan

LOGIN;idPelanggan,nmPelanggan

LOGIN_INVALID

tutup koneksi database

tampilkan pesan

tidakya

Serv erClient

Gambar 3.15 Activity diagram proses login

Data yang dikirimkan oleh client ke server yaitu kondisi

proses, username, dan password. Untuk proses login data kondisinya

yaitu LOGIN_STATE, yang dapat diketahui dengan proses

pemeriksaan kondisi. Berikut adalah source code proses login :

Page 74: Aplikasi Mobile Pemesanan Makanan via Bluetooth

59

String dataStringReceive = in.readUTF();

string2array(dataStringReceive);

String no = null;

if (array[0].equals("miftakhz31n"))

{

no = "New_client";

dataStringTransmit = "miftakhz31n;";

}

else if (array[0].equals("LOGIN_STATE"))

{

String username = array[1];

char[] password = new char[array[2].length()];

for (int i = 0; i < array[2].length(); i++) {

password[i] = array[2].charAt(i);

}

if (loginValidasi(username, password))

{

dataStringTransmit = "LOGIN;" + tempId + ";"

+ tempNama + ";";

}

else

{

dataStringTransmit = "LOGIN_INVALID;";

}

....

3.3.2.5 Proses Daftar Foodcourt

Pada proses data daftar foodcourt, data kondisi yang

dikirimkan oleh client untuk proses ini yaitu

DAFTAR_FOODCOURT. Kondisi tersebut menunjukkan bahwa

client melakukan permintaan daftar nama-nama restoran yang ada di

foodcourt. Activity diagram dari proses data daftar foodcourt dapat

dilihat pada gambar 3.16.

Proses yang dilakukan yaitu, client akan megirimkan request

message, kemudian server akan menindaklanjuti dengan melakukan

proses pengambilan data daftar foodcourt yang aktif pada database

dengan menjalankan fungsi sqlDaftarFoodcourt() yaitu

dengan melakukan kueri ke database. Data yang ada kemudian

dikirimkan ke client. Data yang dikirim berisi id Fodcourt dan Nama

Page 75: Aplikasi Mobile Pemesanan Makanan via Bluetooth

60

Foodcourt. Sedangkan bila data kosong, maka yang dikirimkan

adalah NULL_RESTORAN. Berikut ini adalah potongan sourcode

untuk proses daftar Foodcourt:

} else if (array[0].equals("DAFTAR_FOODCOURT")) {

String statusnya = array[1];

sqlDaftarFoodcourt(statusnya);

dataStringTransmit = gabungfc;

}

request daftar restoran

tampilkan pesan

Discovery Bluetooth

Cek Kondisi

DAFTAR_FOODCOURT;1;

ada data?

koneksi database

Jalankan fungsi sqlDaftarFoodcourt

kirim pesan

data = IdFoodcourt;NamaFoodcourt

data = NULL_RESTORAN

tutup koneksi database

ya tidak

Serv erClient

Gambar 3.16 Activity diagram daftar foodcourt

Page 76: Aplikasi Mobile Pemesanan Makanan via Bluetooth

61

3.3.2.6 Proses Daftar Menu (Makanan atau Minuman)

Activity diagram pada proses informasi daftar makanan

dapat dilihat pada gambar 3.17. Pada proses info daftar makanan

untuk restoran yang diinginkan oleh pelanggan data kondisi pada

request message yaitu DAFTAR_MENU.

request daftar menu

tampilkan pesan

Discovery Bluetooth

Cek Kondisi

DAFTAR_MENU;idFoodcourt;

ada data?

koneksi database

Jalankan fungsi sqlDaftarMenu(idFoodcourt)

kirim pesan

data = IdMenu;NamaMenu;Harga

data = NULL_MAKANAN;

tutup koneksi database

ya tidak

Serv erClient

Gambar 3.17 Activity diagram daftar makanan

Selain data kondisi pada request message terdapat data

ID_Foodcourt yang digunakan untuk proses pengambilan data menu

makanan pada database. Hasil pengambilan data makanan atau

minuman dari database akan dikirimkan ke client. Sehingga

pelanggan akan dengan mudah mendapatkan informasi daftar menu

dan dapat menentukan menu makanan atau minuman mana yang

Page 77: Aplikasi Mobile Pemesanan Makanan via Bluetooth

62

akan dipesan. Berikut source code pada proses informasi daftar

makanan

...

else if (array[0].equals("DAFTAR_MENU")) {

String statusnya = array[1];

sqlDaftarMenu(statusnya);

dataStringTransmit = gabungmenu; }

...

3.3.2.7 Proses Pemesanan Makanan dan Minuman

Activity diagram pada proses pemesanan dapat dilihat pada

gambar 3.18. Pada proses ini data kondisi pada request message

yaitu INPUT_PESANAN.

Melakukan Pesanan

tampilkan pesan

Discovery Bluetooth

Cek Kondisi

INPUT_PESANAN;idPelanggan,nomeja,total;idFoodcourt,idMenu,jml;

koneksi database

Jalankan fungsi sqlInputPesanan(array[1]); sqlInputDetail(array[2]);

kirim pesan

data = PESANAN_OK; idPesanan,noMeja,total;

tutup koneksi database

input sukses?ya

data = PESANAN_GAGAL;

tidak

Serv erClient

Gambar 3.18 Activity diagram input pesanan

Page 78: Aplikasi Mobile Pemesanan Makanan via Bluetooth

63

Untuk proses pemesanan makanan dan minuman ada

beberapa data yang dikirimkan oleh client yaitu data kondisi, id

Pelanggan, nomer meja, Total pembelian, id Foodcourt, id Menu,

jumlah makanan yang dipesan. Data kondisi untuk proses pemesanan

yaitu INPUT_PESANAN.

Data yang masuk akan diubah menjadi data array. Pada

input pesanan terbagi menjadi 3 jenis, array[0] berisi data kondisi,

array[1] berisi id Pelanggan, nomer meja, Total pembelian.

Sedangkan pada data array[2] dan array[>2] berisi id Foodcourt, id

Menu, jumlah makanan. Jika proses pemeasan sukses maka server

akan mengirimkan order confirmation berupa bukti pemesanan ke

client. Berikut source code pada proses pemesanan.

} else if (array[0].equals("INPUT_PESANAN")) {

String pelanggan = array[1]; //1,2,35000,;

sqlInputPesanan(pelanggan);

for (int z = 2; z < array.length;z++){

if (array[z] == null){

break;

}else{

String detilnya = array[z];

//3,1,3,;3,2,3,;

sqlInputDetailPesan(idpesan,detilnya);

}

}

dataStringTransmit = balesan;

}

3.3.2.8 Proses Komplain

Untuk proses komplain, data yang dikirimkan oleh client

yaitu id Pelanggan dan isi komplain. Data kondisi untuk proses

pemesanan yaitu INPUT_KOMPLAIN. Kemudian server akan

menjalankan method sqlInputKomplain() sehingga data akan

dimasukkan ke database, setelah itu server memberikan reply berupa

id komplain. Activity diagram pada proses komplain dapat dilihat

pada gambar 3.19.

Page 79: Aplikasi Mobile Pemesanan Makanan via Bluetooth

64

Komplain

tampilkan pesan

Discovery Bluetooth

Cek Kondisi

INPUT_KOMPLAIN; idPelanggan

koneksi database

Jalankan fungsi sqlInputKomplain(idPelanggan,komplain);

kirim pesan

data = KOMPLAIN_OK; idKomplain;

tutup koneksi database

input sukses?

data = KOMPLAIN_GAGAL;

yatidak

Serv erClient

Gambar 3.19 Activity diagram proses komplain

Untuk menangani proses komplain pada server, dapat dilihat pada

potongan source code berikut ini

else if (array[0].equals("INPUT_KOMPLAIN"))

{

sqlInputKomplain(array[1],array[2]);

dataStringTransmit = balesan;

}

Page 80: Aplikasi Mobile Pemesanan Makanan via Bluetooth

65

3.3.3 APLIKASI CLIENT

Aplikasi pada client terdiri dari dua macam yaitu:

a. Aplikasi pada pelanggan (J2SE)

Untuk melihat menu dan melakukan pemesanan.

b. Aplikasi pada restoran (WEB)

Untuk melayani pemesanan dan menagani pembayaran.

Fungsi-fungsi yang dilakukan pada aplikasi client dapat dijelaskan

pada use case dibawah ini:

Mencari FoodcourtBluetooth Server

Memilih Restoran

Order Menu

Kirim Pesanan

close connection

Pembeli

Balasan

MenungguOrder

Terima Pesanan

Makanan & minuman

Foodcourt

set dilayani

Bayar

Kasir

set lunas

Gambar 3.20 Use case diagram aplikasi client

Penjelasan mengenai use case diagram:

• User / Pelanggan mencari device bluetooth server.

Page 81: Aplikasi Mobile Pemesanan Makanan via Bluetooth

66

• User / Pelanggan memilih nama restoran.

• User / Pelanggan mendapat menu dan harga sesuai dengan

menu restoran.

• User / Pelanggan memilih menu makanan.

• User / Pelanggan mengirimkan pesanan dan No Meja yang

berarti melakukan input daftar pesanan dan nomer meja ke

sistem.

• User / Pelanggan mendapatkan balasan berupa List order dan

Total yang harus dibayar.

• Kasir melihat ada order baru dan belum membayar

• User / Pelanggan melakukan pembayaran ke kasir dan

menerima struk pembayaran.

• Kasir menginputkan biaya pembayaran ke sistem dan

memberikan status bahwa pemesanan dengan Id Pesan

tertentu telah membayar.

• Restoran / Penjual melihat daftar pesanan customer yang

sudah di sorting berdasarkan waktu pemesanan oleh sistem.

• Setelah koki restoran selesai membuat menu tersebut, maka

pelayan akan mengantarkan pesanan ke pelangggan.

• Restoran / Penjual memberikan status bahwa pemesanan

telah dilayani.

3.3.3.1 APLIKASI CLIENT PADA PELANGGAN

(HANDPHONE / J2ME)

Sistem akses aplikasi menu pemesanan makanan dapat

dilihat gambar 3.20 dimana pertama kali user dengan menggunakan

mobile device-nya yang sudah diperlengkapi dengan fasilitas

bluetooth, melakukan proses device inquery untuk mencari server

yang sedang aktif. Setelah pencarian berhasil, maka user akan secara

langsung berhubungan dengan Bluetooth server yang sudah ada.

Proses pertama kali dilakukan adalah proses login dimana user

diwajibkan untuk mendaftar terlebih dahulu di server. Username dan

password berfungsi sebagai pintu gerbang. Jika prosesnya berhasil,

maka user dapat melanjutkan pengaksesan. Namun jika tidak, maka

sistem akan memberikan pesan pada user. Proses yang dilakukan

client (J2ME) diperlihatkan pada actifity diagram pada gambar 3.20

berikut ini.

Page 82: Aplikasi Mobile Pemesanan Makanan via Bluetooth

67

buka aplikasi client

inisialisasi bluetooth device

bluetoothaktif?

mencari foodcourt bluetooth server

ya

serverditemukan?

timeout?

melakukan koneksi ke server

ya

form login

kirim data login

tampil pesan bluetooth OFF

tidak

tampil pesan server tidak ditemukan

tidak

tampil pesan tidak bisa konek server

tidak

pilih restoranpilih menu

masukkan jumlah

kirim pesanan

receive billtutup koneksi bluetooth

login ok?

menunggu koneksi clienttidak

koneksi terbangun

input pesanan

proses validasi login

ya

tidak

Serv erclient

Gambar 3.21 Activity diagram aplikasi client (J2ME)

Dari gambar 3.21 dapat dilihat bahwa pengaksesan dapat

dilakukan lebih dari 1 orang. Akses menu pemesanan makanan dari

mobile device melalui Bluetooth ini berupa database MySql. Dengan

Page 83: Aplikasi Mobile Pemesanan Makanan via Bluetooth

68

maksud agar susunan menu yang disajikan dalam aplikasi system ini

menyerupai dengan menu yang sudah ada pada database menu

pemesanan makanan. Jadi sistem yang dibuat hanya mengambil dan

memanggil data menu makanan dari nama foodcourt yang diinginkan

oleh user. Bahasa pemrograman yang digunakan adalah Java 2

Micro Edition (J2ME) pada sisi client dan Java 2 Standard Edition

(J2SE) pada sisi server sedangkan untuk mengakses database MySql

digunakan Java Database Connectivity (JDBC).

Gambar 3.22 Sistem akses menu makanan oleh pelanggan

Untuk membuat aplikasi client maka dirancanglah sebuah class

diagram untukmembuat aplikasi J2ME. Aplikasi menggunakan tiga

buah class. Yaitu class FcClient, class FcConnect dan class FcGUI.

Class FcGUI berisi method-method yang digunakan untuk membuat

tampilan dan form. Sedangkan class FcConnect berisi method-

method yang digunakan untuk menangani masalah koneksi bluetooth

dan juga berisi fungsi yang digunakan untuk menangani pertukaran

data antara client server. Class FcClient berisi method-method

default yang digunakan untuk membuat aplikasi J2ME.

Page 84: Aplikasi Mobile Pemesanan Makanan via Bluetooth

69

Gambar3.23 Class diagram aplikasi client J2ME

Page 85: Aplikasi Mobile Pemesanan Makanan via Bluetooth

70

3.3.3.1.1 User Interface MIDlet client

MIDlet client mempunyai beberapa layar atau tampilan yang

digunkan untuk menampilkan informasi yang dibutuhkan oleh user.

Berdasarkan rancangan sistem pada gambar 3.20 dan gambar 3.21

maka pada aplikasi pelanggan dapat dibuat blok diagram tampilan

seperti pada gambar 3.24

Gambar 3.24 Blok diagram tampilan MIDlet client

Layar-layar yang digunakan pada MIDlet client yaitu :

a. Tampilan Awal

Merupakan layar pembuka awal aplikasi.

b. Layar koneksi bluetooth

Merupakan layar yang digunakan untuk menampilkan informasi

inisialisasi pada local bluetooth telah berhasil dan pada layar ini

user dapat melanjutkan proses berikutnya dengan memilih

“connect” command untuk melakukan device dan service

discovery pada server serta membuka data tiket yang tersimpan

pada persistent storage pada telepon selular.

c. Layar Searching

Merupakan layar yang digunakan untuk menampikan informasi

untuk menunggu proses device dan service discovery. Jika

bluetooth device atau service server tidak ditemukan, maka layar

ini akan menampilkan informasinya.

d. Layar Login

Page 86: Aplikasi Mobile Pemesanan Makanan via Bluetooth

71

Merupakan layar yang digunakan untuk menampilkan form

login, dimana user dapat memasukkan data nomor pelanggan,

username, password pada layar ini.

e. Layar Menu Layanan

Merupakan layat yang berisi daftar layanan yang terdiri dari

menu pilihan, yaitu Pilih foodcourt dan menu atau View Pesanan

f. Layar Daftar Foodcourt

Berisi tampilan daftar nama-nama foodcourt yang aktif dan

dikirim dari server.

g. Layar Daftar Makanan

Berisi tampilan daftar nama-nama makanan atau minuman yang

aktif dan dikirim dari server yang sesuai dengan nama foodcourt

yang dipilih.

h. Layar Input Jumlah pesanan

Tampilan untuk memasukkan jumlah pesanan sesuai dengan

menu yang dipilih

i. Layar daftar pesanan

Merupakan tampilan dari pesanan yang telah dilakukan user.

j. Layar input nomer meja

Merupakan tampilan saat melakukan input teradap nomer meja.

k. Layar pengiriman data pesanan

Merupakan tampilah saat melakukan proses pengiriman pesanan

ke server.

l. Layar History pemesanan

Tampilan untuk melihat pesanan yang lama.

Username :

Password :

Option Back

Pencarian Server….

Siap melakukan koneksi….

FoodCourt Client

Back Select

Page 87: Aplikasi Mobile Pemesanan Makanan via Bluetooth

72

Gambar 3.25 Design form pada aplikasi pelanggan (J2ME)

Berdasarkan rancangan dan desain pada gambar 3.21 dan

gambar 3.22 maka hasil yang didapat adalah seperti Gambar 3.23

Source code dibawah ini merupakan penggalan source yang

digunakan untuk menampilkan proses pencarian perangkat.

public void commandAction(Command c, Displayable d)

{

if (c == CONNECT_CMD && d == formMenuDisplay) {

Form f = new Form("Pencarian...");

f.addCommand(SEARCH_CANCEL_CMD);

f.setCommandListener(this);

f.append(new Gauge("Pencarian perangkat...",

false, Gauge.INDEFINITE,Gauge.CONTINUOUS_RUNNING));

Display.getDisplay(parent).setCurrent(f);

bc_client.searchRequest();

return;

}

if (c == BACK_CMD) {

destroy();

parent.show(null);

return;

}

if (c == BACK_LOGIN) {

Confirmation Pesanan anda dg order ID 445, meja 5, sebesar Rp 110.000 akan segera Kami antarkan. Terima Kasih Option Select

Daftar Pesanan: Dorayaki 4 Mie 2 No Meja:

Option Select

Pilih Menu Makanan View Pesanan History Pesanan Option Select

Dorayaki 20000 Jumlah :

Back Select

Pilih Menu : Dorayak 20000 Katsudon25000 Mie 5000

Back Select

Pilih Restoran: 1. Hoka hoka Bento 2. Jungle Juice 3. Bakso Sedap

Back Select

Pilih Menu Makanan View Pesanan History Pesanan Option Select

Page 88: Aplikasi Mobile Pemesanan Makanan via Bluetooth

73

bc_client.Send_Req(null, 0);

parent.show(null);

return;

}

}

Gambar 3.26 Tampilan Aplikasi client di emulator

saat Pencarian perangkat

3.3.3.1.2 Koneksi Bluetooth MIDlet client

Pada client, proses koneksi bluetooth diawali dengan

melakukan inisialisasi pada local sevice, setelah itu melakukan

device discovery untuk mencari bluetooth yang ada disekitarnya

(Bluetooth Foodcourt server) kemudian melakukan service discovery

untuk mencari informasi bagaimana untuk melakukan koneksi

terhadap service pada setiap bluetooth yang ada.

Page 89: Aplikasi Mobile Pemesanan Makanan via Bluetooth

74

Pilih menu melakukan koneksi

pembatalanproses?

pembatalanproses.?

tampilan login

tampilan error

tampilan awal

Proses device discovery

proses service discovery

bluetooth deviceditemukan?

bluetooth serviceditemukan?

tidak

ya

tidak

ya

tidak

ya

yatidak

System ClientUser

Gambar 3.27 Activity diagram koneksi bluetooth client

Pada proses inisialisasi pada local device untuk client sama

dengan proses inisialisasi pada server, tetapi pada client terdapat

tambahan yaitu terdapat objek DiscoveryAgent yang didapatkan dari

objek LocalDevice. Objek DiscoveryAgent digunakan untuk proses

device discovery dan service discovery. Source code untuk proses

inisialisasi pada client adalah sebagai berikut :

public void run() {

boolean LbBlue_Ok = false;

try {

Page 90: Aplikasi Mobile Pemesanan Makanan via Bluetooth

75

LocalDevice localDevice =

LocalDevice.getLocalDevice();

discoveryAgent = localDevice.getDiscoveryAgent();

LbBlue_Ok = true;

} catch (Exception e) {

System.err.println("Tidak dapat di

inisialisasi...");

}

parent.completeInizialization(LbBlue_Ok);

if (!LbBlue_Ok) {

return;

}

}

Dalam sistem ini aplikasi yang dibuat, hanya ditujukan untuk

menangani sistem pemesanan pada foodcourt dengan menggunakan

bluetooth. Sehingga pada saat client melakukan proses inquiry,

deviceDiscovered() yang dibutuhkan hanyalah Foodcourt

Bluetooth server. Hal ini dapat dilakukan dengan cara men-setting

langsung address dari Foodcourt Bluetooth server (BT_ADDRESS).

public void deviceDiscovered(RemoteDevice

remoteDevice, DeviceClass deviceClass) {

int majorDeviceClass =

deviceClass.getMajorDeviceClass();

// Beberapa Bluetooth device telah ditemukan

dalam pencarian

if (devices.indexOf(remoteDevice) == -1) {

if

(remoteDevice.getBluetoothAddress().equals(BT_ADDRE

SS) &&

majorDeviceClass == 0x0100) {

devices.addElement(remoteDevice);

}

}

}

Page 91: Aplikasi Mobile Pemesanan Makanan via Bluetooth

76

3.3.3.1.3 Proses Login Pada MIDlet Client

Setelah client berhasil mencari Foodcourt Bluetooth Server

dan melakukan koneksi terhadap server, proses berikutnya adalah

proses login pada sebuah form Login. Proses ini adalah mengirimkan

ID proses login, username dan password kepada server. Script dari

form tersebut adalah sebagai berikut :

//Tampilan Login //

private final Form formLoginDisplay = new

Form("Login");

private final Command Login_Send_CMD = new

Command("Kirim", Command.SCREEN, 2);

private final Command Login_Back_CMD = new

Command("Kembali", Command.BACK, 1);

private final TextField username = new

TextField("Username :", "", 9, TextField.ANY);

private final TextField password = new

TextField("Password :", "", 9, TextField.PASSWORD);

formLoginDisplay.setTitle("Login");

formLoginDisplay.append(username);

formLoginDisplay.append(password);

formLoginDisplay.addCommand(Login_Back_CMD);

formLoginDisplay.addCommand(Login_Send_CMD);

formLoginDisplay.setCommandListener(this);

formSendData.setCommandListener(this);

Source code diatas akan menampilkan form untuk melakukan proses

login dan juga command listener untuk proses mengirimkan ID

LOGIN_STATE, username dan password. Berikut adalah tampilan

proses login di client

Gambar 3.28 Tampilan login

Page 92: Aplikasi Mobile Pemesanan Makanan via Bluetooth

77

3.3.3.1.4 Proses Menu Layanan, Daftar Foodcourt dan View

Pesanan

Jika proses login berhasil maka user akan mendapatkan

tampilan berupa menu layanan. Menu layanan digunakan untuk

melakukan pemilihan restoran dan menu atau melihat pesanan yang

sudah di lakukan.

tampilan menu layanan

lihatrestoran?

lihat pesanan?

lihathistory?

komplain?

kirim data

tampilan hasil

DAFTAR_FOODCOURT

HISTORY_PESANAN

INPUT_KOMPLAIN

Data Pesanan

pengolahan data dari client

kirim hasil pengolahan data

tidakya

ya

ya

tidak

tidak

tidak

ya

Serv erClient

Gambar 3.29 Activity diagram menu layanan

Saat user memilih menu ”Pilih Restoran dan Menu” maka

client akan mengirimkan string DAFTAR_FOODCOURT ke server

untuk mendapatkan informasi mengenai daftra foodcourt yang aktif.

Kemudian client akan menunggu proses pengiriman data. Data daftar

Page 93: Aplikasi Mobile Pemesanan Makanan via Bluetooth

78

foodcourt yang diterima oleh client akan ditampilkan. Source code

berikut ini untuk menampilkan daftar menu layanan yang memiliki

dua buah sub menu. Serta source untuk menampilkan daftar

foodcourt

void TampilkanMenu(String[] xid) {

menuDiplayFoodcourt = new List("MENU LAYANAN ("+

momo +")", List.IMPLICIT);

menuDiplayFoodcourt.append("1.Pilih Restoran dan

Menu", null);

menuDiplayFoodcourt.append("2.Lihat Pesanan",

null);

menuDiplayFoodcourt.append("3.History Pesanan",

null);

menuDiplayFoodcourt.append("4.Komplain", null);

menuDiplayFoodcourt.addCommand(GET_FOODCOURT_CMD);

menuDiplayFoodcourt.addCommand(BACK_LOGIN1);

menuDiplayFoodcourt.setCommandListener(this);

Display.getDisplay(parent).setCurrent(menuDiplayFoo

dcourt);

}

void TampilanRestoran(String[]z){

String[] tampilan;

tempRestoran = z;

menuTampilkanNama = new List("DAFTAR RESTORAN",

List.IMPLICIT);

for (int i = 0;i< z.length; i++){

lokir(z[i]);

tampilan = mindah;

menuTampilkanNama.append(i+1 + " " +

tampilan[1] , null);

}

menuTampilkanNama.addCommand(GET_MAKANAN_CMD);

menuTampilkanNama.addCommand(BACK_MENU_CMD);

menuTampilkanNama.setCommandListener(this);

Display.getDisplay(parent).setCurrent(menuTampilkan

Nama);

}

Page 94: Aplikasi Mobile Pemesanan Makanan via Bluetooth

79

Gambar 3.30 Tampilan menu layanan dan

tampilan daftar restoran

3.3.3.1.5 Proses Daftar Menu

Pada proses ini menampilkan daftar menu makanan atau

minuman sesuai dengan nama foodcourt yang dipilih. Data menu

makanan didapatkan dari reply message server. Dari layar tampilan

foodcourt dapat memilih menu makanan dan melakukan pemesanan.

Pilih Nama Restoran

tampilan daftar restoran

kirim data : DAFTAR_MENU; idFoodcourt

tampilan menu makanan / minuman

Cek Data dari client

proses daftar menu

kirim data menu

Serv erClient

Gambar 3.31 Activity diagram proses menu makanan

Page 95: Aplikasi Mobile Pemesanan Makanan via Bluetooth

80

Command yang dipakai pada layar nama foodcourt yaitu :

“Pilih” dan “Back”. Pada command “Pilih” akan melakukan proses

pengiriman request message pada server untuk mendapatkan reply

message dari server yang berupa data daftar menu makanan atau

minuman. Untuk command “Back” akan melakukan proses untuk

kembali ke layar dafar makanan. Yang di tampilkan dari tampilan

menu makanan adalah nama makanan dan juga harganya per porsi.

Source code tampilan daftar makanan :

void TampilanMakanan(String[] food){

String[] tampilan; tempFood = food;

menuTampilMakanan = new List("Daftar

Makanan", List.IMPLICIT);

for (int i = 0; i< food.length; i++){

lokir(food[i]);

tampilan = mindah;

menuTampilMakanan.append(i+1 + " " +

tampilan[1] + " - " + tampilan[2], null);}

menuTampilMakanan.addCommand(DO_PESAN_CMD);

menuTampilMakanan.addCommand(BACK_FOODCOURT_CM

D);

menuTampilMakanan.setCommandListener(this);

Display.getDisplay(parent).setCurrent(menuTamp

ilMakanan); }

Gambar 3.32 Tampilan daftar menu makanan

Page 96: Aplikasi Mobile Pemesanan Makanan via Bluetooth

81

3.3.3.1.6 Proses Input Pesanan Isi dari layar input pesanan terdiri atas informasi makanan,

dan textfield untuk memasukkan benyaknya pesanan yang dipilih

oleh pelanggan. Berikut ini source code untuk menampilkan input

pesanan.

void TampilanPesan(int indeks){

String isine;

String[] pecah;

isine = tempFood[indeks];

lokir(isine);

pecah = mindah;

buffFood= mindah;

StringItem as = new StringItem(null,

pecah[1] + " - " + pecah[2]);

inputPesanan = new Form("Masukkan Pesanan");

inputPesanan.append(as);

txtJmlh = new TextField("Jumlah : ", "", 3,

TextField.NUMERIC);

inputPesanan.append(txtJmlh);

inputPesanan.addCommand(GET_PESAN_CMD);

inputPesanan.addCommand(BACK_MAKANAN_CMD);

inputPesanan.setCommandListener(this);

Display.getDisplay(parent).setCurrent(inputPesanan)

;

}

Gambar 3.33 Tampilan input jumlah

Page 97: Aplikasi Mobile Pemesanan Makanan via Bluetooth

82

3.3.3.1.7 Proses Komplain

Proses ini digunakan untuk melakukan komplain kepada

foodcourt, data komplain dikirimkan dari client ke server. Client

akan mengirimkan data kondisi INPUT_KOMPLAIN + id pelanggan

+ isi komplain. Kemudia reply message dari server berisi Id

Komplain yang telah di masukkan ke dalam database.

Pilih Komplain

tampilan menu layanan

kirim data : INPUT_KOMPLAIN; idPelanggan;isiKomplain

tampilan komplain telah diterima

Cek Data dari client

proses input client

kirim data id komplain

Serv erClient

Gambar 3.34 Activity diagram proses komplain

Source code yang digunakan untuk membuat tampilan input

komplain adalah sebagai berikut. Dan tampilannya dapat dilihat pada

gambar 3.35

inputKomplain = new Form("Masukkan Komplain");

txtKomplain = new

TextField("Isi Komplain : ", "", 150,

TextField.ANY);

inputKomplain.append(txtKomplain);

inputKomplain.addCommand(SEND_KOMPLAIN_CMD);

inputKomplain.addCommand(BACK_MENU_CMD);

Page 98: Aplikasi Mobile Pemesanan Makanan via Bluetooth

83

inputKomplain.setCommandListener(this)

Display.getDisplay(parent).setCurrent(inputKomplain

);

Gambar 3.35 Tampilan input komplain

3.3.3.2 APLIKASI CLIENT PADA RESTORAN

Gambar 3.36 Sistem akses menu makanan oleh restoran

Dalam sistem aplikasi menu pemesanan makanan, pada

masing-masing restoran terdapat sebuah komputer yang melakukan

akses kepada server. Proses yang dilakukan pertama kali adalah

melakukan login, setelah itu restoran akan melakukan request data

pesanan kepada server.

Page 99: Aplikasi Mobile Pemesanan Makanan via Bluetooth

84

3.3.3.2.1 User Interface web

Web untuk aplikasi foodcourt client restoran di buat dengan

menggunakan bahasa pemrograman PHP. Menu-menu yang ada pada

web terdiri dari beberapa macam yang berfungsi untuk melakukan

proses transaksi dan administrasi. Proses pada aplikasi web terbagi

menjadi dua bagian yaitu untuk menangani pembayaran (kasir) dan

menangani pesanan (foodcourt). Untuk lebih jelasnya dapat dilihat

pada gambar 3.37 yang merupakan bagan dari menu-menu yang

tersedia pada web.

Gambar 3.37 Menu atau link yang tersedia pada

web foodcourt client restoran

3.3.3.2.2 Login

Login digunakan untuk keamanan dan juga membedakan

hak akses dari masing-masing user. Sehingga tampilan yang di

tampilkan pada proses setelah login dapat diatur sesuai dengan hak

akses-nya. Login berfungsi untuk membagi username dan password

Page 100: Aplikasi Mobile Pemesanan Makanan via Bluetooth

85

sesuai dengan Nama Foodcourt atau sebagai Kasir. Source code

untuk proses login adalah sebagai berikut

<?

include "conn.php";

$Pass=$_POST[passw];

$sql=mysql_query("select * from tb_pegawai where

ID_Foodcourt='$_POST[resid]' AND

username='$_POST[uname]' and password='$Pass' AND

status_aktif='1'");

$r=mysql_fetch_array($sql);

if($r[username]==$_POST[uname] &&

$r[password]==$Pass &&

$r[ID_Foodcourt]==$_POST[resid]){

session_start();

session_register('usernames');

session_register('namas');

session_register('passwords');

session_register('idfoodcourt');

$_SESSION[usernames]=$r[username];

$_SESSION[namas]=$r[Nama];

$_SESSION[passwords]=$r[password];

$_SESSION[idfoodcourt]=$r[ID_Foodcourt];

if ($r[ID_Foodcourt] == 0){

header("location:sys_admin/syskasir.php");

} else {

header("location:showpesanan.php"); }

} else {

?>

<center>Login Gagal<br><meta http-equiv="refresh"

content="2;url="index.php""></center>

<? } ?>

Pada gambar 3.38 merupakan tampilan dari form login untuk

aplikasi web. Dari tampilan tersebut, terlihat bahwa terdapat combo

box untuk melakukan pemilihan nama restoran dan terdapat text box

untuk memasukkan username dan password.

Page 101: Aplikasi Mobile Pemesanan Makanan via Bluetooth

86

Gambar 3.38 Login web foodcourt client restoran

3.3.3.2.3 Kasir

Kasir menangani proses pembayaran. Setelah pelanggan

melakukan pemesanan dan mendapatkan ID Pesan, maka selanjutnya

adalah melakukan pembayaran ke kasir. Di kasir akan tampak daftar

para pelanggan yang telah melakukan pesanan dan terlihat mana saja

yang sudah membayar dan belum membayar. Jika pelanggan belum

membayar maka yang tampil pada kolom status adalah warna merah

dengan huruf ”B” dan jika pelanggan sudah membayar maka yang

tampil pada kolom status adalah huruf ”L”. Seperti pada gambar

3.39, maka pada kasir juga memiliki menu untuk melihat,

menambah, dan melakukan edit terhadap data pelanggan, restoran

dan user.

Page 102: Aplikasi Mobile Pemesanan Makanan via Bluetooth

87

Start

Buka aplikasi restoran

Login

Login Kasir OK?

Start Monitoring pesanan

Ada Pesanan Baru?

Pembayaran Lunas?

Set Lunas

End

Y

Y

Y

N

N

N

Tampil Id Pesan, Nomer

Meja, Total Bayar

Pembayaran

Cetak Bon

Gambar 3.39 Flowchart proses pembayaran di kasir

Sebagian source code untuk membuat proses kasir adalah

sebagai berikut.

<?

$sql="select a.*,b.Nama_Pelanggan from tb_pesan

a,tb_pelanggan b where

a.ID_Pelanggan=b.ID_Pelanggan order by a.ID_Pesan

DESC";

$aio=mysql_query($sql);

Page 103: Aplikasi Mobile Pemesanan Makanan via Bluetooth

88

echo "<br><table border=1 align='center'

bordercolor='#FFFFFF' style='border-collapse:

collapse'>";

echo "<tr bgcolor='CEBA94'>

<td>No</td><td>Tanggal</td><td>ID

Pesan</td><td>Meja</td>

<td>Pelanggan</td><td>Total Bayar</td><td>MAC

Address</td>

<td>Status</td><td>Detil</td></tr>";

$i=1;

while ($r=mysql_fetch_array($aio))

{

if ($i%2 == 1){ $warna='#E6E6E6'; }

else { $warna='#CFD9FF'; }

echo "<td bgcolor='$warna'>".$i."</td>";

echo "<td

bgcolor='$warna'>".$r[Tanggal]."</td>";

echo "<td

bgcolor='$warna'>".$r[ID_Pesan]."</td>";

echo "<td bgcolor='$warna'

align='center'>".$r[No_Meja]."</td>";

echo "<td

bgcolor='$warna'>".$r[Nama_Pelanggan]."</td>";

echo "<td

bgcolor='$warna'>".$r[Total_Bayar]."</td>";

echo "<td

bgcolor='$warna'>".$r[Pengenal]."</td>";

if ($r[Status] == 1){

$tulisanstatus = "L";

echo "<td bgcolor='$warna'><img

src='../images/dolarkuning.gif'

title='Lunas'>".$tulisanstatus."</td>";

} else {

$tulisanstatus = "B";

echo "<td bgcolor='#FAA18C'><img

src='../images/dolarmerah.gif' title='Belum

Bayar'><a

href='syskasir.php?cmd=stts&&z=$r[Status]&&idne=$r[

ID_Pesan]'>".$tulisanstatus."</a></td>";

}

echo "<td bgcolor='$warna'> <a

href='syscetak.php?idne=$r[ID_Pesan]'

Page 104: Aplikasi Mobile Pemesanan Makanan via Bluetooth

89

target='_blank'> <img

src='../images/printButton.png' border='0'

title='Print Version'></a> <a

href='sysdetil.php?idne=$r[ID_Pesan]'>Detil</a></td

>";

echo '</tr>';

$i++; }

?>

Hasil implementasi dari proses-proses pembayaran yang terjadi di

kasir tampak seperti pada tampilan gambar 3.40 berikut ini.

Gambar 3.40 Tampilan kasir

3.3.2.4 Foodcourt

Aplikasi restoran akan menampilkan daftar pesanan

pelanggan. Jika pelanggan melakukan pemesanan ke restoran 1,

maka data daftar pesanan itu akan masuk ke dalam waiting list

restoran 1, kemudian jika pesanan pelanggan sudah dilayani maka

pesanan itu akan di set statusnya menjadi sudah dilayani dan akan

hilang dari daftar waiting list restoran 1. Proses yang terjadi pada

Page 105: Aplikasi Mobile Pemesanan Makanan via Bluetooth

90

aplikasi restoran dapat digambarkan dalam flowchart gambar 3.41

berikut ini:

Start

Buka aplikasi restoran

Login

Login OK?

Start Monitoring pesanan

Ada Pesanan?

Tampilkan daftar pesanan

Pesanan selesai?

Set sudah dilayani

End

Y

Y

Y

N

N

N

Gambar 3.41 Flowchart aplikasi foodcourt client restoran

Berikut ini merupakan source code yang menangani proses pada

foodcourt:

<?

$sss="SELECT tb_foodcourt.Nama_Foodcourt,

tb_menu.Nama_Menu,

tb_menu.Harga,tb_detil_pesan.ID_Detil_Pesanan,

tb_detil_pesan.Jumlah, tb_detil_pesan.Total_Harga,

tb_detil_pesan.Status AS sttsdetil, tb_pesan.Status

as sttspesan, tb_pesan.No_Meja,

tb_detil_pesan.Tanggal_Jam_Pesan,

Page 106: Aplikasi Mobile Pemesanan Makanan via Bluetooth

91

tb_detil_pesan.Tanggal_Jam_Selesai,

tb_pelanggan.Nama_Pelanggan FROM tb_foodcourt

Inner Join tb_menu ON tb_foodcourt.ID_Foodcourt =

tb_menu.ID_Foodcourt

Inner Join tb_detil_pesan ON tb_menu.ID_Menu =

tb_detil_pesan.ID_Menu

Inner Join tb_pesan ON tb_pesan.ID_Pesan =

tb_detil_pesan.ID_Pesan

Inner Join tb_pelanggan ON

tb_pelanggan.ID_Pelanggan = tb_pesan.ID_Pelanggan

WHERE tb_foodcourt.ID_Foodcourt =

'$_SESSION[idfoodcourt]' AND

tb_detil_pesan.Tanggal_Jam_Pesan >= curdate() ORDER

BY tb_detil_pesan.Tanggal_Jam_Pesan DESC";

$aio=mysql_query($sss);

echo "<center><div color='white'>Daftar

Pesanan</div></center>";

echo "<table border=1 align='center'

bordercolor='#FFFFFF' style='border-collapse:

collapse'>";

echo "<tr bgcolor='CEDB9C' align='center'>

<td>No</td><td>Pelanggan</td><td>No Meja</td>

<td>Tanggal Jam Pesan</td><td>Tanggal Jam

Selesai</td>

<td>Nama Menu</td><td>Harga</td><td>Jumlah</td>

<td>Total Harga</td><td>Status</td> </tr>";

$i=1;

while ($r=mysql_fetch_array($aio))

{

if

($nomermeja==$r[No_Meja]){$warna='#E6E6E6'; }

else{ $warna='#CFD9FF'; }

if ($nomermeja==$r[No_Meja]){

echo "<tr>";

echo "<td bgcolor='$warna'>&nbsp;</td>";

echo "<td bgcolor='$warna'>&nbsp;</td>";

echo "<td bgcolor='$warna'>&nbsp;</td>";

echo "<td bgcolor='$warna'>&nbsp;</td>";

echo "<td bgcolor='$warna'>&nbsp;</td>";

} else {

echo "<tr>";

Page 107: Aplikasi Mobile Pemesanan Makanan via Bluetooth

92

$nomermeja=$r[No_Meja];

echo "<td bgcolor='$warna'>".$i."</td>";

echo "<td

bgcolor='$warna'>".$r[Nama_Pelanggan]."</td>";

echo "<td bgcolor='$warna'>".$r[No_Meja]."</td>";

echo "<td

bgcolor='$warna'>".$r[Tanggal_Jam_Pesan]."</td>";

echo "<td

bgcolor='$warna'>".$r[Tanggal_Jam_Selesai]."</td>";

$i++;

$nomermeja=$r[No_Meja];

}

echo "<td bgcolor='$warna'>".$r[Nama_Menu]."</td>";

echo "<td bgcolor='$warna'>".$r[Harga]."</td>";

echo "<td bgcolor='$warna'>".$r[Jumlah]."</td>";

echo "<td

bgcolor='$warna'>".$r[Total_Harga]."</td>";

if ($r[sttspesan] == 0){

$bss=" <img src='images/dolarmerah.gif'

title='Belum Bayar'>";}

else{

$bss=" <img src='images/dolarkuning.gif'

title='Lunas'>";}

if ($r[sttsdetil] == 1){

$tulisanstatus = "OK";

echo "<td

bgcolor='$warna'>$bss".$tulisanstatus."</td>";

} else {

$tulisanstatus = "NOT OK";

echo "<td bgcolor='#CC3333'>$bss<a

href='gantistatus.php?idne=$r[ID_Detil_Pesanan]'>".

$tulisanstatus."</a></td>";s

}

echo '</tr>'; }}

?>

Page 108: Aplikasi Mobile Pemesanan Makanan via Bluetooth

93

Gambar 3.42 Tampilan daftar pesanan foodcourt

3.3.2.5 Komplain

Aplikasi web juga menampilkan daftar komplain yang

dikirimkan oleh pelanggan.

<?

$sql="select * from tb_komplain a,tb_pelanggan b

WHERE a.ID_Pelanggan=b.ID_Pelanggan limit 0,10";

$aio=mysql_query($sql);

echo "<table border=1 align='center'

bordercolor='#FFFFFF' style='border-collapse:

collapse'>";

echo "<tr><td colspan='5'><div id='menu3'>";

echo "<tr bgcolor='CEBA94'>

<td>No</td>

<td>Tgl Komplain</td>

<td>Pelanggan</td>

<td>Isi Komplain</td>

<td>Status</td>

</tr>";

$i=1;

while ($r=mysql_fetch_array($aio))

{

Page 109: Aplikasi Mobile Pemesanan Makanan via Bluetooth

94

if ($i%2 == 1){

$warna='#E6E6E6'; }

else{

$warna='#CFD9FF';

}

echo "<td bgcolor='$warna'>".$i."</td>";

//echo "<td

bgcolor='$warna'>".$r[Tanggal_Komplain]."</td>";

$tgl_b=substr("$r[Tanggal_Komplain]",8,2);

$bln_b=substr("$r[Tanggal_Komplain]",5,2);

$thn_b=substr("$r[Tanggal_Komplain]",0,4);

$jame=substr("$r[Tanggal_Komplain]",10,9);

echo "<td bgcolor='$warna'>$tgl_b-$bln_b-

$thn_b $jame</td>";

echo "<td

bgcolor='$warna'>".$r[Nama_Pelanggan]."</td>";

echo "<td

bgcolor='$warna'>".$r[Isi_Komplain]."</td>";

}

...

Gambar 3.43 Tampilan daftar komplain

Page 110: Aplikasi Mobile Pemesanan Makanan via Bluetooth

95

BAB 4

UJICOBA DAN ANALISA

Aplikasi untuk sistem pemesanan makanan pada foodcourt

dengan memanfaatkan bluetooth pada telepon selular terdiri atas

aplikasi pada server (komputer), aplikasi MIDlet pada client

pelanggan (telepon selular) dan aplikasi Web PHP pada client

restoran. Oleh karena itu pengujian akan dilakukan pada ketiga

aplikasi pada saat pengolahan data, modifikasi data, dan proses

komunikasi client-server via bluetooth.

4.1 Aplikasi Server (desktop)

4.1.1 Tampilan Server

Gambar 4.1 Tampilan Server

Pada gambar 4.1. dapat dilihat bahwa layanan yang tersedia

di server terdiri dari File, Koneksi, Foodcourt dan About dimana

pada bagian File berisi sub menu exit untuk keluar aplikasi, Koneksi

berisikan jenis koneksi yang akan dipilih, dalam kasus ini Bluetooth,

Foodcourt berisikan sub menu Add Foodcourt untuk menambahkan

restoran baru. Sedangkan pada bagian Help, berisikan sub menu

About dan sub menu info hanya berisikan mengenai data dari

pembuat program ini.

Page 111: Aplikasi Mobile Pemesanan Makanan via Bluetooth

96

4.1.2 Tampilan Koneksi

Pada gambar 4.2. merupakan tampilan yang akan muncul

ketika dipilih Bluetooth pada Connection. Dan ketika menekan

mulai, maka server akan secara otomatis menunggu apakah ada

client yang mencoba untuk koneksi dengan server dan menggunakan

layanan yang ditawarkan.

Gambar 4.2 Tampilan koneksi Bluetooth

4.1.3 Tampilan Add Foodcourt

Aplikasi server memiliki fasilitas untuk mendaftarkan nama

foodcourt yang baru. Tampilan form pada gambar 4.3 ini digunakan

untuk melakukan input data terhadap foodcourt yang baru.

Page 112: Aplikasi Mobile Pemesanan Makanan via Bluetooth

97

Gambar 4.3 Tampilan sub menu add foodcourt

4.2 Aplikasi Client Pelanggan (mobile)

Tampilan yang ada tentunya dipengaruhi oleh jenis dari mobile

device yang digunakan. Mobile device yang dapat menjalankan

layanan ini adalah yang merupakan MIDP 2.0. Namun sebelumnya

layanan ini harus terlebih dahulu di install di mobile device yang ada.

Gambar 4.4 Tampilan shortcut client dan tampilan awal

Gambar 4.4 merupakan tampilan saat installasi dan tampilan

awal dari layanan Foodcout Client pada mobile device. Pada gambar

Page 113: Aplikasi Mobile Pemesanan Makanan via Bluetooth

98

4.4 belum terjadi proses koneksi dan pengiriman data baik dari

server maupun dari client.

4.3 Aplikasi Client Restoran dan Kasir (web)

4.3.1 Tampilan Login

Tampilan yang muncul saat pertama kali melakukan akses ke

aplikasi web adalah tampilan login. Sebelum melakukan proses-

proses yang lain, yang harus dilakukan terlebih dulu adalah proses

login.

Gambar 4.5 Form login aplikasi web foodcourt client

4.3.2 Tampilan Web Foodcourt Restoran

Jika user melakukan login ke sistem foodcourt restoran,

maka yang akan tampil adalah tampilan daftar pesanan yang harus

dilayani oleh restoran, dan menu-menu yang tersedia adalah : Daftar

Pesanan, Daftar Menu, History Daftar Pesanan. Daftar Pesanan berisi

pesanan yang terjadi pada hari itu.

Page 114: Aplikasi Mobile Pemesanan Makanan via Bluetooth

99

Gambar 4.6 Tampilan daftar pesanan

Pada Daftar Menu berisi nama-nama menu yang disediakan

oleh restoran, disini user bisa melakukan perubahan harga,

menambah menu dan melakukan aktifasi maupun deaktifasi dari

menu makanan atau minuman yang disediakan oleh restoran.

Gambar 4.7 Tampilan daftar menu

History pesanan berisi daftar pesanan yang telah lalu, jika

pada Daftar Pesanan hanya berisi pesanan pada hari ini. Maka pada

History Daftar Pesanan berisi seluruh data pesanan yang harus

dilayani oleh restoran.

Page 115: Aplikasi Mobile Pemesanan Makanan via Bluetooth

100

Gambar 4.8 Tampilan history daftar pesanan

4.3.3 Tampilan Web Foodcourt Kasir

Jika user melakukan login ke sistem foodcourt kasir, maka

yang akan tampil adalah tampilan daftar pembayaran yang harus

dilayani oleh kasir, dan menu-menu yang tersedia adalah : Kasir,

Daftar Pelanggan, Daftar Restoran, Daftar User.

Menu kasir berisi pesanan yang harus melakukan pembayaran yang

terjadi pada hari itu. Gambar dolar ($) berwarna merah dengan huruf

“B” pada kolom status menunjukkan bahwa pelanggan belum

melakukan pembayaran. Sedangkan gambar dolar ($) dengan warna

kuning dengan huruf “L” menunjukkan bahwa pelanggan telah

melakukan pembayaran dan lunas.

Gambar 4.9 Tampilan kasir

Page 116: Aplikasi Mobile Pemesanan Makanan via Bluetooth

101

Pada Daftar Pelanggan berisi nama-nama pelanggan yang

terdaftar dalam sistem pemesanan bluetooth. Di dalam menu daftar

pelanggan, user bisa melakukan penambahan pelanggan baru. Proses

aktifasi dan juga deaktifasi pelanggan juga bisa dilakukan di sini.

Sehingga pelanggan yang statusnya non aktif tidak bisa melakukan

pemesanan.

Gambar 4.10 Tampilan daftar pelanggan

Daftar Restoran berisi daftar restoran yang ada di dalam

foodcourt. Di sini user bisa melakukan aktifasi dan deaktifasi

restoran. User juga dapat melakukan penambahan restoran baru.

Gambar 4.11 Tampilan daftar restoran

Daftar user berisi daftar nama-nama user atau pegawai yang

berhak melakukan akses terhadap web foodcourt.

Page 117: Aplikasi Mobile Pemesanan Makanan via Bluetooth

102

Gambar 4.12 Tampilan daftar user

4.4 Proses Komunikasi Client Server

Pada pengujian komunikasi client-server terdiri atas proses

Bluetooth Discovery dan proses-proses yang berkaitan dengan

proses transaksi untuk pemesanan makanan. Ketika ingin

memanfaatkan layanan yang ada, maka perlu melakukan proses

koneksi dengan server. Dimana client akan berusaha mencari apakah

ada server yang ada di sekitarnya. Proses ini terus berjalan sampai

client terhubung dengan server Berikut ini adalah diagram blok

proses komunikasi client server.

Gambar 4.13 Diagram komunikasi client server

Page 118: Aplikasi Mobile Pemesanan Makanan via Bluetooth

103

4.4.1 Proses Discovery Bluetooth

Dalam membangun komunikasi client-server, client akan

melakukan device discovery dan service discovery, sedangkan pada

server akan menyediakan service untuk koneksi dengan client.

Server akan menunggu koneksi dari client, apabila client telah

menemukan bluetooth device dan service maka koneksi client-server

akan terbangun dan pada MIDlet client akan menampilkan form

untuk login. Proses discovery client pada server ditunjukkan pada

gambar 4.14

Gambar 4.14 Proses discovery pada server dan client

Apabila client tidak menemukan server bluetooth device,

maka layar search (proses pencarian) akan menampilkan pesan ”No

Bluetooth Service Found” yang menunjukkan bahwa server

bluetooth device tidak ditemukan. Pesan tersebut juga tampil jika

client sudah menemukan server tetapi service yang di maksudkan

tidak tersedia.

Page 119: Aplikasi Mobile Pemesanan Makanan via Bluetooth

104

Gambar 4.15 Proses server atau service tidak ditemukan

4.4.2 Proses Login

Pada proses login pelanggan akan mengisi form login untuk

selanjutnya MIDlet client akan mengirimkan ke server. Jika data

pada form login tidak di isi secara lengkap atau ada salah satu data

yang kosong maka akan muncul alert bahwa Login tidak lengkap

sehingga data tidak bisa dikirim ke server.

Gambar 4.16 Login tidak lengkap

Apabila ada salah satu data login (username, dan password)

yang dikirimkan oleh client salah pada saat validasi login, maka

server akan mengirimkan pesan bahwa login invalid. Sehingga

aplikasi MIDlet client akan menampilkan alert bahwa username atau

password salah.

Page 120: Aplikasi Mobile Pemesanan Makanan via Bluetooth

105

Gambar 4.17 Login yang dilakukan client invalid

Apabilia data login yang dikirimkan oleh client valid, maka

server akan mengirimkan data bahwa login valid dan kemudian

client akan menampilkan pada layar sebuah MENU LAYANAN

yang dapat dilihat pada gambar 4.18.

Gambar 4.18 Proses login yang valid pada client dan server

Page 121: Aplikasi Mobile Pemesanan Makanan via Bluetooth

106

4.4.3 Proses Daftar Restoran

Menu layanan yang memiliki beberapa macam menu. Saat

pelanggan memilih menu ”Pilih Restoran dan Menu” maka client

akan mengirimkan data permintaan DAFTAR_FOODCOURT ke

server. Kemudian server akan mengirimkan data pada client yang

berupa data nama-nama restoran yang aktif dan MIDlet client akan

menampilkan daftar restoran tersebut pada layar daftar restoran. Dari

sini pelanggan akan memilih nama restoran untuk melihat menu

makanan atau minuman yang tersedia.

Gambar 4.19 Proses Daftar Restoran

4.4.4 Proses Daftar Menu

Setelah daftar restoran ditampilkan, selanjutnya pelanggan

memilih salah satu nama restoran yang tersedia untuk melihat menu

makanan atau minuman yang bisa di pesan. Proses yang terjadi

adalah client mengirimkan permintaan DAFTAR_MENU dari

restoran yang dipilih, kemudian server akan membalas dengan

mengirimkan data daftar makanan atau minuman sesuai dengan

permintaan client.

Page 122: Aplikasi Mobile Pemesanan Makanan via Bluetooth

107

Gambar 4.20 Proses daftar makanan atau minuman

4.4.5 Proses Masukkan Jumlah Pesanan

Setelah memilih menu, selanjutnya adalah memasukkan

jumlah pesanan. Jumlah pesanan harus dimasukkan dengan benar .

Jika data jumlah pesanan yang di inputkan salah maka akan tampil

alert seperti pada gambar 4.21

Gambar 4.21 Proses memasukkan jumlah pesanan salah

Page 123: Aplikasi Mobile Pemesanan Makanan via Bluetooth

108

Jika jumlah pesanan dimasukkan dengan benar, maka akan muncul

info yang memberitahukan bahwa pesanan tersebut sudah

dimasukkan dalam daftar pesanan, seperti terlihat pada gambar 4.22

berikut ini.

Gambar 4.22 Proses pesanan telah ditambahkan

4.4.6 Proses Menu Lihat Pesanan

Pada menu lihat pesanan akan ditampilkan nama-nama

makanan yang telah di pesan dan di kelompokkan berdasarkan nama

foodcourt. Selain itu juga terdapat jumlah total yang harus

dibayarkan.

Gambar 4.23 Proses lihat pesanan

Page 124: Aplikasi Mobile Pemesanan Makanan via Bluetooth

109

Jika pemilihan menu makanan belum dilakukan maka yang muncul

adalah tampilan kosong berupa tulisan bahwa pesanan belum

dilakukan.

Gambar 4.24 Proses lihat pesanan kosong

4.4.7 Proses Pengiriman Transaksi Pesanan ke Server

Jika pesanan yang dilakukan pelanggan sudah selesai,

kemudian pelanggan melihat isi pesanan yang telah dilakukannya di

menu Lihat Pesanan. Maka yang dilakukan selanjutnya adalah

mengirimkan pesanan ke server. Sebelum pengiriman transaksi

pesanan dilakukan, pelanggan akan dimintai nomer meja terlebih

dulu seperti gambar 4.25 berikut ini.

Gambar 4.25 Proses input nomer meja

Page 125: Aplikasi Mobile Pemesanan Makanan via Bluetooth

110

Setelah nomer meja dimasukkan maka pesanan akan di

kirimkan ke server. Data akan dimasukkan ke dalam database,

kemudian diakses oleh kasir dan masing-masing restoran.

Gambar 4.26 Proses pengiriman pesanan

Setelah proses input pesanan selesai, maka server akan

mengirimkan data berupa ID Pesanan, yang kemudian client akan

manampilkan konfirmasi yang menunjukkan bahwa pesanan telah

diterima dan segera di layani. Pesanan yang telah dikirimkan ke

server, akan di tampilkan di kasir. Yang ditampilkan adalah tanggal,

id Pesan, nomer meja, nama pelanggan, total bayar, MAC Address

dan status pembayaran. Jika pembayaran belum dilakukan, maka

yang keluar adalaha gambar dolar($) berwarna merah dengan huruf

”B”, seperti pada gambar 4.27.

Page 126: Aplikasi Mobile Pemesanan Makanan via Bluetooth

111

Gambar 4.27 Tampilan kasir, pelanggan belum membayar

Pelanggan yang telah memesan akan, melakukan

pembayaran ke kasir, kemudian jika pelanggan telah membayar

maka pada kolom status, yang muncul adalah gambar dolar($)

berwarna kuning dengan huruf ”L”, seperti pada gambar 4.28.

Gambar 4.28 Tampilan kasir, pelanggan sudah membayar

Page 127: Aplikasi Mobile Pemesanan Makanan via Bluetooth

112

Selain tampil pada kasir, pesanan yang baru saja dilakukan oleh

pelanggan juga tampil di restoran. Pesanan yang belum dilayani oleh

restoran statusnya akan berwarna merah. Namun Setelah dilayani

maka statusnya akan berubah menjadi OK.

Gambar 4.29 Tampilan Foodcourt belum bayar belum dilayani

Gambar 4.30 Tampilan Foodcourt sudah bayar belum dilayani

Page 128: Aplikasi Mobile Pemesanan Makanan via Bluetooth

113

Gambar 4.31 Tampilan Foodcourt sudah bayar sudah dilayani

4.4.8 Proses History Pesanan

History pesanan merupakan menu yang digunakan untuk

melihat pesanan yang pernah dilakukan oleh pelanggan. Namun

history yang dapat ditampilkan hanya lima buah history terbaru.

Gambar 4.32 Proses history pesanan

Page 129: Aplikasi Mobile Pemesanan Makanan via Bluetooth

114

4.4.9 Proses Detil History

Detil history digunakan untuk melihat isi pesanan yang

pernah dilakukan sesuai dengan ID pesanannya. Server akan

melakukan query sesuai dengan ID pesanan yang di kirimkan oleh

client. Yang ditampilkan pada detil history adalah ID pesanan, total

pembelian, jumlah pembelian, dan nama-nama menu yang dipesan.

Tampilan detil history dikelompokkan berdasarkan nama restoran.

Gambar 4.33 Tampilan Detil History server-client

4.4.10 Proses Komplain

Proses komplain digunakan oleh client untuk melakukan

komplain terhadap foodcourt. Komplain yang diterima server akan

ditampilkan di halaman web. Halaman web akan menampilkan

banyaknya komplain dengan warna merah. Dan jika link komplain di

klik maka akan muncul daftar komplain.

Page 130: Aplikasi Mobile Pemesanan Makanan via Bluetooth

115

Gambar 4.34 Tampilan input komplain

Komplain yang telah ditangani diberi status ”OK” sedangkan

komplain yang belum ditangani akan memiliki status ”NOK”.

Komplain dapat dilihat oleh kasir maupun oleh restoran.

Gambar 4.35 Tampilan halaman komplain

Page 131: Aplikasi Mobile Pemesanan Makanan via Bluetooth

116

4.5 Hasil percobaan Multi User

Proses pengujian pada koneksi Multi client ke server pada saat

yang bersamaan, dengan USB bluetooth dongle dihubungkan ke PC

(Personal Computer), jarak client ke server adalah maksimal sampai

10 meter dan tanpa penghalang. Untuk melakukan pengujian ini di

gunakan beberapa jenis handphone yaitu: Nokia E50, Nokia 6120,

dan Sony Ericsson K530i.

Tabel 4.1 Pengujian waktu pencarian perangkat

menggunakan HP Sony Ericsson K530i

Proses Pencarian Perangkat (detik) Percobaan

1m 2m 5m 7m 10m

1 14,7 14,1 14,6 14 Error

2 13,9 14 13,9 error 17,4

3 13,8 13,9 13,9 26,5 14

4 13,9 13,9 13,9 13,9 21,7

5 13,9 13,9 13,9 14 13,6

Rata-rata 14,04 13,96 14,04 17,1 16,675

Tabel 4.2 Pengujian waktu pencarian perangkat

menggunakan HP Nokia E50

Proses Pencarian Perangkat (detik) Percobaan

1m 2m 5m 7m 10m

1 16,2 15 14,7 14,4 15,6

2 14,6 14,5 14,7 error 14,5

3 14,3 14,3 14,7 15,2 14,7

4 14,3 14,6 14,2 14,6 14,9

5 14,2 14,6 14,6 14,6 14,5

Rata-rata 14,72 14,6 14,58 14,7 14,84

Dari data tabel 4.1 dan tabel 4.2 terlihat bahwa proses pencarian

perangkat tergantung kepada merk HP yang digunakan. Berdasakan

Page 132: Aplikasi Mobile Pemesanan Makanan via Bluetooth

117

rata-rata waktu pencarian perangkat, penggunaan HP Sony Ericsson

lebih cepat namun tidak terlalu stabil, sedangkan Nokia lebih stabil

walaupun agak lambat 0,475 detik.

Tabel 4.3 Pengujian transfer data client server

Transfer Data (detik) Percobaan

1m 2m 5m 7m 10m

1 2,4 3 3 3,1 3,2

2 2,8 3,4 3,4 3,3 3,4

3 3,5 3,2 3,3 3,4 3,4

4 3 3,1 3,4 3,2 3,2

5 3,1 3,1 3,1 3,1 3,3

Rata-rata 2,96 3,16 3,24 3,22 3,3

Tabel 4.4 Pengujian tiga client secara bersamaan dengan jarak 2

meter

Pencarian Perangkat Transfer Data Percobaan

E50 K530i 6120 E50 K530i 6120

1 18,2 14,2 14 2,8 2,5 3

2 15 14,1 15,5 3,4 2,4 3,4

3 14,8 14 14,4 3,3 2,6 3,2

4 14,8 13,9 14,3 3,4 2,4 3,1

5 14,8 14 14,3 3,4 2,4 3,1

Rata-rata 15,52 14,04 14,5 3,26 2,46 3,16

Jika dilihat dari hasil pengujian yang ditunjukkan pada tabel 4.3 dan

4.4, koneksi satu client dengan server dibandingkan koneksi antara

tiga client dengan server menunjukkan perbedaan waktu yang tidak

terlalu mencolok, hal ini dikarenakan penggunaan koneksi

RFCOMM untuk membangun komunikasi client-server via

bluetooth, dimana RFCOMM merupakan komunikasi point-to-point

yang dapat menangani sampai tujuh client secara bersamaan tetapi

koneksinya dilakukan satu-persatu seperti antrian, sehingga waktu

Page 133: Aplikasi Mobile Pemesanan Makanan via Bluetooth

118

yang diperlukan untuk antara client satu dengan yang lain adalah

berbeda walaupun pengiriman data dari client ke server adalah

secara bersamaan. Layanan bluetooth ini mempunyai karakteristik

dimana 1 bluetooth dongle hanya dapat diakses oleh 7 user.

Mengingat bahwa foodcourt memiliki jumlah pengunjung yang

banyak, maka salah satu cara agar semua pengunjung dapat

menikmati layanan ini adalah disiapkan server lebih dari 1. Hal ini

dikarenakan 1 server hanya dapat memiliki 1 bluetooth dongle.

Pembatasan jumlah bluetooth dongle pada server bertujuan agar

tidak terjadi bentrok pada saat pengiriman dan penerimaan data dari

client yang berbeda

Page 134: Aplikasi Mobile Pemesanan Makanan via Bluetooth

119

BAB V

PENUTUP

5.1 KESIMPULAN

Berdasarkan hasil ujicoba perangkat lunak dalam pengerjaan

tugas akhir ini, dapat diambil beberapa kesimpulan yaitu:

1. Untuk membangun koneksi antara komputer dan telepon

seluler menggunakan bluetooth dapat digunakan bahasa

pemrograman JAVA. Perangkat lunak pada telepon seluler

dibuat menggunakan J2ME, aplikasi ini akan dipasang di

telepon selular. Syarat dari telepon seluler yang akan di

gunakan adalah harus mendukung MIDP2.0 dan bluetooth

API (JSR-82). Sedangkan untuk membuat perangkat lunak

pada komputer diperlukan Java Bluetooth Stack dengan

menggunakan Microsoft Bluetooth Stack API dan BlueCove.

Microsoft Bluetooth Stack API adalah sebuah socket-style

atau lebih sering disebut dengan WinSock. Stack ini adalah

sebuah aplikasi untuk mengoperasikan generic USB

Bluetooth Dongle.

2. Sistem pemesanan makanan dan minuman dengan

menggunakan bluetooth ini terdiri dari tiga buah aplikasi,

yaitu server (J2SE), client pelanggan (J2ME), dan client

restoran(Web). Yang memiliki fitur untuk melihat daftar

restoran, melihat daftar menu dan harga, melakukan

pemesanan, melihat pesanan, melayani pembayaran, serta

melihat pesanan yang harus dilayani.

3. Transaksi pemesanan makanan dan minuman dapat berjalan

dengan baik, dimana menu makanan dan minuman masing-

masing restoran yang ada di foodcourt dapat diakses oleh

pelanggan. Transaksi pembayaran dapat di layani oleh kasir

dan pesanan dapat dipantau dan dilayani dengan baik oleh

restoran.

4. Layanan pengaksesan pemesanan makanan dan minuman

menggunakan Bluetooth ini, dapat diakses oleh setiap user

yang memiliki mobile device dengan kemampuan Bluetooth.

Page 135: Aplikasi Mobile Pemesanan Makanan via Bluetooth

120

Tentunya harus mendukung teknologi Java MIDP 2.0 serta

Java APIs for Bluetooth Wireless Technology (JSR)

5. Jarak rentang kerja bluetooth antara client-server sampai

sejauh 10 meter tidak menurunkan performa transfer data

untuk transaksi pemesanan.

6. Waktu yang diperlukan oleh seorang user untuk mengakses

server (melakukan request data dan menerima replay data)

dengan menggunakan koneksi RFCOMM, dipengaruhi oleh

jumlah user yang sedang mengakses server tersebut.

5.2 SARAN

Untuk perbaikan dan pengembangan aplikasi ini di masa yang

akan datang, disarankan untuk :

1. Komunikasi client-server diperlukan acknowledge untuk

mengetahui sukses tidaknya data yang dikirim oleh client

maupun server.

2. Sistem pemesanan menggunakan media bluetooth bisa di

kembangkan dengan mengganti atau menambah media

komunikasinya menggunakan protokol TCP/IP dengan

memanfaatkan WIFI atau langsung menggunakan jaringan

internet (GPRS, EDGE, 3G).

3. Penambahan Sistem Informasi Manajemen untuk foodcourt

sehingga aplikasi yang dibuat menjadi lebih sempurna.

4. Diperlukan proses enkripsi data pada request message dan

reply message yang bertujuan untuk kerahasiaan data, dan

juga diperlukan proses otentikasi yang bertujuan untuk

mengetahui keaslian data.

Page 136: Aplikasi Mobile Pemesanan Makanan via Bluetooth

121

DAFTAR PUSTAKA

[1]. Shalahuddin, M dan Rosa AS. “Pemrograman J2ME

Belajar Cepat Pemrograman Perangkat Telekomunikasi

Mobile”, Informatika, Bandung 2008.

[2]. Raharjo, Budi, Imam Heryanto dan Arif Aryono.

“Tuntunan Pemrograman JAVA Untuk Handphone”,

Informatika, Bandung 2007.

[3]. Hopkins, Bruce and Ranjith Antony. “Bluetooth for Java”,

Apress, New York 2003

[4]. Kadir, Abdul. “Dasar Pemrograman Web Dinamis

Menggunakan PHP”, Andi, Yogyakarta 2002.

[5]. Murthi, Philipus Bayu. “Sistem Keamanan Bluetooth”,

2004.

<http://www.budi.insan.co.id/courses/el7010/2004/bayu-

proposal.doc>

[6]. Wikipedia, February 2007. BLUETOOTH

<http://en.wikipedia.org/wiki/Bluetooth#Bluetooth>

[7]. Ortiz, C, and Enrique. “Using the Java APIs for Bluetooth

Wireless Technology Part 1 - API Overview”, Desember

2004,

<http://developers.sun.com/techtopics/mobility/apis/article

s/bluetoothintro/>

Page 137: Aplikasi Mobile Pemesanan Makanan via Bluetooth

122

{Halaman ini sengaja dikosongkan}

Page 138: Aplikasi Mobile Pemesanan Makanan via Bluetooth

115

BIODATA PENULIS

Miftakh Arkhan Zein Taptozani

TTL :

Lumajang, 11 April 1985.

E-mail :

[email protected]

[email protected]

Blogg :

http://z31nt.wordpress.com

http://mif2.blogspot.com

Pendidikan :

SD Negeri Klakah 01 ( 1991 - 1997)

SLTPN 1 Sukodono Lumajang (1997 - 2000)

SMK Telekomunikasi Sandhy Putra Malang (2002 - 2005)

Joint Program D4 (PENS-ITS,VEDC Malang) Jurusan Teknik

Informatika (2005 – 2009)

Selama dua tahun sebelum masuk ke SMK, penulis menjadi anak jalanan

yang kemudian bertobat dan melanjutkan sekolah. Menjelang kuliah-kuliah

akhir, penulis melakukan aktifitas kuliah sambil bekerja selama satu

setengah tahun untuk mengatasi kejenuhan kuliah. Penulis bercita-cita

menjadi pengusaha dan memiliki Yayasan sosial untuk anak-anak yatim dan

kurang mampu. Semoga Allah Al Ghoniy Al Halim memberi ridho,

kekuatan dan kemudahan. Amin