PEMBUATAN APLIKASI MOBILE PEMESANAN MAKANAN DAN ...

lecturer.eepis.its.edu

PEMBUATAN APLIKASI MOBILE PEMESANAN MAKANAN DAN ...

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

PROYEK AKHIR

JURUSAN TEKNIK INFORMATIKA

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

INSTITUT TEKNOLOGI SEPULUH NOPEMBER

SURABAYA

2009


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

PROYEK AKHIR

JURUSAN TEKNIK INFORMATIKA

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

INSTITUT TEKNOLOGI SEPULUH NOPEMBER

SURABAYA

2009


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

Tim Penguji Proyek Akhir:

Dosen Penguji I

Kholid Fathoni, S.Kom

NIP. 19801226.2008121.2.003

Dosen Penguji II

Siyamta, S.Pd, S.ST, M.T

NIP. 19740926.200212.1.002

Dosen Penguji III

Farid Zuniawan, ST

Disetujui oleh:

ii

Dosen Pembimbing:

Dosen Pembimbing I

Yuliana Setyowati, S.Kom, M.Kom

NIP. 19780706.200212.2.003

Mengetahui,

Ketua Jurusan Teknologi Informasi

Arna Fariza, S.Kom., M.Kom

NIP. 19710708.199903.2.001

Dosen Pembimbing II

Harits Ar Rosyid, S.T, M.T


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 kendalakendala

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

iii


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

iv


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.

v

Malang, Juli 2009

Penulis


UCAPAN TERIMA KASIH

Dalam kesempatan ini penulis hendak menyampaikan

penghormatan dan terima kasih yang sebesar-besarnya kepada pihakpihak

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 guruguruku

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.

vi


DAFTAR ISI

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

vii


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

viii


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

ix


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

x


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

xi


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

xii


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

xiii


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

xiv


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.

1


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.


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.

3


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.


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:

Kelas

Tabel 2.1 Kelas-kelas Bluetooth

Maksimum Power yang

Jangkauan Maksimal

diijinkan

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.

5


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.


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:

7


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


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 dipilahpilah

menjadi beberapa edisi, yaitu: The Standard Edition (Java SE),

Enterprise Edition (Java EE), Micro Edition (Java ME) dan

JavaCard API.

9


10

Java SE – Java Standard

Edition

Java EE – Java Enterprise

Edition

Tabel 2.2 Platform Java

Aplikasi Desktop

Aplikasi enterprise dengan fokus

pada pengembangan sisi web

server, termasuk servlet, JSP, EJB

dan XML

Java ME – Java Micro Edition Perangkat Mobile

JavaCard Smart Cards

Gambar 2 .3 Platform Java

2.2.1 J2SE (Java 2 Second Edition)

Java 2 Second Edition atau yang lebih dikenal dengan J2SE

adalah salah satu platform dari bahasa pemrogaman java yang

diimplementasikan untuk aplikasi desktop. J2SE terdiri dari Java

Runtime Environment (JRE) yang terdiri dari banyak library


standart. Sedangkan untuk Java Development Kit (JDK) adalah JRE

yang ditambahkan development Tools & API. Untuk membuat

aplikasi berbasis user interface, telah terdapat paket Abstract

Window Toolkit (AWT) yang bergantung dari sistem operasi yang

digunakan. User interface pada linux akan berbeda dengan user

interface pada open solaris. Untuk membangun aplikasi user

interface yang tidak bergantung pada sistem operasi yang digunakan

dapat menggunakan paket Swing. Tampilan user interface akan

selalu sama walaupun berpindah-pindah sistem operasi.

2.2.2 J2ME (Java 2 Micro Edition)

Java ME adalah satu set spesifikasi dan teknologi yang fokus

kepada perangkat mobile. Perangkat ini memiliki jumlah memori

yang terbatas, menghabiskan sedikit daya dari baterei, layar yang

kecil dan bandwith jaringan yang rendah.

Dengan perkembangan perangkat mobile dari telepon, PDA,

kotak permainan hingga peralatan-peralatan rumah, Java

