BAB IV ANALISIS DAN PERANCANGAN
4.1 Analisis Sistem Pelayanan Pesan Makanan “Klikresto.com” 4.1.1 Gambaran Umum system Makanan merupakan salah satu hal penting bagi
kelangsungan hidup setiap
manusia, karna tanpa makanan manusia tidak akan dapat bertahan hidup. Setiap orang pasti pasti merasakan lapar dan membutuhkan makanan. Akan terasa sangat membantu ketika merasa lapar maka makanan selalu tersedia dengan cepat kapanpun dan dimanapun. Klikresto.com merupakan suatu proyek web yang dimiliki PT Idea Imaji Persada. Website ini merupakan website yang dibangun khusus untuk melayani orang-orang yang akan memesan makanan secara online kepada restoran-restoran yang ada di bandung. 4.1.2 Fungsi Utama Sistem Sesuai dengan penjelasan-penjelasan sebelumnya fungsi utama dari system ini adalah sebagai media pelayanan bagi orang-orang yang akan melakukan pemesanan makanan secara online. Sehingga diharapkan dengan system ini dapat mempermudah dan mengurangi effort serta biaya yang harus dikeluarkan. 4.1.3 Ruang Lingkup Sistem Website ini dibangun berdasarkan keinginan dari pihak client sehingga modulmodul atau konten-konten yang dibuat disesuaikan pula dengan permintaan dari pihak client. Secara teknis website ini terdiri atas empat bagian, yaitu: a. Ruang lingkup sistem bagi administrator, dimana dalam ruang lingkup sistem ini dapat dilakukan peubahan-perubahan terhadap seluruh data yang ada.
54
55
b. Ruang lingkup sistem bagi pemilik restoran, pada ruang lingkup sistem ini terdapat konten-konten khusus bagi pihak restoran. c. Ruang lingkup sistem bagi pelanggan, ruang lingkup sistem ini dibuat sebagai tempat dimana seorang konsumen dapat memodifikasi akunnya. d. Ruang lingkup sistem pemesanan makanan, sistem ini dibuat khusus sebagai suatu sistem pemesanan yang diibaratkan sebagai sebuah keranjang belanja. 4.1.4 Karakteristik Pengguna Pada system ini pembagian otoritas pengguna dibagi menjadi tiga, dimana setiap pengguna memiliki privilege yang berbeda, berikut penjelasannya: a. Penguna sebagai Administrator Pengguna dengan otoritas ini dapat mengakses semua konten yang ada dan juga dapat melakukan peubahan terhadap seluruh data-data yang ada. Otoritas ini diberikan hanya kepada pihak developer dalam hal ini pihak PT Idea Imaji Persada. b. Pengguna sebagai Pihak Restoran Pengguna dengan otoritas ini hanya dapat mengakses konten-konten khusus restoran, misalnya merubah data akun, menambah atau merubah menu makanan serta melihat report pemesanan terhadap restoran terkait dan mengirim kritik dan saran. Otoritas ini diberikan hanya kepada pihak pemilik restoran yang telah mendaftar dan tergabung. c. Pengguna sebagai Konsumen Pengguna dengan otoritas ini dapat melakukan perubahan terhadap data akun pribadinya, kemudian dapat pula melakukan pemesanan makanan serta mengirim kritik atau saran. Otoritas ini diberikan kepada semua orang yang telah mendaftar sebagai anggota.
56 Tabel IV.0 Tabel actor glossary
Actor Glossary Kode Aktor
AC_1
AC_2
AC_3
Daftar Aktor
Deskripsi Aktor
Aktor ini merupakan seseorang yang dapat mengatur dan mengelola data-data dan informasi yang ada. Pengelola/Administrator Aktor ini pula yang diberikan hak untuk melakukan manipulasi data secara keseluruhan (insert, update, delete). Aktor ini merupakan seseorang yang dipercayai dari Resto Owner pihak restoran untuk mengakses data dan informasi yang ada mengenai restoran, menu dan pesanan. Aktor ini merupakan pelanggan yang dapat Customer mengakses informasi mengenai dirinya sendiri dan tentu melakukan pemesanan.
4.1.5 Analisis Kebutuhan A. Kebutuhan Fungsional Berikut ini daftar kebutuhan fungsional sistem: Tabel IV.1 tabel kebutuhan fungsional system berdasarkan stakholder Stakeholder terkait : Administrator 1. Pengolahan data admin a. Menambah data admin b. Mengambil data admin c. Merubah data admin d. Menghapus data admin Stakeholder terkait : Administrator, Customer 2. Pengolahan data pelanggan a. Menambah data pelanggan b. Mengambil data pelanggan c. Merubah data pelanggan d. Menghapus data pelanggan Stakeholder terkait : Administrator, Resto Owner, Customer 3. Pengolahan data order a. Menambah data order b. Mengambil data order c. Merubah data order d. Menghapus data order
Stakeholder terkait : Administrator, Resto Owner 4. Pengolahan data restoran a. Menambah data restoran b. Mengambil data restoran c. Merubah data restoran d. Menghapus data restoran Stakeholder terkait : Administrator, Resto Owner 5. Pengolahan data menu a. Menambah data menu b. Mengambil data menu c. Merubah data menu d. Menghapus data menu Stakeholder terkait : Administrator 6. Pengolahan data lain a. Pertanyaan b. Term Condition c. Privacy Policy d. Proposal
57
Tabel IV.2 Tabel kebutuhan fungsional Kode Fungsional
Nama system Fungsional
FR_1
SignUp
FR_2
SignIn
FR_3
Postalcode Search
FR_4
Restotype Search
FR_5
Schedule Search
FR_6
Menu Search
FR_7
Carting
FR_8
Order Menu
FR_9
Profile Dashboard
FR_10
Account Dashboard
FR_11
Tracking Dashboard
FR_12
Customer Address Dashboard
FR_13
Menu Dashboard
FR_14 FR_15 FR_16 FR_17
Restaurant Dashboard Admin Dashboard Account Activation Reset Password
Keterangan Sistem/web menyediakan fitur beserta form bagi user yang ingin melakukan registrasi baik sebagai customer ataupun pemilik restoran. Sistem/web menyediakan fitur beserta form bagi user yang telah memiliki akun untuk login dan mengakses sistem berdasarkan privilege nya. Sistem/web dapat melakukan pencarian terhadap restoran berdasarkan kode pos yang diinputkan oleh user dan menampilkannya. Sistem/web dapat melakukan pencarian terhadap restoran berdasarkan tipe restoran yang diinputkan oleh user . Sistem/web dapat melakukan pencarian terhadap restoran berdasarkan jadwal buka dan tutup restoran tersebut dan menampilkannya. Sistem/web dapat melakukan pencarian terhadap menu berdasarkan restoran yang dipilih oleh user dan menampilkannya. Sistem/web memiliki suatu fitur berupa keranjang belanja yang mendeskripsikan pemesanan yang dilakukan user. Sistem/web memiliki suatu fitur yang dapat merespon proses pemesanan makanan yang dilakukan user, respon berupa penyimpanan ke database dan pengiriman notifikasi kepada pihak customer dan restoran. Sistem/web dapat menampilkan informasi dari user yang sudah login dan juga user dapat melakukan manipulasi terhadap profilnya. Sistem/web dapat menampilkan informasi dari user yang sudah login dan juga user dapat melakukan manipulasi terhadap akunnya. Sistem/web dapat menampilkan informasi dari pemesanan yang berhubungan dengan akun user dan juga dapat melakukan manipulasi terhadap pemesanannya. Sistem/web dapat menampilkan informasi alamat dari customer yang sudah login dan juga dapat melakukan manipulasi terhadap alamatnya. Sistem/web dapat menampilkan informasi daftar menu dari restoran yang sudah login dan juga dapat melakukan manipulasi terhadap menunya. Sistem/web dapat menampilkan informasi dari restoran yang sudah login dan juga dapat melakukan manipulasi terhadapnya. Sistem/web dapat menampilkan informasi dari restoran dan customer dan juga dapat melakukan manipulasi terhadapnya. Sistem/web memiliki suatu fitur berupa aktivasi akun bagi user yang sudah melakukan registrasi. Sistem/web memiliki suatu fitur berupa penyetingan ulang kata sandi akun bagi user yang lupa dan sudah melakukan registrasi.
58
Berikut ini Daftar Utama dari system: 1. Pencarian dengan menggunakan Kode Pos a. Memasukkan kode pos area dimana restoran tersebut menerima layanan pesan-antar b. Sistem akan menampilkan jenis-jenis restoran di sekitar (yang memiliki) kode pos tersebut c. Memilih jenis restoran d. Sistem menampilkan list restoran berdasarkan jenis makanan tersebut. 2. Pemesanan Dan pembayaran makanan a. Memilih Makanan b. Setiap kali peng-klikan menu makanan. Menu, harga dan kuantitas pesanan akan masuk kedalam “shopping cart/order cart” atau keranjang belanja c. Jika selesai memesan, kemudian menekan tombol “pesan sekarang”. d. Setelah ditekan tombol “pesan sekarang” akan diarahkan ke halaman data pesanan jika belum melakukan login maka diarahkan ke halaman login. e. System akan memberikan informasi pemesanan berikut no. invoice. 3. Registrasi a. Melakukan registrasi b. Data registrasi masuk ke dalam database. 4. LogIn a. Consumer melakukan login dengan memasukkan username dan password b. Setelah berhasil login consumer akan diarahkan kembali ke home 5. Halaman Dashboard Customer
59
a. Dihalaman ini ditampilkan data-data pribadi consumer yang bisa diedit, dihapus, dan ditambah (CRUD) b. Di feature ini juga dapat ditemukan halaman untuk tracking pesanan 6. Tracking Pesanan a. Setelah restoran menerima pesanan dari consumer (pesanan diambil dari database), restoran akan dapat melakukan update status pesanan. Status pesanannya adalah sebagai berikut: a. Order received (pesanan diterima) b. Order processed (pesanan diproses) c. Order Delivered (Pesanan diantar) b. Sistem menyediakan sebuah form khusus yang digunakan untuk men-track status pemesanan. 7. Pendaftaran restoran a. Restoran melakukan registrasi atau lebih tepatnya mengajukan proposal agar retorannya bisa menjadi member di klikresto b. Restoran mengisi form proposal c. Proses negosiasi antara restoran dan klikresto dilakukan secara offline d. Jika proes negosiasi lancar, maka, restoran akan mendapatkan account untuk login ke halaman profil restoran yang dikirm melalui email oleh admin e. Setelah proses nego selesai, admin memaskkan data-data inisial restoran f. Admin mengirimkan account restoran ke email restoran. 8. Halaman dashboard restoran a. Restoran dapat melakukan edit, hapus, dan tambah informasi umum restoran b. Restoran dapat melakukan edit, hapus, dan tambah menu-menu
60
c. Restoran dapat melakukan edit, hapus dan tambah kode pos pengiriman makanan d. Restoran dapat melakukan edit informasi umum (jam/hari buka, jam/hari tutup dan lainnya) e. Restoran akan mendapatkan halaman untuk mengupdate status pemesanan
B. Kebutuhan Antar Muka Berikut ini daftar kebutuhan antar muka sistem: Tabel IV.3 kebutuhan Antarmuka a. Antar muka admin
b. Antar muka restoran
1. Login admin
1. Form merubah data akun
2. Form menambah data admin
2. Form menambah menu makanan
3. Form merubah data admin
3. Form merubah menu makanan
4. Form menghapus data admin
4. Form menghapus menu makanan
5. Halaman daftar/list admin
5. Halaman laporan pemesanan
6. Halaman pertanyaan
makanan
7. Halaman kritik dan saran 8. Halaman laporan proposal pengajuan restoran c. Antar muka pelanggan
d. Antar muka pemesanan
1. Form merubah data akun
1. Form merubah data pemesanan
2. Form menambah akun
2. Form menambah data pemesanan
3. Form daftar data alamat
3. Form menghapus data pemesanan
4. Form tambah data alamat
4. Halaman laporan pemesanan
5. Form merubah data alamat 6. Halaman laporan pemesanan makanan
makanan 5. Halaman pencarian makanan
61
C. Kebutuhan Perangkat Keras Pada dasarnya perangkat keras yang dibutuhkan untuk dapat mengakses web ini setidaknya adalah sebuah komputer yang dapat mengakses internet, membuka aplikasi browser dan dapat berinteraksi dengan halaman web apapun mereknya dan bagaimanapun kecepatannya. Berikut ini kebutuhan perangkat keras yang direkomendasikan untuk user: 1. Processor : processor with 1GHz or higher speed 2. VGA : VGA with 16bit or higher color 3. RAM : memory 256Mb or higher size 4. Display : display with 1280px width or higher for best view 5. Internet connection
D. Kebutuhan Perangkat Lunak Untuk mengakses website ini pasti dibutuhkan akses internet dan aplikasi untuk melakukan browsing internet. Berikut perangkat lunak yang dibutuhkan dan digunakan pada saat pembangunan website ini. 1. Operating System : Microsoft Windows, Linux, Mac. 2. Browser : Mozilla firefox, google chrome, opera. 3. Web server : Apache server 4. Text editor : Notepad ++ 5. Image editor : Adobe photoshop cs, corel draw 6. Security : Anti virus, anti spyware, firewall
62
4.2 Perancangan Sistem Pelayanan Pesan Makanan “klikresto.com” 4.2.1 UML Pemodelan (Modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). A. Use case diagram Tabel IV.4 Tabel Use Case Glosarry
Use Case Glossary Kode Use Case
Daftar Use Case
Aktor
UC_71
Sign In
Semua Aktor (administrator, resto owner, customer)
UC_11
Manage Admin
administrator
UC_12
Manage Resto
administrator
UC_13
Manage Customer
administrator
UC_14
Manage Web
administrator
UC_21
Manage resto profile/account
resto owner
Deskripsi Use Case Aktor menginputkan email masingmasing dan kata sandinya untuk dapat memasuki halaman awal dari sistem/web atau dan memasuki dashboard masing-masing. Aktor dapat melihat informasi tentang user administrator dan dapat melakukan penambahan, perubahan atau penghapusan terhadap data-data yang ada. Aktor dapat melihat informasi tentang restoran dan dapat melakukan penambahan, perubahan atau penghapusan terhadap data-data yang ada. Aktor dapat melihat informasi tentang customer dan dapat melakukan penambahan, perubahan atau penghapusan terhadap data-data yang ada. Aktor dapat melihat informasi web seperti Term Condition, About atau Privacy Policy dan dapat melakukan penambahan, perubahan atau penghapusan terhadap data-data yang ada. Aktor dapat melihat informasi tentang profil atau akunnya dan dapat melakukan penambahan, perubahan atau penghapusan terhadap data-data yang ada.
63
Use Case Glossary UC_22
Manage resto order
resto owner
Aktor dapat melihat informasi pemesanan yang ada dan melakukan pembatalan pesanan.
resto owner
Aktor dapat melihat daftar menu yang ada dan dapat melakukan perubahan atau penghapusan menu yang ada.
UC_23
Manage menu
UC_24
Manage order tracking
resto owner
Aktor dapat melihat proses pemesanan yang ada dan melakukan perubahan status terhadap pesanan tersebut.
UC_25
Proposal Request
resto owner
Aktor dapat mengirim pesan kepada admin untuk mengajukan diri agar dapat ikut bergabung.
UC_26
Report
resto owner
Aktor dapat memperoleh laporan yang berhubungan denngan akun nya seperti laporan pemesanan.
UC_31
Manage customer profile/account
customer
Aktor dapat melihat informasi tentang profil atau akunnya dan dapat melakukan penambahan, perubahan atau penghapusan terhadap data-data yang ada.
UC_32
Manage customer order
customer
Aktor dapat melihat informasi pemesanan yang ada dan melakukan pembatalan pesanan.
UC_33
Manage address
customer
Aktor dapat melihat daftar alamatyang ada dan dapat melakukan perubahan atau penghapusan alamatyang ada.
UC_34
Customer order tracking
customer
Aktor dapat melihat proses pemesanan yang ada.
UC_35
Sign Up
customer
Aktor dapat melakukan pendaftaran untuk dapat memperoleh akun sebagai pelanggan.
UC_36
Choose Menu
customer
Aktor dapat melakukan pencarian dan pemilihan menu yang ada.
customer
Aktor dapat melakukan pemesanan berdasarkan keranjang pesanan yang telah dibuat.
UC_37
Order Menu
64
Berikut ini adalah use case dari website pelayanan pesanan makanan “Klikresto.com” :
Gambar IV.1 Use case diagram klikresto
Use case diagram diatas merupakan gambaran keseluruhan yang dilakukan setiap actor pada sistem. Hampir seluruh kegiatan yang dilakukan actor harus melalui proses login terlebih dahulu, oleh karena itu actor harus memiliki akun untuk melakukan kegiatan pada sistem.
65
Gambar IV.2 Use case diagram system untuk administrator
Gambar IV.3 Use case diagram system untuk pemesanan
66 Tabel IV.5 Tabel Use Case diagram sistem
Type From Generalization user (Actor) Include manage customer profile/account (Use Case) Association resto_admin (Actor) Association customer (Actor) Association resto_admin (Actor) Include resto order tracking (Use Case) Include report (Use Case) Association resto_admin (Actor) Association Include Association Association Association Include Association Include Include Include Extend Association Generalization Association
customer (Actor) customer order tracking (Use Case) customer (Actor) administrator (Actor) administrator (Actor) manage customer (Use Case) customer (Actor) manage customer order (Use Case) manage resto order (Use Case) manage web (Use Case) choose menu (Use Case) administrator (Actor) user (Actor) customer (Actor)
Include
manage resto profile/account (Use Case) Include manage admin (Use Case) Generalization user (Actor) Include manage menu (Use Case) Association customer (Actor) Association resto_admin (Actor) Include manage address (Use Case) Include order menu (Use Case) Association administrator (Actor) Association resto_admin (Actor) Include manage resto (Use Case) Association resto_admin (Actor)
To administrator (Actor) sign in (UseCase) manage menu (UseCase) customer order tracking (UseCase) manage resto order (UseCase) sign in (UseCase) sign in (UseCase) manage resto profile/account (UseCase) signup (UseCase) sign in (UseCase) manage address (UseCase) manage customer (UseCase) manage resto (UseCase) sign in (UseCase) choose menu (UseCase) sign in (UseCase) sign in (UseCase) sign in (UseCase) order menu (UseCase) manage web (UseCase) customer (Actor) manage customer profile/account (UseCase) sign in (UseCase) sign in (UseCase) resto_admin (Actor) sign in (UseCase) manage customer order (UseCase) resto order tracking (UseCase) sign in (UseCase) sign in (UseCase) manage admin (UseCase) report (UseCase) sign in (UseCase) proposal request (UseCase)
B. Class Diagram Karena system dibangun menggunakan framework CodeIgniter maka system dibagi menjadi sub-sub bagian atau package, yang terdiri atas:
67
1. Package system Bagian ini merupakan isi dari system dan pengaturan dari framework CodeIgniter itu sendiri. Didalamnya terdapat berbagai class yang berisi method-method fungsional framework yang kita gunakan dalam membangun sistem nantinya. Bagian ini di dalamnya terbagi pula menjadi beberapa sub bagian atau package yang sudah diatur oleh pembangun framework CodeIgniter itu sendiri, yang terdiri atas : 1. Package Core 2. Package Database 3. Package Helpers 4. Package Language 5. Package Libraries
Gambar IV.4 Package system
2. Package Application Pada framework CodeIgniter aplikasi dibangun dan disimpan pada package aplikasi dengan struktur yang sudah ditentukan, pemisahan direktori ini bertujuan agar kelaskelas yang berada pada direktori sistem tidak terganggu dan pemrogram sebenarnya tidak perlu merubah apa yang ada pada direktori sistem default framework
68
Gambar IV.5 Package Application dengan class diagramnya
69
Model Customer_model
Tabel IV.6 Tabel deskripsi customer_model
Method __construct Get_allcustomer
Parameter
Get_bycustomerid Get_byuserid getLastCustomer add update update_account update_profile remove addAddress updateAddress removeAddress updateDefaultaddress getalladdress getAllAddressById editByFieldAddress
Deskripsi Mengambil seluruh data customer dari table USER dan ADDRESS Mengambil data customer berdasarkan customer_id Mengambil data user berdasarkan user_id Mengambil data customer yang terakhir ditambahkan Menabah data Customer Mengupdate data Customer Mengupdate data Account Customer Mengupdate data Profile Customer Menghapus data Customer Menambah data Alamat Customer Mengupdate data Alamat Customer Menghapus data Alamat Customer Mengupdate data Alamat tetap Customer Mengambil semua data Alamat Mengambil data alamat berdasarkan user_id Mengubah alamat customer berdasarkan kolom pada tabel address
Menu_Model Tabel IV.7 Tabel deskripsi menu_model
Method __construct getById addmenu update getMenuByType getallmenu getbymenuid getmenubyuserid removeMenu getallmenutype
Parameter
Deskripsi Mengambil data Menu restoran berdasarkan menu_id Menambah data menu Mengupdate data menu Mengambil data menu berdasarkan type Mengambil semua data menu Mengambil semua data Menu berdasarkan menu_id Mengambil data menu berdasarkan menu_id Menghapus data menu Mengambil semua data menu type
70
Order_model
Tabel IV.8 Tabel deskripsi order_model
Method __construct get_byrestoid get_byaddressid
Parameter
Deskripsi Mengambil data order berdasarkan resto_id Mengambil data order berdasarkan address_id Menambah data order Mengambil data terakhir order tang terakhir di inputkan Mengupdate data order Mengupdate data order berdasarkan kolom pada table order Mengambil suborder berdasarkan id order yang sesuai
add_order get_lastorder update_order updateorder_byfield getsuborder_byorderid add_suborder getorderbyuserid
Mengambil data order berdasarkan user_id
Resto_model Tabel IV.9 Tabel deskripsi resto_model
Method __construct getAll getByRestoId get_byuserid add update remove getByType editByField drop update_account get_restotypebyid add_restotype update_restotype delete_restotype getAllMenuByRestoId getAllRestotype getByRestotypeId checkRestotype
Parameter
Deskripsi Mengambil seluruh data restoran Mengambil data restoran berdasarkan resto_id Mengambil data restoran berdasarkan user_id Menambah data restoran Mengupdate data restoran Menghapus data restoran Mengambil data berdasarkan type user Melakukan perubahan berdasarkan kolom pada tabel resto Menghapus restoran Mengupdate data account user Mengambil type resto berdasarkan resto_id Menambah data type resto mengupdate data type resto Menghapus data type resto Mengmbil semua data menu berdasarkan resto_id Mengambil semua data type restro Mengambil data type resto berdasarkan restotype_id Mencek nama nama type resto
71
addRestotype getLastRestotypeId
Menambah data type resto Mengambil id dari tipe resto yang dimasukan terakhir Mengambil produk berdasarkan menu id yang sesuai Mengambil data profile dari restoran
get_productbymenuid getprofile
User_model Tabel IV.10 Tabel deskripsi user_model
Method Parameter __construct getAll getByID $email getByEmail getByActivation getLastUser add update editByField remove checkuser cekEmail get_alladmin drop
Deskripsi Mengambil data user yang active Mengambil data user berdasarkan user_id Mengambil data user berdasarkan email_user Mengambil data user berdasarkan user_activationcode Menambah data user Mengupdate data user Menghapus data user Mencek user Mencek email user Mengambil data user type = admin Menghapus user
Controller 1. Admin Tabel IV.11 Tabel deskripsi admin_controller
Method __construct addresto listresto bannedresto homenews homequestion banned
Parameter
Deskripsi Menampilkan halaman untuk menambah restoran Menampilkan daftar restoran Menampilkan banned resto Menampilkan berita Menampilkan form pertanyaan Melakukan pemblokiran user
72
2. Order Tabel IV.12 Tabel deskripsi order_controller
Method __construct additem_process updateitem_process dropitem_process emptycart cartsubmit_process loginorder_process filladdress cartsubmit_success
Parameter
Deskripsi Proses pemambahan barang / item Proses edit barang / item Proses pembatalan item Pengosongan cart item Proses submit cart Proses login bila ingin order suatu produk Menampilkan submit cart sukses
3. Resto Tabel IV.13 Tabel deskripsi resto_controller
Method __construct listresto detailresto addResto viewTypeResto profile home
Parameter
Deskripsi Menampilkan daftar restoran Menampilkan daftar resto secara detail Penambahan data restoran Menampilkan daftar tipe restoran Menampilkan profil dari restoran Menampilakan halaman awal dashboard restoran
4. User Tabel IV.14 Tabel deskripsi user_controller
Method __construct login_process forgetpassword_process changepassword_process signup_process validationaccount_process Login logout forgetpassword forgetpassword_success changepassword
Parameter
Deskripsi Proses login Proses “lupa password” Proses merubah password Proses sign up Proses untuk memvalidasi akun Menampilkan halaman untuk login Menampilkan halaman untuk logout Menampilkan halaman “forget password” Menampilkan halaman sukses saat “forget password” Menampilkan halaman perubahan
73
password Menampilkan halaman sukses saat merubah password Nemanampilkan halaman signup Menampilkan halaman sukses saat signup Menampilkan halaman sukses saat validasi akun
changepassword_success signup signup_success validationaccount_success
5. Welcome
method __construct index
Tabel IV.15 Tabel deskripsi welcome_controller
parameter
Deskripsi
Menampilkan halaman awal/index
6. Administrator customer Tabel IV.16 Tabel deskripsi admin_customer_controller
method __construct All update
parameter
deskripsi Menampilkan seluruh data customer menampilkan halaman untuk merubah data customer Mengubah data customer Menghapus data customer Menampilkan halaman untuk penambahan customer Menampilkan daftar customer Melakukan pemblokiran terhadap pelanggan Melihat histori dari pelanggan Melakukan perubahan terhadap pelanggan
update_process deleted addcustomer listcustomer bannedcustomer historycustomer editcustomer 7. Administrator resto
Tabel IV.17 Tabel deskripsi admin_resto_controller
Method __construct addresto_process editresto_process deleteresto_process addrestotype_process editrestotype_process
Parameter
deskripsi Proses penambahan restoran Proses edit resto Proses delete resto Proses penambahan type resto Proses edit type resto
74
deleterestotype_process addresto Listresto editresto editmenuresto historyresto addtyperesto edittyperesto listtyperesto
Proses delete type resto Halaman untuk penambahan resto Daftar list resto Halaman edit resto Halaman menu edit resto Halaman history resto Halaman pemanbahan type resto Halaman edit type resto Daftar type resto
8. Administrator user Tabel IV.18 Tabel deskripsi admin_user_controller
method __construct all deleted update update_process newUserAdmin newUserAdminProcess
parameter
deskripsi Menampilkan data user Proses hapus data user Halaman edit data user Proses edit data user Halaman untuk admin user baru Proses untuk penambahan admin user yang baru Halaman untuk news Halaman untuk question Mencetak laporan Melihat status pesanan Menampilkan halaman keberhasilan saat menambah user
news question report tracking successnew
9. Customer address Tabel IV.19 Tabel deskripsi customer_address_controller
method __construct all newaddress newaddress_proccess remove update update_proccess updateDefault
parameter
deskripsi Menampilkan seluruh alamat dari pelanggan Halaman untuk address baru Proses penambahan address baru Halaman untuk edit address Proses edit address Merubah pengaturan alamat default pelanggan
75
10. Customer manage Tabel IV.20 Tabel deskripsi customer_manage_controller
Method __construc updateorderstatus_process
Parameter
deskripsi Melakukan proses perubahan status pesanan Menampilkan profil dari pelanggan Mengupdate profil dari pelanggan Melihat data akun pelanggan Melakukan proses perubahan terhadap akun pelanggan Melihat histori pemesanan Melakukan penandann terhadap restoran dan menu Melihat alamat dari pelanggan Menghapus alamat dari pelanggan Menambah alamat baru pelanggan Menampilkan halaman awal dari dashboard pelanggan
profile updateprofile_process account updateaccount_process history bookmark address addressempty addaddress home 11. Customer order
Tabel IV.21 Tabel deskripsi customer_order_controller
method __construct all
parameter
Deskripsi Melihat seluruh pesanan
12. Restoadmin manage Tabel IV.22Tabel deskripsi restoadmin_manage_controller
Method __construct updatestatus_process profile account account_process update_process menu Home orderresto
parameter
deskripsi Melakukan perubahan status pemesanan Melihat profil dari restoran Melihat akun dari restoran Melakukan perubahan akun restoran Melakukan perubahan profil dari restoran Melihat daftar menu Menampilkan halaman awal dari dashboard restoran Melihat data pesanan
76
13. Restoadmin menu Tabel IV.23 Tabel deskripsi restoadmin_menu_controller
method __construct newmenu newmenu_proccess
parameter
Deskripsi Menambahkan menu baru Melakukan penambahan menu baru restoran Mengubah menu restoran Melakukan perubahan pada menu restoran Menghapus menu
edit_menu edit_process remove_proccess
C. Activity Diagram 1. Activity Sign In Tabel IV.24 Activity Diagram Sign In user
2. Activity registrasi pelanggan Tabel IV.25 Activity Diagram Sign Up (registrasi) pelanggan
77
3. Activity validasi user Tabel IV.26 Activity Validasi User
78
4. Activity reset password Tabel IV.27 Activity ResetPassword
Activity ini untuk user yang lupa password yang dimiliki. User diminta memasukan email dan kirim. Sistem akan mengirimkan link ubah password ke email yang dimasukan user.
79
5. Activity edit account Tabel IV.28 Activity Edit account
6. Activity edit profile Tabel IV.29 Activity Edit Profile
80
7. Activity add address Tabel IV.30 Activity Add address
8. Activity edit address Tabel IV.31 Activity Edit address
D. Sequence Diagram Sequence Diagram menggambarkan proses yang terjadi di dalam sistem dalam rangkaian waktu. Dimensi vertikal menunjukkan waktu yang berjalan, dilakukan dari atas ke bawah dan dimensi horizontal menunjukkan objek-objek yang terlibat dalam sebuah sistem. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya.
81
1. Sequence untuk Sign In user
Gambar IV.6 Sequence Sign In User
2. Sequence registrasi pelanggan
Gambar IV.7 Sequence Registrasi Pelanggan
3. Sequence validasi user
Gambar IV.8 Sequence Validasi User
82
4. Sequence ubah profil pelanggan
Gambar IV.9 Sequence Ubah Profile Pelanggan
Pada sequence untuk ubah profil pelanggan, data profil pelanggan sudah langsung ditampilkan pada informasi profil, jika pelanggan akan menrubah data profil, cukup merubah isi data yang ada pada field dan simpan. 5. Sequence ubah account pelanggan
Gambar IV.10 Sequence Ubah Account Pelanggan
83
6. Sequence pesanan pelanggan Pada sequence pemesanan atau order, pelanggan diminta memasukan kodepos untuk mencari restoran yang dapat mengantarkan makanan ke tempat yang diinginkan. Setelah mendapat restoran yang diinginkan, pelanggan memilih menu makanan yang di sediakan oleh restoran yang dipilih itu. Makanan yang dipilih akan masuk ke keranjang pesanan, setelah selesain memilih menu dan dipesan, pelanggan akan diminta mengisi form untuk pengantaran pesanan dan pembayaran.
Gambar IV.11 Sequence Pesanan Pelanggan
84
7. Sequence reset password Sequence reset password ini untuk user yang lupa password akun. User memasukan email dan sistem akan mengirimkan email berupa link ke email user untuk password baru. Buka link yang ada di email, akan masuk pada halaman ganti password. Masukan password baru dan email, dan pelanggan dapat menggunakan password dan email baru tersebut untuk dapat masuk sistem.
Gambar IV.12 Sequence Reset Password
4.2.2 Model Data Model data adalah sekumpulan cara / peralatan / tool untuk mendeskripsikan data-data, hubungannya satu sama lain, semantiknya, serta batasan konsistensi. Ada dua model data, yaitu : Entity Relationship Diagram (ERD) dan model relasional. A. Kamus Data Sistem Layanan Pesan Makanan “klikresto.com” Kamus Data Sistem Layanan Pesan Makanan “Klikresto.com” dapat dilihat pada table berikut ini:
85
Tabel IV.32 Kamus Data sistem layanan pesan makanan “klikresto.com”
No
Nama Data
Detail
1
kr_user
user_id + user_password + user_type + user_status + user_email + user_activationcode + user_registered
2
kr_restotype
restotype_id + restotype_name + restotype_desc + restotype_img
3
kr_resto
resto_id + resto_name + resto_desc + resto_init + resto_url + resto_address + resto_phone + resto_city + resto_company + resto_post + resto_schedule + resto_logo + resto_img + resto_deliverycost + resto_mindelivery + restotype_id + user_id
4
kr_menutype menutype_id + menutype_name
5
kr_menu
menu_id + menu_name + menu_status + menu_desc + menu_img + menu_sku + menu_halal + menutype_id + resto_id
6
kr_product
product_id + product_price + product_datestart + menu_id
7
kr_suborder
suborder_id + suborder_qty + product_id + suborder_cost + order_id
8
kr_customer
customer_id + customer_name + customer_dob + customer_pob + customer_gender + customer_phone + user_id
9
kr_address
address_id + address_name + address_detail + address_post + address_city + address_phone + address_default + customer_id
10
kr_order
order_id + order_datetime + order_status + address_id + order_payment + resto_id + order_desc
86
B. Struktur Data dengan Tabel a. Tabel Pengguna 1. Nama Tabel
: kr_user
2. Fungsi
: Menyimpan data-data pengguna
3. Kunci Primer
: user_id
4. Kunci Sekunder
:
5. Struktur Tabel
:
Tabel IV.33 Tabel User sistem layanan pesan makanan
No
Nama Kolom
Tipe Data
Lebar
Keterangan
1
user_id
Integer
11
id dari pengguna bertambah secara otomatis dan digunakan sebagai index kata sandi dari pengguna yang digunakan pada saat melakukan login
2
user_password
Varchar
100
3
user_type
Enum
‘admin’, ’customer’ , ’restoadmi n’
4
user_status
Enum
5
user_email
Varchar
6
user_activationc ode
Varchar
‘active’, status dari pengguna, ‘active’ ‘unconfirm jika pengguna telah melakukan ’, ‘deleted’ aktifasi, ‘unconfirm’ jika pengguna telah mendaftar tapi belum melakukan aktifasi, ‘deleted’ jika admin telah menghapus pengguna 100 alamat email dari pengguna yang digunakan pada saat login 100 kode aktivasi yang akan digunakan untuk aktifasi akun dan pemuliahn kata sandi
tipe dari pengguna sesuai dengan pembagian hak akses
87
No 7
Nama Kolom user_registered
Tipe Data Datetime
Lebar
Keterangan
yyyy-mmdd hh:mm:ss
tanggal dan waktu pada saat pengguna melakukan aktifasi akun
b. Tabel Restoran 1. Nama Tabel
: kr_resto
2. Fungsi
: Menyimpan data-data restoran
3. Kunci Primer
: resto_id
4. Kunci Sekunder
: user_id, restotype_id
5. Struktur Tabel
:
Tabel IV.34 Tabel Restoran sistem layanan pesan makanan
No
Nama Kolom
Tipe Data
Lebar
Keterangan
1
resto_id
Integer
11
id dari restoran bertambah secara otomatis dan digunakan sebagai index
2
resto_name
Varchar
100
nama dari restoran
3
resto_desc
Varchar
255
deskripsi dari restoran
4
resto_init
Varchar
100
inisial yang diberikan kepada setiap restoran
5
resto_url
Varchar
100
alamat url dari halaman web restoran
6
resto_address
Longtext
alamat dari restoran
88
No
Nama Kolom
Tipe Data
Lebar
Keterangan
7
resto_phone
Varchar
100
nomor telepon dari restoran
8
resto_city
Varchar
100
kota tempat restoran
9
resto_company
Varchar
100
nama perusahaan dari restoran
10
resto_post
Varchar/Seriali ze
100
daftar kode pos yang sanggup dilayani oleh restoran
11
resto_schedule
Longtext/Seriali ze
12
resto_logo
Varchar
100
url gambar logo dari restoran
13
resto_img
Varchar
100
url gambar restoran
dari
banner
14
resto_delivercost
Varchar
100
biaya pengiriman pemesanan
untuk
15
resto_mindelivery Varchar
100
minimal total pembayaran dari pemesanan
16
restotype_id
Integer
11
id dari tipe restoran yang merupakan kunci sekunder dari tabel kr_restotype
17
user_id
Integer
11
id dari pengguna yang merupakan kunci sekunder dari tabel kr_user
lokasi
dari
daftar jadwal buka dan tutup dari restoran
89
c. Tabel Pelanggan 1. Nama Tabel
: kr_customer
2. Fungsi
: menyimpan data-data pelanggan
3. Kunci Primer
: customer_id
4. Kunci Sekunder
: user_id
5. Struktur Tabel
:
Tabel IV.35 Tabel Pelanggan sistem layanan pesan makanan
No
Nama Kolom
Tipe Data
Lebar
1
Customer_id
Integer
11
2 3
Customer_name Customer_dob
Varchar Date
4 5
Customer_pob Varchar Customer_gender Enum
6 7
Customer_phone User_id
100 yyyymm-dd 50 ‘male’, ‘female ’ 20 11
Varchar Integer
Keterangan Id dari pelanggan bertambah secara otomatis dan digunakan sebagai index Nama dari pelanggan Tanggal lahir pelanggan Tempat lahir pelanggan Jenis kelamin pelanggan
Nomor telepon pelanggan Id dari pengguna yang merupakan kunci sekunder dari tabel kr_user
d. Tabel Menu Makanan 1. Nama Tabel
: kr_menu
2. Fungsi
: untuk menyimpan data menu
3. Kunci Primer
: menu_id
4. Kunci Sekunder
: menutype_id, resto_id
5. Struktur Tabel
:
90 Tabel IV.36 Tabel Menu Makanan sistem layanan pesan makanan
No Nama Kolom Tipe Data Lebar 1
Menu_id
Integer
11
2 3
Menu_name Menu_status
Varchar 50 Tyninteger 1
4 5 6 7
Menu_desc Menu_img Menu_sku Menu_halal
Varchar Varchar Varchar Tyninteger
225 225 20 1
8
Menutype_id
Integer
11
9
Resto_id
Integer
11
Keterangan Id dari menu bertambah secara otomatis dan dijadikan sebagai index Nama dari menu Status dari menu apakah tersedia atau tidak Deskripsi menu Gambar/foto dari menu Status menu apakah menu halal atau tidak halal Id dari tipe menu yang merupakan kunci sekunder dari tabel kr_menutype Id dari restoran yang merupakan kunci sekunder dari tabel kr_resto
e. Tabel Jenis Restoran 1. Nama Tabel
: kr_restotype
2. Fungsi
: untuk menyimpan data tipe restoran
3. Kunci Primer
: restotype_id
4. Kunci Sekunder
:
5. Struktur Tabel
:
Tabel IV.37 Tabel Jenis Restoran sistem layanan pesan makanan
No
Nama Kolom
Tipe Data
1
Restotype_id
Integer
2 3 4
Restotype_name Varchar Restotype_desc Varchar Restotype_img Varchar
Lebar 11
50 100 100
Keterangan Id dari tipe restoran bertambah secara otomatis dan dijadikan sebagai index Nama dari tipe restoran Deskripsi dari tipe restoran Gambar/foto dari tipe restoran
91
f. Tabel Jenis Menu Makanan 1. Nama Tabel
: kr_menutype
2. Fungsi
: untuk menyimpan sata tipe menu makanan
3. Kunci Primer
: menutype_id
4. Kunci Sekunder
:
5. Struktur Tabel
:
Tabel IV.38 Tabel Jenis Makanan sistem layanan pesan makanan
No 1
Nama Kolom Menutype_id
Tipe Data
Lebar
Integer
11
Keterangan Id dari tipe menu bertambah secara otomatis dan dijadikan sebagai index
2
Menutype_name varchar
255
Nama dari tipe menu
g. Tabel Alamat Pelanggan 1. Nama Tabel
: kr_address
2. Fungsi
: untuk menyimpan data alamat
3. Kunci Primer
: address_id
4. Kunci Sekunder
: customer_id
5. Struktur Tabel
:
Tabel IV.39 Tabel Alamat Pelanggan sistem layanan pesan makanan
No
Nama Kolom
Tipe Data Lebar
1
Address_id
Integer
11
2 3 4 5
Address_name Address_detail Address_post Address_city
Varchar Varchar Varchar Varchar
100 225 10 100
Keterangan Id dari alamat bertambah secara otomatis dan dijadikan sebagai index Nama dari alamat Detail dari alamat Kodepos dari alamat Kota dari alamat
92
No
Nama Kolom
Tipe Data Lebar
6 7
Address_phone Varchar 20 Address_default Tyninteger 1
8
Customer_id
Integer
11
Keterangan No telepon dari alamat Pilihan apakah alamat yang dipilih akan dijadikan sebagai alamat default ketika pemesanan atau tidak Id dari pelanggan yang merupakan kunci sekunder dari tabel kr_customer
h. Tabel Produk
No
1. Nama Tabel
: kr_product
2. Fungsi
: untuk menyimpan data produk
3. Kunci Primer
: product_id
4. Kunci Sekunder
: menu_id
5. Struktur Tabel
:
Nama Kolom
Tabel IV.40 Tabel produk
Tipe Data
1
Product_id
Integer
2 3
Product_price Varchar Product_datestart Date
4
Menu_id
Integer
Lebar 11 100 yyyymm-dd 11
Keterangan Id dari produk bertambah dijadikan sebagai index Harga dari produk Tanggal mulai produk berlaku
dan
Id dari menu yang merupakan kunci sekunder dari tabel kr_menu
i. Tabel Sub-pemesanan 1. Nama Tabel
: kr_suborder
2. Fungsi
: untuk menyimpan data-data sub-pemesanan
3. Kunci Primer
: suborder_id
4. Kunci Sekunder
: product_id, order_id
5. Struktur Tabel
:
93 Tabel IV.41 Sub-Pemesanan
No Nama Kolom Tipe Data Lebar 1
Suborder_id
Integer
11
2
Suborder_qty
Tyninteger 4
3
Product_id
Integer
11
4
Order_id
Integer
11
Keterangan Id dari sub-pemesanan bertambah secara otomatis dan dijadikan sebagai index Jumlah barang yang di order untuk satu jenis produk Id dari produk yang merupakan kunci sekunder dari tabel kr_product Id dari order/pemesanan yang merupakan kunci sekunder dari tabel kr_order
j. Tabel Pemesanan 1. Nama Tabel
: kr_order
2. Fungsi
: untuk menyimpan data-data pesanan/order
3. Kunci Primer
: order_id
4. Kunci Sekunder
: address_id, resto_id
5. Struktur Tabel
:
Tabel IV.42 Tabel Pemesanan Layanan pesan makanan
No Nama Kolom Order_id 1
Tipe Data Integer
Lebar 11
2
Order_datetime Datetime
3
Order_status
4
Order_payment Enum
5 6
Order_desc Address_id
Varchar Integer
yyyy-mmdd hh:mm:ss ‘ordered’, ’processed’, ‘delivered’ ,’rejected’ ,’canceled’ ‘COD’, ’transfer’ 500 11
7
Resto_id
Integer
11
enum
Keterangan Id dari order/pemesanan bertambah secara otomatis dan dijadikan sebagai index Data tanggal dan waktu pemesanan Status pesanan apakan sedang di pesan, di proses, diantar atau bisa dibatalkan
Cara pembayaran pesanan Deskripsi pesanan Id dari alamat yang merupakan kunci sekunder dari tabel kr_address Id dari restoran yang merupakan kunci sekunder dari tabel kr_resto
94
C. Entitas, Relasi dan Kardinalitas Entitas utama yang terdapat pada sistem ini adalah : 1. Administrator 2. Restaurant 3. Customer 4. Menu 5. Address 6. Product 7. Suborder Dan entitas pelengkap : 8. Resto Type 9. Menu Type 10. Order Berikut matrik relasi dari entitas-entitas diatas : Tabel IV.43 Tabel matrik relasi dari entitas
Administrator
Administrator
Restaurant
Customer
mengatur
mengatur
Restaurant
diatur
memiliki
Customer
diatur
dimiliki
Menu
Suborder
Address
memiliki
memiliki
dimiliki
Address Product
Menu
Product
Suborder
memiliki
memiliki
memilih
memiliki
dimiliki dimiliki
dimilki
dipilih
dimiliki
dimilki
memiliki
dimiliki memiliki
95
Tabel IV.44 Tabel matrik relasi dari entitas-entitas Restaurant
Restaurant
Resto Type
Menu
Resto Type
Menu
memiliki
memiliki
Suborder
Order
memiliki
dimiliki
memiliki
dimiliki
Menu Type
Suborder
Menu Type
dimiliki
dimiliki
Order
dimiliki
memiliki
Dari kasus yang ada berdasarkan persetujuan manajer proyek dari instansi terdapat beberapa kardinalitas penting terhadap entitas-entitas yang ada, yaitu : 1. Satu administrator diberi hak mengatur seluruh pelanggan dan restoran (one to many) 2. Satu restoran dapat memiliki banyak menu makanan (one to many) 3. Satu pelanggan dapat memiliki banyak alamat (one to many) 4. Dalam satu suborder hanya terdapat satu jenis produk (one to one) 5. Dalam satu suborder hanya terdapat satu restoran terkait (one to one) 6. Dalam satu suborder hanya terdapat satu pelanggan terkait (one to one) 7. Dalam satu buah order terdapat banyak suborder (one to many)
96
D. Class Diagram database
Gambar IV.13 Class Diagram system
97
E. Model ERD atau Conceptual Data Model (CDM)
Gambar IV.14 Model ERD atau conceptual data model
98
F. Model Relasional atau Physical Data Model (PDM)
Gambar IV.15 Model Relational atau physical data model
Pada pembangunan database website ini Persistance object menggunakan model data relational.
4.3 Perancangan Antar Muka Sistem Pelayanan Pesan Makanan “klikresto.com”
Gambar IV.16 Desain awal halaman index/home
Gambar IV.17 Desain awal halaman sign in
99
Gambar IV.19 Desain awal halaman daftar restoran Gambar IV.18 Desain awal halaman registrasi pelanggan
Gambar IV.20 Desain awal halaman daftar
Gambar IV.21 Desain awal halaman
makanan
pengisian keranjang
100
Gambar IV.22 Desain awal halaman pemilihan alamat pengiriman
Gambar IV.23 Desain awal halaman reset password
Gambar IV.24 Desain awal halaman perubahan konten about
Gambar IV.25 Desain awal halaman pengiriman pertanyaan
Gambar IV.26 Desain awal halaman daftar pertanyaan (admin)
Gambar IV.27 Desain awal halaman daftar pelanggan(admin)
101
Gambar IV.28 Desain awal selesaikan pesanan
Gambar IV.30 Desain awal halaman edit profil pelanggan
Gambar IV.29 Desain awal halaman profil pelanggan
Gambar IV.31 Desain awal halaman tracking pelanggan
102
Gambar IV.32 Desain awal halaman profil restoran
Gambar IV.34 Desain awal halaman laporan harian restoran
Gambar IV.33 Desain awal halaman edit profil restoran
Gambar IV.35 Desain awal halaman tracking restoran