PPL - EAS - Rancangan Perangkat Lunak Aplikasi Starbucks
Nama: Muhammad Razan Athallah
NRP: 5025211008
Kelas: PPL A
Tahun: 2023/2024 (Genap)
1. Deskripsikan model bisnis yang dipilih!
Model bisnis yang dipilih adalah model layanan berbasis digital yang mengutamakan pemesanan dan pembayaran online melalui aplikasi Starbucks. Model ini memastikan minimalisasi kontak fisik antara pelanggan dan staf.
Komponen Utama:
- Pemesanan Online: Pelanggan dapat memesan minuman dan makanan melalui aplikasi Starbucks.
- Pembayaran Digital: Pembayaran dilakukan melalui aplikasi menggunakan kartu kredit atau metode pembayaran digital lainnya.
- Pengambilan Tanpa Kontak: Pesanan diambil melalui jendela pengambilan khusus yang mengurangi kontak fisik.
- Bonus Loyalitas: Pelanggan mendapatkan poin tambahan dan bonus bintang untuk setiap pemesanan online.
2. Identifikasi perangkat lunak apa saja yang diperlukan, kemudian jelaskan alasannya!
Berikut perangkat lunak yang diperlukan untuk pengembangan model bisnis:
- Aplikasi Mobile Starbucks: Aplikasi ini adalah pusat dari semua aktivitas pelanggan termasuk pemesanan, pembayaran, dan pengumpulan poin loyalitas.
- Sistem Pembayaran Digital: Diperlukan untuk memproses pembayaran online dengan aman dan efisien.
- Sistem Manajemen Pesanan: Mengelola dan melacak pesanan dari penerimaan hingga pengambilan oleh pelanggan.
- Sistem Loyalitas: Mengelola dan melacak poin dan bonus pelanggan untuk program loyalitas.
- Sistem Notifikasi: Memberi tahu pelanggan tentang status pesanan mereka, waktu pengambilan, dan promosi.
- Sistem Informasi Lokasi: Mengarahkan pelanggan ke Starbucks terdekat dan memberikan instruksi perjalanan.
- Backend Server dan Database: Menyimpan dan mengelola data pelanggan, pesanan, dan informasi pembayaran.
- Sistem Review dan Feedback: Mengumpulkan dan menganalisis umpan balik pelanggan untuk perbaikan layanan.
3. Buatkan rancangan perangkat lunaknya!
Frontend
- Mobile App: Aplikasi Starbucks (Android & iOS)
- Interface Pemesanan
- Interface Pembayaran
- Pop Up Notifikasi
- Interface Poin loyalitas
- Interface Lokasi Starbucks
Backend
- API Server: Mengelola permintaan dari aplikasi mobile dan web. Endpoint untuk pemesanan, pembayaran, poin loyalitas, notifikasi, dan informasi lokasi.
- Database Server: MySQL/PostgreSQL untuk data terstruktur (data pengguna, pesanan, poin loyalitas).
- Payment Gateway: Mengintegrasikan layanan pembayaran seperti Stripe atau PayPal untuk pemrosesan pembayaran.
- Notification Service: Firebase untuk notifikasi push ke aplikasi mobile. Email untuk notifikasi alternatif.
- Order Management System: Mengelola status pesanan dari penerimaan hingga penyelesaian. Antarmuka untuk staf untuk melihat dan memproses pesanan.
- Loyalty System: Mengelola dan menghitung poin loyalitas pelanggan. Integrasi dengan API untuk mengupdate poin setelah setiap transaksi.
Alur Proses
- Pemesanan dan Pembayaran: Pelanggan membuka aplikasi → Memilih item untuk dipesan → Memilih metode pembayaran → Membayar → Menerima konfirmasi pesanan dan estimasi waktu pengambilan.
- Pengelolaan Pesanan: Server menerima pesanan → Menyimpan data pesanan di database → Mengirim notifikasi ke staf untuk mempersiapkan pesanan → Update status pesanan saat siap → Mengirim notifikasi ke pelanggan untuk pengambilan.
- Pengambilan Pesanan: Pelanggan tiba di Starbucks → Menunjukkan ID pesanan di jendela pengambilan → Staf memberikan pesanan menggunakan kotak pengambilan khusus → Pelanggan meninggalkan Starbucks.
4. Lengkapi dengan desain database dan desain UI!
Entitas dan Atribut
1. Users (Pengguna)- user_id (PK): ID unik untuk pengguna
- name: Nama pengguna
- email: Email pengguna
- password: Kata sandi pengguna (disimpan dengan hash)
- phone: Nomor telepon pengguna
- loyalty_points: Jumlah poin yang dimiliki pengguna
2. Orders (Pesanan)- order_id (PK): ID unik untuk pesanan
- user_id (FK): ID pengguna yang membuat pesanan
- order_date: Tanggal pesanan dibuat
- total_price: Total harga pesanan
- status: Status pesanan (pending, completed, canceled, dll.)
3. OrderItems (Item Pesanan)- item_id (PK): ID unik untuk item pesanan
- order_id (FK): ID pesanan
- product_id (FK): ID produk yang dipesan
- quantity: Jumlah produk yang dipesan
- price: Harga satuan produk
4. Products (Produk)- product_id (PK): ID unik untuk produk
- name: Nama produk
- description: Deskripsi produk
- price: Harga produk
5. Payments (Pembayaran)- payment_id (PK): ID unik untuk pembayaran
- order_id (FK): ID pesanan yang dibayar
- payment_date: Tanggal pembayaran
- amount: Jumlah pembayaran
- payment_method: Metode pembayaran (kartu kredit, PayPal, dll.)
6. Notifications (Notifikasi)- notif_id (PK): ID unik untuk notifikasi
- user_id (FK): ID pengguna yang menerima notifikasi
- message: Pesan notifikasi
- created_at: Tanggal dan waktu notifikasi dibuat
7. Stores (Toko)- store_id (PK): ID unik untuk toko
- name: Nama toko
- address: Alamat toko
- city: Kota tempat toko berada
- state: Negara bagian/provinsi
- zip_code: Kode pos
8. Reviews (Ulasan)- review_id (PK): ID unik untuk ulasan
- user_id (FK): ID pengguna yang memberikan ulasan
- order_id (FK): ID pesanan yang diulas
- rating: Penilaian dari pengguna (1-5)
- comment: Komentar pengguna
- created_at: Tanggal dan waktu ulasan dibuat
Relasi- Users dan Orders memiliki relasi satu ke banyak (one-to-many), artinya satu pengguna dapat memiliki banyak pesanan.
- Users dan Notifications memiliki relasi satu ke banyak (one-to-many), artinya satu pengguna dapat memiliki banyak notifikasi.
- Users dan Reviews memiliki relasi satu ke banyak (one-to-many), artinya satu pengguna dapat mengirim banyak review.
- Orders dan OrderItems memiliki relasi satu ke banyak (one-to-many), artinya satu pesanan dapat memiliki banyak item pesanan.
- Products dan OrderItems memiliki relasi satu ke banyak (one-to-many), artinya satu produk dapat muncul dalam banyak item pesanan.
- Orders dan Payments memiliki relasi satu ke satu (one-to-one), artinya satu pesanan berhubungan dengan satu pembayaran.
- Orders dan Reviews memiliki relasi satu ke satu (one-to-one), artinya satu review berhubungan dengan satu pesanan.
SQL Query
Desain UI
1. Users (Pengguna)
- user_id (PK): ID unik untuk pengguna
- name: Nama pengguna
- email: Email pengguna
- password: Kata sandi pengguna (disimpan dengan hash)
- phone: Nomor telepon pengguna
- loyalty_points: Jumlah poin yang dimiliki pengguna
2. Orders (Pesanan)
- order_id (PK): ID unik untuk pesanan
- user_id (FK): ID pengguna yang membuat pesanan
- order_date: Tanggal pesanan dibuat
- total_price: Total harga pesanan
- status: Status pesanan (pending, completed, canceled, dll.)
3. OrderItems (Item Pesanan)
- item_id (PK): ID unik untuk item pesanan
- order_id (FK): ID pesanan
- product_id (FK): ID produk yang dipesan
- quantity: Jumlah produk yang dipesan
- price: Harga satuan produk
4. Products (Produk)
- product_id (PK): ID unik untuk produk
- name: Nama produk
- description: Deskripsi produk
- price: Harga produk
5. Payments (Pembayaran)
- payment_id (PK): ID unik untuk pembayaran
- order_id (FK): ID pesanan yang dibayar
- payment_date: Tanggal pembayaran
- amount: Jumlah pembayaran
- payment_method: Metode pembayaran (kartu kredit, PayPal, dll.)
6. Notifications (Notifikasi)
- notif_id (PK): ID unik untuk notifikasi
- user_id (FK): ID pengguna yang menerima notifikasi
- message: Pesan notifikasi
- created_at: Tanggal dan waktu notifikasi dibuat
7. Stores (Toko)
- store_id (PK): ID unik untuk toko
- name: Nama toko
- address: Alamat toko
- city: Kota tempat toko berada
- state: Negara bagian/provinsi
- zip_code: Kode pos
8. Reviews (Ulasan)
- review_id (PK): ID unik untuk ulasan
- user_id (FK): ID pengguna yang memberikan ulasan
- order_id (FK): ID pesanan yang diulas
- rating: Penilaian dari pengguna (1-5)
- comment: Komentar pengguna
- created_at: Tanggal dan waktu ulasan dibuat
Relasi
- Users dan Orders memiliki relasi satu ke banyak (one-to-many), artinya satu pengguna dapat memiliki banyak pesanan.
- Users dan Notifications memiliki relasi satu ke banyak (one-to-many), artinya satu pengguna dapat memiliki banyak notifikasi.
- Users dan Reviews memiliki relasi satu ke banyak (one-to-many), artinya satu pengguna dapat mengirim banyak review.
- Orders dan OrderItems memiliki relasi satu ke banyak (one-to-many), artinya satu pesanan dapat memiliki banyak item pesanan.
- Products dan OrderItems memiliki relasi satu ke banyak (one-to-many), artinya satu produk dapat muncul dalam banyak item pesanan.
- Orders dan Payments memiliki relasi satu ke satu (one-to-one), artinya satu pesanan berhubungan dengan satu pembayaran.
- Orders dan Reviews memiliki relasi satu ke satu (one-to-one), artinya satu review berhubungan dengan satu pesanan.
SQL Query
Desain UI
Comments
Post a Comment