menyediakan suatu lingkungan yang portable untuk mengembangkan

dan menjalankan aplikasi pada perangkat ini.

Program Java ME, seperti semua program Java adalah

diterjemahkan oleh Virtual Machine (VM). Program-program

tersebut dikompile ke dalam bytecode dan diterjemahkan oleh

Java Virtual Machine (JVM). Ini berarti bahwa program-program

tersebut tidak berhubungan langsung dengan perangkat keras. Java

ME menyediakan suatu interface yang sesuai dengan perangkat

keras. Aplikasi-aplikasi tersebut cukup dikompile sekali dan

mampu dijalankan pada mesin yang berbeda.

Inti dari Java ME terletak pada configuration dan profile-

profile. Suatu configuration menggambarkan lingkungan runtime

dasar dari suatu sistem Java ME. Ia menggambarkan core library,

virtual machine, fitur keamanan dan jaringan.

11


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.


J2ME terdiri dari dua configuration yaitu :

13

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 aplikasiaplikasi

efektif. Library ini memasukkan user interface, jaringan

dan penyimpanan API.

Profile merupakan class librari tambahan pada configuration yang

digunakan untuk pengelompokan spesifikasi tertentu (domainspesific),

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.


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


15

Memory:

o 256 kilobytes of non-volatile memory untuk

implementasi MIDP.

o 8 kilobytes of non-volatile memory for applicationcreated

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.


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


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


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

javax.obex

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


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


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.


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

21


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


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

23


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


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 preknown

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.

25


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 attributevalue

pair(attrID,attrValue).


void setDeviceServiceClasses(int classes)

Digunakan oleh aplikasi server untuk mengindikasikan bit-bit

major service class yang diaktifkan oleh DeviceClass milik

server pada saat ServiceRecord ditambahkan pada SDDB

2.3.2.7 Komunikasi Bluetooth Menggunakan RFCOMM.

Setelah device discovery dan service discovery telah komplit

dilakukan oleh client untuk mendapatkan semua informasi yang

digunakan untuk mengatur communication link pada service di

server. L2CAP link merupakan basis dari semua komunikasi melalui

bluetooth. Format dari L2CAP link yaitu :

btl2cap://hostname:[PSM | UUID];parameters

PSM (Protocol/Service Multiplexer) merupakan suatu nilai yang

sama fungsinya dengan nomer port pada jaringan IP (Internet

Protocol) dan digunakan oleh client untuk koneksi dengan server.

Serial Port Profile menyediakan RFCOMM yang merupakan RS-

232 serial emulation protocol melalui L2CAP. Format dari

RFCOMM link yaitu :

btspp://hostname:[CN | UUID];parameters

CN (Channel Number) merupakan suatu nilai yang hampir sama

dengan nomor port service pada jaringan IP, yang digunakan oleh

client untuk berkoneksi dengan server

Contoh aplikasi berikut ini menggunakan protokol serial RFCOMM

untuk berkomunikasi dengan device bluetooth. Aplikasi ini adalah

tulang punggung dari sebuah information server dan client-nya.

Server pertama kali akan mendaftarkan service-nya:

localDevice = LocalDevice.getLocalDevice();

localDevice.setDiscoverable(DiscoveryAgent.GIAC);

notifier = (StreamConnectionNotifier)

27


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 mengoverride

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 datadata

dan informasi yang terstruktur dalam suatu tabel dan relasi

sehingga memudahkan dalam pengolahan data. Database ini

digunakan khususnya untuk arus informasi atau data dalam jumlah

besar. Database dipakai untuk menyimpan data sehingga dapat

dimanipulasi dengan mudah. Database dipakai untuk aplikasi

sederhana sampai yang rumit dimana melibatkan beberapa user. Oleh

karena itu Database dibagi sesuai dengankompleksitasnya. Ada dua

model Database, yaitu:


1. Database yang berdiri sendiri (stand alone). Merupakan

database yang sangat sederhana karena disimpan dalam sistem

file lokal dan mengakses pada mesin yang sama. Database ini

