• Tidak ada hasil yang ditemukan

Aplikasi Penentuan Jarak Terdekat Untuk Delivery Service Restoran Cepat Saji Menggunakan Metode Ant Colony Studi Kasus Restoran X.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi Penentuan Jarak Terdekat Untuk Delivery Service Restoran Cepat Saji Menggunakan Metode Ant Colony Studi Kasus Restoran X."

Copied!
89
0
0

Teks penuh

(1)

APLIKASI PENENTUAN JARAK TERDEKAT

UNTUK DELIVERY SERVICE RESTORAN CEPAT SAJI

MENGGUNAKAN METODE ANT COLONY

STUDI KASUS RESTORAN X

TUGAS AKHIR

Diajukan kepada Jurusan Teknik Informatika Fakultas Teknologi Industri

Universitas Pembangunan Nasional "Veteran" Jawa Timur Untuk menyusun Skripsi S-I

Disusun Oleh:

GALUH WIRASMARA DEWI

NPM. 0634015090

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

(2)

APLIKASI PENENTUAN JARAK TERDEKAT

UNTUK DELIVERY SERVICE RESTORAN CEPAT SAJI

MENGGUNAKAN METODE ANT COLONY

STUDI KASUS RESTORAN X

TUGAS AKHIR

Diajukan Guna Memenuhi Sebagian Persyaratan Untuk Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

Universitas Pembangunan Nasional "Veteran" Jawa Timur

Disusun Oleh:

GALUH WIRASMARA DEWI

NPM. 0634015090

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JATIM SURABAYA

(3)

LEMBAR PENGESAHAN

APLIKASI PENENTUAN JARAK TERDEKAT

UNTUK DELIVERY SERVICE RESTORAN CEPAT SAJI

MENGGUNAKAN METODE ANT COLONY

STUDI KASUS RESTORAN X

Disusun Oleh:

GALUH WIRASMARA DEWI

NPM. 0634015090

Telah disetujui untuk mengikuti Ujian Negara Lisan Gelombang I Tahun Akademik 2010/2011

Pembimbing Utama Pembimbing Pendamping

Basuki Rahmat, S.Si., MT M. Irwan Afandi, ST, M.Sc NPT. 269 070 640 209 NPT. 376 070 702 20

Mengetahui,

Ketua Jurusan Teknik Informatika

Fakultas Teknologi Industri UPN ”Veteran” Jawa Timur

(4)

Pembimbing II : M. Irwan Affandi, ST, M.Sc Penyusun : Galuh Wirasmara Dewi

i

ABSTRAK

Telepon seluler saat ini telah menjadi media untuk berkomunikasi bagi masyarakat pada umumnya. Salah satu layanan yang sering digunakan adalah SMS (Short Message Service). Layanan ini sudah menjadi sebuah kebutuhan dan gaya hidup populer. Hal ini pulalah yang memicu industri-industri untuk menggunakan SMS Gateway sebagai salah satu media pemasaran, salah satunya industri restoran makanan cepat saji. Restoran makanan cepat saji banyak menawarkan delivery service sebagai nilai tambah. Untuk memaksimalkan delivery service, diperlukan suatu pemetaan lokasi untuk menemukan lokasi customer dan rute terpendek yang dapat ditempuh.

Algoritma ant colony merupakan solusi yang ditawarkan untuk mengatasi masalah tersebut. Algoritma ant colony menggunakan jejak intensitas pheromon semut untuk menemukan titik-titik jalur yang harus dilalui sehingga menghasilkan blocking titik-titik yang merupakan rute terpendek yang bisa dilalui. Penemuan rute terpendek dengan menggunakan metode ini mampu memberikan perbedaan yang signifikan.

Dengan adanya penerapan algoritma ant colony untuk penentuan jarak terdekat, aplikasi ini mampu meminimalkan biaya pemasaran dan meningkatkan efektifitas sumber daya yang dimiliki oleh restoran. Selain itu dengan adanya integrasi penerapan teknologi SMS dan algoritma ant colony untuk sistem delivery service, layanan ini mampu memberikan kepuasan tersendiri bagi customer.

(5)

ii

Segala puji syukur penyusun panjatkan ke hadirat Allah SWT atas segala limpahan rahmat dan hidayahNya sehingga akhirnya penyusun dapat menyelesaikan Tugas Akhir dengan judul Aplikasi Penentuan Jarak Terdekat Untuk Delivery Service Restoran Cepat Saji Menggunakan Metode Ant Colony dengan Studi Kasus Restoran X.

Penulisan Tugas Akhir ini disusun sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik Informatika,

Fakultas Teknologi Industri, UPN

VETERAN

Jawa Timur. Walaupun banyak

kesulitan yang harus dihadapi penyusun dalam menyelesaikan tugas akhir ini, namun berkat bantuan dan dorongan dari berbagai pihak, akhirnya tugas akhir ini dapat terselesaikan dengan baik.

Akhir kata, penyusun menyadari bahwa Tugas Akhir ini masih jauh dari sempurna, tak lebih karena berbagai keterbatasan yang dimiliki penyusun. Oleh karena itu penyusun mengharapkan kritik dan saran yang bersifat membangun dari para pembaca untuk pengembangan aplikasi lebih lanjut.

Surabaya, September 2010

(6)

iii

Penyusun menyadari bahwa dalam menyelesaikan Tugas Akhir ini banyak mendapatkan bantuan dan dukungan dari berbagai pihak, untuk itu pada kesempatan yang berharga ini penyusun ingin mengucapkan terima kasih kepada :

1. Bapak Basuki Rahmat, S.Si, MT selaku Ketua Jurusan Teknik Informatika Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya dan Dosen Pembimbing I, yang telah meluangkan waktu untuk memberikan arahan dan motivasi kepada penyusun.

2. Bapak M. Irwan Affandi, ST, M.Sc selaku Dosen Pembimbing II dan Penguji Seminar TA I, yang telah meluangkan waktu untuk memberikan bimbingan serta mencarikan solusi atas kesulitan yang dihadapi penyusun dalam membuat Tugas Akhir ini.

3. Ibu Syurfah Ayu I. S,Kom selaku Penguji Seminar TA 2, yang telah memberikan saran dan kritik untuk memperbaiki program dan laporan Tugas Akhir ini.

4. Bapak Prof. Dr. Ir. H. Akhmad Fauzi, MMT selaku Dosen Penguji Lesan I. 5. Bapak Nur Cahyo Wibowo S.Kom., M.Kom. selaku Dosen Penguji Lesan II. 6. Bapak Yusron Rizal, S.Si., MT selaku Dosen Tamu dan Penguji Lesan III. 7. Kedua orang tua, Ganang, Garin, Eyang Ti, Bude Rum, Mbak Tiwik, Mas

(7)

iv

terima kasih telah memberikan bantuan dan dukungan menyelesaikan Tugas Akhir ini.

(8)

iv   

ABSTRAK ... i

KATA PENGANTAR... ii

UCAPAN TERIMA KASIH ... iii

DAFTAR ISI... iv

DAFTAR GAMBAR... vi

DAFTAR TABEL ... viii

BAB I PENDAHULUAN ... 1

2.3.1 Penyelesaian Masalah Optimasi... 15

2.3.2 Permasalahan Jalur Terpendek... 16

2.4 Algoritma Semut ... 17

2.5 Bahasa Java ... 24

2.6 UML (Unified Modelling Languange)... 29

BAB III ANALISA DAN PERANCANGAN SISTEM ... 30

3.1 Analisis Permasalahan... 30

3.2 Perancangan Sistem... 30

3.2.1 Deskripsi Umum Sistem ... 31

3.2.2 Kebutuhan Sistem ... 32

A. Kebutuhan Perangkat Keras ... 32

B. Kebutuhan Perangkat Lunak ... 32

C. Kebutuhan Fungsional... 33

(9)

v   

3.2.5 Perancangan Antarmuka ... 46

BAB IV IMPLEMENTASI SISTEM ... 49

4.1 Lingkungan Implementasi ... 49

4.2 Instalasi JDK dan JRE ... 50

4.3 Instalasi NetBeans ... 50

4.4 Instalasi MySQL... 50

4.5 Instalasi SMS Gateway... 51

4.6 Trigger ... 54

4.7 Implementasi Algoritma Semut... 59

4.8 Implementasi Antarmuka ... 67

BAB V UJI COBA DAN EVALUASI... 70

5.1 Skenario Uji Coba ... 70

5.2 Pelaksanaan Uji Coba... 70

5.2.1 Uji Coba Processing SMS... 70

A. Uji Coba Koneksi SMS Gateway... 70

B. Uji Coba Pengiriman dan Penerimaan SMS ... 71

5.2.2 Uji Coba Routing Shortest Path ... 75

5.2.3 Uji Coba Update Status... 78

BAB VI PENUTUP ... 80

6.1 Kesimpulan... 80

6.2 Saran ... 80

(10)

vi   

DAFTAR GAMBAR

