EAS PPL
Nama : Frederick Yonatan Susanto
NRP : 5025211121
Tahun Ajaran : 2023/2024 (Genap)
Pada pertemuan ketujuhbelas di kelas PPL A, kita EAS PPL, dengan soal dan jawaban sebagai berikut:
1. Deskripsikan model bisnis yang dipilih?
Starbucks telah mengadopsi model bisnis berbasis layanan pelanggan yang terfokus pada pengurangan kontak fisik dan peningkatan kenyamanan pelanggan melalui digitalisasi. Ini termasuk pemesanan online, pembayaran nontunai, dan penjemputan tanpa kontak. Berikut adalah poin utama dari model bisnis ini:
- Pemesanan Online: Pelanggan dianjurkan untuk memesan minuman secara online melalui aplikasi Starbucks, dengan insentif berupa poin bonus.
- Pembayaran Nontunai: Semua jenis pembayaran diterima, tetapi pembayaran menggunakan kartu dan pembayaran online lebih direkomendasikan dengan tambahan bonus untuk pembayaran online.
- Penjemputan Tanpa Kontak: Setelah memesan dan membayar secara online, pelanggan dapat mengambil minuman mereka di jendela penjemputan yang telah disediakan.
- Keamanan dan Kebersihan: Karyawan diwajibkan untuk memakai masker dan sarung tangan, serta menjalani pemeriksaan suhu setiap hari. Semua proses penyiapan dan penyerahan minuman dilakukan dengan prosedur yang meminimalkan kontak langsung.
2. Identifikasi perangkat lunak apa saja yang diperlukan, kemudian jelaskan alasannya?
Berdasarkan model bisnis ini, berikut adalah perangkat lunak yang diperlukan:
Aplikasi Pemesanan Online: Aplikasi Starbucks perlu memiliki fitur pemesanan dan pembayaran online untuk memfasilitasi pelanggan dalam memesan minuman mereka dengan mudah. Aplikasi ini juga harus terintegrasi dengan sistem poin loyalitas untuk memberikan bonus kepada pelanggan.
Sistem Pembayaran Online: Dibutuhkan sistem pembayaran yang aman dan efisien untuk memproses transaksi nontunai, baik melalui kartu kredit/debit maupun dompet digital.
Sistem Manajemen Pesanan: Sistem ini diperlukan untuk mengelola dan melacak pesanan pelanggan dari saat pemesanan hingga penyerahan minuman. Ini termasuk estimasi waktu penjemputan dan notifikasi kepada pelanggan.
Sistem Penjadwalan dan Manajemen Karyawan: Untuk memastikan bahwa staf dapat mematuhi protokol kesehatan dan kebersihan, sistem ini membantu dalam penjadwalan shift karyawan dan pelacakan tugas harian mereka.
Sistem Komunikasi dan Informasi Pelanggan: Ini termasuk signage digital dan pemberitahuan dalam aplikasi untuk memberi tahu pelanggan tentang status pesanan mereka, protokol kesehatan yang diterapkan, dan informasi lainnya.
3. Buatkan rancangan perangkat lunaknya ?
Berikut adalah rancangan umum perangkat lunak yang diperlukan:
Aplikasi Pemesanan Online
- Fitur:
- Pencarian gerai Starbucks terdekat
- Menu digital dengan opsi kustomisasi minuman
- Pemesanan dan pembayaran online
- Integrasi program loyalitas
- Estimasi waktu penjemputan dan notifikasi
- Teknologi: Mobile app development (iOS, Android), backend server untuk pengelolaan pesanan dan pembayaran
- Fitur:
Sistem Pembayaran Online
- Fitur:
- Integrasi dengan gateway pembayaran (seperti Stripe, PayPal)
- Keamanan transaksi (SSL, enkripsi)
- Penyimpanan token pembayaran untuk pemesanan berulang
- Teknologi: API payment gateway, keamanan siber
- Fitur:
Sistem Manajemen Pesanan
- Fitur:
- Dashboard untuk memonitor pesanan
- Notifikasi real-time kepada barista dan pelanggan
- Integrasi dengan aplikasi pemesanan
- Teknologi: Web dashboard, database management
- Fitur:
Sistem Penjadwalan dan Manajemen Karyawan
- Fitur:
- Penjadwalan shift otomatis
- Pelacakan kehadiran dan tugas
- Notifikasi untuk karyawan
- Teknologi: HR management software, mobile integration
- Fitur:
Sistem Komunikasi dan Informasi Pelanggan
- Fitur:
- Signage digital di gerai
- Notifikasi dalam aplikasi
- Informasi tentang protokol kesehatan
- Teknologi: Digital signage software, push notification services
- Fitur:
Blueprint yang disediakan menunjukkan fokus Starbucks pada digitalisasi dan peningkatan pengalaman pelanggan melalui pemesanan online dan penjemputan tanpa kontak. Untuk mendukung model bisnis ini, diperlukan berbagai perangkat lunak yang saling terintegrasi untuk memastikan proses yang efisien dan aman bagi pelanggan dan karyawan.
HLD (High-Level Design)
A. Problem Statement
Aplikasi Starbucks Future State Service dirancang untuk mengelola layanan pemesanan online, pembayaran nontunai, dan penjemputan tanpa kontak di tengah situasi pandemi COVID-19. Sistem ini dapat digunakan di berbagai cabang Starbucks untuk meningkatkan efisiensi dan kenyamanan pelanggan. Aplikasi ini menawarkan berbagai fitur dan manfaat, antara lain:
- Memudahkan pelanggan untuk memesan dan membayar minuman secara online.
- Mengurangi kontak fisik antara pelanggan dan karyawan.
- Meningkatkan efisiensi operasional dan waktu tunggu pelanggan.
- Memberikan insentif berupa poin bonus untuk pelanggan yang memesan secara online.
- Meningkatkan keamanan dan kebersihan dengan meminimalkan kontak langsung.
B. Functional Requirements
Manajemen Pemesanan:
- Menambahkan, menghapus, dan memodifikasi informasi pesanan.
- Melacak status pesanan secara real-time.
- Memberikan estimasi waktu penjemputan.
Pembayaran:
- Menerima semua jenis pembayaran, dengan rekomendasi kartu dan pembayaran online.
- Memproses pembayaran secara aman.
- Memberikan poin bonus untuk pembayaran online.
Manajemen Pengguna:
- Menambahkan, menghapus, dan memodifikasi informasi pengguna.
- Mengelola program loyalitas pelanggan.
- Melacak aktivitas pengguna dan memberikan notifikasi.
Pelaporan:
- Menghasilkan laporan transaksi harian.
- Menghasilkan laporan penggunaan aplikasi.
- Menghasilkan laporan loyalitas dan bonus poin pelanggan.
C. Non-Functional Requirements
Keamanan:
- Melindungi data pengguna dari akses yang tidak sah.
- Mencegah penipuan dan pencurian data.
Ketersediaan:
- Sistem harus tersedia 24/7.
- Sistem harus dapat diakses dari berbagai perangkat.
Skalabilitas:
- Sistem harus dapat menangani jumlah pengguna dan transaksi yang besar.
- Sistem harus dapat diubah untuk memenuhi kebutuhan yang berubah.
Kinerja:
- Sistem harus responsif dan efisien.
- Sistem harus dapat menangani beban puncak.
D. Capacity Assumptions
- Pengguna aktif harian = 10,000
- Pengguna aktif per detik = 0.1 pengguna/detik
- Rata-rata pesanan per menit = 200
- Rata-rata transaksi pembayaran per menit = 200
- Estimasi penyimpanan:
- 10,000 pengguna x 1 KB per pengguna = 10 MB
- 200 pesanan per menit x 1 KB per pesanan = 288,000 KB per hari (~281 MB)
- Total penyimpanan per tahun = 102.5 GB
E. Arsitektur Sistem
Pengembangan:
- Sistem operasi: Linux, Windows
- IDE: Visual Studio Code, IntelliJ IDEA
Bahasa Pemrograman:
- Back-End: Java (Spring Boot), Python (Django/Flask), Node.js (Express)
- Front-End: HTML, CSS, JavaScript (React.js, Angular, Vue.js)
Basis Data:
- MySQL atau PostgreSQL
- MongoDB (jika fleksibilitas skema diperlukan)
Server:
- Apache HTTP Server atau Nginx
- Apache Tomcat atau Jetty (untuk Java)
- Express.js (untuk Node.js)
LLD (Low-Level Design)
A. Component
User Interface (UI):
- Aplikasi mobile dan situs web untuk pelanggan.
- Dashboard untuk staf dan manajemen.
Order Management:
- Layanan untuk memproses pesanan, memberikan estimasi waktu, dan notifikasi.
- Backend yang menangani logika bisnis pemesanan.
Payment System:
- Integrasi dengan gateway pembayaran (Stripe, PayPal).
- Proses pembayaran yang aman dan efisien.
User Management:
- Sistem untuk mengelola informasi pengguna dan program loyalitas.
- Autentikasi dan otorisasi pengguna.
Reporting Service:
- Layanan untuk menghasilkan laporan transaksi dan penggunaan.
- Dashboard pelaporan untuk manajemen.
Security Services:
- Protokol keamanan untuk melindungi data pengguna.
- Pemantauan dan pencegahan penipuan.
Integration Services:
- API untuk integrasi dengan sistem eksternal.
- Middleware untuk komunikasi antara komponen.
B. Algorithm
Order Processing:
- Pelanggan memilih item dari menu dan menambahkannya ke keranjang.
- Pelanggan memproses pembayaran dan mendapatkan estimasi waktu penjemputan.
- Notifikasi dikirim ke pelanggan saat pesanan siap.
Payment Handling:
- Pengguna memilih metode pembayaran dan memasukkan detail pembayaran.
- Sistem memproses pembayaran melalui gateway yang aman.
- Poin bonus ditambahkan ke akun pengguna setelah pembayaran berhasil.
C. Data Structure
User:
UserID
: StringName
: StringEmail
: StringPassword
: String (hashed)LoyaltyPoints
: Integer
Order:
OrderID
: StringUserID
: StringItems
: List of ItemTotalPrice
: FloatOrderStatus
: String (Pending, In Progress, Completed)
Item:
ItemID
: StringName
: StringPrice
: FloatQuantity
: Integer
D. Implementation
User Registration
- Endpoint: POST
/api/users/register
- Request:json
{ "name": "John Doe", "email": "john.doe@example.com", "password": "password123" }
- Response:json
{ "message": "User registered successfully", "userID": "user123", "token": "authToken" }
- Endpoint: POST
User Login
- Endpoint: POST
/api/users/login
- Request:json
{ "email": "john.doe@example.com", "password": "password123" }
- Response:json
{ "message": "Login successful", "userID": "user123", "token": "authToken" }
- Endpoint: POST
Place Order
- Endpoint: POST
/api/orders
- Request:json
{ "userID": "user123", "items": [ {"itemID": "item1", "quantity": 2}, {"itemID": "item2", "quantity": 1} ], "totalPrice": 15.50 }
- Response:json
{ "message": "Order placed successfully", "orderID": "order123", "estimatedPickupTime": "15 minutes" }
- Endpoint: POST
Make Payment
- Endpoint: POST
/api/payments
- Request:json
{ "orderID": "order123", "paymentMethod": "credit_card", "amount": 15.50 }
- Response:json
{ "message": "Payment successful", "pointsEarned": 15 }
- Endpoint: POST
E. User Interface
Mobile App UI:
- Dashboard: Menampilkan menu dan status pesanan.
- Order Screen: Menampilkan item yang dapat dipesan, keranjang belanja, dan opsi pembayaran.
- Notification: Memberikan notifikasi saat pesanan siap diambil.
Admin Dashboard:
- Order Management: Menampilkan semua pesanan yang sedang diproses.
- User Management: Mengelola informasi dan aktivitas pengguna.
- Reports: Menampilkan laporan transaksi dan penggunaan.
4. Lengkapi dengan desain database dan desain UI
Desain Database
Berikut adalah desain lengkap untuk database aplikasi Starbucks Future State Service yang mencakup tabel-tabel utama dan relasinya:
1. Users
- Table Name:
Users
- Columns:
UserID
(VARCHAR, Primary Key)Name
(VARCHAR)Email
(VARCHAR, Unique)Password
(VARCHAR)Phone
(VARCHAR, Nullable)Address
(VARCHAR, Nullable)LoyaltyPoints
(INT, Default: 0)CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)UpdatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
2. Items
- Table Name:
Items
- Columns:
ItemID
(VARCHAR, Primary Key)Name
(VARCHAR)Description
(TEXT)Price
(DECIMAL(10,2))Category
(VARCHAR)ImageURL
(VARCHAR, Nullable)CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)UpdatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
3. Orders
- Table Name:
Orders
- Columns:
OrderID
(VARCHAR, Primary Key)UserID
(VARCHAR, Foreign Key ReferencesUsers(UserID)
)TotalPrice
(DECIMAL(10,2))OrderStatus
(ENUM: 'Pending', 'In Progress', 'Completed', 'Cancelled')EstimatedPickupTime
(TIMESTAMP)CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)UpdatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
4. OrderItems
- Table Name:
OrderItems
- Columns:
OrderItemID
(VARCHAR, Primary Key)OrderID
(VARCHAR, Foreign Key ReferencesOrders(OrderID)
)ItemID
(VARCHAR, Foreign Key ReferencesItems(ItemID)
)Quantity
(INT)Price
(DECIMAL(10,2))CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)UpdatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
5. Payments
- Table Name:
Payments
- Columns:
PaymentID
(VARCHAR, Primary Key)OrderID
(VARCHAR, Foreign Key ReferencesOrders(OrderID)
)UserID
(VARCHAR, Foreign Key ReferencesUsers(UserID)
)Amount
(DECIMAL(10,2))PaymentMethod
(VARCHAR)PaymentStatus
(ENUM: 'Pending', 'Completed', 'Failed')CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)UpdatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
6. LoyaltyPoints
- Table Name:
LoyaltyPoints
- Columns:
LoyaltyID
(VARCHAR, Primary Key)UserID
(VARCHAR, Foreign Key ReferencesUsers(UserID)
)Points
(INT)TransactionType
(ENUM: 'Earned', 'Redeemed')Description
(VARCHAR, Nullable)CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)
7. Categories
- Table Name:
Categories
- Columns:
CategoryID
(VARCHAR, Primary Key)CategoryName
(VARCHAR)Description
(TEXT, Nullable)CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)UpdatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
8. Notifications
- Table Name:
Notifications
- Columns:
NotificationID
(VARCHAR, Primary Key)UserID
(VARCHAR, Foreign Key ReferencesUsers(UserID)
)Message
(TEXT)ReadStatus
(BOOLEAN, Default: FALSE)CreatedAt
(TIMESTAMP, Default: CURRENT_TIMESTAMP)
Desain UI
5. Buat Presentasi dan demo hasil rancangan Perangkat Lunak, kemudian upload di Youtube, dan isi lembar monitoring?
Link Youtube : https://youtu.be/_KqulpPJwlU
Referensi:
https://kuliahppl.blogspot.com/2024/06/model-bisnis-perusahaan.html?m=1
Comments
Post a Comment