hanya dipakai untuk satu aplikasi saja.

2. Database terbagi (file share). Hampir sama dengan database

stand-alone,tetapi dapat diakses oleh beberapa user. Database ini

akan mengalami masalah jika aplikasi memerlukan banyak

perhitungan dan pada saat yang bersamaan ada pengaksesan ke

dalam database.

2.4.1 Entity Relation Diagram (ERD)

Sebuah ERD mendokumentasikan data sebuah informasi dengan

cara menentukan data-data apa yang terdapat dalam setiap entity dan

bagaimana relationship (hubungan) antara sebuah entity dengan yang

lainnya. Dibawah ini akan dijelaskan beberapa hal yang dapat

digunakan dalam ERD :

29

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


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


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:

31

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


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


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

33


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

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


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:

35

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.


36

{Halaman sengaja dikosongkan}


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

37


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 restoranrestoran

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


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

39


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


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

41


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.


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

LOGIN_STATE: username, password

Menu Layanan

LOGIN

LOGIN_INVALID

Foodcourt Bluetooth

Server

} OR

loginValidasi-proses query

loginValidasi-hasil query

Gambar 3.3 Sequence proses login

Database

(mysql)

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.

43


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

DAFTAR_FOODCOURT;1;

TampilanRestoran

Foodcourt

Bluetooth Server

sqlDaftarFoodcourt : proses query

sqlDaftarFoodcourt : hasil query

Data Foodcourt aktif

Gambar 3.4 Sequence daftar foodcourt

Database

(mysql)

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.


Foodcourt

Client

DAFTAR_MENU;ID,NamaResto,;

TampilanMakanan

Foodcourt

Bluetooth Server

sqlDaftarMenu(ID) : proses query

sqlDaftarMenu : hasil query

Daftar Makanan Restoran

Gambar 3.5 Sequence daftar menu

Database

(mysql)

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

Client

INPUT_PESANAN (DataPesanan)

OrderConfirmation

Order ID, nomeja,total Bayar

Foodcourt

Bluetooth Server

sqlInputPesanan()

sqlInputDetailPesan()

Input Transaksi Sukses

Gambar 3.6 Sequence input pesanan

Database

(mysql)

45


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

SHOW_HISTORY;"idPelanggan ;

dataStringTransmit = history;

DETIL_HISTORY;idPesanan;

dataStringTransmit = detilhistory

Foodcourt Bluetooth

Server

sqlHistoryPesanan(idPelanggan)

sqlHistoryPesanan-hasil query

sqlDetilHistory(idPesanan)

sqlDetilHistory-hasil query

Gambar 3.7 Sequence history

Database

(mysql)


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

INPUT_KOMPLAIN;idPlgn;komplain

dataStringTransmit = IDkomplain

Foodcourt

Bluetooth Server

sqlInputKomplain

Input Komplain Sukses

Gambar 3.8 Sequence input komplain

Database

(mysql)

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,

47


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.


Client

Melakukan request

koneksi ke server

Mengirim Data

tampilkan

pesan

tidak

hasil login

Daftar

Restoran

daftar

menu

Kirim Pesan

Tutup koneksi

database

Tutup koneksi

bluetooth

Server

Initial Bluetooth

device

Menjalankan

service

Menunggu

koneksi client

ada client

connect?

Melakukan

koneksi bluetooth

ya

ya

daftar history ya

input komplain

ya

input pesanan ya

Menerima dan

mengolah data

Buka koneksi

database

tidak

tidak

tidak

tidak

tidak

Gambar 3.9 Activity diagram server

y a

ya

tidak

Login?

request

restoran?

request

menu?

request

history ?

input

pesanan?

input

komplain?

49


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


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

FoodCourt Desktop Server _ [ ] X

File Koneksi FoodCourt Help

Server > Create server....

Server> Menunggu koneksi client......

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.

51


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.


MIDlet Local Device Discovery

Agent

getLocalDevice()

getDisscoveryAgent()

retriveDevice()

startInquiry()

deviceDiscovered()

searchServices()

servicesDiscovered()