Gambar 2.1 Arsitektur SMS Gateway... 10

Gambar 2.2 Graf Berarah dan Berbobot ... 12

Gambar 2.3 Graf Tidak Berarah Dan Berbobot ... 13

Gambar 2.4 Graf Berarah dan Tidak Berbobot ... 13

Gambar 2.5 Graf Tidak Berarah dan Tidak Berbobot... 13

Gambar 2.6 Senarai Kedekatan Graf ABCDEFG ... 15

Gambar 2.7 Graf ABCDEFG ... 16

Gambar 2.8 Perjalanan Semut Menemukan Sumber Makanan... 18

Gambar 2.9 Flowchart Algoritma Semut ... 24

Gambar 2.10 Arsitektur Java... 25

Gambar 3.1 Deskripsi Arsitektur Sistem... 31

Gambar 3.2 Workflow Sistem... 34

Gambar 3.3 Use Case Diagram Aplikasi Penentuan Jarak Terdekat ... 35

Gambar 3.4 Activity diagram Processing SMS... 36

Gambar 3.5 Activity diagram Routing Shortest Path... 38

Gambar 3.6 Activity diagram Update Status... 39

Gambar 3.7 Class Diagram ... 40

Gambar 3.8 Perancangan Antarmuka... 46

Gambar 3.9 Rancangan Sub Menu Klik Kanan ... 47

Gambar 4.1 Test Connection... 51

Gambar 4.2 Konfigurasi GSM Modem... 52

Gambar 4.3 Konfigurasi Data Link Properties... 53

Gambar 4.4 Test Connection... 54

Gambar 5.1 Status Koneksi SMS Gateway... 71

Gambar 5.2 Balasan Informasi Cara Pemesanan ... 72

Gambar 5.3 Balasan Format Salah ... 72

(11)

vii   

Gambar 5.8 Balasan Peringatan Status Pemesanan Salah... 75

Gambar 5.9 Tampilan Aplikasi Saat Stand By... 75

Gambar 5.10 Tampilan Aplikasi Saat Load Branch... 76

Gambar 5.11 Tampilan Aplikasi Saat Load Customer... 77

Gambar 5.12 Tampilan Routing... 77

(12)

viii   

Tabel 2.1 Matriks Kedekatan Graf ABCDEFG ... 14

Tabel 3.1 Format SMS ... 37

Tabel 3.2 Struktur OzekiMessageIn... 41

Tabel 3.3 Struktur OzekiMessageOut ... 41

Tabel 3.4 Struktur Customer ... 42

Tabel 3.5 Struktur Menu ... 42

Tabel 3.6 Struktur Status Info ... 43

Tabel 3.7 Struktur Pesan ... 43

Tabel 3.8 Struktur Pesain Detail ... 44

Tabel 3.9 Struktur Warning... 44

Tabel 3.10 Struktur Branch ... 44

Tabel 3.11 Struktur TempSplittedMessage ... 45

Tabel 3.12 Struktur TempTableOrder ... 45

Tabel 3.13 StrukturErrorInfo... 46

Tabel 4.1 Format SMS ... 57

(13)

1

Dalam bab ini dijelaskan beberapa hal dasar yang meliputi latar belakang, permasalahan, batasan masalah, tujuan dan manfaat, metodologi pelaksanaan serta sistematika penulisan buku tugas akhir ini. Dari uraian tersebut diharapkan, gambaran umum permasalahan dan pemecahan yang diambil dapat dipahami.

1.1 Latar Belakang

Seiring dengan perkembangan era globalisasi yang semakin pesat, sebagian besar masyarakat merasakan informasi telah menjadi salah satu kebutuhan pokok. Informasi telah berubah bentuk menjadi suatu komoditi yang dapat diperdagangkan sehingga mengakibatkan semakin tingginya tingkat persaingan dalam dunia usaha. Dan tidak dapat dipungkiri bahwa pengaruh kemajuan teknologi informasi sudah tidak dapat dihindarkan lagi, seperti penggunaan telepon, faksimili, komputer, dan satelit dalam berbagai aktivitas sarana berkomunikasi perusahaan.

(14)

Salah satu penerapan teknologi informasi dan komunikasi di bidang pemasaran produk atau jasa yaitu penggunaan telepon seluler. Telepon seluler atau lebih dikenal dengan ponsel saat ini telah menjadi media atau saluran untuk berkomunikasi bagi masyarakat pada umumnya. Salah satu layanan yang sering digunakan adalah SMS (Short Message Service).

Layanan ini sudah menjadi sebuah kebutuhan dan gaya hidup yang populer. Hal ini pulalah yang memicu perusahaan kecil dan menengah untuk menggunakan layanan SMS sebagai media pemasaran produknya, salah satunya yaitu industri restoran makanan cepat saji.

Di satu sisi, selama ini layanan pemesanan yang dikembangkan hanya sebatas melalui telepon dan menggunakan sumber daya manusia sebagai media pengolah informasi. Untuk meminimalkan biaya pemasaran dan demi efektifitas, dirasa perlu untuk menerapkan teknologi komunikasi seluler yang sudah ada. Selain itu ada kalanya layanan pengiriman makanan ini terhambat dengan faktor informasi lokasi customer, dimana pemilik restoran harus melihat peta secara manual dan menentukan lokasi restoran mana yang paling dekat dengan customer. Faktor ini dapat menghambat pengiriman barang yang nantinya akan berdampak pada ketidakpuasan calon pembeli.

Karena faktor-faktor inilah yang mendorong penulis untuk merancang tugas akhir dengan judul Aplikasi Penentuan Jarak Terdekat Untuk Delivery

Service Restoran Cepat Saji Menggunakan Metode Ant Colony dengan studi kasus

(15)

1.2 Perumusan Masalah

Berdasarkan latar belakang yang telah dijelaskan diatas, maka dapat dirumuskan masalah dalam Tugas Akhir ini, yaitu :

1. Bagaimana membuat aplikasi yang bisa menangani pemesanan online dari

customer melalui sms gateway?

2. Bagaimana mencari dan menentukan posisi customer di peta berdasarkan sms yang dikirim ke server?

3. Bagaimana mendapatkan jarak terdekat antara lokasi restoran dengan

customer berdasarkan optimasi algoritma ant colony?

1.3 Batasan Masalah

Pada pembuatan aplikasi ini perlu didefinisikan batasan masalah mengenai sejauh mana pembuatan aplikasi ini akan dikerjakan. Beberapa batasan masalah tersebut antara lain:

1. Aplikasi ini dibuat berbasis desktop dengan menggunakan bahasa Java sebagai bahasa pemrograman.

2. Aplikasi ini merupakan simulasi, sehingga studi kasus yang diambil adalah restoran X yang bukan merupakan restoran sebenarnya.

3. Aplikasi ini hanya difokuskan pada sms gateway dan penentuan jarak terdekat antara lokasi restoran dengan posisi pembeli, tidak untuk Sistem Informasi Inventory.

(16)

5. Aplikasi ini menggunakan peta Surabaya yang merupakan peta opensource dengan keterbatasan resolusi.

6. Layanan pengantaran diasumsikan menggunakan kendaraan roda dua atau sepeda motor sehingga faktor kemacetan tidak diperhitungkan.

7. Bobot antar titik yang ditentukan hanyalah bobot jarak, dengan mengabaikan bobot-bobot lainnya. Sehingga jalur terpendek ditentukan berdasarkan jarak

terpendek antar titik.

8. Alamat customer hanya terbatas pada nama jalan, tidak dengan nomor, blok, RT RW, nama perumahan maupun gang-gang kecil, dengan pertimbangan data

koordinat lokasi yang disediakan pada peta terbatas pada nama jalan utama atau

protokol.

9. Routing yang dilakukan dimulai dari ujung jalan yang berbatasan dengan

intersection jalan lain. Tidak mengarah tepat pada lokasi jalan yang dimaksud.

1.4 Tujuan

Tujuan dari membuat Aplikasi Penentuan Jarak Terdekat Untuk Delivery

Service Restoran Cepat Saji Menggunakan Metode Ant Colony dengan studi kasus

Restoran X adalah sebagai berikut :

1. Mengimplementasikan algoritma Ant Colony dan sms gateway untuk studi kasus jarak terdekat antar dua lokasi dengan menggunakan bahasa pemrograman Java.

(17)

1.5 Manfaat

Adanya tugas akhir ini diharapkan dapat memberikan manfaat bagi

customer dan pemilik restoran, yaitu diantaranya:

1. Customer dapat melakukan pemesanan dengan mudah menggunakan fasilitas

sms gateway.

2. Petugas pengantaran dapat menghemat waktu karena aplikasi penentuan jarak terdekat ini memberikan jarak tempuh minimal.

1.6 Metodologi Pembuatan Skripsi

Dalam pembuatan Tugas Akhir kali ini, penulis akan menjelaskan tentang metode yang digunakan selama penulis menyusun dan membuat Tugas Akhir ini. 1. Studi literatur.

