• Tidak ada hasil yang ditemukan

Implementasi Algoritma Penjadwalan First Come First Served dan Shortest Job First pada Rancang Bangun Sistem Pemesanan Kantin Online

N/A
N/A
Protected

Academic year: 2024

Membagikan "Implementasi Algoritma Penjadwalan First Come First Served dan Shortest Job First pada Rancang Bangun Sistem Pemesanan Kantin Online"

Copied!
35
0
0

Teks penuh

(1)

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

(2)

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)

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

(4)

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.

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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.

(10)

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

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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

(16)

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

(17)

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.

(18)

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.

(19)

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.

(20)

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”.

(21)

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”.

(22)

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”.

(23)

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].

(24)

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

(25)

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.

(26)

3.7.11 Flowchart Menu Tenant

Gambar 3.16. Flowchart Tambah Menu

Gambar 3.17. Flowchart Edit Menu

(27)

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.

(28)

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

(29)

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.

(30)

3.8.2 Mockup Menu Tenant

Gambar 3.22. Mockup All Menu Tenant

Gambar 3.23. Mockup Add Menu Tenant

(31)

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.

(32)

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

(33)

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:

(34)

• 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

(35)

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

Gambar

Gambar 3.1. Proses Bisnis Sistem Pemesanan Kantin Online
Gambar 3.3. Data Flow Diagram Level 1
Gambar 3.4. Skema Database 3.6 Struktur Database
Tabel 3.3 merupakan struktur tabel yang digunakan untuk menyimpan data customer. Terdapat 11 kolom yang digunakan untuk menyimpan data customer.
+7

Referensi

Dokumen terkait