getConnectionURL()

Connector.open()

getBluetoothAddress()

53

Service Record Connector Remote Device Connection

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 :


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 codenya

:

...

//mengambil record dari SDDB

ServiceRecord record =

localDevice.getRecord(notifier);

//mengeset service record ServiceAvailability

(0x0008)


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

55


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)


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

57


58

yang dikirimkan oleh server adalah LOGIN_INVALID. Activity

diagram dari proses validasi login dapat dilihat pada gambar 3.15.

Client

Melakukan

Login

tampilkan

pesan

Discovery

Bluetooth

Cek Kondisi

LOGIN_STATE;

uname;passw

koneksi

database

proses

loginValidasi

ya

kirim pesan

login valid?

LOGIN;idPelangg

an,nmPelanggan

tutup koneksi

database

Serv er

tidak

LOGIN_INVALID

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 :



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

59


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;

}


Client

request daftar

restoran

tampilkan

pesan

Discovery

Bluetooth

Cek Kondisi

DAFTAR_FOOD

COURT;1;

koneksi

database

Jalankan fungsi

sqlDaftarFoodcourt

ya

kirim pesan

ada data?

data = IdFoodcourt;

NamaFoodcourt

tutup koneksi

database

Serv er

tidak

data =

NULL_RESTORAN

Gambar 3.16 Activity diagram daftar foodcourt


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.

Client

request daftar

menu

tampilkan

pesan

Discovery

Bluetooth

Cek Kondisi

DAFTAR_MENU;

idFoodcourt;

koneksi

database

Jalankan fungsi

sqlDaftarMenu(idFoodcourt)

ya

kirim pesan

ada data?

data = IdMenu;

NamaMenu;Harga

tutup koneksi

database

Serv er

tidak

data =

NULL_MAKANAN;

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

61


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.

Client

Melakukan

Pesanan

tampilkan

pesan

Discovery

Bluetooth

Cek Kondisi

INPUT_PESANAN;idPelanggan,no

meja,total;idFoodcourt,idMenu,jml;

koneksi

database

Jalankan fungsi sqlInputPesanan(array[1]);

sqlInputDetail(array[2]);

ya

data = PESANAN_OK;

idPesanan,noMeja,total;

tutup koneksi

database

kirim pesan

Serv er

input sukses?

tidak

Gambar 3.18 Activity diagram input pesanan

data =

PESANAN_GAGAL;


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.

63


64

Client

Komplain

tampilkan

pesan

Discovery

Bluetooth

Cek Kondisi

INPUT_KOMPLAIN;

idPelanggan

koneksi

database

Jalankan fungsi

sqlInputKomplain(idPelanggan,komplain);

ya

data = KOMPLAIN_OK;

idKomplain;

tutup koneksi

database

kirim pesan

Serv er

input sukses?

tidak

data =

KOMPLAIN_GAGAL;

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;

}


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:

Pembeli

Mencari Foodcourt

Bluetooth Server

Memilih Restoran

Order Menu

Kirim Pesanan

close connection

Bayar

Balasan

Makanan & minuman

Menunggu

Order

Terima Pesanan

set dilayani

set lunas

Gambar 3.20 Use case diagram aplikasi client

Penjelasan mengenai use case diagram:

• User / Pelanggan mencari device bluetooth server.

Foodcourt

Kasir

65


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.


tampil pesan

bluetooth OFF

tampil pesan server

tidak ditemukan

tampil pesan tidak

bisa konek server

pilih menu

masukkan

jumlah

tutup koneksi

bluetooth

client

tidak

buka aplikasi

client

inisialisasi

bluetooth device

ya

bluetooth

aktif?

mencari foodcourt

bluetooth server

tidak

ya

server

ditemukan?

melakukan

koneksi ke server

tidak

tidak

form login

kirim data

login

timeout?

tidak

ya

pilih restoran

kirim pesanan

receive bill

login

ok?

Serv er

menunggu

koneksi client

koneksi

terbangun

proses validasi

login

input pesanan

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

67


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 methodmethod

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.