Mengumpulkan referensi baik dari internet, maupun sumber-sumber yang lainnya mengenai algoritma Ant Colony serta optimasi-optimasi yang telah ada sebagai tambahan referensi Tugas Akhir ini.

2. Analisa dan perancangan Aplikasi.

Menganalisa dan merancang suatu aplikasi penentuan jarak terdekat menggunakan algoritma Ant Colony dengan membandingkan atau melihat aplikasi sejenis yang ada pada GoogleMaps.

3. Pembuatan Aplikasi.

(18)

4. Uji coba dan evaluasi aplikasi.

Pada tahap ini setelah aplikasi selesai dibuat maka dilakukan pengujian aplikasi untuk mengetahui apakah aplikasi tersebut telah bekerja dengan benar sesuai dengan konsep yang diajukan.

5. Pembuatan Kesimpulan.

Pada tahap ini dibuat kesimpulan dari hasil pembuatan aplikasi yang diperoleh sesuai dengan dasar teori yang mendukung dalam pembuatan aplikasi tersebut, yang telah dikerjakan secara keseluruhan.

6. Penyusunan Buku Tugas Akhir.

Tahap ini merupakan tahap terakhir dari pengerjaan Tugas Akhir. Buku disusun sebagai laporan dari seluruh proses pengerjaan Tugas Akhir sehingga memudahkan pembaca yang ingin menyempurnakan dan mengembangkan aplikasi lebih lanjut.

1.7 Sistematika Penulisan

Pada laporan Tugas Akhir ini akan menjelaskan tentang pembuatan Aplikasi Penentuan Jarak Terdekat Untuk Delivery Service Restoran Cepat Saji Menggunakan Metode Ant Colony Studi Kasus Restoran X. Laporan Tugas Akhir ini dibagi menjadi enam bab yang dilengkapi dengan penjelasan langkah-langkah dan ilustrasinya.

BAB I PENDAHULUAN

(19)

BAB II TINJAUAN PUSTAKA

Bab ini menjelaskan tentang dasar teori yang berkaitan dengan teori graph, teori jalur terpendek dan teori mengenai algoritma Ant Colony yang digunakan sebagai penunjang serta referensi dalam pembuatan laporan Tugas Akhir ini.

BAB III ANALISA DAN PERANCANGAN SISTEM

Dalam bab ini dijelaskan tentang analisa dan perancangan sistem informasi yang antara lain berisi tentang analisa aplikasi yang akan dibuat. Dalam bab ini juga akan dijelaskan semua kebutuhan yang diperlukan dalam membuat Aplikasi Penentuan Jarak Terdekat Untuk

Delivery Service Restoran Cepat Saji Menggunakan Metode Ant

Colony.

BAB IV IMPLEMENTASI SISTEM

Pada bab ini akan membahas tentang implementasi berdasarkan konsep perancangan yang ada pada BAB III beserta penjelasan tentang kebutuhan sistem supaya aplikasi yang dikerjakan sesuai dengan tujuan dari penulisan Tugas Akhir.

BAB V UJI COBA DAN ANALISA SISTEM

(20)

BAB VI PENUTUP

Bab ini akan menjelaskan tentang Kesimpulan dari keseluruhan isi dari laporan Tugas Akhir serta Saran yang disampaikan penulis untuk pengembangan aplikasi yang ada demi kesempurnaan aplikasi yang lebih baik.

DAFTAR PUSTAKA

(21)

9

BAB II

TINJAUAN PUSTAKA

2.1 SMS Gateway

SMS Gateway adalah sebuah perangkat lunak yang menggunakan bantuan

komputer dan memanfaatkan teknologi seluler yang diintegrasikan guna

mendistribusikan pesan-pesan yang di-generate lewat sistem informasi melalui

media SMS yang di-handle oleh jaringan seluler. Secara khusus, sistem ini akan

memiliki fungsi-fungsi sebagai berikut :

1. Message Management dan Delivery

a. Pengaturan pesan yang meliputi manajemen prioritas pesan, manajemen,

pengiriman pesan, dan manajemen antrian.

b. Pesan yang dilalukan harus sedapat mungkin fail safe. Artinya, jika

terdapat gangguan pada jaringan telekomunikasi, maka sistem secara

otomatis akan mengirim ulang pesan tersebut.

2. Korelasi

Berfungsi untuk melakukan korelasi data untuk menghasilkan data baru

hasil korelasi. Pada sistem yang terpasang saat ini, arsitektur lalu lintas data

melalui SMS sudah terjalin cukup baik. Hanya saja, keterbatasan akses data

dan tujuan informasi SMS yang belum terfokus menyebabkan banyaknya

jawaban standar (default replies) masih banyak terjadi.

Fitur-fitur standar SMS Gateway, yaitu komunikasi SMS interaktif dua

arah, SMS info on demand, SMS service settings, SMS Automatic Registration,

(22)

Kemudian pengiriman SMS terjadwal, personalisasi SMS, antarmuka

aplikasi berbasis web, buku alamat dan call group, manajemen pengguna, sistem

security access, serta sistem parameter.

Fitur-fitur advance SMS Gateway, yaitu antarmuka dinamis untuk

integrasi ke database perusahaan, SMS Remote Control, E-mail to SMS, SMS to

E-mail, ekspansi modem GSM, dan koneksi langsung ke SMSC via SMPP.

Gambar 2. 1 Arsitektur SMS Gateway

SMSC (Short Message Service Center) merupakan jaringan telepon selular

yang menangani pengiriman SMS. Jadi, pada saat seseorang mengirimkan sebuah

pesan SMS melalui ponselnya, SMSC-lah yang bertugas mengirimkan pesan

tersebut ke nomor tujuan. Jika nomor tujuan tidak aktif, maka SMSC akan

menyimpan pesan tersebut dalam jangka waktu tertentu. Jika SMS tetap tidak

dapat terkirim sampai jangka waktu tersebut berakhir, maka SMS tersebut akan

dihapus dari penyimpanan SMSC.

Sebuah aplikasi SMS gateway dapat menggunakan jalur SMSC untuk

pengoperasiannya. Keuntungannya adalah penggunaan nomor pendek yang

(23)

Contohnya seperti saat kita mengikuti polling SMS, nomor pendek ini

disediakan oleh operator jaringan SMSC. Jalur SMSC juga dapat mengirim SMS

dalam jumlah banyak dalam waktu yang relatif singkat. Hanya saja, untuk

membuat SMS gateway dengan menggunakan jalur SMSC, kita harus memiliki

jalur koneksi ke operator selular, dan ini bukan hal yang mudah untuk pelaku

bisnis dalam skala kecil ataupun individu. Umumnya layanan ini digunakan jika

aplikasi Anda dapat menghasilkan lalu lintas SMS yang tinggi.

Selain itu ada alternatif infrastruktur yang lebih sederhana dan mudah

didapatkan, yaitu membuat SMS gateway yang menggunakan ponsel ataupun

modem GSM/CDMA sebagai media pengirim/penerima SMS, di mana ponsel

atau modem GSM/CDMA tersebut terpasang pada sebuah komputer.

Berikut ini peralatan yang dibutuhkan dalam membangun SMS Gateway

adalah sebagai berikut :

1. PC Server

2. Modem GSM/CDMA

3. Simcard (kartu) GSM/CDMA

4. Modul SMS Gateway

2.2 Teori Graf

2.2.1 Definisi Graf

Graf adalah kumpulan simpul (nodes) yang dihubungkan satu sama lain

melalui sisi/busur (edges) (Zakaria, 2006). Suatu Graf G terdiri dari dua

(24)

a. Verteks (simpul) :V = himpunan simpul yang terbatas dan tidak

kosong.

b. Edge (sisi/busur):E = himpunan busur yang menghubungkan sepasang

simpul.

Simpul-simpul pada graf dapat merupakan objek sembarang seperti node,

atom-atom suatu zat, nama anak, jenis buah, komponen alat elektronik dan

sebagainya. Busur dapat menunjukkan hubungan (relasi) sembarang seperti rute

penerbangan, jalan raya, sambungan telepon, ikatan kimia, dan lain-lain. Notasi

graf: G(V,E) artinya graf G memiliki V simpul dan E busur.

Menurut arah dan bobotnya, graf dibagi menjadi empat bagian, yaitu :

a. Graf berarah dan berbobot : tiap busur mempunyai anak panah dan

bobot. Gambar 2.2 menunjukkan graf berarah dan berbobot yang

terdiri dari tujuh titik yaitu titik A,B,C,D,E,F,G. Titik menujukkan arah

ke titik B dan titik C, titik B menunjukkan arah ke titik D dan titik C,

dan seterusnya. Bobot antar titik A dan titik B pun telah diketahui.

Gambar 2.2 Graf Berarah dan Berbobot

b. Graf tidak berarah dan berbobot : tiap busur tidak mempunyai anak

panah tetapi mempunyai bobot. Gambar 2.3 menunjukkan graf tidak

