Deskripsi Umum Sistem Perancangan Database

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