Gambar3.23 Class diagram aplikasi client J2ME

69


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


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.

FoodCourt

Client

Back Select

Siap

melakukan

koneksi….

Pencarian

Server….

Username :

Password :

Option Back

71


72

Pilih Menu

Makanan

View Pesanan

History

Pesanan

Option Select

Pilih Menu

Makanan

View Pesanan

History

Pesanan

Option Select

Pilih Restoran:

1. Hoka hoka

Bento

2. Jungle Juice

3. Bakso Sedap

Back Select

Daftar Pesanan:

Dorayaki 4

Mie 2

No Meja:

Option Select

Pilih Menu :

Dorayak 20000

Katsudon25000

Mie 5000

Back Select

Confirmation

Pesanan anda

dg order ID 445,

meja 5, sebesar

Rp 110.000

akan segera

Kami antarkan.

Terima Kasih

Gambar 3.25 Design form pada aplikasi pelanggan (J2ME)

Option Select

Dorayaki 20000

Jumlah :

Back Select

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


}

}

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.

73


74

Pilih menu

melakukan koneksi

ya

tampilan awal

pembatalan

proses?

ya

User

tidak

tampilan error

tampilan login

pembatalan

proses.?

tidak

tidak

ya

ya

System Client

Proses device

discovery

tidak

bluetooth device

ditemukan?

proses service

discovery

bluetooth service

ditemukan?

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 {


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

}

}

}

75


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


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

ya

lihat

restoran?

DAFTAR_FOO

DCOURT

Data Pesanan

tampilan hasil

ya

HISTORY_PE

SANAN

kirim data

Client

tidak

ya

lihat

pesanan?

tidak

INPUT_KOMP

LAIN

lihat

history?

tidak

ya

tidak

komplain?

Serv er

pengolahan

data dari client

kirim hasil

pengolahan data

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

77


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

}


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.

Client

tampilan daftar

restoran

Pilih Nama

Restoran

kirim data : DAFTAR_MENU;

idFoodcourt

tampilan menu

makanan / minuman

Serv er

Cek Data dari

client

proses daftar

menu

kirim data

menu

Gambar 3.31 Activity diagram proses menu makanan

79


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


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

81


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.

Client

tampilan menu

layanan

Pilih Komplain

kirim data : INPUT_KOMPLAIN;

idPelanggan;isiKomplain

tampilan komplain telah

diterima

Serv er

Cek Data dari

client

proses input

client

kirim data id

komplain

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


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.

83


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


sesuai dengan Nama Foodcourt atau sebagai Kasir. Source code

untuk proses login adalah sebagai berikut


Login Gagal


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.

85


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.


N

N

Start

Buka aplikasi

restoran

Login

Login Kasir

OK?

Y

Start Monitoring

pesanan

Ada Pesanan

Baru?

Y

N

Tampil Id

Pesan, Nomer

Meja, Total

Bayar

Pembayaran

Pembayaran

Lunas?

Y

Set Lunas

Cetak Bon

End

Gambar 3.39 Flowchart proses pembayaran di kasir

Sebagian source code untuk membuat proses kasir adalah

sebagai berikut.


88

echo "";

echo "

NoTanggalID

PesanMeja

PelangganTotal BayarMAC

Address

StatusDetil";

$i=1;

while ($r=mysql_fetch_array($aio))

{

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

else { $warna='#CFD9FF'; }

echo "".$i."";

echo "".$r[Tanggal]."";

echo "".$r[ID_Pesan]."";

echo "".$r[No_Meja]."";

echo "".$r[Nama_Pelanggan]."";

echo "".$r[Total_Bayar]."";

echo "".$r[Pengenal]."";

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

$tulisanstatus = "L";

echo "".$tulisanstatus."";

} else {

$tulisanstatus = "B";

echo "".$tulisanstatus."";

}

echo "


target='_blank'> Detil";

echo '';

$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

89


90

aplikasi restoran dapat digambarkan dalam flowchart gambar 3.41

berikut ini:

N

N

Start

Buka aplikasi

restoran

Login