berarah dan berbobot. Graf terdiri dari tujuh titik yaitu titik

(25)

namun bobot antara titik A dan titik B telah diketahui. Begitu juga

dengan titik yang lain.

Gambar 2.3 Graf Tidak Berarah dan Berbobot

c. Graf berarah dan tidak berbobot: tiap busur mempunyai anak panah

yang tidak berbobot. Gambar 2.4 menunjukkan graf berarah dan tidak

berbobot.

Gambar 2.4 Graf Berarah dan Tidak Berbobot

d. Graf tidak berarah dan tidak berbobot: tiap busur tidak mempunyai

anak panah dan tidak berbobot

Gambar 2.5 Graf Tidak Berarah dan Tidak Berbobot

2.2.2 Representasi Graf

(26)

a. Matriks Kedekatan (AdjacencyMatrix)

Untuk suatu graf dengan jumlah simpul sebanyak n, maka matriks

kedekatan mempunyai ukuran n x n (n baris dan n kolom). Jika antara dua

buah simpul terhubung maka elemen matriks bernilai 1, dan sebaliknya

bernilai 0 jika tidak terhubung. Tabel matriks kedekatan untuk graf

ABCDEFG dapat dilihat pada Matrik Adjency berikut :

Tabel 2.1 Matriks Kedekatan Graf ABCDEFG

Pada tabel di atas, elemen matriks kedekatan bernilai 0 untuk diagonal

dan elemen yang tidak terhubung dengan simpul lain (elemen matriks

bernilai 0 jika simpul tidak terhubung dengan simpul lainnya).

b. Senarai Kedekatan (Adjency List)

Pada simpul x dapat dianggap sebagai suatu senarai yang terdiri dari

simpul pada graf yang berdekatan dengan x. Representasi senarai

(27)

Senarai kedekatan untuk graf ABCDEFG dapat dilihat pada gambar

berikut :

Gambar Error! No text of specified style in document..6 Senarai

Kedekatan Graf ABCDEFG

2.3 Permasalahan Optimasi

2.3.1 Penyelesaian Masalah Optimasi

Secara umum, penyelesaian masalah pencarian jalur terpendek dapat

dilakukan dengan menggunakan dua metode, yaitu metode konvensional dan

metode heuristik. Metode konvensional diterapkan dengan perhitungan

matematis biasa, sedangkan metode heuristik diterapkan dengan perhitungan

kecerdasan buatan.

Ada 2 metode penyelesaian masalah optimasi, yaitu :

a. Metode Konvensional

Metode konvensional adalah metode yang menggunakan perhitungan

matematis biasa. Ada beberapa metode konvensional yang biasa

(28)

algoritma Djikstra, algoritma Floyd-Warshall, dan algoritma Bellman

-Ford.

b. Metode Heuristik

Metode Heuristik adalah sub bidang dari kecerdasan buatan yang

digunakan untuk melakukan pencarian dan optimasi. Ada beberapa

algoritma pada metode heuristik yang biasa digunakan dalam

permasalahan optimasi. Di antaranya algoritma genetika, algoritma semut,

logika fuzzy, jaringan syaraf tiruan, pencarian tabu, simulated annealing,

dan lain-lain.

2.3.2 Permasalahan Jalur Terpendek (Shortest Path Problem)

Jalur terpendek adalah suatu jaringan pengarahan perjalanan dimana

sesorang pengarah jalan ingin menentukan jalur terpendek antara dua node,

berdasarkan beberapa jalur alternatif yang tersedia, dimana titik tujuan hanya

satu. Gambar berikut menunjukkan suatu graf ABCDEFG yang berarah dan

tidak berbobot :

Gambar 2.7 Graf ABCDEFG

Pada gambar diatas, misalkan kita dari node A ingin menuju Node G.

Untuk menuju node G, dapat dipilih beberapa jalur yang tersedia :

(29)

A → B → C → D → F → G A → B → C → D → G A → B → C → F → G A → B → D → E → G A → B → D → F → G A → B → D → G A → B → E → G A → C → D → E → G A → C → D → F → G A → C → D → G A → C → F → G

Berdasarkan data diatas, dapat dihitung jalur terpendek dengan mencari

jarak antara jalur-jalur tersebut. Apabila jarak antar jalur belum diketahui, jarak

dapat dihitung berdasarkan koordinat node-node tersebut, kemudian menghitung

jalur terpendek yang dapat dilalui.

2.4 Algoritma Semut

Algoritma Semut diadopsi dari perilaku koloni semut yang dikenal sebagai

sistem semut (Dorigo, 1996). Secara alamiah koloni semut mampu menemukan

rute terpendek dalam perjalanan dari sarang ke tempat-tempat sumber makanan.

Koloni semut dapat menemukan rute terpendek antara sarang dan sumber

makanan berdasarkan jejak kaki pada lintasan yang telah dilalui. Semakin banyak

semut yang melalui suatu lintasan, maka akan semakin jelas bekas jejak kakinya.

(30)

semakin lama akan semakin berkurang kepadatan semut yang melewatinya, atau

bahkan akan tidak dilewati sama sekali.

Sebaliknya lintasan yang dilalui semut dalam jumlah banyak, semakin

lama akan semakin bertambah kepadatan semut yang melewatinya, atau bahkan

semua semut akan melalui lintasan tersebut.

Gambar 2.8 Perjalanan Semut Menemukan Sumber Makanan

Gambar 2.8. di atas menunjukkan ada dua kelompok semut yang akan

melakukan perjalanan. Satu kelompok bernama L yaitu kelompok yang berangkat

dari arah kiri yang merupakan sarang semut dan kelompok lain yang bernama

kelompok R yang berangkat dari kanan yang merupakan sumber makanan. Kedua

kelompok semut dari titik berangkat sedang dalam posisi pengambilan keputusan

jalan sebelah mana yang akan diambil. Kelompok semut L membagi dua

kelompok lagi. Sebagian melalui jalan atas dan sebagian melalui jalan bawah. Hal

(31)

kecepatan yang sama dengan meninggalkan pheromone atau jejak kaki di jalan

yang telah dilalui.

Pheromone yang ditinggalkan oleh kumpulan semut yang melalui jalan

atas telah mengalami banyak penguapan karena semut yang melalui jalan atas

berjumlah lebih sedikit. Hal ini dikarenakan jarak yang ditempuh lebih panjang

daripada jalan bawah. Sedangkan pheromone yang berada di jalan bawah,

penguapannya cenderung lebih lama. Karena semut yang melalui jalan bawah

lebih banyak daripada semut yang melalui jalan atas. Sehingga semut-semut yang

lain pada akhirnya memutuskan untuk melewati jalan bawah karena pheromone

yang ditinggalkan masih banyak.

Sedangkan pheromone pada jalan atas sudah banyak menguap sehingga

semut-semut tidak memilih jalan atas tersebut. Semakin banyak semut yang

melalui jalan bawah maka semakin banyak semut yang mengikutinya. Demikian

juga dengan jalan atas, semakin sedikit semut yang melalui jalan atas, maka

pheromone yang ditinggalkan semakin berkurang bahkan hilang. Dari sinilah

kemudian terpilihlah jalur terpendek antara sarang dan sumber makanan.

Dalam algoritma semut, diperlukan beberapa variabel dan

langkah-langkah untuk menentukan jalur terpendek, yaitu:

Langkah 1 :

a. Inisialisasi harga parameter-parameter algoritma.

Parameter-parameter yang diinisialisasikan adalah :

1. Intensitas jejak semut antar node dan perubahannya (

τ

ij)

2. Banyak node (n) termasuk koordinat (x,y) atau jarak antar node (dij)

(32)

4. Tetapan siklus-semut (Q)

5. Tetapan pengendali intensitas jejak semut (α), nilai α≥ 0

6. Tetapan pengendali visibilitas (β), nilai β≥ 0

7. Visibilitas antar node = 1/dij (ηij)

8. Banyak semut (m)

9. Tetapan penguapan jejak semut (ρ) , nilai ρ harus > 0 dan < 1 untuk

mencegah jejak pheromone yang tak terhingga.

10. Jumlah siklus maksimum (NCmax) bersifat tetap selama algoritma

dijalankan, sedangkan

τ

ij akan selalu diperbaharui harganya pada setiap

siklus algoritma mulai dari siklus pertama (NC=1) sampai tercapai

jumlah siklus maksimum (NC=NCmax) atau sampai terjadi konvergensi.

b. Inisialisasi node pertama setiap semut.

Setelah inisialisasi τij dilakukan, kemudian m semut ditempatkan pada node

pertama tertentu secara acak.

Langkah 2 :

Pengisian node pertama ke dalam tabu list. Hasil inisialisasi node pertama

setiap semut dalam langkah 1 harus diisikan sebagai elemen pertama tabu list.

Hasil dari langkah ini adalah terisinya elemen pertama tabu list setiap semut

dengan indeks node tertentu, yang berarti bahwa setiap tabuk(1) bisa berisi indeks

