DESKRIPSI PERANCANGAN PERANGKAT LUNAK
Advanced Restaurant System
untuk:
Mata Kuliah Rekayasa Perangkat Lunak
Dipersiapkan oleh:
Kelompok 03 K-03
Alif Raditya Rochman
/ 13511013
Iskandar Setiadi
/ 13511073
Kelvin Valensius
/ 13511009
Michael Yurry
/ 18211044
Ryan Ignatius H.
/ 13511070
Program Studi Teknik Informatika/Sistem dan Teknologi Informasi
STEI - ITB
Jl. Ganesha 10, Bandung 40132
Program Studi Teknik Informatika / Sistem dan Teknologi Informasi
Nomor Dokumen
Halaman
DPPL-03
40
DAFTAR PERUBAHAN
Revisi
Deskripsi
A
B
C
D
E
F
G
INDEX TGL - A B C D E F G Ditulis oleh Diperiksa oleh Disetujui olehDaftar Halaman Perubahan
Daftar Isi
1. Pendahuluan ... 5
1.1 Tujuan Penulisan Dokumen ... 5
1.2 Lingkup Masalah ... 5
1.3 Definisi dan Istilah ... 5
1.4 Aturan Penamaan dan Penomoran ... 6
1.5 Referensi ... 6
1.6 Ikhtisar Dokumen ... 6
2 Deskripsi Perancangan Global... 7
2.1 Rancangan Lingkungan Implementasi... 7
2.2 Deskripsi Data ... 9
2.2.1 Definisi Domain/Type ... 9
2.2.2 E-R Diagram ... 10
2.2.3 Daftar Tabel Basisdata ... 12
2.3 Deskripsi Modul ... 13
3 Deskripsi Perancangan Rinci ... 15
3.1 Deskripsi Rinci Tabel ... 15
3.1.1 Tabel Feedback ... 15 3.1.2 Tabel Outcome ... 15 3.1.3 Tabel Feedback ... 15 3.1.4 Tabel Citarasa ... 16 3.1.5 Tabel Income ... 16 3.1.6 Tabel Buy ... 17 3.1.7 Tabel Sell ... 17
3.2 Deskripsi Rinci Modul... 15
3.2.1 Modul 01 ... 18
3.2.1.1 Fungsi Modul ... 18
3.2.1.2 Spesifikasi Layar Utama ... 18
3.2.1.3 Spesifikasi Query ... 19
3.2.1.4 Spesifikasi Field Data Layar ... 20
3.2.1.5 Spesifikasi Objek-Objek pada Layar ... 20
3.2.1.6 Spesifikasi Proses/Algoritma ... 22
3.2.2 Modul 02 ... 23
3.2.2.1 Fungsi Modul ... 23
3.2.2.2 Spesifikasi Layar Utama ... 24
3.2.2.3 Spesifikasi Query ... 26
3.2.2.4 Spesifikasi Field Data Layar ... 26
3.2.2.5 Spesifikasi Objek-Objek pada Layar ... 28
3.2.2.6 Spesifikasi Proses/Algoritma ... 30
3.2.3 Modul 03 ... 32
3.2.3.1 Fungsi Modul ... 32
3.2.3.2 Spesifikasi Layar Utama ... 32
3.2.3.3 Spesifikasi Query ... 33
3.2.3.4 Spesifikasi Field Data Layar ... 34
3.2.3.5 Spesifikasi Objek-Objek pada Layar ... 34
3.2.4 Modul 04 ... 36
3.2.4.1 Fungsi Modul ... 36
3.2.4.2 Spesifikasi Layar Utama ... 36
3.2.4.3 Spesifikasi Query ... 37
3.2.4.4 Spesifikasi Field Data Layar ... 38
3.2.4.5 Spesifikasi Objek-Objek pada Layar ... 38
1. Pendahuluan
1.1 Tujuan Penulisan Dokumen
Tujuan utama dari pembuatan DPPL ini adalah sebagai pedoman untuk
developer
untuk mendukung
segala kegiatan bisnis pada sebuah restoran secara digital. Kegiatan bisnis yang dimaksud mencakup
segala aspek kegiatan yang berinteraksi dengan sistem device tertentu. Kegiatan restoran yang
dimaksud mencakup proses pemesanan makanan, pengolahan menu, harga, serta laporan keuangan
yang dapat direkapitulasi dalam jangka waktu tertentu.
1.2 Lingkup Masalah
Di zaman modern ini, pada umumnya segala aktivitas telah mengimplementasikan sistem yang
terdigitalisasi. Kegiatan-kegiatan tersebut bervariasi mulai dari pendidikan, transportasi sampai hal
makanan pun ikut merasakan dampak nyata dari kemajuan teknologi tersebut. SKPL ini akan
membahas serta menganalisis aplikasi kemajuan teknologi pada sistem restoran. Biasanya pada
restoran, sering terjadi masalah-masalah seperti kesalahan pemesanan yang diakibatkan oleh
miskomunikasi, kesalahan penulisan dikarenakan tulisan yang buruk oleh pelanggan, salah nomor
meja dan lain sebagainya. Kecurangan juga dapat terjadi ketika pelayan memanipulasi data
pengeluaran dan pemasukan karena tidak setiap transaksi dan pemesanan dapat dilihat oleh manager.
Kesulitan lainnya yaitu ketika merubah menu dan menambahkan suatu promosi pada lembar menu.
Biaya tambahan yang diakibatkan oleh pencetakan kertas pesanan, maupun buruknya manajemen
transaksi menjadi suatu kekurangan dari sistem restoran tradisional. Oleh sebab itu rekayasa perangkat
lunak ini dibuat untuk memenuhi kebutuhan kemajuan teknologi di restoran tersebut.
1.3 Definisi dan Istilah
Berikut ini adalah penjelasan dari semua definisi dan singkatan yang digunakan dalam dokumen ini:
No.
Istilah
Definisi
1
Pelanggan
Orang yang membayar produk dan yang akan memutuskan
kebutuhannya
2
Manager
Orang yang mengatur dan mengkordinasikan pekerjaan
1.4 Aturan Penamaan dan Penomoran
Berikut ini adalah aturan penomoran yang digunakan dalam sistem ini:
ID
Penjelasan
FR-XX
Merupakan notasi dari Functional Requirement ke- XX
M-XX
Merupakan notasi dari Modul ke- XX
QUE-XX
Merupakan notasi dari Query ke- XX
ALGO-XX
Merupakan notasi dari Algoritma ke- XX
1.5 Referensi
Dalam pengerjaan dokumentasi PL ini, referensi-referensi yang digunakan adalah sebagai berikut:
Roger S. Pressman; Software Engineering: A Practitioner’s Approach (7
thEd.); Mc Graw-Hill,
2010
Ian Sommerville; Software Engineering (8
thEd.); Addison-Wesley, 2007
Slide kuliah & Template dokumen IF 2036 – Rekayasa Perangkat Lunak ITB Tahun 2013
SKPL-03 Advanced Restaurant System Edisi 19 April 2013
1.6 Ikhtisar Dokumen
Dokumen DPPL untuk
Advanced Restaurant System
ini berisi deskripsi kebutuhan
pengembangan perangkat lunak secara rinci. Dokumen ini dibagi menjadi 3 bagian utama,
yaitu:
1.
Bab 1 Pendahuluan, berisi tujuan penulisan dokumen, lingkup masalah yang ditangani
pada perangkat lunak
advanced restaurant system
, definisi (beserta istilah dan
singkatan), aturan penomoran, referensi yang digunakan untuk dokumen ini, serta
deskripsi umum dokumen (ikhtisar)
2.
Bab 2 Deskripsi Perancangan Global, berisi deskripsi rancangan lingkungan
implementasi, deskripsi basis data yang dikelola oleh
advanced restaurant system
,
serta deskripsi hirarki dari modul proses yang akan dibangun
3.
Bab 3 Deskripsi Perancangan Rinci (penjabaran Bab 2), berisi deskripsi rinci tabel,
deskripsi rinci masing-masing modul yang mencakup fungsi beserta
spesifikasi-spesifikasinya, dan matriks kerunutan dari perancangan
advanced restaurant system
ini.
2 Deskripsi Perancangan Global
2.1 Rancangan Lingkungan Implementasi
Advanced Restaurant System (ARS) merupakan sistem yang mendukung segala kegiatan bisnis pada
sebuah restoran. Sistem ini terhubung dengan suatu device yang dapat menerima pesanan dari
pelanggan dalam bentuk digital, kemudian device tersebut akan menyampaikan kepada sistem. ARS
meneruskan kepada juru masak di dapur untuk menyiapkan makanannya. Setiap makanan memiliki
harga modal dan pemasukan yang tercatat dalam sebuah
database.
Pelanggan dapat memasukkan
kritik dan saran melalui device tersebut yang kemudian akan diteruskan ke dalam sistem untuk
disimpan. Manager sewaktu-waktu dapat melihat pemasukan dan pengeluaran dari sistem restoran.
Sistem dapat memberikan hasil 5 makanan terlaris. Juru masak juga dapat memasukkan input berupa
recommendation suatu makanan maupun cita rasa yang dimiliki, dan disimbolkan dalam bentuk icon.
Pelanggan dapat melihat kategori makanan terlaris, recommended, dan sesuai cita rasanya. Manager
juga dapat melihat kritik dan saran dari pelanggan untuk menjadi bahan evaluasi. Pemasukan dan
pengeluaran dari makanan yang ada dicatat secara otomatis dari pembelian dan penjualan makanan.
Adapun manager dapat melihat hasil laporan dari usaha restoran tersebut. Kasir dapat mengubah
modal dan harga dari makanan tersebut. Kasir juga dapat memasukkan pengeluaran/pendapatan
restoran yang berasal bukan dari makanan yang dijual. Kasir juga dapat memasukkan promo makanan
saat itu yang dapat dilihat oleh pelanggan melalui device yang tersedia di setiap meja.
Sistem
Advanced Restaurant
memiliki batasan-batasan sebagai berikut:
1.
Perangkat lunak melakukan penyimpanan data menggunakan MySQL berbasis Web
2.
Perangkat lunak dapat terintegrasi dengan semua device untuk pelanggan secara
real-time
3.
Perangkat lunak menerima input data pesanan dari pelanggan dan akan ter-
update
langsung
pada sistem
4.
Perangkat lunak harus mendukung penggunaan
multi-platform
, yaitu adanya integrasi data
antara device
portable
dengan device non-
portable
seperti PC
5.
Perangkat lunak mendukung pengolahan laporan keuangan menggunakan SPSS maupun
Microsoft Office
Aplikasi
Client-Server
ini akan berfungsi dengan spesifikasi:
Server : Terdiri atas 1 set PC yang aktif selama jam operasional dan dapat terhubung dengan client.
Server dikelola oleh admin
Client : Terdiri dari beberapa device yang terhubung ke server selama server aktif.
OS
: Server menggunakan FreeBSD version >= 8.2, Client berbasis PC menggunakan Windows
version >= XP, Client berbasis device portable menggunakan OS berbasis Android
DBMS : MySQL version >= 5.1
Berikut ini adalah tabel kebutuhan-kebutuhan yang diperlukan dalam perancangan ini:
ID Kebutuhan Penjelasan
FR-01
P/L dapat menampilkan daftar menu
beserta citarasanya
Menu yang ditampilkan adalah menu yang
stoknya masih
available
. Citarasa disimpan
dalam bentuk
icon
gambar
FR-02
P/L
dapat
menerima
dan
mentransmisikan pesanan
Pesanan ditampilkan dalam bentuk digital, dalam
bentuk id beserta jumlahnya
FR-03
P/L dapat menampilkan serta memproses
transaksi pemesanan
Transaksi pemesanan dikelola oleh kasir
FR-04
P/L
dapat
mencetak
struk
hasil
pemesanan
Struk hasil pemesanan didapat dari finalisasi
transaksi antara pelanggan dengan kasir
FR-05
P/L dapat mengupdate semua daftar
menu yang tersimpan beserta citarasanya
Daftar menu dapat dimanipulasi oleh admin
(operasi tambah, hapus, serta update)
FR-06
P/L dapat menerima dan menyimpan
kritik & saran dari pelanggan
Pelanggan dapat memberikan kritik & saran
melalui device yang dipasang di setiap meja
FR-07
P/L dapat menampilkan rekap transaksi
penjualan
Rekap transaksi penjualan dapat dilihat oleh
manager dan dikustomisasi sesuai periode
tertentu
FR-08
P/L dapat mengenerate dan menampilkan
laporan keuangan
Laporan keuangan merupakan gabungan dari
rekap
transaksi
maupun
pendapatan
dan
pengeluaran
non-food
yang dapat diakses
manager
ID Kebutuhan Penjelasan
FR-09
P/L dapat menampilkan dan melakukan
proses update promo
Admin dapat menambahkan promo kedalam
datastore
. Promo yang dimaksud adalah diskon
yang dilangsungkan dalam periode tertentu
FR-10
P/L dapat menampilkan dan melakukan
proses update rekomendasi makanan
Koki dapat memberikan rekomendasi makanan
dan sistem dapat memberikan rekomendasi
tambahan sesuai
best-seller
yang terjual
FR-11
P/L dapat melakukan manajemen stok
Manager dapat menambahkan dan mengupdate
harga modal dari suatu stok menu yang tersimpan
FR-12
P/L dapat menerima masukan berupa
pendapatan eksternal
Admin dapat menambahkan masukan berupa
pendapatan tambahan yang tidak terproses dalam
jual beli antara pelanggan dengan restoran
2.2 Deskripsi Data
Bagian ini berisikan deskripsi tabel-tabel basis data yang mendukung Advanced Restaurant System
yang telah kami rancang. Berikut ini adalah penjabaran dari masing-masing bagian basis data:
2.2.1 Definisi Domain/Type
Domain name Power Designer Type
recommended
BOOLEAN
timestamp
DATETIME
diskon
FLOAT
harga
INT
id_buy
INT
id_citarasa
INT
id_feedback
INT
id_income
INT
id_makanan
INT
id_outcome
INT
id_sell
INT
modal
INT
no_meja
INT
Domain name Power Designer Type
price
INT
quantity
INT
stok
INT
content
TEXT
keterangan
TEXT
gambar
VARCHAR
nama
VARCHAR
2.2.2 E-R Diagram
Gambar 2.2.2-1 Entity-Relationship Diagram Advanced Restaurant System
Entity :
Feedback
o
id_feedback
o
timestamp
o
content
Outcome
o
id_outcome
o
price
o
keterangan
o
timestamp
Makanan
o
id_makanan
o
stok
o
diskon
o
nama
o
modal
o
recommended
o
harga
o
keterangan
Citarasa
o
id_citarasa
o
nama
o
gambar
Income
o
id_income
o
no_meja
o
keterangan
o
price
o
timestamp
Relationship :
Buy, relasi antara entitas Outcome dengan Makanan. Relasi ini merupakan relasi many-to-many
yang mempunyai atribut quantity.
Has, relasi antara entitas Makanan dengan Citarasa. Relasi ini merupakan relasi one-to-many
antara Citarasa dan Makanan.
Sell, relasi antara entitas Income dengan Makanan. Relasi ini merupakan relasi many-to-many
yang mempunyai atribut quantity.
2.2.3 Daftar Tabel Basisdata
Awali dengan daftar tabel basisdata, primary key dan deskripsi isinya.
Nama Tabel Primary key Data Store pada DFD Terkait
Elemen E/R
Terkait Deskripsi isi
Feedback id_feedback feedback Feedback (entitas)
Ini adalah tabel berisi data feedback dari customer
Outcome id_outcome order Outcome (entitas)
Ini adalah tabel berisi rincian pengeluaran yang dilakukan restoran Makanan id_makanan food Makanan
(entitas)
Ini adalah tabel berisi rincian makanan apa saja yang ada di menu
Citarasa id_citarasa food Citarasa (entitas)
Ini adalah tabel berisi rincian citarasa beserta link menuju gambar citarasa tersebut Income id_income order Income
(entitas)
Ini adalah tabel berisi rincian pemasukan yang dilakukan restoran Buy
id_makanan, id_outcome,
quantity
order Buy (relasi)
Ini adalah tabel relasi antara tabel Makanan dan tabel Outcome
Sell
id_income, id_makanan,
quantity
order Sell (relasi)
Ini adalah tabel relasi antara tabel Income dan tabel Makanan
2.3 Deskripsi Modul
Gambar 2.3-1 Struktur Modul Advanced Restaurant System
Berikut ini adalah keterangan dari masing-masing modul yang dispesifikasikan diatas:
No
Nama Modul
Keterangan
M-01
Pengolahan Pesanan
Modul ini terdiri atas 3 bagian utama, yaitu permintaan
pesanan (1.1), entri pesanan (1.2), dan finalisasi
pesanan (1.3). Finalisasi pesanan dapat dibagi menjadi
3 bagian, yaitu update / cancel pesanan (1.3.1),
pembayaran pesanan (1.3.2), dan pencetakan struk
(1.3.3).
Modul ini secara umum menangani transaksi
pemesanan makanan oleh pelanggan sampai proses
pembayaran yang dilayani oleh kasir berakhir.
M-02
Pengolahan Menu dan
Rekomendasi
Modul ini terdiri atas 5 bagian utama, yaitu manajemen
menu (2.1), entri / cancel promo (2.2), entri citarasa
(2.3), manajemen harga modal (2.4), dan manajemen
rekomendasi (2.5).
No
Nama Modul
Keterangan
Modul ini secara umum menangani segala hal yang
terkait dengan menu restoran, misalnya harga,
rekomendasi, citarasa, dan promo.
M-03
Pengolahan Laporan
Modul ini terdiri atas 2 bagian utama, yaitu entri
income
eksternal (3.1) dan manajemen laporan
keuangan (3.2). Manajemen laporan keuangan dapat
dibagi menjadi 2 bagian, yaitu update dan monitoring
laporan (3.2.1) dan cetak laporan (3.2.2).
Modul ini secara umum menangani pemrosesan
laporan keuangan (baik dari proses penjualan makanan
maupun
income
eksternal) yang ditangani oleh
manajemen restoran.
M-04
Pengolahan Feedback
Modul ini terdiri atas 2 bagian utama, yaitu entri
feedback (4.1) dan rekapitulasi feedback (4.2).
Modul ini secara umum menangani mekanisme entri
oleh pelanggan dan rekapitulasi feedback yang dapat
diakses oleh manajemen restoran.
3 Deskripsi Perancangan Rinci
3.1 Deskripsi Rinci Tabel
3.1.1 Tabel Feedback
Identifikasi/Nama : Feedback
Deskripsi Isi : Ini adalah tabel berisi data feedback dari customer Jenis : tabel datainduk/referensi/transaksi
Volume : 100000 data Laju : 100 data/hari Primary Key : id_feedback
Id Field Deskripsi Tipe & length Boleh
NULL Default Keterangan
id_feedback Index tabel
Feedback INT(6) NO - Primary key
timestamp Waktu feedback
disubmit DATETIME NO - -
content Isi feedback TEXT NO - -
Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.1.2 Tabel Outcome
Identifikasi/Nama : Outcome
Deskripsi Isi : Ini adalah tabel berisi rincian pengeluaran yang dilakukan restoran Jenis : tabel datainduk/referensi/transaksi
Volume : 100000 data Laju : 1000 data / hari Primary Key : id_outcome
Id Field Deskripsi Tipe & length Boleh
NULL Default Keterangan
id_outcome Index tabel
Outcome INT(8) NO - Primary key
timestamp
Waktu data pengeluaran
disubmit
DATETIME NO - -
price Harga transaksi
pengeluaran INT(8) NO - -
keterangan
Keterangan transaksi pengeluaran
TEXT YES NULL -
Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.1.3 Tabel Makanan
Identifikasi/Nama : Makanan
Deskripsi Isi : Ini adalah tabel berisi rincian makanan apa saja yang ada di menu Jenis : tabel datainduk/referensi/transaksi
Volume : 250 data Laju : 100 data / hari Primary Key : id_makanan
Id Field Deskripsi Tipe & length Boleh
NULL Default Keterangan
id_makanan Index tabel
Makanan INT(3) NO - Primary key
stok Jumlah stok
makanan INT(5) NO - -
diskon Diskon makanan
(jika ada) FLOAT(3) YES 0.0 -
nama Nama makanan VARCHAR(64) NO - -
keterangan Keterangan tentang
makanan TEXT NO - -
harga Harga makanan INT(7) NO - -
recommended Rekomendasi chef
atau tidak BOOLEAN YES NO -
modal Harga modal
makanan INT(7) NO - -
id_citarasa Index citarasa dari
tabel Citarasa INT(2) YES NULL
Refer ke tabel Citarasa Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.1.4 Tabel Citarasa
Identifikasi/Nama : Citarasa
Deskripsi Isi : Ini adalah tabel berisi rincian citarasa beserta link menuju gambar citarasa tersebut Jenis : tabel datainduk/referensi/transaksi
Volume : 25 data Laju : 100 data / hari Primary Key : id_citarasa
Id Field Deskripsi Tipe & length Boleh
NULL Default Keterangan
id_citarasa Index tabel Citarasa INT(2) NO - Primary key
nama Nama citarasa VARCHAR(64) NO - -
gambar Link gambar
citarasa VARCHAR(128) NO - -
Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.1.5 Tabel Income
Identifikasi/Nama : Income
Deskripsi Isi : Ini adalah tabel berisi rincian pemasukan yang dilakukan restoran Jenis : tabel datainduk/referensi/transaksi
Volume : 100000 data Laju : 1000 data / hari Primary Key : id_income
Id Field Deskripsi Tipe & length Boleh
id_income Index tabel Income INT(8) NO - Primary key Timestamp Waktu data pemasukan disubmit DATETIME NO - -
no_meja Nomor meja yang
memesan pesanan INT(3) YES NULL -
keterangan Keterangan data
pemasukan TEXT YES NULL -
price Harga transaksi
pemasukan INT(8) NO - -
Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.1.6 Tabel Buy
Identifikasi/Nama : Buy
Deskripsi Isi : Ini adalah tabel relasi antara tabel Makanan dan tabel Outcome Jenis : tabel datainduk/referensi/transaksi
Volume : 1000000 data Laju : 5000 data / hari
Primary Key : id_makanan, id_outcome, quantity
Id Field Deskripsi Tipe & length Boleh
NULL Default Keterangan
id_makanan Index makanan dari
tabel Makanan INT(3) NO -
Primary key, Refer ke tabel
Makanan id_outcome Index outcome dari
tabel Outcome INT(8) NO -
Primary key, Refer ke tabel
Outcome quantity Jumlah makanan
dalam transaksi ini INT(4) NO - Primary key Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.1.7 Tabel Sell
Identifikasi/Nama : Sell
Deskripsi Isi : Ini adalah tabel relasi antara tabel Income dan tabel Makanan Jenis : tabel datainduk/referensi/transaksi
Volume : 1000000 data Laju : 5000 data / hari
Primary Key : id_income, id_makanan, quantity
Id Field Deskripsi Tipe & length Boleh
NULL Default Keterangan
id_income Index income dari
tabel Income INT(8) NO -
Primary key, Refer ke tabel
Income id_makanan Index makanan dari
tabel Makanan INT(3) NO -
Primary key, Refer ke tabel
Makanan quantity Jumlah makanan
dalam transaksi ini INT(2) NO - Primary key Catatan : kolom “Boleh NULL” berisi “NO” artinya tidak boleh kosong, berisi “YES” artinya boleh NULL
3.2 Deskripsi Rinci Modul
3.2.1 Modul 01 : Pengolahan Pesanan
3.2.1.1 Fungsi Modul
No Fungsi Jenis Tabel Terkait
1 Menampilkan menu pesanan Report Tabular Makanan, Sell, Citarasa
2 Melakukan entri pesanan Form Entry Tabular Makanan, Sell, Citarasa
3 Menampilkan promo setiap menu Report Tabular Makanan
4 Mengupdate pesanan Form Entry Tabular Makanan, Sell
5 Membatalkan pesanan Form Entry Tabular Makanan, Sell
6 Menampilkan total harga Form berisi dialog saja Makanan, Sell
7 Melakukan pembayaran pesanan Form Entry Tabular Makanan, Sell, Income
8 Mengupdate stok tersisa Proses tanpa layar Makanan, Sell
9 Mencetak struk Proses tanpa layar Makanan, Sell
3.2.1.2 Spesifikasi Layar Utama
Gambar 3.2.1.2-2 Layar Modul Pengolahan Pesanan (Login Panel)
Gambar 3.2.1.2-3 Layar Modul Pengolahan Pesanan (Cashier Panel)
3.2.1.3 Spesifikasi Query
ID Query Deskripsi Ekspresi Query
QUE-01
Menampilkan daftar makanan dengan nama tertentu dan memilih atribut nama,
keterangan, gambar, stok, harga, modal dengan syarat stok makanan tidak kosong
SELECT Makanan.nama, keterangan, gambar, stok, harga, modal FROM Makanan, Citarasa, Sell WHERE Makanan.id_citarasa =
QUE-02
Mendapatkan semua data username dan password yang tersimpan dalam tabel Pengguna (tabel eksternal)
SELECT * FROM Pengguna
QUE-03 Mencari recommended makanan tertentu SELECT recommended FROM Makanan
3.2.1.4 Spesifikasi Field Data Layar
Label Field Tabel/
Query Validasi Keterangan
buttonBuy_Utama quantity Sell NOT NULL Kuantitas dari stok makanan yang tersedia
textFieldUsername_Login username Pengguna NOT NULL Username staff untuk autentikasi perangkat lunak textFieldPassword_Login password Pengguna NOT NULL Password staff untuk autentikasi
perangkat lunak
buttonBuy_Cashier quantity Sell NOT NULL Kuantitas dari stok makanan yang tersedia
3.2.1.5 Spesifikasi Objek-Objek pada Layar
Id_Objek Jenis Keterangan
tabPromo_Utama Tab Jika di-klik, akan menampilkan daftar makanan yang sedang dalam masa promo
labelPromoXX_Utama Label
Label yang berisi nama makanan ke-XX yang sedang dalam masa promo(XX merupakan index promo dimulai dari 1 sampai total jenis makanan yang sedang promo)
buttonGoPromo_Utama Button Jika di-klik, maka hanya akan menampilkan makanan dengan nama makanan pada labelPromoXX_Utama
tabBestSeller_Utama Tab Jika di-klik, akan menampilkan daftar makanan yang merupakan best seller
labelBestSellerXX_Utama Label
Label yang berisi nama makanan ke-XX yang merupakan Best Seller (XX merupakan index best seller dimulai dari 1 sampai total jenis makanan yang merupakan best seller)
buttonGoBestSeller_Utama Button Jika di-klik, maka hanya akan menampilkan makanan dengan nama makanan pada labelBestSellerXX_Utama
tabRecommendation_Utama Tab Jika di-klik, akan menampilkan daftar makanan yang direkomendasi chef
labelRekomendasiXX_Utama Label
Label yang berisi nama makanan ke-XX yang direkomendasi chef (XX merupakan index rekomendasi dimulai dari 1 sampai total jenis makanan yang direkomendasi)
buttonGoRekomendasi_Utama Button Jika di-klik, maka hanya akan menampilkan makanan dengan nama makanan pada labelRekomendasiXX_Utama
labelAdmin_Utama Label Label yang memberikan keterangan buttonAdmin_Utama
buttonAdmin_Utama Button Jika di-klik, maka aplikasi akan masuk kedalam tampilan Login Panel (Gambar 3.2.1.2-2)
Id_Objek Jenis Keterangan
itemList_Utama List List yang berisikan daftar nama FoodItem, masing-masing memiliki 2 buah button dan 1 label quantity yang dipilih
addItemList_Utama Button Button yang berfungsi untuk menambah quantity pesanan
removeItemList_Utama Button Button yang berfungsi untuk mengurangi quantity pesanan
labelQItemList_Utama Label Label yang memberikan keterangan jumlah quantity pesanan
labelTransactionOv_Utama Label Label yang memberikan keterangan Transaction Overview
labelTotal_Utama Label Label yang memberikan keterangan jumlah pesanan beserta harga total dari semua pesanan yang dipesan
buttonBuy_Utama Button
Jika di-klik, button ini akan menggunakan algoritma
CheckOrderValid untuk melakukan validasi pesanan. Jika pesanan tidak valid, maka akan ditampilkan alertbox pada layar yang memberikan pesan bahwa pesanan invalid. Jika pesanan valid, maka pesanan akan ditransmisikan ke layar cashier untuk proses pembayaran.
Tabel 3.2.1.5-1 Objek-Objek pada Layar Utama
Id_Objek Jenis Keterangan
labelLogin_Login Label Label yang memberikan keterangan Login Panel
labelUsername_Login Label Label yang memberikan keterangan textFieldUsername_Login
textFieldUsername_Login TextField Untuk mengetikkan username dari staff restoran
labelPassword_Login Label Label yang memberikan keterangan textFieldPassword_Login
textFieldPassword_Login TextField Untuk mengetikkan password dari staff restoran
buttonForgetPass_Login Button Jika di-klik, program akan mengirimkan password default kepada username sesuai e-mail yang terdaftar
buttonSignIn_Login Button
Jika di-klik, button ini akan menggunakan algoritma
CheckUserValid untuk melakukan validasi user. Jika user tidak valid, maka akan ditampilkan alertbox pada layar yang
memberikan pesan bahwa user invalid. Jika user valid, maka layar akan ditransmisikan ke panel sesuai peran staff (Gambar 3.2.1.2-3 untuk cashier/kasir)
buttonBack_Login Button Jika di-klik, maka akan ditampilkan layar sebelumnya, yaitu halaman utama (Gambar 3.2.1.2-1)
Tabel 3.2.1.5-2 Objek-Objek pada Login Panel
Id_Objek Jenis Keterangan
Id_Objek Jenis Keterangan
labelDaftarMenu_Cashier Label Label yang memberikan keterangan buttonGoDaftarMenu_Cashier
buttonGoDaftarMenu_Cashier Button Jika di-klik, maka akan ditampilkan daftar menu secara keseluruhan dari tabel Makanan
labelDaftarPromo_Cashier Label Label yang memberikan keterangan buttonGoDaftarPromo_Cashier
buttonGoDaftarPromo_Cashier Button Jika di-klik, maka akan ditampilkan daftar promo yang sedang aktif secara keseluruhan dari tabel Makanan
labelRekap_Cashier Label Label yang memberikan keterangan buttonGoRekap_Cashier
buttonGoRekap_Cashier Button Jika di-klik, maka akan ditampilkan daftar rekap (Modul 2) sesuai hak akses staff yang sedang login / terautentikasi
labelLogout_Cashier Label Label yang memberikan keterangan buttonGoLogout_Cashier
buttonLogout_Cashier Button Jika di-klik, maka akan ditampilkan layar halaman utama dengan status staff logout (Gambar 3.2.1.2-1)
labelCurrCashier_Cashier Label Label yang memberikan keterangan nama cashier / kasir yang sedang login / terautentikasi
labelTransactionList_Cashier Label Label yang memberikan keterangan Transaction List
tablePesananList_Cashier Table
Tabel yang secara keseluruhan berisikan pesanan dari pelanggan beserta kuantitas masing-masing pesanan dan total harga (mekanisme PPN diserahkan kepada restoran)
addQPesanan_Cashier Button Button yang berfungsi untuk menambah quantity pesanan
removeQPesanan_Cashier Button Button yang berfungsi untuk mengurangi quantity pesanan
checkBoxCetakStruk_Cashier CheckBox CheckBox yang digunakan sebagai penanda cetak struk (jika true maka akan dicetak struk akhir)
buttonBuy_Cashier Button
Jika di-klik, maka akan ditampilkan layar yang menerima masukkan uang customer, dan menggunakan prosedur FinishTransaction, akan ditampilkan jumlah kembalian serta transaksi dimasukkan kedalam tabel income.
Tabel 3.2.1.5-3 Objek-Objek pada Cashier Panel
3.2.1.6 Spesifikasi Proses/Algoritma
<Id. Proses > : ALGO-01 (CheckOrderValid)
Objek terkait : textFieldUsername_Login, textFieldPassword_Login, buttonBuy_Utama Event : buttonBuy_Utama onClick
Initial State (IS):
Menampilkan semua jenis makanan yang tersedia
Final State (FS):
Melakukan validasi pemesanan dan mentransmisikan kelayar kasir
Spesifikasi Proses/algoritma:
FOR EACH quantity IN pesanan DO
IF (quantity – Sell.quantity < 0) THEN
Tampilkan layar pesan “Pesanan tidak valid” BREAK
Transmisikan Pesanan ke Cashier Panel
<Id. Proses > : ALGO-02 (CheckUserValid)
Objek terkait : itemList_Utama, labelQItemList_Utama, buttonSignIn_Login Event : buttonSignIn_Login onClick
Initial State (IS):
NONE
Final State (FS):
Mengecek validitas Username dan Password yang dimasukkan. Jika masukkan valid, maka akan ditampilkan layar selanjutnya, yaitu Cashier Panel.
Spesifikasi Proses/algoritma:
If (IsNotEmpty(textFieldUsername_Login)) AND (IsNotEmpty(textFieldPassword_Login)) THEN
IF (Match(textFieldUsername_Login, textFieldPassword_Login)) THEN Tampilkan layar Cashier Panel
ELSE
Tampilkan layar pesan “Username dan Password tidak cocok” ELSE
Tampilkan layar pesan “Username dan Password tidak boleh kosong”
<Id. Proses > : ALGO-03 (FinishTransaction)
Objek terkait : tablePesananList_Cashier, checkBoxCetakStruk_Cashier, buttonBuy_Cashier Event : buttonBuy_Cashier onClick
Initial State (IS):
Menampilkan semua jenis pesanan dari pelanggan
Final State (FS):
Menerima pembayaran dari pelanggan dan mencetak struk jika diperlukan, serta mentransmisikan data kedalam basis data
Spesifikasi Proses/algoritma:
IF (jumlahBayar > subTotal) THEN
jumlahKembalian = jumlahBayar – subtotal Transmisikan data kedalam tabel Income
IF (isChecked(checkBoxCetakStruk_Cashier)) THEN Transmisikan data ke printer Struk
ELSE
Tampilkan layar pesan “Jumlah uang yang diterima tidak mencukupi”
3.2.2 Modul 02 : Pengolahan Menu dan Rekomendasi
3.2.2.1 Fungsi Modul
No Fungsi Jenis Tabel Terkait
1 Menampilkan promo Report Tabular Makanan
2 Menghapus promo Form Entry Tabular Makanan
3 Mengupdate promo Form Entry Columnar Makanan
4 Menampilkan menu beserta cita rasa, modal dan
harganya Report Tabular Makanan, Citarasa
6 Mengupdate menu Form Entry Tabular Makanan,
7 Menghapus menu Form Entry Tabular Makanan
8 Mengupdate cita rasa Form Entry Columnar Makanan, Citarasa
9 Menghapus cita rasa Form Entry Columnar Makanan, Citarasa
10 Menampilkan rekomendasi Report Tabular Makanan
11 Mengupdate recommendation Form Entry Tabular Makanan
12 Menghapus recommendation Form Entry Tabular Makanan
13 Mengupdate modal Form Entry Columnar Makanan
14 Mengupdate harga Form Entry Columnar Makanan
3.2.2.2 Spesifikasi Layar Utama
Gambar 3.2.2.2-2 Layar Modul Pengolahan Menu dan Rekomendasi (Chef)
Gambar 3.2.2.2-4 Layar Update Menu
3.2.2.3 Spesifikasi Query
ID Query Deskripsi Ekspresi Query
QUE-04
Mencari makanan dengan nama tertentu dan memilih atribut nama, keterangan, gambar, stok, harga, modal
SELECT Makanan.nama, keterangan, gambar, stok, harga, modal FROM Makanan, Citarasa WHERE Makanan.id_citarasa =
Citarasa.id_citarasa AND Makanan.nama = [TextFieldSearchFood]
QUE-05 Mencari makanan dengan nama tertentu SELECT * FROM Makanan WHERE nama = [TextFieldNewPromo]
QUE-06 Mencari diskon makanan tertentu SELECT diskon FROM Makanan WHERE nama = [TextFieldNewPromo]
QUE-07 Mencari citarasa dengan nama tertentu SELECT * FROM Citarasa WHERE nama = [TextFieldNewCitaRasa]
QUE-08 Mencari makanan dengan nama tertentu SELECT * FROM Makanan WHERE nama = [TextFieldNewRecommendation]
QUE-09 Mencari recommended makanan tertentu
SELECT recommended FROM Makanan WHERE nama =
[TextFieldNewRecommendation]
3.2.2.4 Spesifikasi Field Data Layar
Label Field Tabel/
TextFieldSearchFood Makanan.nama Makanan,
Citarasa - Nama makanan yang ingin dicari TextFieldNewPromo nama Makanan NOT NULL Nama makanan yang akan
ditambahkan dalam daftar promo
TextFieldNewDiskon diskon Makanan
NOT NULL, lebih dari 0, kurang dari 100
Besar diskon makanan yang baru
Tabel 3.2.2.4-1 Spesifikasi Field Data pada Layar Admin
Label Field Tabel/
Query Validasi Keterangan
TextFieldNewCitaRasa nama Citarasa NOT NULL
Nama citarasa yang ingin ditambahkan
TextFieldNewRecommendation recommended Makanan NOT NULL
Nama makanan yang akan direkomendasikan
Tabel 3.2.2.4-2 Spesifikasi Field Data pada Layar Chef
Label Field Tabel/
Query Validasi Keterangan
TextFieldNewNama nama Makanan NOT NULL
Nama makanan yang ingin ditambahkan
TextFieldNewKeterangan keterangan Makanan NOT NULL
Keterangan makanan yang ingin ditambahkan
TextFieldNewStok stok Makanan NOT NULL
Stok makanan yang ingin ditambahkan
TextFieldNewHarga harga Makanan NOT NULL
Harga makanan yang ingin ditambahkan
TextFieldNewModal modal Makanan NOT NULL
Modal makanan yang ingin ditambahkan
ComboBoxCitaRasa Makanan.id_citarasa Makanan, Citarasa
NOT NULL
ComboBox berisi daftar citarasa yang tersedia
Tabel 3.2.2.4-3 Spesifikasi Field Data pada Layar Penambahan Menu
Label Field Tabel/
Query Validasi Keterangan
TextFieldNewNama nama Makanan - Nama makanan yang ingin ditambahkan
TextFieldNewKeterangan keterangan Makanan - Keterangan makanan yang ingin ditambahkan
TextFieldNewStok stok Makanan - Stok makanan yang ingin ditambahkan
TextFieldNewHarga harga Makanan - Harga makanan yang ingin ditambahkan
TextFieldNewModal modal Makanan - Modal makanan yang ingin ditambahkan
ComboBoxCitaRasa Makanan.id_citarasa Makanan, Citarasa -
ComboBox berisi daftar citarasa yang tersedia
3.2.2.5 Spesifikasi Objek-Objek pada Layar
Id_Objek Jenis Keterangan
LabelAdmin/Chef Label Berisi nama pemakai yang sedang login
ButtonLogOut Button Melakukan log out saat button di-klik
TextFieldSearchFood TextField Untuk mengetikkan nama/jenis makanan yang ingin dicari
ButtonGo Button Jika di-klik, maka akan menjalankan ALGO-1
TabPromo Tab Jika di-klik, akan menampilkan daftar makanan yang sedang dalam masa promo
LabelPromoXX Label
Label yang berisi nama makanan ke-XX yang sedang dalam masa promo(XX merupakan index promo dimulai dari 1 sampai total jenis makanan yang sedang promo)
LabelDiskonXX Label Label yang berisi besar diskon makanan ke-XX
TextFieldNewDiskonXX TextField Untuk mengetikkan besar diskon makanan ke-XX yang baru
ButtonDeletePromoXX Button Jika di-klik, maka akan menghapus promo makanan ke-XX dengan mengeset atribut diskonnya menjadi 0
ButtonUpdatePromoXX Button Jika di-klik, akan menjalankan ALGO-3
TextFieldNewPromo TextField Untuk mengetikkan nama makanan yang akan dijadikan promo
ButtonNewPromo Button Jika di-klik, akan menjalankan ALGO-2
ButtonNewFood Button Jika di-klik, akan menampilkan layar 3.2.2.2-3
LabelNamaMakananXX Label Berisi nama makanan ke-XX (XX merupakan index makanan dimulai dari 1 sampai total jenis makanan yang terdata)
LabelKeteranganMakananXX Label Berisi keterangan makanan ke-XX
IconCitaRasaMakanan Icon Berisi icon/gambar cita rasa makanan ke-XX
LabelStokMakananXX Label Berisi stok makanan ke-XX
LabelHargaMakananXX Label Berisi harga makanan ke-XX
LabelModalMakananXX Label Berisi modal makanan ke-XX
ButtonDeleteMakanan Button Jika di-klik, akan menghapus makanan ke-XX tersebut dalam daftar menu
ButtonUpdateMakanan Button Jika di-klik, akan menampilkan layar 3.2.2.2-4
Id_Objek Jenis Keterangan
TabRecommendation Tab Jika di-klik, akan menampilkan daftar makanan yang direkomendasi chef
LabelRekomendasiXX Label
Label yang berisi nama makanan ke-XX yang direkomendasi chef (XX merupakan index rekomendasi dimulai dari 1 sampai total jenis makanan yang direkomendasi)
ButtonDeleteRekomendasiXX Button Jika di-klik, maka akan menghapus rekomendasi makanan ke-XX dengan mengeset field recommended-nya dengan NO
TextFieldNewRekomendasi TextField Untuk mengetikkan nama makanan yang akan direkomendasi
ButtonNewRekomendasi Button
Jika di-klik, akan menambah daftar rekomendasi dengan makanan pada TextFieldNewRekomendasi (jika makanan tersebut belum direkomendasi)
TabCitaRasa Tab Jika di-klik, akan menampilkan daftar citarasa beserta gambarnya yang terdaftar
LabelCitaRasaXX Label Label yang berisi nama citarasa ke-XXbeserta gambarnya (XX merupakan index citarasa dimulai dari 1 sampai total citarasa)
ButtonDeleteCitaRasaXX Button Jika di-klik, maka akan menghapus citarasa ke-XX dari tabel Citarasa
TextFieldNewCitaRasa TextField Untuk mengetikkan nama citarasa yang baru
ButtonNewCitaRasa Button Jika di-klik, akan menjalankan ALGO-4
IconNewCitaRasa Icon Gambar Citarasa yang baru
ButtonBrowse Button Jika di-klik, akan membuka link untuk mencari gambar cita rasa yang baru
Tabel 3.2.2.5-2 Objek-Objek pada Layar Chef
Id_Objek Jenis Keterangan
TextFieldNewNama TextField Untuk mengetikkan nama makanan yang baru
TextFieldNewKeterangan TextField Untuk mengetikkan keterangan makanan yang baru
TextFieldNewStok TextField Untuk mengetikkan stok makanan yang baru
TextFieldNewHarga TextField Untuk mengetikkan harga makanan yang baru
TextFieldNewModal TextField Untuk mengetikkan modal makanan yang baru
ComboBoxCitaRasa ComboBox Untuk memilih citarasa makanan yang baru
ButtonEntry Button Jika di-klik, akan mendaftarkan makanan yang baru ke dalam tabel Makanan dan kembali ke layar 3.2.2.2-1
ButtonCancel Button Jika di-klik, akan membatalkan penambahan menu dan kembali ke layar 3.2.2.2-1
Tabel 3.2.1.5-3 Objek-Objek pada Layar Penambahan Menu
Id_Objek Jenis Keterangan
TextFieldNewNama TextField Untuk mengganti nama makanan
TextFieldNewKeterangan TextField Untuk mengganti keterangan makanan
TextFieldNewStok TextField Untuk mengganti stok makanan
TextFieldNewHarga TextField Untuk mengganti harga makanan
TextFieldNewModal TextField Untuk mengganti modal makanan
ComboBoxCitaRasa ComboBox Untuk mengganti citarasa makanan
ButtonUpdate Button Jika di-klik, akan mengupdate data makanan bila TextField tidak NULL dan kembali ke layar 3.2.2.2-1
ButtonCancel Button Jika di-klik, akan membatalkan update menu dan kembali ke layar 3.2.2.2-1
Tabel 3.2.2.5-4 Objek-Objek pada Layar Update Menu
3.2.2.6 Spesifikasi Proses/Algoritma
Hanya diisi untuk proses/algoritma yang rumit
<Id. Proses > : ALGO-04
Objek terkait : ButtonGo, TextFieldSearchFood Event : ButtonGo on Click
Initial State (IS):
Menampilkan semua jenis makanan yang tersedia
Final State (FS):
Menampilkan jenis makanan yang sesuai dengan masukan pada TextFieldSerachFood
Spesifikasi Proses/algoritma:
IF (isNULL(TextFieldSearchFood)) THEN
Tampilkan semua jenis makanan yang tersedia ELSE
Jalankan Result = QUE-1 IF (isNotNULL(Result)) THEN Tampilkan hasil query tersebut ELSE
Tampilkan layar pesan “Makanan tidak ditemukan”
<Id. Proses > : ALGO-05
Objek terkait : ButtonNewPromo, TextFieldNewPromo Event : ButtonNewPromo on Click
Initial State (IS):
NONE
Final State (FS):
Menambahkan daftar promo dengan makanan sesuai dengan TextFieldNewPromo
Spesifikasi Proses/algoritma:
IF (isNULL(TextFieldNewPromo)) THEN
Tampilkan layar pesan “Nama makanan kosong” ELSE
Jalankan Cek = QUE-2 IF (IsNULL(Cek))) THEN
Tampilkan layar pesan “Nama makanan tidak ditemukan” ELSE
Jalankan Result = QUE-3 IF (Result = 0) THEN
Update atribut promo makanan tersebut menjadi 10 (default value) Tampilkan dalam daftar promo
ELSE
Tampilkan layar pesan “Makanan telah terdapat dalam daftar promo”
<Id. Proses > : ALGO-06
Objek terkait : ButtonUpdatePromoXX, TextFieldNewDiskonXX, LabelDiskonXX, LabelPromoXX Event : ButtonUpdatePromoXX on Click
Initial State (IS):
Makanan dengan nama pada LabelPromoXX memiliki diskon sebesar LabelDiskonXX
Final State (FS):
Mengupdate diskon makanan dengan nama pada LabelPromoXX menjadi TextFieldNewDiskonXX
Spesifikasi Proses/algoritma:
IF (isNULL(TextFieldNewDiskonXX) OR (TextFieldNewDiskonXX < 0) OR (TextFieldNewDiskon > 100)) THEN
Tampilkan layar pesan “Diskon tidak sesuai, harus di antara 0% sampai 100%” ELSE
Update atribut diskon makanan dengan nama pada LabelPromoXX menjadi TextFieldNewDiskonXX
<Id. Proses > : ALGO-07
Objek terkait : TextFieldNewCitaRasa, ButtonNewCitaRasa, IconNewCitaRasa Event : ButtonNewCitaRasa on Click
Initial State (IS):
Makanan dengan nama pada LabelPromoXX memiliki diskon sebesar LabelDiskonXX
Final State (FS):
Mengupdate diskon makanan dengan nama pada LabelPromoXX menjadi TextFieldNewDiskonXX
Spesifikasi Proses/algoritma:
IF (isNULL(TextFieldNewCitaRasa)) THEN
Tampilkan layar pesan “Nama citarasa kosong” ELSE IF (isNULL(IconNewCitaRasa)) THEN
Tampilkan layar pesan “Gambar citarasa kosong” ELSE
Jalankan Result = QUE-4 IF (isNULL(Result)) THEN
Tambahkan citarasa baru dengan nama pada TextFieldCitaRasa dan gambar pada IconNewCitaRasa
ELSE
Tampilkan layar pesan “Citarasa telah terdaftar”
<Id. Proses > : ALGO-08
Objek terkait : ButtonNewRecommendation, TextFieldNewRecommendation Event : ButtonNewRecommendation on Click
Initial State (IS):
NONE
Final State (FS):
Menambahkan daftar rekomendasi dengan makanan sesuai dengan TextFieldNewRecommendation
Spesifikasi Proses/algoritma:
IF (isNULL(TextFieldNewRecommendation)) THEN Tampilkan layar pesan “Nama makanan kosong” ELSE
Jalankan Cek = QUE-5 IF (IsNULL(Cek))) THEN
Tampilkan layar pesan “Nama makanan tidak ditemukan” ELSE
Jalankan Result = QUE-6 IF (Result = NO) THEN
Update atribut recommended makanan tersebut menjadi YES Tampilkan dalam daftar rekomendasi
Tampilkan layar pesan “Makanan telah terdaftar dalam daftar rekomendasi”
3.2.3 Modul 03 : Pengolahan Laporan
3.2.3.1 Fungsi Modul
No Fungsi Jenis Tabel Terkait
1 Memuat laporan dalam periode tertentu Report Tabular Makanan, Income,
Outcome
2 Mencetak laporan Form Button Makanan, Income,
Outcome
3 Memilih periode laporan Form Button Makanan, Income,
Outcome 4 Menambahkan pengeluaran yang tidak
berkaitan dengan menu makanan Form Entry Columnar Income, Outcome
5 Menambahkan pemasukan yang tidak
berkaitan dengan menu makanan Form Entry Columnar Income, Outcome
6 Mengurangi pengeluaran yang tidak berkaitan
dengan menu makanan Form Entry Tabular Income, Outcome
7 Mengurangi pemasukan yang tidak berkaitan
dengan menu makanan Form Entry Tabular Income, Outcome
8 Memilih jenis tampilan laporan Form Button Makanan, Income,
Outcome
3.2.3.2 Spesifikasi Layar Utama
Gambar 3.2.3.2-2 Layar Tambah Income
Gambar 3.2.3.2-1 Layar Tambah Outcome
3.2.3.3 Spesifikasi Query
ID Query Deskripsi Ekspresi Query
QUE-10 FOOD_INCOME_SELECT
SELECT nama_makanan, harga_makanan FROM Makanan natural join Transaksi WHERE tanggal transaksi = ‘%-MEI-2013’
QUE-11 NON_FOOD_INCOME_SELECT
SELECT judul_transaksi, biaya_transaksi FROM income WHERE tanggal transaksi = ‘%-MEI-2013’
QUE-12 NON_FOOD_OUTCOME_SELECT
SELECT judul_transaksi, biaya_transaksi FROM outcome WHERE tanggal transaksi = ‘%-MEI-2013’
3.2.3.4 Spesifikasi Field Data Layar
Label Field Tabel/
Query Validasi Keterangan
textFieldNewIncomeTitle price Income NOT NULL Diisi dengan judul transaksi pemasukan non-makanan
textFieldNewIncomeRp price Income
NOT NULL, NUMERIC, NOT ZERO
Diisi dengan jumlah transaksi pemasukan non-makanan
textFieldNewOutcomeTitle price Outcome NOT NULL Diisi dengan judul transaksi pengeluaran non-makanan
textFieldNewOutcomeRp price Outcome
NOT NULL, NUMERIC, NOT ZERO
Diisi dengan jumlah transaksi pengeluaran non-makanan
Tabel 3.2.3.4-1 Spesifikasi Field Semua Data Layar Pada Modul 3
3.2.3.5 Spesifikasi Objek-Objek pada Layar
Id_Objek Jenis Keterangan
labelPeriode Label Teks yang merupakan periode laporan
labelTotalIncome Label Teks yang merupakan total pemasukan
labelFoodIncome Label Teks yang merupakan total pemasukan dari makanan
labelNonFoodIncome Label Teks yang merupakan total pemasukan dari non-makanan
buttonChangePeriod Button Bila diklik akan memunculkan dialog untuk mengganti periode laporan
buttonAddIncome Button Bila diklik akan memunculkan dialog untuk menambahkan transaksi pemasukan non-makanan
buttonAddOutcome Button Bila diklik akan memunculkan dialog untuk menambahkan transaksi pengeluaran non-makanan
buttonPrint Button Bila diklik akan menjalankan prosedur cetak
optionAll Filter
Option
Bila dipilih, akan menfilter list item laporan sehingga item dengan kategori food dan non-food akan ditampilkan
optionFoodOnly Filter
Option
Bila dipilih, akan menfilter list item laporan sehingga item dengan kategori food akan ditampilkan
optionNonFoodOnly Filter
Option
Bila dipilih, akan menfilter list item laporan sehingga item dengan kategori non-food akan ditampilkan
optionIncomeOnly Filter
Option
Bila dipilih, akan menfilter list item laporan sehingga item dengan kategori food dan kategori income non-food akan ditampilkan
optionOutcomeOnly Filter
Option
Bila dipilih, akan menfilter list item laporan sehingga item dengan kategori outcome non-food akan ditampilkan
Id_Objek Jenis Keterangan
labelJudulTransaksiXX Label
Teks yang merupakan penjelasan tentang judul transaksi (nama makanan bila transaksi tersebut berhubungan adalah transaksi makanan)
labelKategoriXX Label Teks yang merupakan kategori transaksi (makanan / non-makanan)
labelIncomeOutcomeXX Label Teks yang merupakan income atau outcome dari transaksi tersebut
Tabel 3.2.3.5-1 Objek-Objek pada Layar Manajemen Laporan
Id_Objek Jenis Keterangan
textFieldNewIncomeTitle Label Diisi dengan judul transaksi pemasukan non-makanan
textFieldNewIncomeRp Label Diisi dengan jumlah transaksi pemasukan non-makanan
buttonAddIncome Button Mengirimkan data income yang baru
buttonCancelAddIncome Button Membatalkan aksi penambahan income dan kembali ke layar manajemen laporan
Tabel 3.2.3.5-2 Objek-Objek pada Layar Tambah Income
Id_Objek Jenis Keterangan
textFieldNewOutcomeTitle Label Diisi dengan judul transaksi pengeluaran non-makanan
textFieldNewOutcomeRp Label Diisi dengan jumlah transaksi pengeluaran non-makanan
buttonAddOutcome Button Mengirimkan data outcome yang baru
buttonCancelAddOutcome Button Membatalkan aksi penambahan outcome dan kembali ke layar manajemen laporan
3.2.4 Modul 04 : Pengolahan Feedback
3.2.4.1 Fungsi Modul
No Fungsi Jenis Tabel Terkait
1 Memuat feedback dalam periode tertentu Report Tabular Feedback
2 Mencetak seluruh feedback Form Button Feedback
3 Memilih periode laporan Form Button Feedback
4 Memilih jenis tampilan feedback Form Button Feedback
5 Memilih feedback yang akan dibuka Form Button Feedback
6 Membukafeedback yang terpilih Report Tabular Feedback
7 Melakukan entri feedback Form Entry Tabular Feedback
10 Menyimpan seluruh input Form Button Feedback
11 Membatalkan seluruh input Form Button Feedback
3.2.4.2 Spesifikasi Layar Utama
Gambar 3.2.4.2-2 Layar Modul Pengolahan Pesanan (Login Panel)
Gambar 3.2.4.2-3 Layar Modul Feedback (Admin Panel)
3.2.4.3 Spesifikasi Query
ID Query Deskripsi Ekspresi Query
QUE-13 SARAN_SELECT SELECT nama_feedback, content FROM Feedback WHERE timestamp = ‘%-MEI-2013’ QUE-14 KRITIK _SELECT SELECT nama_feedback, content FROM Feedback WHERE timestamp = ‘%-MEI-2013’
3.2.4.4 Spesifikasi Field Data Layar
Label Field Tabel/
Query Validasi Keterangan
textFieldUsername_Login username Pengguna NOT NULL Username staff untuk autentikasi perangkat lunak textFieldPassword_Login password Pengguna NOT NULL Password staff untuk autentikasi
perangkat lunak
3.2.4.5 Spesifikasi Objek-Objek pada Layar
Id_Objek Jenis Keterangan
textFieldNama Text Field Untuk mengetikkan nama pembuat feedback
textFieldFeedback Text Field Untuk mengetikkan isi content feedback
radioButtonKategori Radio Button Memilih salah satu kategori untuk feedback yang dibuat
buttonSimpan Button Bila diklik akan melakukan Algo-1
buttonBatal Button Bila diklik akan menghapus textFieldNama dan textFieldFeedback
buttonLogin Button Jika di-klik, maka aplikasi akan masuk kedalam tampilan Login Panel (Gambar 3.2.4.2-2)
Tabel 3.2.4.5-1 Objek-Objek pada Layar Feedback
Id_Objek Jenis Keterangan
labelLogin_LoginF Label Label yang memberikan keterangan Login Panel
labelUsername_LoginF Label Label yang memberikan keterangan textFieldUsername_LoginF
textFieldUsername_LoginF TextField Untuk mengetikkan username dari staff restoran
labelPassword_LoginF Label Label yang memberikan keterangan textFieldPassword_LoginF
textFieldPassword_LoginF TextField Untuk mengetikkan password dari staff restoran
buttonForgetPass_LoginF Button Jika di-klik, program akan mengirimkan password default kepada username sesuai e-mail yang terdaftar
buttonSignIn_LoginF Button
Jika di-klik, button ini akan menggunakan algoritma
CheckUserValid untuk melakukan validasi user. Jika user tidak valid, maka akan ditampilkan alertbox pada layar yang
memberikan pesan bahwa user invalid. Jika user valid, maka layar akan ditransmisikan ke panel sesuai peran staff (Gambar 3.2.4.2-3 untuk cashier/kasir)
buttonBack_LoginF Button Jika di-klik, maka akan ditampilkan layar sebelumnya, yaitu halaman utama (Gambar 3.2.4.2-1)
Id_Objek Jenis Keterangan
textFieldPeriodeF Text Field Teks yang merupakan periode feedback
textFieldTotalFeedback Text Field Teks yang merupakan total feedback
textFieldSaranFeedback Text Field Teks yang merupakan total feedback berjenis saran
textFieldKritikFeedback Text Field Teks yang merupakan total feedback berjenis kritik
buttonChangePeriodF Button Bila diklik akan memunculkan dialog untuk mengganti periode feedback
buttonAddFeeback Button Bila diklik akan kembali ke panel pengisian feedback
buttonPrintF Button Bila diklik akan menjalankan prosedur cetak
optionAllF View Option Bila dipilih, akan menfilter itemListDetail sehingga feedback dengan kategori saran dan kritik akan ditampilkan
optionSaranOnly View Option Bila dipilih, akan menfilter itemListDetailF sehingga feedback dengan kategori saran akan ditampilkan
optionKritikOnly View Option Bila dipilih, akan menfilter itemListDetailF sehingga feedback dengan kategori kritik akan ditampilkan
itemListDetailF Struct Item Diisi dengan list feedback sesuai filter yang dipilih (nama_feedback, jenis_feedback, content)
itemListFeedbackDetail Struct Item Diisi dengan penjelasan tentang detail feedback yang dipilih (nama_feedback, jenis_feedback, content)
3.3 Matriks Kerunutan
ID Kebutuhan Modul Keterangan
FR-01 Modul 1 (1.1) Menampilkan menu pesanan (Permintaan pesanan)
FR-02 Modul 1 (1.2, 1.3 1.3.1)
Melakukan entri / order pesanan, beserta proses update maupun cancel pesanan FR-03 Modul 1 (1.3 1.3.2) Melakukan pembayaran transaksi pesanan
FR-04 Modul 1 (1.3 1.3.3) Melakukan pencetakan struk transaksi pesanan
FR-05 Modul 2 (2.1, 2.3, 2.4) Melakukan manajemen menu beserta citarasa
FR-06 Modul 4 (4.1, 4.2) Melakukan manajemen feedback
FR-07 Modul 3 (3.2 3.2.1) Menampilkan / melakukan monitoring rekap keuangan
FR-08 Modul 3 (3.2 3.2.2) Mencetak laporan keuangan, baik internal maupun eksternal
FR-09 Modul 2 (2.2) Melakukan entri / cancel promo (diskon)
FR-10 Modul 2 (2.5) Memberikan Chef’s Recommendation
FR-11 Modul 2 (2.1, 2.4) Melakukan manajemen stok makanan
FR-12 Modul 3 (3.1) Menambahkan pemasukan eksternal (diluar proses transaksi restoran)