Evaluasi Akhir Semester - Perancangan Perangkat Lunak
Nama : I Gusti Ngurah Ervan Juli Ardana NRP : 5025211205 Kelas : Perancangan Perangkat Lunak A
Evaluasi Akhir Semester PPL
Deskripsikan model bisnis yang dipilih?
Jawaban :
Model bisnis yang akan saya gunakan yaitu model bisnis perusahaan starbucks. Starbucks Corporation adalah perusahaan multinasional asal Amerika Serikat yang terkenal sebagai rantai kedai kopi terbesar di dunia. Perusahaan ini dikenal dengan produk kopinya yang berkualitas tinggi serta pengalaman pelanggan yang unik.
Salah satu prinsip utama yang mendasari model bisnis Starbucks adalah konsep "tempat ketiga". Konsep ini merujuk pada penciptaan lingkungan yang nyaman dan ramah dimana pelanggan dapat bersantai dan bersosialisasi, selain dari rumah dan tempat kerja mereka. Starbucks mencapai hal ini dengan mendesain gerainya dengan perabotan yang nyaman, menyediakan Wi-Fi gratis, dan menciptakan suasana yang hangat serta mengundang.
Lebih dari sekadar menyediakan tempat fisik, Starbucks juga memperhatikan aspek pengalaman pelanggan dengan cermat. Mereka menyusun daftar putar musik yang menciptakan suasana menenangkan, menjadikannya tempat yang ideal untuk bersantai. Aroma kopi yang baru diseduh yang memenuhi udara menambah daya tarik, membuat pelanggan merasa nyaman dan ingin menghabiskan waktu lebih lama di sana.
Pilar lain dari model bisnis Starbucks adalah komitmennya terhadap kualitas. Perusahaan ini hanya menggunakan biji kopi terbaik dari seluruh dunia dan berinvestasi dalam program pelatihan yang ketat untuk memastikan para barista dapat menyajikan secangkir kopi yang sempurna. Komitmen terhadap kualitas ini tidak hanya terbatas pada kopi, tetapi juga meliputi produk-produk lainnya, seperti kue kering dan sandwich, yang dibuat dengan bahan-bahan segar dan berkualitas tinggi.
Starbucks sangat menaruh perhatian pada proses pemilihan biji kopinya. Pembeli kopi ahli mereka berkeliling ke berbagai daerah penghasil kopi, membangun hubungan dengan para petani, dan memastikan bahwa mereka mematuhi praktik pertanian berkelanjutan. Langkah ini tidak hanya menjamin kualitas kopi yang tinggi, tetapi juga mendukung kesejahteraan para petani dan menjaga kelestarian lingkungan.
Identifikasi perangkat lunak apa saja yang diperlukan, kemudian jelaskan alasannya?
Jawaban :
Starbucks Mobile App
Aplikasi mobile Starbucks memungkinkan pelanggan untuk memesan minuman secara online, melihat estimasi waktu pengambilan, dan mendapatkan bonus poin. Hal ini mengurangi kontak fisik dengan staf dan meningkatkan kenyamanan pelanggan melalui pemesanan dan pembayaran digital, sehingga meningkatkan pengalaman pelanggan secara keseluruhan.
Order management system
Untuk mengelola pesanan pelanggan yang diterima melalui aplikasi mobile atau platform online lainnya, Starbucks memanfaatkan sistem manajemen pesanan. Sistem ini memastikan pesanan disiapkan tepat waktu dan informasi status pesanan dikirimkan kepada pelanggan, sehingga meningkatkan efisiensi dan kepuasan pelanggan.
Stock System
Di samping itu, sistem manajemen stok digunakan untuk melacak persediaan bahan baku dan produk jadi. Dengan sistem ini, Starbucks dapat menghindari kehabisan stok dan memastikan operasional yang lancar dengan persediaan yang selalu tersedia untuk memenuhi pesanan pelanggan.
Navigation System
Starbucks membutuhkan Sistem navigasi untuk membantu pelanggan menemukan lokasi Starbucks terdekat dan memberikan informasi mengenai layanan yang tersedia, seperti layanan takeaway.
Warehouse Management System
Starbucks seharusnya membutuhkan sistem Untuk pengelolaan gudang penyimpanan bahan baku dan produk jadi. Maka itu Sistem Warehouse Management System baik diterapkan
Supply Chain Management System
Starbucks membutuhkan SCM untuk mengelola pengadaan biji kopi, bahan baku, dan distribusi ke ribuan toko di seluruh dunia. SAP SCM atau Oracle SCM mungkin digunakan.
Human Resource Information System
Untuk pengelolaan karyawan, penggajian, dan manajemen tenaga kerja, kemungkinan menggunakan Workday atau SAP SuccessFactors.
Quality Management System
Untuk memastikan kualitas produk dan kepatuhan terhadap standar, Starbucks mungkin menggunakan perangkat lunak seperti EtQ atau MasterControl.
Buatkan rancangan perangkat lunaknya ?
Jawaban :
Deskripsi Aplikasi
Starbucks Coffee merupakan perusahaan yang pada dasarnya bergerak dalam bidang coffee retail, dimana mereka membeli dan memanggang secara utuh biji kopi berkualitas tinggi dan menjualnya melalui aneka lini produk minuman espresso ala Italia yang segar dan bercita rasa tinggi. Starbucks Coffee juga menyediakan berbagai makanan ringan berupa kue kering dan basah, peralatan dan aksesori yang berkaitan dengan minuman kopi. Fitur utama yang akan disediakan oleh aplikasi ini meliputi:
Pemesanan Minuman dan Makanan: Pelanggan dapat memesan minuman dan makanan melalui aplikasi.
Pembayaran Digital: Pelanggan dapat membayar menggunakan kartu kredit/debit atau dompet digital.
Program Loyalitas: Pelanggan dapat mengumpulkan poin dari pembelian yang dapat ditukarkan dengan hadiah.
Pelacakan Pesanan: Pelanggan dapat melacak status pesanan mereka secara real-time.
Penawaran Khusus dan Promosi: Pelanggan dapat menerima penawaran khusus dan promosi yang dipersonalisasi.
Requirements
Functional
User Authentication
Pengguna dapat mendaftar dan masuk menggunakan email atau media sosial.
Order Management
Pengguna dapat memilih produk dari menu.
Pengguna dapat menambah atau mengurangi item dalam keranjang belanja.
Pengguna dapat melakukan pemesanan.
Payment Integration
Pengguna dapat menyimpan metode pembayaran.
Pengguna dapat melakukan pembayaran melalui berbagai metode (kartu kredit, dompet digital).
Loyalty Program
Pengguna dapat melihat dan mengumpulkan poin dari setiap transaksi.
Pengguna dapat menukarkan poin untuk hadiah.
Order Tracking
Pengguna dapat melacak status pesanan secara real-time.
Notifications
Pengguna dapat menerima notifikasi tentang status pesanan dan promosi.
Non-Functional
Security
Data pengguna dan transaksi harus aman dengan enkripsi.
Performance
Aplikasi harus responsif dan cepat dengan waktu respon kurang dari 2 detik untuk setiap transaksi.
Scalability
Aplikasi harus mampu menangani peningkatan jumlah pengguna.
Usability
Aplikasi harus mudah digunakan dan intuitif.
Compatibility
Aplikasi harus kompatibel dengan berbagai perangkat dan sistem operasi.
Estimation Capacity
Estimasi Trafik
Misalkan kita memiliki total 1 Juta pengguna dengan 100 Ribu pengguna aktif harian (DAU), dan setiap pengguna, secara rata-rata, melakukan 1 pesanan per hari. Dari situ, dapat disimpulkan bahwa terdapat sekitar 1 miliar pesanan setiap hari.
Total Trafik = Total Pengguna x pesanan Per-hari
= 100 Ribu x 1 pesanan = 100 ribu/hari
Dari pesanan tersebut aplikasi ini juga dapat menambahkan feedbaack yang mencakup media seperti gambar atau video. Jika kita mengasumsikan bahwa 10 persen dari feedback tersebut berupa file media yang dibagikan oleh pengguna, maka akan ada tambahan 10 ribu file yang perlu disimpan.
10 persen x 100 ribu = 10 ribu/hari
Dengan demikian, Permintaan Sistem per Detik (RPS) adalah sekitar 1,15 permintaan per detik.
100 ribu / (24 jam x 3600 detik) = 1,15 permintaan/detik
Estimasi Storage
Jika kita anggap setiap pesan memiliki rata-rata ukuran 100 byte, maka kita akan membutuhkan sekitar 100 GB penyimpanan database setiap harinya.
100 ribu x 100 byte =0,01 GB/hari
Dari jumlah tersebut, 10 persen dari pesan harian (10 RIBU) adalah file media. Jika kita asumsikan setiap file memiliki ukuran rata-rata 50KB, maka kita akan memerlukan penyimpanan sebesar 5 TB setiap harinya.
10 Ribu x 50 KB = 0,5 GB/hari
Sehingga, dalam jangka waktu 10 tahun, kita membutuhkan penyimpanan sekitar 19 PB.
(0,5 GB + 0,01 GB ) x 365 hari x 10 tahun = 1861.5 GB
Estimasi Bandwidth
Dengan sistem ini memproses masukan sebesar 5,1 TB setiap harinya, sistem ini memerlukan bandwidth minimum sekitar 60 MB per detik.
0,5 GB / (24 jam x 3600 detik) = 5.787 mikrobita per detik
High Level Design Starbucks
Main Components
Starbucks Mobile App: Aplikasi mobile untuk memesan minuman secara online, melihat estimasi waktu pengambilan, mendapatkan poin bonus, dan menemukan lokasi terdekat.
Order Management System: Mengelola pesanan dari pelanggan, baik yang dilakukan di toko, melalui aplikasi seluler, atau website.
Stock Management System: Melacak stok bahan baku dan produk jadi di setiap cabang.
Navigation System: Membantu pelanggan menemukan lokasi Starbucks terdekat dan memberikan informasi mengenai layanan yang tersedia, seperti layanan takeaway.
Warehouse Management System (WMS): Mengelola gudang penyimpanan bahan baku dan produk jadi.
Supply Chain Management System (SCM): Mengelola pengadaan biji kopi, bahan baku, dan distribusi ke ribuan toko di seluruh dunia.
Human Resource Information System (HRIS): Mengelola karyawan, penggajian, dan manajemen tenaga kerja.
Quality Management System (QMS): Memastikan kualitas produk dan kepatuhan terhadap standar.
Customer Loyalty Program: Mengelola program loyalitas pelanggan, termasuk poin, diskon, dan promosi.
Reporting and Analytics: Mengumpulkan data dari berbagai sumber untuk menghasilkan laporan dan analisis bisnis.
User Management: Mengelola akun dan peran pengguna, termasuk karyawan dan manajer.
Payment Gateway: Mengintegrasikan dengan berbagai metode pembayaran, termasuk kartu kredit, dompet digital, dan lainnya.
Low Level Design
1. Order Service
UI Layer :
Order Management Interface
Web dan mobile UI untuk pelanggan memesan minuman dan melihat status pesanan.
Komponen utama:
Formulir pemesanan
Daftar produk
Status pesanan
Riwayat pesanan
Application Layer :
Order Controller
Mengelola permintaan API untuk membuat, memperbarui, dan mengambil pesanan.
Order Service
Logika bisnis untuk memproses pesanan, menghitung total, dan memperbarui status.
Memanggil Stock Service untuk memeriksa dan memperbarui stok.
Order Validator
Memvalidasi data pesanan untuk memastikan semua produk tersedia dan jumlah yang dipesan masuk akal.
2. Stock Service
UI Layer :
Inventory Management Interface
Web dan mobile UI untuk manajer toko untuk melihat dan memperbarui stok.
Komponen utama:
Daftar inventaris
Formulir pembaruan stok
Notifikasi stok rendah
Application Layer :
Stock Controller
Mengelola permintaan API untuk memperbarui dan mengambil data stok.
Stock Service
Logika bisnis untuk memperbarui dan mengambil data stok.
Memeriksa stok yang tersedia dan memicu notifikasi jika stok rendah.
3. Navigation Service
UI Layer :
Store Locator Interface
Web dan mobile UI untuk pelanggan menemukan lokasi Starbucks terdekat.
Komponen utama:
Peta lokasi
Daftar cabang terdekat
Detail layanan cabang
Application Layer:
Navigation Controller
Mengelola permintaan API untuk menemukan cabang terdekat.
Navigation Service
Logika bisnis untuk menghitung jarak dan menyaring cabang berdasarkan layanan yang tersedia.
4. Warehouse Management Service (WMS)
UI Layer
Warehouse Management Interface
Web UI untuk staf gudang untuk mengelola inventaris dan pesanan.
Komponen utama:
Daftar inventaris gudang
Formulir pembaruan inventaris
Status pesanan gudang
Application Layer
Warehouse Controller
Mengelola permintaan API untuk memperbarui dan mengambil inventaris gudang.
Warehouse Service
Logika bisnis untuk mengelola inventaris gudang dan memproses pesanan gudang.
5. Supply Chain Management Service (SCM)
UI Layer
Supply Chain Management Interface
Web UI untuk manajer rantai pasokan untuk mengelola pesanan pasokan dan pemasok.
Komponen utama:
Daftar pemasok
Formulir pesanan pasokan
Status pesanan pasokan
Application Layer
Supply Chain Controller
Mengelola permintaan API untuk membuat, memperbarui, dan mengambil pesanan pasokan.
Supply Chain Service
Logika bisnis untuk memproses pesanan pasokan dan mengelola pemasok.
Memastikan pesanan pasokan tepat waktu dan sesuai kebutuhan stok.
6. Human Resource Information Service (HRIS)
UI Layer :
HR Management Interface
Web UI untuk manajer HR untuk mengelola data karyawan, kehadiran, dan penggajian.
Komponen utama:
Daftar karyawan
Formulir karyawan baru
Catatan kehadiran
Penggajian
Application Layer :
HR Controller
Mengelola permintaan API untuk menambah, memperbarui, dan mengambil data karyawan.
HR Service
Logika bisnis untuk mengelola data karyawan, kehadiran, dan penggajian.
Memastikan data karyawan akurat dan up-to-date.
7. Quality Management Service (QMS)
UI Layer
Quality Management Interface
Web UI untuk tim QA untuk mengelola inspeksi kualitas dan laporan.
Komponen utama:
Daftar inspeksi kualitas
Formulir inspeksi baru
Laporan kualitas
Application Layer
Quality Management Controller
Mengelola permintaan API untuk log dan mengambil inspeksi kualitas.
Quality Management Service
Logika bisnis untuk mengelola inspeksi kualitas dan memastikan kepatuhan terhadap standar.
Menganalisis hasil inspeksi dan memicu tindakan jika diperlukan.
Lengkapi dengan desain database dan desain UI
Jawaban :
Database Design :
CDM
PDM
Implementasi
-- tables
-- Table: Item
CREATE TABLE Item (
id_item int NOT NULL,
nama_item varchar(256) NOT NULL,
harga item int NOT NULL,
stok_item int NOT NULL,
CONSTRAINT Item_pk PRIMARY KEY (id_item)
);
-- Table: Item_Feedback
CREATE TABLE Item_Feedback (
feedback_id int NOT NULL,
rating int NOT NULL,
deskripsi varchar(256) NOT NULL,
Order_Details_Order_Details_id int NOT NULL
);
-- Table: Order_Details
CREATE TABLE Order_Details (
Order_Details_id int NOT NULL,
total_harga int NOT NULL,
tanggal date NOT NULL,
Orders_order_id int NOT NULL,
Item_id_item int NOT NULL,
store_id_store int NOT NULL,
CONSTRAINT Order_Details_pk PRIMARY KEY (Order_Details_id)
);
-- Table: Orders
CREATE TABLE Orders (
order_id int NOT NULL,
status boolean NOT NULL,
Total int NOT NULL,
waktu_order date NOT NULL,
waktu-pickup date NOT NULL,
User_id_user int NOT NULL,
CONSTRAINT Orders_pk PRIMARY KEY (order_id)
);
-- Table: User
CREATE TABLE User (
id_user int NOT NULL,
nama_user varchar(256) NOT NULL,
email_user varchar(256) NOT NULL,
telfon_user int NOT NULL,
CONSTRAINT User_pk PRIMARY KEY (id_user)
);
-- Table: employees
CREATE TABLE employees (
id_employee int NOT NULL,
nama_employee varchar(256) NOT NULL,
Jabatan varchar(256) NOT NULL,
store_id_store int NOT NULL
);
-- Table: store
CREATE TABLE store (
id_store int NOT NULL,
nama_store varchar(256) NOT NULL,
lokasi_store varchar(256) NOT NULL,
CONSTRAINT store_pk PRIMARY KEY (id_store)
);
-- foreign keys
-- Reference: Item_Feedback_Order_Details (table: Item_Feedback)
ALTER TABLE Item_Feedback ADD CONSTRAINT Item_Feedback_Order_Details FOREIGN KEY Item_Feedback_Order_Details (Order_Details_Order_Details_id)
REFERENCES Order_Details (Order_Details_id);
-- Reference: Order_Details_Item (table: Order_Details)
ALTER TABLE Order_Details ADD CONSTRAINT Order_Details_Item FOREIGN KEY Order_Details_Item (Item_id_item)
REFERENCES Item (id_item);
-- Reference: Order_Details_Orders (table: Order_Details)
ALTER TABLE Order_Details ADD CONSTRAINT Order_Details_Orders FOREIGN KEY Order_Details_Orders (Orders_order_id)
REFERENCES Orders (order_id);
-- Reference: Order_Details_location_store (table: Order_Details)
ALTER TABLE Order_Details ADD CONSTRAINT Order_Details_location_store FOREIGN KEY Order_Details_location_store (store_id_store)
REFERENCES store (id_store);
-- Reference: Orders_User (table: Orders)
ALTER TABLE Orders ADD CONSTRAINT Orders_User FOREIGN KEY Orders_User (User_id_user)
REFERENCES User (id_user);
-- Reference: employees_store (table: employees)
ALTER TABLE employees ADD CONSTRAINT employees_store FOREIGN KEY employees_store (store_id_store)
REFERENCES store (id_store);
-- End of file.
API Design :
Order Service
- Create Order
Method: POST
Endpoint: /orders
Request Body:
"customer_id": "123",
"items": [
{"product_id": "456", "quantity": 2}
]
}
Response: 201 Created
Get Order
Method: GET
Endpoint: /orders/{order_id}
Response: 200 OK
"order_id": "789",
"customer_id": "123",
"order_date": "2023-07-02T10:00:00Z",
"total_amount": 15.00,
"status": "Completed",
"items": [
{"product_id": "456", "name": "Latte", "quantity": 2, "price": 7.50}
]
}
Update Order Status
Method: PUT
Endpoint: /orders/{order_id}/status
Request Body:
{
"status": "Completed"
}
Response: 200 OK
Stock Service
Update Inventory
Method: PUT
Request Body:
Response: 200 OK
{
"stock": 100
}
Get Inventory
Method: PUT
Request Body:
Response: 200 OK
{
"branch_id": "1",
"inventory": [
{"product_id": "456", "name": "Latte", "stock": 50},
{"product_id": "789", "name": "Espresso", "stock": 30}
]
}
Navigation Service
Get Nearby Stores
Method: GET
Endpoint: /stores/nearby
Request Parameters:
latitude
longitude
radius (optional)
Response: 200 OK
{
"stores": [
{
"store_id": "1",
"name": "Starbucks Central",
"address": "123 Main St",
"latitude": "40.712776",
"longitude": "-74.005974",
"services": ["takeaway", "dine-in"]
}
]
}
Warehouse Management Service (WMS)
Update Warehouse Inventory
Method: PUT
Endpoint: /warehouse/{warehouse_id}/inventory/{product_id}
Request Body:
{
"quantity": 500
}
Response: 200 OK
Get Warehouse Inventory
Method: GET
Request Body:
{
"warehouse_id": "1",
"inventory": [
{"product_id": "456", "name": "Latte", "quantity": 200},
{"product_id": "789", "name": "Espresso", "quantity": 300}
]
}
Response: 200 OK
Supply Chain Management Service (SCM)
Create Supply Order
Method: GET
Request Body:
{
"supplier_id": "1",
"items": [
{"product_id": "456", "quantity": 1000}
]
}
Response: 200 OK
Get Supply Order
Method: GET
Request Body:
Response: 200 OK
{
"order_id": "789",
"supplier_id": "1",
"order_date": "2023-07-02T10:00:00Z",
"delivery_date": "2023-07-05T10:00:00Z",
"status": "Pending",
"items": [
{"product_id": "456", "name": "Latte Beans", "quantity": 1000, "price": 7.50}
]
}
Human Resource Information Service (HRIS)
Add Employee
Method: POST
Request Body:
{
"name": "Ngurah Ervan",
"position": "Barista",
"salary": 30000000
}
Response: 201 Created
Get Employee
Method: GET
Response: 200 OK
{
"employee_id": "123",
"name": "Ngurah Ervan",
"position": "Barista",
"salary": 30000000,
"hire_date": "2023-01-01"
}
Quality Management Service (QMS)
Log Quality Inspection
Method: POST
Request Body :
{
"product_id": "456",
"inspection_date": "2023-07-02",
"result": "Pass",
"comments": "No issues"
}
Get Quality Inspection
Method: GET
Response: 200 OK
{
"inspection_id": "789",
"product_id": "456",
"inspection_date": "2023-07-02",
"result": "Pass",
"comments": "No issues"
}
UI Design
Berikut Merupakan link dari prototype ui design yang telah saya buat :https://www.figma.com/proto/2IwW0DkaU1G3fK9Luy3sL1/Untitled?node-id=4-529&t=qqllwkx0AwMtDfBR-1
Home Page
Home Page merupakan halaman awal ketika user membuka aplikasi. Hanya ada 2 button yaitu button “login” dan button “face id”
Login Page
Login Page merupakan halaman ketika user telah mengklik button login. pada halaman ini user diminta mengisikan email dan password. Jika benar maka langsung diarahkan menuju halaman dashboard
Dashboard Page
Dashboard Page merupakan halaman ketika user berhasil melakukan aktivitas login. pada halaman ini terdapat beberapa fitur salah satunya yaitu fitur “order”
Orders Page
Orders page merupakan halaman ketika user ingin melakukan order makanan/minuman melalui aplikasi. terdapat berbagai section jenis makanan dan minuman pada halaman ini. Hanya ada 1 button add jadi jika diklik maka akan mengarah ke cart atau halaman order details
Orders Details Page
Orders Details Page merupakan sebuah halaman ketika user mengklik picture dari item minuman tersebut. halaman ini akan memunculkan item lebih detail lagi mulai dari harga dan ukuran serta penjelasan minuman tersebut
Checkout Page
Checkout Page merupakan sebuah halaman ketika user telah menambahkan beberapa barang pada halaman order. barang barang tersebut akan dijumlahkan dan mendapatkan total belanja.
PIN Page
Ketika ingin melakukan pembayaran dari checkout page, maka user wajib untuk memasukan pin yang telah dibuat sebelumnya
Buat Presentasi dan demo hasil rancangan Perangkat Lunak, kemudian upload di Youtube, dan isi lembar monitoring?
Jawaban :
Komentar
Posting Komentar