node antara 1 sampai n sebagaimana hasil inisialisasi pada langkah 1.

Langkah 3 :

Penyusunan rute kunjungan setiap semut ke setiap node. Koloni semut

(33)

perjalanan dari node pertama masing-masing sebagai node asal dan salah satu

node-node lainnya sebagai node tujuan.

Kemudian dari node kedua masing-masing, koloni semut akan

melanjutkan perjalanan dengan memilih salah satu dari node-node yang tidak

terdapat pada tabuk sebagai node tujuan selanjutnya. Perjalanan koloni semut

berlangsung terus menerus sampai semua node satu persatu dikunjungi atau telah

menempati tabuk. Jika s menyatakan indeks urutan kunjungan, node asal

dinyatakan sebagai tabuk(s) dan node-node lainnya dinyatakan sebagai {N-tabuk},

maka untuk menentukan node tujuan digunakan persamaan probabilitas node

untuk dikunjungi sebagai berikut :

untuk j∈{N-tabuk} …………... (1)

dan = 0, untuk j lainnya …... (2)

dengan i sebagai indeks node asal dan j sebagai indeks node tujuan.

Langkah 4 :

a. Perhitungan panjang rute setiap semut.

Perhitungan panjang rute tertutup (length closed tour) atau Lk setiap semut

dilakukan setelah satu siklus diselesaikan oleh semua semut. Perhitungan ini

(34)

dimana dij adalah jarak antara node i ke node j yang dihitung berdasarkan

persamaan :

b. Pencarian rute terpendek.

Setelah Lk setiap semut dihitung, akan didapat harga minimal panjang rute

tertutup setiap siklus atau LminNC dan harga minimal panjang rute tertutup secara

keseluruhan adalah atau Lmin.

c. Perhitungan perubahan harga intensitas jejak kaki semut antar node.

Koloni semut akan meninggalkan jejak-jejak kaki pada lintasan antar node

yang dilaluinya. Adanya penguapan dan perbedaan jumlah semut yang lewat,

menyebabkan kemungkinan terjadinya perubahan harga intensitas jejak kaki

semut antar node. Persamaan perubahan ini adalah :

Dengan adalah perubahan harga intensitas jejak kaki semut antar node

setiap semut yang dihitung berdasarkan persamaan :

, untuk (i,j) א node asal dan node tujuan dalam tabuk

= 0 , untuk (i,j) lainnya ……….(6)

(35)

a. Perhitungan harga intensitas jejak kaki semut antar node untuk siklus

selanjutnya. Harga intensitas jejak kaki semut antar node pada semua

lintasan antar node ada kemungkinan berubah karena adanya penguapan

dan perbedaan jumlah semut yang melewati. Untuk siklus selanjutnya,

semut yang akan melewati lintasan tersebut harga intensitasnya telah

berubah.

Harga intensitas jejak kaki semut antar node untuk siklus selanjutnya

dihitung dengan persamaan :

τij = ρ⋅ τij + Δτij ……….. (8)

b. Atur ulang harga perubahan intensitas jejak kaki semut antar node. Untuk

siklus selanjutnya perubahan harga intensitas jejak semut antar node perlu

diatur kembali agar memiliki nilai sama dengan nol.

Langkah 6 :

Pengosongan tabu list, dan ulangi langkah 2 jika diperlukan. Tabu list

perlu dikosongkan untuk diisi lagi dengan urutan node yang baru pada siklus

selanjutnya, jika jumlah siklus maksimum belum tercapai atau belum terjadi

konvergensi. Algoritma diulang lagi dari langkah 2 dengan harga parameter

intensitas jejak kaki semut antar node yang sudah diperbaharui.

Berikut aliran flowchart untuk menerapkan algoritma semut pada

(36)

Gambar 2.9 Flowchart Algoritma Semut

2.5 Bahasa Java

Java merupakan suatu bahasa pemrograman dan sekaligus suatu platform,

yang dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah dipelajari,

terutama bagi programmer yang telah mengenal C/C++.

Java merupakan bahasa pemrograman berorientasi objek yang merupakan

paradigma pemrograman masa depan. Sebagai bahasa pemrograman Java

dirancang menjadi handal dan aman. Java juga dirancang agar dapat dijalankan di

(37)

Java bersifat neutral architecture, karena Java Compiler yang digunakan

untuk mengkompilasi kode program Java dirancang untuk menghasilkan kode

yang netral terhadap semua arsitektur perangkat keras yang disebut sebagai Java

Bytecode.

Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu Java

Virtual Machine (JVM) dan Java Application Programming Interface (Java API).

SUN yang merupakan pengembang Java, membagi arsitektur Java menjadi tiga

bagian, yaitu

1. Enterprise Java (J2EE) untuk aplikasi berbasis web, aplikasi sistem

tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi

(server). J2EE merupakan superset dari Standar Java.

2. Standart Java (J2SE), ini yang biasa dikenal sebagai bahasa Java, yang

biasanya digunakan untuk desktopprogramming dan database.

3. Micro Java (J2ME) merupakan subset dari J2SE dan salah satu aplikasinya

yang banyak dipakai adalah untuk wirelessdevice / mobiledevice.

(38)

Java memiliki karakteristik berikut :

1. Sederhana

Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun

sintaks pada Java telah banyak diperbaiki terutama menghilangkan

penggunaan pointer yang rumit dan multiple inheritance. Java juga

menggunakan automatic memory allocation dan memory garbage collection.

2. Berorientasi objek (Object Oriented)

Java mengunakan pemrograman berorientasi objek yang membuat program

dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman

berorientasi objek memodelkan dunia nyata ke dalam objek dan melakukan

interaksi antar objek-objek tersebut.

3. Dapat didistribusi dengan mudah

Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya

libraries networking yang ter-integrasi pada Java.

4. Interpreter

Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine

(JVM). Hal ini menyebabkan source code Java yang telah dikompilasi

menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

5. Robust

Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai

kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa

pemrograman lain. Java mempunyai runtime-Exception handling untuk

(39)

6. Aman

Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java

memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak

digunakan untuk merusak sistem komputer yang menjalankan aplikasi

tersebut.

7. ArchitectureNeutral

Program Java merupakan platform independent. Program cukup mempunyai

satu buah versi yang dapat dijalankan pada platform yang berbeda dengan

Java Virtual Machine.

8. Portable

Source code maupun program Java dapat dengan mudah dibawa ke platform

yang berbeda-beda tanpa harus dikompilasi ulang.

9. Performance

Performance pada Java sering dikatakan kurang tinggi. Namun performance

Java dapat ditingkatkan menggunakan kompilasi Java lain. Contohnya seperti

buatan Inprise, Microsoft ataupun Symantec yang menggunakan Just In Time

Compilers (JIT).

10.Multithreaded

Java mempunyai kemampuan untuk membuat suatu program yang dapat

melakukan beberapa pekerjaan secara sekaligus dan simultan.

11.Dinamis

Java didesain untuk dapat dijalankan pada lingkungan yang dinamis.

Perubahan pada suatu class dengan menambahkan properties ataupun method

(40)

Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna

yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime

Environment (JRE). Berikut beberapa tools dan fitur dalam bahasa pemrograman

Java :

1. JVM (JavaVirtualMachine)

JVM inilah yang merupakan jantung dari Java Platform. JVM ini adalah

pihak yang bertanggung jawab untuk mengeksekusi program Java menjadi

bahasa mesin untuk diproses oleh prosesor. JVM mampu menerjemahkan

code-code Java ke hampir semua platform. JVM ini-lah yang membuat

Java "write once, run everywhere" alias multi-platform.

2. JRE (JavaRuntimeEnvironment)

JRE inilah yang memungkinkan sebuah program Java dapat berjalan di

mesin Anda. JRE ini mengeksekusi binary-binary dari class-class dan

mengirimnya ke JVM untuk diproses lagi ke prosesor. Setiap JRE pasti

memiliki sebuah JVM di dalamnya untuk melakukan pemrosesan

selanjutnya.

3. JDK (JavaDevelopmentKit)

Seperti namanya, JDK adalah semacam kotak peralatan (kit) yang

digunakan untuk development. JDK ini berguna saat Anda menulis code

program. Seperti halnya JRE, JDK juga memiliki JVM di dalamnya, yaitu:

(41)

4. SDK (SoftwareDevelopmentKit)

SDK ini biasanya adalah kumpulan dari tools yang dibutuhkan untuk

membuat serta menjalankan program. Jadi di dalam SDK itu ada JDK-nya,

ada JRE-nya serta mungkin IDE-nya juga.

Jadi kesimpulannya : JVM ada di dalam JRE dan JDK, JRE untuk

"membaca" program Java, JDK untuk "menulis" program Java sedangkan SDK

umumnya berisi JDK & JRE.

2.6 UML (Unified Modelling Language)

UML (Unified Modelling Language) adalah bahasa standar untuk

melakukan spesifikasi, visualisasi, konstruksi, dan dokumentasi dari