Login OK?

Y

Start Monitoring

pesanan

Ada

Pesanan?

Y

N

Tampilkan

daftar pesanan

Pesanan

selesai?

Y

Set sudah

dilayani

End

Gambar 3.41 Flowchart aplikasi foodcourt client restoran

Berikut ini merupakan source code yang menangani proses pada

foodcourt:



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 "Daftar

Pesanan";

echo "";

echo "

NoPelangganNo Meja

Tanggal Jam PesanTanggal Jam

Selesai

Nama MenuHargaJumlah

Total HargaStatus ";

$i=1;

while ($r=mysql_fetch_array($aio))

{

if

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

else{ $warna='#CFD9FF'; }

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

echo "";

echo " ";

echo " ";

echo " ";

echo " ";

echo " ";

} else {

echo "";

91


92

$nomermeja=$r[No_Meja];

echo "".$i."";

echo "".$r[Nama_Pelanggan]."";

echo "".$r[No_Meja]."";

echo "".$r[Tanggal_Jam_Pesan]."";

echo "".$r[Tanggal_Jam_Selesai]."";

$i++;

$nomermeja=$r[No_Meja];

}

echo "".$r[Nama_Menu]."";

echo "".$r[Harga]."";

echo "".$r[Jumlah]."";

echo "".$r[Total_Harga]."";

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

$bss=" ";}

else{

$bss=" ";}

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

$tulisanstatus = "OK";

echo "$bss".$tulisanstatus."";

} else {

$tulisanstatus = "NOT OK";

echo "$bss".

$tulisanstatus."";s

}

echo ''; }}

?>


Gambar 3.42 Tampilan daftar pesanan foodcourt

3.3.2.5 Komplain

Aplikasi web juga menampilkan daftar komplain yang

dikirimkan oleh pelanggan.


94

if ($i%2 == 1){

$warna='#E6E6E6'; }

else{

$warna='#CFD9FF';

}

echo "".$i."";

//echo "".$r[Tanggal_Komplain]."";

$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 "$tgl_b-$bln_b-

$thn_b $jame";

echo "".$r[Nama_Pelanggan]."";

echo "".$r[Isi_Komplain]."";

}

...

Gambar 3.43 Tampilan daftar komplain


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.

95


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.


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

97


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 prosesproses

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.


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.

99


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


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.


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


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.


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.


Gambar 4.17 Login yang dilakukan client invalid

105

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


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.


Gambar 4.20 Proses daftar makanan atau minuman

107

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


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


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


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.


Gambar 4.27 Tampilan kasir, pelanggan belum membayar

111

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


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


Gambar 4.31 Tampilan Foodcourt sudah bayar sudah dilayani

113

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


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.


Gambar 4.34 Tampilan input komplain

115

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


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.

Percobaan

Tabel 4.1 Pengujian waktu pencarian perangkat

menggunakan HP Sony Ericsson K530i

Proses Pencarian Perangkat (detik)

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

Percobaan

Tabel 4.2 Pengujian waktu pencarian perangkat

menggunakan HP Nokia E50

Proses Pencarian Perangkat (detik)

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


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.

Percobaan

Tabel 4.3 Pengujian transfer data client server

Transfer Data (detik)

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

Percobaan

Pencarian Perangkat Transfer Data

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


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


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 masingmasing

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.

119


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.


DAFTAR PUSTAKA

121

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


[6]. Wikipedia, February 2007. BLUETOOTH


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

Wireless Technology Part 1 - API Overview”, Desember

2004,


{Halaman ini sengaja dikosongkan}

122


BIODATA PENULIS

Miftakh Arkhan Zein Taptozani

TTL :

Pendidikan :

SD Negeri Klakah 01 ( 1991 - 1997)

Lumajang, 11 April 1985.

E-mail :

z31nt@yahoo.com

mzeint@gmail.com

Blogg :

SLTPN 1 Sukodono Lumajang (1997 - 2000)

http://z31nt.wordpress.com

http://mif2.blogspot.com

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

115

More magazines by this user
Similar magazines