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. 0634015090JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
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. 0634015090JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JATIM SURABAYA
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. 0634015090Telah 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
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.
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 banyakkesulitan 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
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
iv
terima kasih telah memberikan bantuan dan dukungan menyelesaikan Tugas Akhir ini.
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
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
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
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
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
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.
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
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.
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.
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.
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
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
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
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,
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
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
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
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
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
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
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 :
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.
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
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)
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 setiapsiklus 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
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
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)
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
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
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.
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
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
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:
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
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
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
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 :
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
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
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
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
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)
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
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
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 : -
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
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
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.
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
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 : -
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
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 :
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
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
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,
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
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 Plugins – Installed Plugins. Klik pada Install
Plugins. Jika sudah terinstall pilih Configure. Klik pada tab Connection
Information, pilih Build database connection. Pilih Use Connection String dan
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 Plugins – DatabasePlugins 1 – Connect. Untuk melihat
koneksi berjalan atau tidak ada pada window status di kiri bawah. Koneksi yang
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