komponen-komponen perangkat lunak, dan digunakan untuk pemodelan bisnis. UML

menggunakan notasi grafis untuk menyatakan suatu desain. Pemodelan dengan

UML berarti menggambarkan yang ada dalam dunia nyata ke dalam bentuk yang

dapat dipahami dengan menggunakan notasi standar UML.

Pemodelan dengan UML mempunyai beberapa tipe diagram yang berbeda

untuk memodelkan sistem perangkat lunak. Tipe diagram yang digunakan pada

tugas akhir ini adalah :

1. Use case Diagram

2. Activity Diagram

(42)

30

BAB III

ANALISA DAN PERANCANGAN SISTEM

3.1 Analisis Permasalahan

Aplikasi yang akan dibuat pada Tugas Akhir ini adalah sebuah aplikasi penentuan jarak terdekat untuk layanan delivery service makanan cepat saji yang melayani proses pemesanan makanan melalui sms, langsung dari mobile phone

customer ke restoran. Aplikasi ini dapat mengkoneksikan sms dari customer

tersebut ke aplikasi melalui sms gateway dimana berdasarkan sms yang dikirim, dapat ditentukan posisi customer untuk kemudian dicari jarak terdekat yang dapat ditempuh dari lokasi cabang restoran ke lokasi customer.

Dengan memanfaatkan aplikasi ini diharapkan restoran mampu meningkatkan kecepatan proses pengantarannya sehingga tingkat kepuasaan

customer lebih terjamin dan dapat memberikan keuntungan dari segi finansial.

Aplikasi penentuan jarak terdekat ini diharapkan dapat dijalankan dengan pemrograman Java.

3.2 Perancangan Sistem

Perancangan sistem berisikan penjelasan tentang deskripsi umum sistem, proses-proses akan dijabarkan dalam use case diagram, activity diagram, class

diagram dan perancangan antarmuka aplikasi.

3.2.1 Deskripsi Umum Sistem

(43)

Gambar 3.1 Deskripsi Arsitektur Sistem

Penjelasan dari gambar deskripsi arsitektur sistem pada Gambar 3.1 adalah sebagai berikut :

1. Customer mengirimkan sms dengan format tertentu ke sms gateway

melalui jaringan GSM untuk melakukan pemesanan makanan.

2. Sms dari customer diterima oleh sms gateway melalui modem gsm dan diteruskan ke aplikasi Ozeki Message Server untuk kemudian diparsing untuk mendapatkan data yang dibutuhkan dari customer.

3. Data yang sudah diparsing akan divalidasi formatnya apakah sudah benar atau belum. Data yang formatnya sudah benar akan disimpan ke dalam

database.

4. Aplikasi akan mengambil data alamat customer yang telah disimpan di dalam database. Data ini akan dipetakan pada aplikasi.

5. Aplikasi akan melakukan optimasi perhitungan menggunakan algoritma

(44)

lokasi cabang restoran. Hasil perhitungan yang menghasilkan jarak terdekat akan ditampilkan dalam bentuk simulasi pada aplikasi.

3.2.2 Kebutuhan Sistem

Dengan mengidentifikasi deskripsi pada gambar 3.1 telah diketahui bahwa kebutuhan sistem terbagi menjadi 2 yaitu kebutuhan perangkat keras dan kebutuhan proses.

A. Kebutuhan Perangkat Keras

Perangkat keras yang digunakan adalah perangkat keras yang dapat mendukung perangkat lunak yang memiliki kemampuan atau tampilan grafis yang cukup baik. Adapun perangkat keras yang dibutuhkan untuk membangun aplikasi berdasarkan arsitektur pada gambar 3.1, yaitu di antaranya komputer atau laptop dengan spesifikasi minimum kecepatan RAM yang disarankan 512 MB dengan kapasitas harddisk 2 GB, handphone dengan fitur standar sms serta modem gsm semua merk.

B. Kebutuhan Perangkat Lunak

Untuk memenuhi kebutuhan pengguna dalam berinteraksi dengan sistem diperlukan perangkat lunak sebagai jembatan untuk mengimplementasikan teori algoritma Ant Colony ke dalam perangkat keras. Perangkat lunak yang akan digunakan dalam perancangan aplikasi ini adalah :

(45)

4. MySQL Server 5. MySQL Workbench 6. MySQL Connector ODBC

7. Software SMS Gateway

C. Kebutuhan Fungsional

Kebutuhan fungsional adalah kebutuhan yang harus diimplementasikan pada saat pembuatan aplikasi atau sistem. Spesifikasi kebutuhan fungsional untuk pengguna diantaranya :

1. Penentuan format sms yang dikirimkan customer untuk mengetahui informasi cara pemesanan, melakukan pemesanan dan status pemesanan untuk customer ketika akan menggunakan layanan

delivery service ini.

2. Proses parsing informasi yang diperoleh dari sms customer untuk diambil data-data customer yang diperlukan.

3. Proses validasi format sms yang diambil dari data yang telah diparsing sebelumnya.

4. Proses penyimpanan data yang formatnya sudah tepat ke dalam

database.

5. Penentuan format sms balasan dari aplikasi untuk pembeli, dimana ada 2 format yaitu yaitu format untuk informasi cara pemesanan, format sms balasan status pemesanan dan format sms untuk peringatan kesalahan jika format sms yang dikirimkan customer salah. 6. Proses pemetaan alamat customer pada aplikasi dimana data alamat

(46)

7. Proses perhitungan masing-masing siklus dari alamat customer ke lokasi cabang restoran terdekat sampai mendapatkan optimasi jarak terdekat.

8. Proses untuk menampilkan simulasi jarak terdekat dari restoran terdekat ke customer.

9. Proses update status pemesanan jika proses pengantaran pesanan selesai dilakukan.

3.2.3 Perancangan Proses A. Use Case Diagram

Pemodelan use case mengidentifikasi dan menggambarkan fungsi – fungsi sistem yang merupakan hasil penyusunan kembali lingkup fungsionalitas sistem menjadi banyak pernyataan fungsionalitas yang lebih kecil.

Dalam aplikasi penentuan jarak terdekat dengan algoritma ant colony ini, ada beberapa proses yang dirancang. Rancangan proses dibuat dalam bentuk

workflow sebagai berikut :

Receiving SMS

(47)

Sedangkan use case berikut menjelaskan tentang aktivitas yang dilakukan oleh pengguna aplikasi penentuan jarak terdekat dengan algoritma ant colony.

Processing SMS

Routing Shortest Path <<include>> Shortest Path

Application

Update Status

<<include>>

Gambar 3.3 Use Case Diagram Aplikasi Penentuan Jarak Terdekat

Actor pada diagram di atas adalah sistem, yaitu sistem aplikasi penentuan

(48)

B. Activity Diagram

Activity diagram berikut menggunakan swimlane untuk mengelompokkan aktivitas yang dilakukan oleh actor dan aktivitas yang dilakukan oleh sistem.

B.1 Activity Diagram Processing SMS

Gambar 3.4 Activity Diagram Processing SMS

Dalam activity diagram processing sms terdapat 3 swimlane atau

peran yang melakukan aktivitas dalam processing sms, yaitu sms

gateway, shortest path application dan database. Shortest path

application berperan sebagai aktor utama dalam sistem. Aktivitas dimulai

(49)

Jika tidak ada, maka aplikasi akan melakukan aktivitas waiting for sms lagi. Pada aktivitas parsing sms, sms yang dikirim oleh customer akan dipisah-pisah menggunakan tanda titik koma. Hasil parsing berupa teks yang disimpan pada field-field sesuai dengan format sms. Khusus untuk

field Menu, dilakukan proses parsing lagi untuk memisahkan antara kode

menu dan jumlah pesanan. Parsing akan menghasilkan kumpulan field-field, field ini kemudian akan dicek apakah sesuai dengan format yang

ditentukan. Jika format benar, aktivitas selanjutnya adalah mengecek isi dari content. Tetapi jika format salah maka aplikasi akan mengirimkan

warning text melalui SMS Gateway. Berikut rancangan format sms untuk

semua kondisi yang terjadi saat customer mengirimkan sms ke aplikasi : Tabel 3.1 Format SMS

Condition Send Text Receive Text Warning Text

Informasi untuk pemesanan atau ketik status;kodepesanan untuk melihat status pesanan Anda

Maaf format sms anda salah, ketik info untuk mendapatkan

Terima kasih, kode pesanan anda: ', IDPesanan, '. Ketik status;kode pesanan anda untuk melihat status pesanan anda

Maaf, menu dengan kode (kodeMenu) telah habis. Silahkan ulangi pesanan anda

Informasi

menu menu

01 Makanan 02 Minuman

Maaf format sms anda salah, ketik info untuk mendapatkan

Pesanan anda sedang dalam proses : (kondisi status pemesanan)

(50)

