BAB 3
METODOLOGI PENELITIAN
3.1 Metodologi Penelitian
Berikut metodologi yang akan digunakan pada penelitian ini:
1. Pengumpulan Data (a) Survei
Metode pertama yang digunakan untuk mengumpulkan data dalam penelitian ini adalah survei. Survei dilakukan dengan tujuan untuk mengidentifikasi permasalahan yang sering terjadi di kantin UMN.
Sasaran dari survei ini adalah mahasiswa UMN yang merupakan pengguna kantin. Dalam survei, kuesioner dalam bentuk google form akan digunakan untuk mengumpulkan data yang berkaitan dengan masalah-masalah yang dialami pada kantin.
(b) Wawancara
Metode selanjutnya yang digunakan pada pengumpulan data di penelitian ini adalah wawancara. Wawancara dilakukan untuk mengidentifikasi masalah yang ada pada kantin secara mendalam.
Narasumber dari wawancara ini adalah penjual kantin. Narasumber akan diberi pertanyaan seputar masalah-masalah yang terjadi di kantin.
2. Telaah Literatur
Setelah masalah teridentifikasi, akan dilakukan studi literatur untuk mencari informasi mengenai metode atau algoritma yang akan diimplementasikan dalam penelitian ini guna memecahkan masalah yang dihadapi. Beberapa sumber informasi yang akan digunakan sebagai acuan dalam telaah literatur meliputi jurnal, buku, karya tulis ilmiah, serta sumber kredibel lainnya.
Setelah telaah literatur dilakukan, maka akan dipilih metode atau algoritma yang paling sesuai untuk penelitian ini.
3. Perancangan Sistem
Tahapan pertama yang akan dilakukan pada perancangan sistem adalah menentukan requirement sistem. Requirement yang akan ditentukan antara
lain adalah fitur, kompleksitas, dan alur sistem. Setelahrequirement berhasil dibuat, maka akan masuk ke tahap selanjutnya seperti pembuatan data flow diagram (DFD), entity relationship diagram (ERD), skema database, flowchart, struktur response, dan endpoint diagram.
4. Implementasi
Setelah tahapan perancangan sistem selesai dilakukan, maka akan dilanjutkan dengan proses pengkodean sistem menggunakan spesifikasi sistem yang telah dipaparkan sebelumnya.s
5. Pengujian Sistem
Pengujian sistem dilakukan untuk mengukur seberapa baik sistem ini berjalan. Metode yang akan digunakan adalahUsability Testing. Tujuan dari pengujian sistem adalah untuk mengevaluasi tingkat ketergunaan dari sistem pemesanan kantinonline.
6. Evaluasi dan Perbaikan
Berdasarkan hasil pengujian yang telah dilakukan, proses evaluasi akan dilakukan guna melakukan validasi terhadap hasil pengujian. Apabila terdapat kesalahan yang ditemukan pada tahapan pengujian, maka akan dilakukan perbaikan untuk meningkatkan fungsionalitas sistem ini.
7. Penulisan Laporan dan Konsultasi
Setelah semua proses penelitian selesai dilakukan, langkah selanjutnya adalah menulis laporan. Laporan tersebut akan memuat dokumentasi terkait proses pengerjaan penelitian. Jika terdapat kesalahan dalam tata cara penulisan atau tidak sesuai dengan prosedur yang ditentukan, maka peneliti akan berkonsultasi dengan dosen pembimbing untuk melakukan revisi.
3.2 Proses Bisnis
Gambar 3.1. Proses Bisnis Sistem Pemesanan KantinOnline
Gambar 3.1 adalah flowchart yang menggambarkan proses bisnis dari sistem pemesanan kantin online. Proses ini dimulai dengan langkah login oleh customer. Setelah login, customer dapat melihat daftar tenant atau menu yang tersedia. Kemudian, customer dapat memilih menu dari salah satu tenant dan menambahkannya ke dalam keranjang (cart). Setelah selesai memilih menu, customer dapat melakukan pemesanan melalui cart yang telah dipilih. Jika saldo
customer mencukupi, pesanan tersebut akan diterima oleh tenant. Selanjutnya, tenant akan menentukan apakah akan menerima pesanan atau tidak. Jika pesanan diterima, tenantakan mempersiapkan pesanan tersebut. Setelah persiapan selesai, tenant akan memberitahukan bahwa pesanan telah siap untuk diambil. Customer akan mengambil pesanan tersebut dantenantakan menyatakan bahwa pesanan telah selesai.
3.3 Data Flow Diagram
Gambar 3.2. Data Flow Diagram Level 0
Gambar 3.2 adalah gambar dari Data Flow Diagram level 0. Data Flow Diagram level 0 ini menjelaskan bagaimana alur utama dari sistem yang dibuat.
Terdapat tigaentitypada sistem pemesanan kantinonlineini, yaitucustomer,tenant, danadmin. Customer akan melakukan pemesanan, selanjutnya pihak tenantakan memproses pesanan tersebut. Sedangkan admin disini akan mengontrol datamenu dantenant.
Gambar 3.3. Data Flow Diagram Level 1
Pada Data FLow Diagram level 1 yang ditunjukkan pada Gambar 3.3 menjelaskan lebih detail pada sistem pemesanan kantin online ini. Terdapat lima proses yang terjadi, yaitu Find Menu & Tenant, Manage Cart, Manage Order, Manage Menu, dan Manage Customer & Tenant. Find Menu & Tenant adalah proses yang terjadi ketika customer ingin mencari menu atau tenant tertentu.
Manage Cart adalah proses yang terjadi ketika customer ingin mengatur cart miliknya, seperti mengurangi jumlah menu yang dipesan atau menghapus menu yang dipesan. Manage Order adalah proses yang terjadi ketika customer ingin mengaturorder miliknya, seperti membatalkan order atau mengkonfirmasi order.
Manage Menuadalah proses yang terjadi ketika tenantingin mengaturmenuyang tersedia, seperti menambahkanmenuatau menghapusmenu. Manage Customer &
Tenantadalah proses yang terjadi ketikaadminingin mengaturcustomerdantenant, seperti menambahkancustomeratau menghapustenant.
Berikut gambar di atas yakni Gambar 3.2 dan Gambar 3.3 adalahdata flow diagram dari sistem pemesanan kantin online ini.
3.4 Daftar Endpoint
Tabel 3.1. DaftarEndpointREST API KantinOnline
No Endpoint HTTP Method Keterangan /account
1 /login POST Login All User
2 /register POST Register Customer
3 /confirm GET Confirm Customer Account
4 /validate-token GET Check Access Token Validity 5 /request-reset-password POST Request Reset Password
6 /reset-password POST Reset Password
/tenant
7 / GET Get All Tenants
8 /:id GET Get Detail Tenant
9 /dashboard GET Get Tenant Dashboard
10 /profile GET Get Tenant Profile
11 /review GET Get All Tenant Review
12 /profile PUT Edit Tenant Profile
13 /profile-image PUT Edit Tenant Profile Image 14 /change-password PUT Change Tenant Password /admin
15 /tenant/register POST Register Tenant
16 /tenant GET Get All Tenants
17 /tenant/:id GET Get Detail Tenant
18 /tenant/:id PUT Edit Tenant
19 /tenant/:id DELETE Delete Tenant
20 /customer GET Get All Customers
21 /customer/:id GET Get Detail Customer
22 /order GET Get All Orders
23 /menu GET Get All Menus
24 /menu/:id PUT Edit Menu
25 /menu/:id DELETE Delete Menu
customer
26 /profile GET Get Customer Profile
27 /balance POST Update Customer Balance
Continue to the next page
No Endpoint HTTP Method Keterangan
28 /profile PUT Edit Customer Profile
29 /profile-image PUT Edit Customer Profile Image 30 /change-password PUT Change Customer Password /menu
31 /:id GET Get Detail Menu
32 / POST Add Menu
33 /:id PUT Edit Menu
34 /:id DELETE Delete Menu
35 /category POST Add Category
36 /category GET Get All Category
37 /category/:category id PUT Edit Category 38 /category/:category id DELETE Delete Category /order
39 / GET Get All Order
40 /: id GET Get Single Order
41 /create POST Create Order
42 /confirm/: id PATCH Confirm Order
43 /reject/: id PATCH Reject Order
44 /ready/: id PATCH Serve Order
45 /complete/: id PATCH Finish Order
46 /on-progress GET Get All On Progress Order
47 /review/: id POST Add Order Review
/:root
48 /search GET Search Menu & Tenant
49 /random-menu GET Get Random Menu
50 /random-tenant GET Get Random Tenant
Tabel 3.1 menunjukkan daftar endpoint yang ada pada REST API sistem pemesanan kantin online. Rest api in dikelompokkan ke dalam 7 bagian utama, yaitu account, tenant, admin, customer, menu, order, dan root. Setiap endpoint memiliki fungsi yang berbeda-beda. Berikut detailnya
• Account
Endpoint ini berfungsi untuk mengelola fungsi yang berkaitan dengan
autentikasi akun. Misalnya seperti login, register, reset password, dan lain- lain.
• Tenant
Endpoint ini berfungsi untuk mengelola fungsi yang berkaitan dengan akun tenant. Misalnya seperti edit profile, edit profile image, edit password, dan lain-lain.
• Admin
Endpoint ini berfungsi untuk mengelola fungsi yang berkaitan dengan akun admin. Endpointini adalahendpointdengan level akses tertinggi. Misalnya sepertiregister tenant,edit tenant, hingga bahkandelete tenant.
• Customer
Endpoint ini berfungsi untuk mengelola fungsi yang berkaitan dengan akun customer. Misalnya sepertiedit profile,edit profile image,edit password, dan lain-lain.
• Menu
Endpointini berfungsi untuk mengelola fungsi yang berkaitan dengan menu.
Misalnya seperti add menu, edit menu, delete menu, add category, edit category, dan lain-lain.
• Order
Endpoint ini berfungsi untuk mengelola fungsi yang berkaitan dengan pesanan. Misalnya seperticreate order,confirm order,reject order, dan lain- lain.
• Root
Endpoint ini adalah endpoint terluar yang berfungsi untuk fitur-fitur yang dapat diakses oleh semua pengguna. Misalnya seperti search menu, get random menu,get random tenant, dan lain-lain.
3.5 Skema Database
Gambar 3.4 di bawah ini adalah skema dari database sistem pemesanan kantin online. Terdapat 7 tabel utama pada skema tersebut. Tabel customer berfungsi untuk menyimpan data customer. Tabel tenant berfungsi untuk menyimpan datatenant. Tabel menu berfungsi untuk menyimpan
Gambar 3.4. Skema Database 3.6 Struktur Database
Berikut merupakan struktur database dari setiap tabel yang digunakan pada sistem pemesanan kantinonline.
Tabel 3.2 di bawah ini merupakan struktur tabel yang untuk menyimpan data tenant. Terdapat 12 kolom yang digunakan untuk menyimpan data tenant. Kolom-kolom tersebut antara lain adalah, id tenant merupakan primary key yang digunakan untuk mengidentifikasi setiap tenant, kolom email digunakan untuk menyimpan email, kolom full name digunakan untuk menyimpan nama lengkap, kolom password digunakan untuk menyimpan password, kolom description digunakan untuk menyimpan deskripsi, kolom location digunakan untuk menyimpan lokasi, kolom profile image digunakan untuk menyimpan foto, kolom balance digunakan untuk menyimpan saldo, kolom reset password token digunakan untuk menyimpan token reset password, kolom is deleted digunakan untuk menyimpan status, kolom created at digunakan untuk menyimpan tanggal dibuat, dan kolom updated at digunakan untuk menyimpan tanggal diperbarui.
3.6.1 Struktur Tabel Tenant
Tabel 3.2. Struktur Tabel Tenant
Nama Kolom Tipe Data Keterangan
id (PK) String ID tenant
email String Email tenant
full name String Nama lengkap tenant
password String Password tenant
description String Deskripsi tenant
location String Lokasi tenant
profile image String Foto tenant
balance Number Saldo tenant
reset password token String Token reset password tenant is deleted Boolean Status tenant (aktif/nonaktif) created at Timestamps Tanggal dibuat
updated at Timestamps Tanggal diperbarui 3.6.2 Struktur Tabel Customer
Tabel 3.3. Struktur Tabel Customer
Nama Kolom Tipe Data Keterangan
id (PK) String ID customer
full name String Nama lengkap customer
email String Email customer
password String Password customer
profile image String Foto profil customer
balance Number Saldo customer
confirmed Boolean Status akun customer
confirmation token String Token konfirmasi akun customer reset password token String Token reset password customer created at Timestamps Tanggal dibuat
updated at Timestamps Tanggal diperbarui
Tabel 3.3 merupakan struktur tabel yang digunakan untuk menyimpan data customer. Terdapat 11 kolom yang digunakan untuk menyimpan data customer.
Kolom-kolom tersebut antara lain adalah, id customer merupakan primary key yang digunakan untuk mengidentifikasi setiap customer, kolom full name digunakan untuk menyimpan nama lengkap, kolom email digunakan untuk menyimpan email, kolom password digunakan untuk menyimpan password, kolom profile image digunakan untuk menyimpan foto profil, kolom balance digunakan untuk menyimpan saldo, kolom confirmed digunakan untuk menyimpan status akun, kolom confirmation token digunakan untuk menyimpan token konfirmasi akun, kolom reset password token digunakan untuk menyimpan token reset password, kolom created at digunakan untuk menyimpan tanggal dibuat, dan kolom updated at digunakan untuk menyimpan tanggal diperbarui.
3.6.3 Struktur Tabel Order
Tabel 3.4. Struktur Tabel Order
Nama Kolom Tipe Data Keterangan
id (PK) String ID order
customer id (Fk) String Referensi ke Tabel Customer tenant id (FK) String Referensi ke Tabel Tenant review id (FK) String Referensi ke Tabel Review
items Array Menu-menu yang dipesan
progress Object Progress order
status String Status order
total price Number Total harga order
total prep duration Number Total durasi persiapan order created at Timestamps Tanggal dibuat
updated at Timestamps Tanggal diperbarui
Tabel 3.4 merupakan struktur tabel yang digunakan untuk menyimpan data order dari customer. Terdapat 12 kolom yang digunakan untuk menyimpan data order. Kolom-kolom tersebut antara lain adalah, id order merupakan primary key yang digunakan untuk mengidentifikasi setiap order, kolom customer id digunakan untuk menyimpan ID customer yang melakukanorder, kolom tenant id digunakan untuk menyimpan ID tenant yang menerima order, kolom review id
digunakan untuk menyimpan ID review yang diberikan oleh customer, kolom items digunakan untuk menyimpan menu-menu yang dipesan, kolom progress digunakan untuk menyimpan progress order, kolom status digunakan untuk menyimpan status order, kolom total price digunakan untuk menyimpan total harga order, kolom total prep duration digunakan untuk menyimpan total durasi persiapan order, kolom created at digunakan untuk menyimpan tanggal dibuat, dan kolom updated at digunakan untuk menyimpan tanggal diperbarui.
Tabel 3.5. Struktur Kolom Items Order (Array)
Nama Kolom Tipe Data Keterangan
menu id (FK) String Referensi ke Tabel Menu quantity Number Jumlah menu yang dipesan
price Number Harga menu
Tabel 3.5 merupakan struktur kolom yang digunakan untuk menyimpan data menu-menu yang dipesan dari tabel order. Terdapat 3 kolom yang digunakan untuk menyimpan data menu-menu yang dipesan. Kolom-kolom tersebut antara lain adalah, menu id digunakan untuk menyimpan ID menu yang dipesan, kolom quantity digunakan untuk menyimpan jumlah menu yang dipesan, dan kolom price digunakan untuk menyimpan harga menu yang dipesan.
Tabel 3.6. Struktur Progress Order (Object)
Nama Kolom Tipe Data Keterangan
created Timestamps Tanggal waktu order dibuat
preparing Timestamps Tanggal waktu order mulai dipersiapkan ready Timestamps Tanggal waktu order siap diambil completed Timestamps Tanggal waktu order diambil rejected Timestamps Tanggal waktu order dibatalkan
Tabel 3.6 merupakan struktur kolom yang digunakan untuk menyimpan data progress dari tabel order. Terdapat 5 kolom yang digunakan untuk menyimpan data progress dari tabel order. Kolom-kolom tersebut antara lain adalah, kolom created digunakan untuk menyimpan tanggal waktuorderdibuat, kolom preparing digunakan untuk menyimpan tanggal waktuordermulai dipersiapkan, kolom ready digunakan untuk menyimpan tanggal waktuorder siap diambil, kolom completed
digunakan untuk menyimpan tanggal waktu order diambil, dan kolom rejected digunakan untuk menyimpan tanggal waktuorderdibatalkan.
3.6.4 Struktur Tabel Menu
Tabel 3.7. Struktur Tabel Menu
Nama Kolom Tipe Data Keterangan
id (PK) String ID menu
tenant id (FK) String Referensi ke Tabel Tenant category id (FK) String Referensi ke Tabel Category
title String Nama menu
description String Deskripsi menu
price Number Harga menu
image String Foto menu
prep duration Number Estimasi durasi persiapan menu untuk 1 item is deleted Boolean Status menu (aktif/nonaktif)
is available Boolean Status menu (tersedia/habis) created at Timestamps Tanggal dibuat
updated at Timestamps Tanggal diperbarui
Tabel 3.7 merupakan struktur tabel yang digunakan untuk menyimpan data menu . Terdapat 12 kolom yang digunakan untuk menyimpan data menu. Kolom- kolom tersebut antara lain adalah, id menu merupakanprimary keyyang digunakan untuk mengidentifikasi setiap menu, kolom tenant id digunakan untuk menyimpan ID tenant yang memiliki menu, kolom category id digunakan untuk menyimpan ID kategori menu, kolom title digunakan untuk menyimpan nama menu, kolom description digunakan untuk menyimpan deskripsi menu, kolom price digunakan untuk menyimpan harga menu, kolom image digunakan untuk menyimpan foto menu, kolom prep duration digunakan untuk menyimpan estimasi durasi persiapan menu untuk 1 item, kolom is deleted digunakan untuk menyimpan status menu (aktif/nonaktif), kolom is available digunakan untuk menyimpan status menu (tersedia/habis), kolom created at digunakan untuk menyimpan tanggal dibuat dari menu, dan kolom updated at digunakan untuk menyimpan tanggal diperbarui dari menu.
3.6.5 Struktur Tabel Review
Tabel 3.8. Struktur Tabel Review
Nama Kolom Tipe Data Keterangan
id (PK) String ID review
customer id (FK) String Referensi ke Tabel Customer tenant id (FK) String Referensi ke Tabel Tenant
rating Integer Rating review
content String Komentar review
created at Timestamps Tanggal dibuat
Tabel 3.8 merupakan struktur tabel yang digunakan untuk menyimpan data review dari customer. Terdapat 6 kolom yang digunakan untuk menyimpan data review. Kolom-kolom tersebut antara lain adalah, id review merupakan primary key yang digunakan untuk mengidentifikasi setiap review, kolom customer id digunakan untuk menyimpan ID customer yang memberikan review, kolom tenant id digunakan untuk menyimpan ID tenant yang diberikan review, kolom rating digunakan untuk menyimpan ratingreview, kolom content digunakan untuk menyimpan komentar review, dan kolom created at digunakan untuk menyimpan tanggal dibuat darireview.
3.6.6 Struktur Tabel Menu Category
Tabel 3.9. Struktur Tabel Menu Category
Nama Kolom Tipe Data Keterangan id (PK) String ID menu category
tenant id (FK) String Referensi ke Tabel Tenant
title String Nama menu category
description String Deskripsi menu category created at Timestamps Tanggal dibuat
updated at Timestamps Tanggal diperbarui
Tabel 3.9 adalah struktur tabel yang digunakan untuk menyimpan data kategori menu. Terdapat 6 kolom yang digunakan untuk menyimpan data kategori
menu. Kolom-kolom tersebut antara lain adalah, id menu category merupakan primary key yang digunakan untuk mengidentifikasi setiap kategori menu, kolom tenant id digunakan untuk menyimpan ID tenant yang memiliki kategori menu, kolom title digunakan untuk menyimpan nama kategori menu, kolom description digunakan untuk menyimpan deskripsi kategori menu, kolom created at digunakan untuk menyimpan tanggal dibuat dari kategori menu, dan kolom updated at digunakan untuk menyimpan tanggal diperbarui dari kategori menu.
3.6.7 Struktur Tabel Cart
Tabel 3.10. Struktur Tabel Cart
Nama Kolom Tipe Data Keterangan
id (PK) String ID cart
customer id (FK) String Referensi ke Tabel Customer tenant id (FK) String Referensi ke Tabel Tenant
items Array Menu-menu yang dipesan
created at Timestamps Tanggal dibuat updated at Timestamps Tanggal diperbarui
Tabel 3.10 merupakan struktur tabel yang digunakan untuk menyimpan data cart dari customer. Terdapat 6 kolom yang digunakan untuk menyimpan data cart. Kolom-kolom tersebut antara lain adalah, id cart merupakan primary key yang digunakan untuk mengidentifikasi setiap cart, kolom customer id digunakan untuk menyimpan ID customer yang memiliki cart, kolom tenant id digunakan untuk menyimpan ID tenant yang memilikicart, kolom items digunakan untuk menyimpan menu-menu yang dipesan, kolom created at digunakan untuk menyimpan tanggal dibuat dari cart, dan kolom updated at digunakan untuk menyimpan tanggal diperbarui daricart.
Tabel 3.11. Struktur Kolom ItemsCart(Array)
Nama Kolom Tipe Data Keterangan id (PK) String ID items cart
menu id (FK) String Referensi ke Tabel Menu quantity Number Jumlah menu yang dipesan
Tabel 3.11 merupakan struktur kolom yang digunakan untuk menyimpan data menu-menu yang dipesan. Terdapat 3 kolom yang digunakan untuk menyimpan data menu-menu yang dipesan. Kolom-kolom tersebut antara lain adalah, id items cart merupakan primary key yang digunakan untuk mengidentifikasi setiap items cart, kolom menu id digunakan untuk menyimpan ID menu yang dipesan, dan kolom quantity digunakan untuk menyimpan jumlah menu yang dipesan.
3.7 Flowchart
Berikut merupakan flowchart yang digunakan pada sistem pemesanan kantin online.
3.7.1 Flowchart Login User
Gambar 3.5. Flowchart Login
Gambar 3.5 adalah alur proses yang dilakukan saat user melakukanlogin.
Server akan menerima data berupa email dan password. Selanjutnya data tersebut akan dicocokan ke tiga jenis user sekaligus. Apabila terdapat data yang cocok dengan data yang ada didatabase, makaserverakan mengirimkanresponseberupa credentialyang akan digunakan untuk mengaksesAPI lainnya. Apabila data tidak cocok, makaserverakan mengirimkanresponse error.
3.7.2 Flowchart Register Customer
Gambar 3.6. Flowchart Register Customer
Gambar 3.6 adalah alur proses yang dilakukan saat user melakukan registrasi sebagaicustomer. Serverakan menerima data berupa nama, email, dan password.
Sebelum data disimpan ke database, akan dilakukan pengecekkan terkait apakah email yang dimasukkan sudah terdaftar atau belum. Apabila email sudah terdaftar, maka server akan mengirimkan response error. Apabila email belum terdaftar, maka data akan disimpan ke database dan dilanjutkan dengan menjalankan pengiriman email kecustomeryang berisilinkuntuk melakukan verifikasi akun.
3.7.3 Flowchart Create Order (Customer)
Gambar 3.7. Flowchart Create Order (Customer)
Gambar 3.7 adalah alur proses yang dilakukan saat customer melakukan pemesanan. Server akan menerima data berupa credential dan cart id. Sebelum data disimpan kedatabase, akan dilakukan pengecekkan terkait apakahtenantyang dipilih oleh customer masih menerima pesanan atau tidak. Apabila tenant tidak menerima pesanan, makaserverakan mengirimkanresponse error. Apabilatenant masih menerima pesanan, maka data akan disimpan kedatabase. Selanjutnya saldo customerakan dikurangi sesuai dengan total harga pesanan. Apabila saldocustomer tidak mencukupi, maka server akan mengirimkan response error. Apabila saldo customermencukupi, maka data akan disimpan kedatabasedan dilanjutkan dengan menjalankan prosesauto reject order dengan durasi 10 menit.
3.7.4 Flowchart Confirm Order (Tenant)
Gambar 3.8. Flowchart Confirm Order (Tenant)
Gambar 3.8 adalah alur proses yang dilakukan saat tenant melakukan konfirmasi pesanan. Server akan menerima data berupa credential dan order id.
Sebelum data disimpan kedatabase, akan dilakukan pengecekkan terkait dataorder ada atau tidak. Apabila data order tidak ada, maka server akan mengirimkan response error. Apabila data order ada, maka data akan disimpan ke database dengan status ”preparing”. Laluauto reject orderakan dihentikan.
3.7.5 Flowchart Ready Order (Tenant)
Gambar 3.9. Flowchart Ready Order (Tenant)
Gambar 3.9 adalah alur proses yang dilakukan saat tenant melakukan konfirmasi pesanan telah siap. Server akan menerima data berupa credential dan order id. Sebelum data disimpan ke database, akan dilakukan pengecekkan terkait data order ada atau tidak. Apabila data order tidak ada, maka serverakan mengirimkanresponse error. Apabila data orderada, maka data akan disimpan ke databasedengan status ”ready”.
3.7.6 Flowchart Complete Order (Tenant)
Gambar 3.10. Flowchart Complete Order (Tenant)
Gambar 3.10 adalah alur proses yang dilakukan saat tenant melakukan konfirmasi pesanan telah selesai. Server akan menerima data berupa credential dan order id. Sebelum data disimpan ke database, akan dilakukan pengecekkan terkait data order ada atau tidak. Apabila data order tidak ada, maka serverakan mengirimkanresponse error. Apabila data orderada, maka data akan disimpan ke databasedengan status ”completed”.
3.7.7 Flowchart Reject Order (Tenant)
Gambar 3.11. Flowchart Reject Order (Tenant)
Gambar 3.11 adalah alur proses yang dilakukan saattenant ingin menolak pesanan yang masuk. Serverakan menerima data berupacredential danorder id.
Sebelum data disimpan kedatabase, akan dilakukan pengecekkan terkait dataorder ada atau tidak. Apabila data order tidak ada, maka server akan mengirimkan response error. Apabila data order ada, maka data akan disimpan ke database dengan status ”rejected”.
3.7.8 Flowchart Order
Gambar 3.12. Flowchart List Order On Progress (Tenant)
Gambar 3.13. Flowchart List Order History
Gambar 3.12 merupakan alur proses yang dilakukan saat tenant ingin melihat daftar pesanan yang sedang berjalan. Terdapat proses switching atau perpindahan algoritma yang bergantung pada jumlah pesanan yang berjalan saat ini. Apabila jumlah pesanan yang sedang berjalan mencapai lebih dari 3, maka algoritma yang digunakan adalah SJF, dan jika jumlah pesanan yang berjalan tidak lebih dari 3, maka algoritma yang digunakan adalah FCFS [16].
Sedangkan Gambar 3.13 adalah alur proses yang dilakukan saat customer ingin melihat seluruh daftar pesanan yang ada.
3.7.9 Flowchart Algoritma FCFS
Gambar 3.14. Flowchart Algoritma FCFS
Gambar 3.14 merupakan alur proses yang dilakukan saat tenant ingin melihat daftar pesanan yang sedang berjalan dengan menggunakan algoritma FCFS.
Server akan mengambil data dari database berupa daftar pesanan yang sedang
berjalan. Selanjutnya server akan mengirimkan response berupa daftar pesanan yang telah diproses menggunakan algoritma FCFS.
3.7.10 Flowchart Algoritma SJF
Gambar 3.15. Flowchart Algoritma SJF
Gambar 3.15 merupakan alur proses yang dilakukan saat tenant ingin melihat daftar pesanan yang sedang berjalan dengan menggunakan algoritma SJF.
Server akan mengambil data dari database berupa daftar pesanan yang sedang berjalan. Selanjutnya server akan mengirimkan response berupa daftar pesanan yang telah diproses menggunakan algoritma SJF.
3.7.11 Flowchart Menu Tenant
Gambar 3.16. Flowchart Tambah Menu
Gambar 3.17. Flowchart Edit Menu
Gambar 3.16 adalah alur proses saat tenant menambahkan menu baru.
Tahapan pertama diawali dengan memvalidasi data yang masuk. Jika valid maka akan dilakukan dengan memasukannya ke database.
Gambar 3.17 adalah alur proses saat tenant menambahkan menu baru.
Tahapan pertama adalah melakukanget by idpada menu. Apabila ditemukan maka data menu akan diperbarui. Namun jika tidak ditemukan, maka data menu tidak akan diupdate dan akan mengembalikan error.
Gambar 3.18. Flowchart Delete Menu
Gambar 3.18 adalah alur proses saat tenant menambahkan menu baru.
Tahapan pertama adalah melakukanget by idpada menu. Apabila ditemukan maka data menu akan dihapus. Namun jika tidak ditemukan, maka data menu tidak akan dihapus dan akan mengembalikan error.
Gambar 3.19. Flowchart Ubah Status Ketersediaan Menu
Gambar 3.18 adalah alur proses saat tenant menambahkan menu baru.
Tahapan pertama adalah melakukanget by idpada menu. Apabila ditemukan maka data status ketersediaan menu akan diperbarui. Namun jika tidak ditemukan, makan akan mengembalikan error.
3.7.12 Flowchart Validate Credential
Gambar 3.20. Flowchart Validate Credential
Gambar 3.20 meruapakan tahapan dari proses validasi credential yang dilakukan olehserver. Server akan menerima data berupacredential. Selanjutnya serverakan melakukan pengecekan terhadaptokenyang didapat darirequest header (Authorization). Apabilatokentidak valid, makaserverakan mengirimkanresponse error. Apabilatokenvalid, maka proses selanjutnya akan dilakukan.
3.8 Mock Up
Berikut merupakan rancangan antarmuka /mock updari sistem pemesanan kantinonline
3.8.1 Mockup Home Tenant
Gambar 3.21. Mockup Home Tenant
Gambar 3.21 merupakan mockup dari halaman tenant. Halaman ini berfungsi sebagai halaman utama yang akan ditampilkan setelah tenant berhasil login. Pada halaman ini terdapat button untuk mengakses menu-menu yang ada pada aplikasi ini yang antara lain adalahAll Menu,Add Menu, danOrder List.
3.8.2 Mockup Menu Tenant
Gambar 3.22. Mockup All Menu Tenant
Gambar 3.23. Mockup Add Menu Tenant
Gambar 3.22 merupakan mockup dari halaman All Menu. Halaman ini berfungsi untuk menampilkan daftar menu yang telah terdapat di tenant. Halaman ini berfungsi untuk menampilkan daftar menu yang telah terdapat di tenant, mengubah menu, dan menghapus menu. Apabila tombolAdd Menuditekan maka akan diarahkan ke halamanAdd Menu.
Gambar 3.23 merupakan mockup dari halaman Add Menu. Halaman ini berfungsi untuk menambahkan menu baru ke dalam daftar menu yang telah terdapat di tenant.
3.8.3 Mockup Order List Tenant
Gambar 3.24. Mockup Order List Tenant
Gambar 3.24 merupakan mockup dari halaman Order List. Halaman ini berfungsi untuk menampilkan daftar pesanan yang telah dibuat oleh customer.
Terdapat dua bagian utama, yaknion progressdanhistory.On progressberisi daftar pesanan yang sedang dalam proses. Sedangkanhistoryberisi seluruh pesanan yang ada.
3.8.4 Mockup Order Detail Tenant
Gambar 3.25. Mockup Order Detail Tenant
Gambar 3.25 adalah mockup dari halaman Order Detail. Halaman ini berfungsi untuk menampilkan detail dari pesanan yang dipilih. Terdapat informasi mengenai nama customer, waktu pemesanan, dan daftar menu yang dipesan, dan total harga.
3.8.5 Mockup Profile Tenant
Gambar 3.26. Mockup Profile Tenant
Gambar 3.26 adalah mockup dari halaman Profile. Halaman ini berfungsi untuk menampilkan dan mengelola data profil dari tenant seperti nama, email, deskripsi, serta data lainnya.
3.8.6 Mockup Admin
Gambar 3.27. Mockup Admin
Gambar 3.27 adalah mockup dari halaman admin. Halaman ini berfungsi untuk mengelola sebagian besar data yang ada pada sistem pemesanan kantinonline seperti nama tenant, menu, hingga menghapus menu. Salah satu fitur penting dari menu admin ini adalah mendaftarkan Tenant. Yang artinya Tenant hanya bisa mendaftarkan tokonya melalui admin.
3.9 Spesifikasi Pengembangan Sistem
Spesifikasi sistem yang digunakan pada pengembangan penelitian ini antara lain adalah sebagai berikut
3.9.1 Client
Berikut adalah spesifikasi sistem yang digunakan padaclient:
• Runtime Environment : Node.js v16.18.1
• Bahasa Pemrograman : Javascript
• Main Library : React.js v18.2.0
• Sistem Operasi : Windows 10
• RAM : 12GB
• Storage : 1000GB HDD + 256 SSD
• Hosting platform : vercel.com — hobby plan 3.9.2 Server
Berikut adalah spesifikasi sistem yang digunakan padaserver:
• Runtime Environment : Node.js v16.18.1
• Bahasa Pemrograman : Javascript
• Main Library : Express.js v4.18.2
• Database : mongodb v6.0.6
• Sistem Operasi : Windows 10
• RAM : 12GB
• Storage : 1000GB HDD + 256 SSD
• Hosting platform : fly.io — free version, 256MB RAM 3.10 Spesifikasi Penggunaan Sistem
Untuk dapat menggunakan sistem ini, maka perlu menggunakan perangkat seperti desktop dan smartphone. Spesifikasi yang diperlukan untuk dapat menggunakan sistem pemesanan kantin online ini dari setiap perangkat adalah sebagai berikut.
3.10.1 Desktop
• Sistem Operasi : Windows 7, Max OS 10.11, Linux
• AplikasiBrowser : Google Chrome 80+, Mozilla Firefox 75+, Safari 13+, Microsoft Edge 80+
• Monitor display : 1024 x 768 Pixel
• Processor : 1GHz
• RAM : 1GB
• Koneksi Internet : 100Kbps
3.10.2 Smartphone
• Sistem Operasi : Android 5+ (Lollipop), IOS 11+
• AplikasiBrowser : Google Chrome, Opera, Safari
• Display : 360 x 500 Pixel
• Processor : 1GHz
• RAM : 1GB
• Koneksi Internet : 100Kbps