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
Berikut gambar deskripsi arsitektur sistem yang akan dibangun pada aplikasi penentuan jarak terdekat :
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
ant colony untuk menentukan jarak terdekat antara posisi customer dengan
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 :
1. Java Development Kit JDK
2. Java Runtime Environment JRE
3. NetBeans IDE
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
diambil dari database.
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 from Customer
Mapping Customer’s Address
Routing Shortest Path
Parsing SMS Content
Check SMS Content
Insert into Database
Reply SMS to Customer
Update Status
Gambar 3.2 Workflow Sistem
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 jarak terdekat. Sistem disini berperan sebagai aktor karena aplikasi ini
merupakan otomatisasi dari beberapa proses. Ada 2 proses utama yang terjadi, yaitu processing sms dan routing shortest path. Processing sms berkaitan
dengan pengolahan sms yang dikirim dari user ke sistem sehingga dihasilkan data-data yang dibutuhkan untuk proses routing shortest path. Sedangkan
proses routing shortest path merupakan proses optimasi perhitungan jarak terdekat dengan menggunakan algoritma ant colony. Penjelasan lebih lanjut
mengenai masing-masing proses dijelaskan dalam activity diagram berikut.
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 dengan state waiting sms. Aplikasi akan menunggu sms dari customer.
Jika ada sms yang dikirimkan oleh customer maka akan dilanjutkan aktivitas berikutnya yaitu parsing sms.
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 cara
pemesanan info
Ketik pesan;nama;alamat;kodemenu-
jumlah;kodemenu2-jumlah2 untuk pemesanan atau ketik
status;kodepesanan untuk melihat status pesanan Anda
Maaf format sms anda salah, ketik info
untuk mendapatkan informasi cara
pemesanan
Pesan pesan;nama;
alamat;kode menu-
jumlah;menu pesanan2-
jumlah2 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
informasi cara pemesanan
Status pemesanan
status;IDPes anan
Pesanan anda sedang dalam proses : kondisi status
pemesanan Pesanan dengan no
IDPesanan, tidak terdapat dalam
database kami
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
Gambar 3.5 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
adalah memilih record mana yang akan di-update statusnya. Aplikasi akan memilih record tersebut, kemudian mengecek ke dalam database untuk
mendapatkan data ID Pesanan dari record yang dipilih.
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 moveOneStep
from servlet
Interface
RandomChooser objectList : List
weightingList : List rnd : Random
addObject randomChooseOneWithWeighting
randomChooseOneWithoutWeighting clear
Ant pheromoneStrength : Double
rndChooser : RandomChooser InertialStrength : Double
moveOneStep releasePheromoneAtLocation
targetDirection randomChooseOne
randomChooseOneWithWeighting
Pheromone DecayRate : Double
State releasePheromone : Pheromone
seekPheromone : Pheromone
Gambar 3.7 Class Diagram
Berikut struktur tabel untuk perancangan database aplikasi penentuan jarak terdekat :
1. Nama Tabel : OzekiMessageIn
Primary Key : ID Foreign Key : -
Fungsi Tabel : Menyimpan sms dari customer yang masuk ke aplikasi.
Tabel 3.2 Struktur OzekiMessageIn NO
Field Type
Length Key
1 ID Int
11 PK
2 Sender Varchar
30 3 Receiver
Varchar 30
4 Msg Varchar
160 5 SentTime
Varchar 100
6 ReceivedTime Varchar
100 7 Operator
Varchar 100
8 MsgType Varchar
160 9 Reference
Varchar 100
2. Nama Tabel : OzekiMessageOut
Primary Key : ID Foreign Key : -
Fungsi Tabel : Menyimpan sms yang dikirim oleh aplikasi ke customer.
Tabel 3.3 Struktur OzekiMessageOut NO
Field Type
Length Key
1 ID Int
11 PK
2 Sender Varchar
30 3 Receiver
Varchar 30
4 Msg Varchar
160 5 SentTime
Varchar 100
6 ReceivedTime Varchar
100 7 Reference
Varchar 100
8 Status Varchar
20 9 MsgType
Varchar 160
10 Operator Varchar
100
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
5. Nama Tabel : StatusInfo
Primary Key : idstatusinfo Foreign Key : -
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.
Tabel 3.8 Struktur PesanDetail
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
10. Nama Tabel : TempSplittedMessage
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 : -
Fungsi Tabel : Menyimpan data informasi catatan debug trigger.
Tabel 3.12 Struktur TblErrorInfo NO
Field Type
Length Key
1 errID Int
11 PK
2 errMessage Varchar
160
3.2.5 Perancangan Antarmuka