Saat mengecek isi content sms, akan ada 3 kondisi percabangan yang dijadikan parameter untuk proses pengecekan ini. Pertama, jika isi content sms adalah teks “info”, maka aplikasi akan mengirimkan sms yang berisi informasi cara pemesanan melalui SMS Gateway ke customer. Jika bukan, isi content kembali dicek, apakah itu adalah teks “pesan”? Jika iya, maka isi content tersebut akan disimpan ke dalam database. Jika bukan akan dicek lagi apakah teks “status”? Jika iya, maka aplikasi akan mengecek ke dalam database untuk mendapatkan informasi status pemesanan customer. Setelah status pemesanan didapatkan, aplikasi akan mengirimkan status pemesanan melalui sms gateway ke customer.

Tetapi jika isi content bukan “status”, maka aplikasi akan mengirimkan kembali konfirmasi bahwa customer belum melakukan pemesanan apapun.

B.1 Activity Diagram Routing Shortest Path

(51)

Dalam activity diagram routing shortest path terdapat 2 swimlane, yaitu Shortest path application dan database. Aktivitas pertama yang dilakukan adalah mengecek ke dalam database untuk mendapatkan data alamat customer yang sudah melakukan pemesanan. Dari database diperoleh data alamat yang kemudian akan dicek kembali apakah data alamat customer pada database adalah data baru atau bukan, jika merupakan data customer baru maka aplikasi akan melakukan aktivitas

route shortest path yang merupakan simulasi dari hasil optimasi

perhitungan jarak terdekat dengan menggunakan algoritma ant colony.

B.1 Activity Diagram Routing Update Status

Gambar 3.6 Activity Diagram Update Status

Dalam activity diagram update status terdapat 2 swimlane, yaitu

Shortest path application dan database. Aktivitas pertama yang dilakukan

(52)

3.2.4 Perancangan Database

Salah satu poin penting dalam pembuatan Aplikasi Penentuan Jarak Terdekat ini adalah perancangan database untuk menyimpan data-data dalam bentuk tabel-tabel yang terintegrasi dalam satu database. Proses perancangan database ini dilakukan dengan membuat Class Diagram. Berikut Class Diagram untuk database aplikasi penentuan jarak terdekat :

Agent

Gambar 3.7 Class Diagram

Berikut struktur tabel untuk perancangan database aplikasi penentuan jarak terdekat :

1. Nama Tabel : OzekiMessageIn Primary Key : ID

Foreign Key : -

(53)

Tabel 3.2 Struktur OzekiMessageIn

6 ReceivedTime Varchar 100

7 Operator Varchar 100

Fungsi Tabel : Menyimpan sms yang dikirim oleh aplikasi ke customer.

Tabel 3.3 Struktur OzekiMessageOut

NO Field Type Length Key

6 ReceivedTime Varchar 100

7 Reference Varchar 100

8 Status Varchar 20

9 MsgType Varchar 160

(54)

3. Nama Tabel : Customer Primary Key : custID Foreign Key : -

Fungsi Tabel : Menyimpan data customer yang mengirimkan sms ke aplikasi.

Tabel 3.4 Struktur Customer

NO Field Type Length Key

1 CustID Int 11 PK

2 CustNM Varchar 30

3 CustPhone Varchar 30

4 CustAddress Varchar 160

4. Nama Tabel : Menu Primary Key : menuID Foreign Key : -

Fungsi Tabel : Menyimpan data menu yang tersedia di restoran.

Tabel 3.5 Struktur Menu

NO Field Type Length Key

1 MenuID Int 11 PK

2 MenuCode Varchar 2

3 MenuNM Varchar 45

4 Quantity Varchar 11

(55)

Fungsi Tabel : Menyimpan informasi status pemesanan customer.

Tabel 3.6 Struktur Status Info

NO Field Type Length Key

1 IDStatusInfo Int 11 PK

2 StatCode Int 11

3 StatNote Varchar 45

6. Nama Tabel : Pesan Primary Key : pesanID Foreign Key : custID

Fungsi Tabel : Menyimpan informasi semua pemesanan yang dilakukan oleh customer.

Tabel 3.7 Struktur Pesan

NO Field Type Length Key

1 PesanID Int 11 PK

2 CustID Int 11 FK

3 StatusPesan Int 11

4 WaktuPesan Varchar 45

7. Nama Tabel : PesanDetail Primary Key : pesandetailID Foreign Key : pesanID,menuID

Fungsi Tabel : Menyimpan detail pemesanan menu yang dilakukan oleh

customer.

(56)

NO Field Type Length Key

1 PesanDetailID Int 11 PK

2 PesanID Int 11 FK

3 MenuID Int 11 FK

4 Quantity Varchar 45

8. Nama Tabel : Warning Primary Key : warningID Foreign Key : -

Fungsi Tabel : Menyimpan pesan-pesan peringatan yang akan dikirimkan ke customer.

Tabel 3.9 Struktur Warning

NO Field Type Length Key

1 WarningID Int 11 PK

2 WarningCode Varchar 20

3 WarningMessage Varchar 160

9. Nama Tabel : Branch Primary Key : branchID Foreign Key : -

Fungsi Tabel : Menyimpan data lokasi cabang restoran.

Tabel 3.10 Struktur Branch

NO Field Type Length Key

1 ID Int 11 PK

2 BranchName Varchar 45

3 BranchAddress Varchar 100

(57)

Primary Key : ID Foreign Key : -

Fungsi Tabel : Menyimpan data parsing sms pesan pertama dari

customer yang bersifat sementara.

Tabel 3.11 Struktur TempSplittedMessage

NO Field Type Length Key

1 ID Int 11 PK

2 StringVal Varchar 1000

11. Nama Tabel : TempTableOrder Primary Key : ID

Foreign Key : -

Fungsi Tabel : Menyimpan data hasil parsing menu (untuk melihat jumlah pesanan masing-masing menu) yang bersifat sementara.

Tabel 3.12 Struktur TempTableOrder

NO Field Type Length Key

1 ID Int 11 PK

2 stringVal Varchar 1000

12. Nama Tabel : TblErrorInfo Primary Key : errID

Foreign Key : -

(58)

Tabel 3.12 Struktur TblErrorInfo

NO Field Type Length Key

1 errID Int 11 PK

2 errMessage Varchar 160

3.2.5 Perancangan Antarmuka

Perancangan antarmuka merupakan perancangan halaman aplikasi yang nantinya akan berinteraksi secara langsung dengan pengguna. Adapun gambar rancangan antarmuka aplikasi yang akan dibuat adalah sebagai berikut:

Map

Surabaya Map

Help

Import Map File

Exit

About

Branches

Cabang 1 Cabang 2

Save Branch Load Branch

Customer

Get New Orders Process Order

Update Status delivered

Update Status

(59)

Rancangan aplikasi akan dibuat satu window yang mencakup semua fungsi yang tersedia dalam menu-menu maupun tombol yang ada di dalamnya. Penjelasan masing-masing menu dan tombol adalah sebagai berikut :

1. Menu

Ada 2 menu yang tersedia, yaitu Map dan Help. Map berisi sub menu

Import Map File dan Exit. Import Map File adalah sub menu yang

menyediakan fasilitas untuk meng-import file-file map atau peta yang akan digunakan dalam aplikasi. Map default yang digunakan adalah peta Surabaya. Semua map yang akan digunakan berekstensi .osm, .xml, .osc atau .diff.xml. Sub menu Exit digunakan jika user ingin keluar dari aplikasi. Menu Help berisi sub Menu About yang berisi informasi pembuat aplikasi dan email yang dapat dihubungi jika user menemukan kesulitan dalam menggunakan aplikasi penentuan jarak terdekat ini.

2. Window Map

Window Map akan berisi file peta yaitu peta Surabaya. Peta akan

dilengkapi dengan fasilitas Zoom In (memperkecil skala peta) dan Zoom

Out (memperbesar skala peta). Untuk menambahkan lokasi cabang baru,

user dapat meng-klik kiri pada lokasi yang diinginkan di peta, kemudian

klik kanan untuk memunculkan sub menu yang ingin dipilih. Ada 1 sub menu yang tersedia jika user klik kanan pada window map, yaitu sebagai berikut :

(60)

3. Group

Ada 2 group yang tersedia dalam rancangan aplikasi, yaitu:

a. Group Customer

Group Customer akan berisi data pembeli yang melakukan

pemesanan yaitu meliput data nama, alamat, dan detail pesanan. Data-data ini ditampilkan agar user dapat mengingat kembali Data-data pembeli dan detail pesanan saat routing sedang dilakukan.

Dalam Group Customer ada 2 tombol yang disediakan, yaitu tombol Process Order dan Get New Orders. Process Order digunakan untuk melakukan proses routing, dan tombol Get New Orders digunakan untuk melihat data baru.

Update Order Status akan digunakan untuk meng-update status pemesanan customer berdasarkan data order ID customer. Ada 1

combo box, yang akan memuat status delivered dan not delivered.

Untuk mengupdate status tekan tombol Update Status.

b. Group Branches

Group branches akan berisi data lokasi cabang-cabang restoran.

Ada 3 tombol dalam group ini yaitu Load Branch dan Save Branch. Tombol Load Branch digunakan untuk mengambil data lokasi cabang restoran yang disimpan di dalam database.

Sedangkan tombol Save Branch digunakan untuk menyimpan data

branch atau lokasi restoran baru yang sebelumnya ditambahkan oleh

user. Sedangkan tombol “X” digunakan untuk menghapus data lokasi

(61)

49

BAB IV

IMPLEMENTASI SISTEM

4.1 Lingkungan Implementasi

Pada bagian ini akan dijelaskan mengenai perangkat keras dan perangkat

lunak yang digunakan pada implementasi sistem ini. Perangkat keras yang

digunakan adalah sebagai berikut :

1. Komputer atau laptop, untuk pengujian aplikasi ini spesifikasi yang

digunakan adalah Intel Core 2 Duo @1.50 GHz, memori 1 GB dan

harddisk 120 GB.

2. Handphone, menggunakan menggunakan provider telekomunikasi

IndosatMentari untuk uji coba sebagai customer, dengan spesifikasi dasar

memiliki fitur SMS.

3. Modem GSM, untuk pengujian aplikasi ini digunakan modem handphone

merk ZTE dengan operator IndosatIM3.

Sedangkan perangkat lunak yang digunakan dalam perancangan aplikasi

ini adalah sebagai berikut :

1. Java DevelopmentKit (JDK) versi 6 Update 20

2. Java RuntimeEnvironment (JRE) versi 6 Update 16

3. NetBeans IDE 6.8

4. MySQL Server versi 5.1

5. MySQL Workbench versi 5.2

6. MySQL Connector ODBC 5.1.6

(62)

4.2 Instalasi JDK dan JRE

Paket JDK dan JRE untuk Windows disediakan dalam bentuk installer

MSI (Microsoft Installer) atau dalam format zip file. Installer JDK v6.20 dan JRE

v6.16 bisa didownload di http://java.sun.com/ secara gratis. Jalankan langsung file

installer dan ikuti proses instalasi JDK dan JRE. Setelah proses instalasi selesai,

JDK dan JRE secara otomatis terintegrasi langsung ke dalam Windows.

4.3 Instalasi Netbeans

Sebelum menginstal Netbeans pastikan JDK dan JRE sudah terinstal

terlebih dahulu. File installer NetBeans IDE 6.8 dapat kita download di situs

http://netbeans.org/downloads/index.html secara gratis. Setelah didownload,

jalankan langsung file tersebut dan ikuti proses instalasinya.

4.4 Instalasi MySQL

Ada 3 installer yang dijalankan untuk MySQL, yaitu program MySQL

sendiri, MySQL Workbench sebagai GUI untuk mempermudah melakukan

query-query dan connector ODBC untuk mengkoneksikan MySQL ke NetBeans. Ketiga

file installer ini bisa didapatkan dari http://dev.mysql.com/downloads/ secara

gratis.

Instal MySQL terlebih dahulu. Paramater yang harus diseting saat

melakukan instalasi yaitu server type : developer machine, multifunctional,

OLAP, enable TCP IP, no firewall, user : root, password: (blank). Setelah server

sudah terinstal, lanjutkan untuk menginstal workbench dan connector ODBC.

Setelah selesai menginstal MySQL di atas, masuk ke MySQL Workbench,

(63)

1. Buka MySQL Workbench, klik pada tab NewConnection. Beri nama koneksi

yang diinginkan.

2. Pada tab Parameter, username isikan root, store in vault password dikosongi,

kemudian klik TestConnection. Jika berhasil muncul window berikut :

Gambar 4.1 Test Connection

3. Kemudian klik OK. Nama koneksi kita akan tampil di listOpenConnection to

StartQuerying. Double klik pada nama koneksi untuk memulai query sql.

4.5 Instalasi SMS Gateway

Perangkat lunak yang digunakan untuk SMS gateway adalah Ozeki

Message Server 6. Perangkat lunak ini merupakan perangkat lunak shareware.

Install Ozeki Message Server dan jalankan Ozeki Server Manager jika instalasi

berhasil. Koneksi GSM Modem dengan Ozeki Message Server pada aplikasi ini

terjalin dengan bluetooth. Nyalakan bluetooth GSM Modem, dan bluetooth pada

komputer atau laptop. Koneksikan keduanya.

Kemudian masuk ke Ozeki Server Manager. Pada menu Drivers pilih

Installed Drivers. Klik Install Drivers, pilih GSM Modem dan klik Install. Setelah

itu pilih kembali menu Drivers, akan ada GSM Modem 1, kemudian klik

(64)

Gambar 4.2 Konfigurasi GSM Modem

COM Port bisa dilihat dari Bluetooth Setting pada komputer atau laptop.

Setelah memilih Driver COM Port yang digunakan, klik AutoDetect. Maka model

dan tipe GSM Modem terdeteksi otomatis. Begitu juga dengan Phone Settings

akan terdeteksi secara otomatis.

Selanjutnya pilih menu PluginsInstalled Plugins. Klik pada Install

Plugins. Jika sudah terinstall pilih Configure. Klik pada tab Connection

Information, pilih Build database connection. Pilih Use Connection String dan

(65)

Pilih Microsoft OLE DB Provider for ODBC Drivers, kemudian klik Next.

Konfigurasi selanjutnya yang dibutuhkan adalah sebagai berikut :

Gambar 4.3 Konfigurasi Data Link Properties

Klik Test Connection untuk mencoba koneksi. Jika berhasil tekan OK dan

script build telah ada pada window Connection String sebelumnya. Klik OK dan

kembali ke Ozeki Server Manager.

Untuk mengkoneksikan, pilih menu Drivers kemudian GSM Modem 1 –

Connect. Kemudian pilih PluginsDatabasePlugins 1 – Connect. Untuk melihat

koneksi berjalan atau tidak ada pada window status di kiri bawah. Koneksi yang

(66)

Gambar 4.4 Test Connection

Dengan demikian, sms gateway sudah dalam keadaan stand by dan

terkoneksi ke database serta siap menerima dan mengirimkan sms ke customer.

4.6 Trigger

Pada aplikasi ini juga dibuat trigger. Berikut query trigger yang dibuat

pada database Semut :

1. Trigger untuk update stok menu.

-- clear table temp order dulu -- DELETE FROM tempTableOrder; SET rowcount = 0;

OPEN curSplitMsg; splitloop: LOOP

FETCH curSplitMsg INTO tempID, tempString; IF done THEN LEAVE splitloop;

END IF;

SET rowcount = rowcount + 1; IF rowcount = 1 THEN SET NamaPemesan = ''; ELSEIF rowcount = 2 THEN SET NamaPemesan = tempString; ELSEIF rowcount = 3 THEN SET AlamatPemesan = tempString; ELSE

-- masukin pesanan yg masih berupa kode-jumlah ke temp tabel INSERT INTO tempTableOrder VALUES (NULL, tempString); END IF;

END LOOP; CLOSE curSplitMsg;

CALL show_error(CONCAT('rowcount: ', rowcount)); IF rowcount < 4 THEN

Gambar

Gambar  2.8  Perjalanan Semut Menemukan Sumber Makanan
Gambar 2.9 Flowchart Algoritma Semut
Gambar  Error! No text of specified style in document..10  Arsitektur Java
Gambar 3.2 Workflow Sistem
+7

Referensi

Dokumen terkait

Pada leguminosa herba petani menjadi tertarik dalam beberapa hal, antara lain: (1) Hijauan pakan ini mampu meningkatkan kesuburan lahan setelah penanaman

Belajar tidak selamanya hanya bersentuhan dengan hal-hal yang kongkrit, baik dalam konsep maupun faktanya. Bahkan dalam realitasnya belajar seringkali bersentuhan

Menurut Handoko (2002) pengukuran kinerja adalah usaha untuk merencanakan dan mengontrol proses pengelolaan pekerjaan sehingga dapat dilaksanakan sesuai tujuan yang telah

Berkaitan dengan tantangan sebagai dampak RIN.4.0, faktor-faktor ekologis administrasi publik Indonesia juga dihadapkan pada faktor ekologis yang beraspek alamiah yang

Hasil penelitian mendapatkan bahwa kelangsungan hidup larva yang berasal dari induk yang diberi pakan berimunostimulan tidak dipengaruhi oleh dosis ragi roti sebagai

AKSI DANA YOUTH CAMP 2015 PELKAT GP Panitia Youth Camp akan melakukan kegiatan penggalangan dana yang dilakukan di lingkungan GPIB Gideon, berupa: Penjualan Makanan dan Kaos

Salah satu upaya pencegahan tersebut adalah dengan konsumsi produk yang mengandung bakteri asam laktat (BAL). Salah satu produk yang mengandung BAL adalah

elemen tertentu dalam karya desain. 4) Warna dapat memperlihatkan mood tertentu yang menunjukan akan. adanya kesan