Evaluasi Akhir Semester - Perancangan Perangkat Lunak

Nama Akmal Sulthon Fathulloh
NRP 5025211047
Kelas Perancangan Perangkat Lunak - A

Pertanyaan

  1. Deskripsikan model bisnis yang dipilih!
  2. Identifikasi perangkat lunak apa saja yang diperlukan, kemudian jelaskan alasannya!
  3. Buatkan rancangan perangkat lunaknya!
  4. Lengkapi dengan desain database dan desain UI!
  5. Buat presentasi dan demo hasil rancangan perangkat lunak, kemudian upload di Youtube dan isi lembar monitoring!

Jawaban

1. Deskripsi Model Bisnis

Model bisnis yang saya pilih adalah bisnis jaringan kedai kopi Starbucks yang mengadopsi model bisnis berbasis layanan take-out dengan memanfaatkan teknologi digital untuk meminimalisasi kontak fisik antara pembeli dan staf Starbucks selama pandemi COVID-19. Berikut adalah user journey bagi pengguna layanan take-out Starbucks berdasarkan ilustrasi model bisnis di atas.

  • Pelanggan menggunakan Google Maps di smartphone mereka untuk menentukan tujuan ke Starbucks terdekat.
  • Pelanggan kemudian mengemudi atau berjalan ke Starbucks.
  • Sesampainya di Starbucks, mereka melihat arsitektur toko dan logo Starbucks.
  • Pelanggan melihat instruksi di pintu masuk mengenai prosedur saat ini.
  • Pelanggan disarankan untuk memesan secara online melalui aplikasi Starbucks untuk mendapatkan poin ekstra.
  • Pelanggan dapat melihat estimasi waktu pengambilan pesanan di aplikasi.
  • Pelanggan menuju jendela pengambilan untuk menerima pesanan mereka dari staf Starbucks.
  • Pelanggan menerima minuman dari staf melalui kotak pengambilan khusus untuk menghindari kontak langsung.
  • Pelanggan meninggalkan Starbucks.

Beberapa komponen utama yang bisa kita garis bawahi dari model bisnis ini adalah:

  • Starbucks hanya melayani take-out untuk meminimalisasi kontak fisik.
  • Pelanggan disarankan untuk memesan secara online melalui aplikasi Starbucks untuk menghindari antrian dan kontak fisik, serta juga akan mendapatkan bonus ekstra
  • Pelanggan dapat melihat estimasi waktu pengambilan pesanan di aplikasi.

2. Identifikasi Perangkat Lunak yang Diperlukan

Berdasarkan deskripsi model bisnis di atas, beberapa perangkat lunak yang diperlukan adalah sebagai berikut.

  • Google Maps: Aplikasi ini digunakan oleh pelanggan untuk menemukan lokasi kedai Starbucks terdekat. Google Maps menyediakan navigasi dan petunjuk arah yang akurat untuk membantu pelanggan sampai ke tujuan mereka. Dengan menggunakan Google Maps, pelanggan akan lebih mudah dalam menentukan rute tercepat dan paling efisien ke Starbucks terdekat.
  • Aplikasi Mobile Starbucks: Aplikasi ini digunakan oleh pelanggan untuk memesan minuman mereka di kedai Starbucks. Pelanggan dapat melihat menu, harga, dan estimasi waktu pengambilan di aplikasi ini. Dengan memesan secara online melalui aplikasi, pelanggan dapat menghindari antrian dan kontak fisik dengan staf Starbucks.
  • Sistem Pembayaran Digital: Starbucks harus memiliki sistem pembayaran digital yang aman dan mudah digunakan untuk memproses pembayaran pelanggan secara online. Sistem ini juga harus terintegrasi dengan aplikasi mobile Starbucks.
  • Sistem Manajemen Pesanan: Sistem ini digunakan oleh staf Starbucks untuk mengelola pesanan pelanggan yang masuk melalui aplikasi mobile. Sistem ini harus dapat menampilkan pesanan, status pesanan, dan estimasi waktu pengambilan.
  • Sistem Manajemen Antrian: Sistem ini digunakan untuk mengatur antrian pelanggan yang datang ke jendela pengambilan. Sistem ini harus dapat menampilkan nomor antrian, estimasi waktu pengambilan, dan status pesanan pelanggan.
  • Sistem Manajemen Stok: Sistem ini digunakan untuk mengelola stok bahan baku dan inventaris di kedai Starbucks. Sistem ini harus dapat memberikan informasi real-time tentang stok yang tersedia dan mengirimkan notifikasi jika stok mencapai batas minimum.
  • Sistem Loyalitas Pelanggan: Sistem ini digunakan untuk memberikan poin/bonus ekstra kepada pelanggan yang memesan secara online melalui aplikasi mobile. Sistem ini juga dapat digunakan untuk mengirimkan promo dan penawaran khusus kepada pelanggan yang terdaftar.

3. Rancangan Perangkat Lunak

Spesifikasi Kebutuhan

Berdasarkan, model bisnis yang telah dijelaskan sebelumnya, berikut adalah spesifikasi kebutuhan perangkat lunak untuk aplikasi Starbucks.

Kebutuhan Fungsional

  1. Pelanggan dapat mencari lokasi kedai Starbucks terdekat dengan bantuan Google Maps.
  2. Pelanggan dapat memesan minuman mereka melalui aplikasi mobile.
  3. Pelanggan dapat melihat menu, harga, dan estimasi waktu pengambilan di aplikasi mobile.
  4. Pelanggan mendapat bonus ekstra jika memesan secara online melalui aplikasi.
  5. Staf Starbucks dapat melihat pesanan pelanggan dan status pesanan melalui sistem manajemen pesanan.
  6. Staf Starbucks dapat mengatur antrian pelanggan yang datang ke jendela pengambilan melalui sistem manajemen antrian.
  7. Staf Starbucks dapat melihat stok bahan baku dan invent
  8. Staf Starbucks dapat memberikan poin dan bonus kepada pelanggan yang memesan secara online melalui aplikasi mobile.
  9. Sistem dapat mengirimkan notifikasi kepada pelanggan tentang promo dan penawaran khusus.

Kebutuhan Non-Fungsional

  1. Sistem harus responsif dan cepat dalam menampilkan informasi pesanan dan antrian.
  2. Sistem harus aman dan terenkripsi untuk melindungi data pelanggan dan transaksi pembayaran.
  3. Sistem harus dapat diakses dari berbagai perangkat, termasuk smartphone, tablet, dan komputer.
  4. Sistem harus memiliki antarmuka pengguna yang intuitif dan mudah digunakan oleh pelanggan dan staf Starbucks.
  5. Sistem harus dapat menangani jumlah pengguna yang besar tanpa mengalami penurunan kinerja.

Estimasi Kapasitas

Untuk membuat estimasi trafik, penyimpanan, dan bandwidth untuk aplikasi Starbucks, kita perlu mempertimbangkan beberapa faktor kunci yang akan mempengaruhi penggunaan sumber daya tersebut. Berikut adalah analisis dan estimasi berdasarkan spesifikasi kebutuhan yang diberikan:

Estimasi Trafik

  1. Jumlah Pengguna
    • Misalkan ada 1 juta pengguna aktif bulanan (monthly active users).
    • Asumsikan 10% dari pengguna aktif harian (daily active users), sehingga sekitar 100.000 pengguna aktif harian.
  2. Frekuensi Penggunaan
    • Rata-rata pengguna membuka aplikasi 2 kali sehari.
    • Total akses aplikasi per hari = 100.000 * 2 = 200.000 kali.
  3. Pencarian Lokasi
    • 30% dari pengguna harian mencari lokasi kedai Starbucks.
    • Total pencarian lokasi per hari = 100.000 * 0.3 = 30.000 pencarian.
  4. Pemesanan Minuman
    • 20% dari pengguna harian memesan minuman melalui aplikasi.
    • Total pemesanan minuman per hari = 100.000 * 0.2 = 20.000 pemesanan.
  5. Notifikasi
    • Setiap pengguna menerima 2 notifikasi per minggu.
    • Total notifikasi per hari = 1.000.000 * 2 / 7 ≈ 285.714 notifikasi.

Estimasi Penyimpanan

  1. Data Pengguna
    • Rata-rata data pengguna (profil, preferensi, riwayat pemesanan) = 1 MB.
    • Total penyimpanan data pengguna = 1.000.000 * 1 MB = 1 TB.
  2. Data Pemesanan
    • Rata-rata data per pesanan (detail pesanan, waktu, lokasi) = 0.1 MB.
    • Total pesanan per bulan = 20.000 * 30 = 600.000 pesanan.
    • Total penyimpanan data pesanan = 600.000 * 0.1 MB = 60 GB per bulan.
  3. Data Menu dan Stok
    • Rata-rata data menu dan stok = 500 MB (dengan asumsi data ini sering diperbarui dan tidak terlalu besar).
  4. Data Notifikasi
    • Rata-rata data notifikasi = 0.1 KB.
    • Total notifikasi per hari = 285.714 notifikasi.
    • Total penyimpanan data notifikasi = 8.571.420 * 0.01 MB ≈ 86 GB per bulan.

Total penyimpanan:

  • Pengguna: 1 TB
  • Pesanan: 60 GB per bulan
  • Menu dan Stok: 500 MB
  • Notifikasi: 86 GB per bulan
  • Estimasi Total Penyimpanan awal: ≈ 1.15 TB (dengan asumsi data lama diarsipkan).

Estimasi Bandwith

  1. Pencarian Lokasi
    • Rata-rata ukuran data per pencarian lokasi (dengan Google Maps API) = 0.2 MB.
    • Total bandwidth pencarian lokasi per hari = 30.000 * 0.2 MB = 6 GB.
  2. Pemesanan Minuman
    • Rata-rata ukuran data per pemesanan = 0.5 MB.
    • Total bandwidth pemesanan per hari = 20.000 * 0.5 MB = 10 GB.
  3. Melihat Menu
    • Rata-rata ukuran data per tampilan menu = 1 MB.
    • Asumsikan 50% dari pengguna harian melihat menu.
    • Total bandwidth tampilan menu per hari = 100.000 * 0.5 * 1 MB = 50 GB.
  4. Notifikasi
    • Rata-rata ukuran data per notifikasi = 0.1 KB.
    • Total bandwidth notifikasi per hari = 285.714 * 0.1 KB ≈ 28.6 GB.

Total bandwidth per hari:

  • Pencarian Lokasi: 6 GB
  • Pemesanan Minuman: 10 GB
  • Melihat Menu: 50 GB
  • Notifikasi: 28.6 GB
  • Estimasi Total Bandwidth per Hari: ≈ 68.86 GB.

Use Case Diagram

Use case diagram adalah diagram yang menggambarkan interaksi antara pengguna dan sistem, serta fungsionalitas yang disediakan oleh sistem. Berikut adalah use case diagram untuk aplikasi Starbucks berbasis layanan take-out.

Use Case Diagram Starbucks

Use case diagram di atas menggambarkan interaksi antara berbagai aktor dengan sistem di Starbucks. Diagram ini menunjukkan proses pemesanan dan pembayaran oleh pelanggan, serta persiapan pesanan oleh staf Starbucks. Berikut adalah penjelasan rinci tentang setiap elemen dalam diagram tersebut.

  • Pelanggan: Aktor ini mewakili pengguna yang menggunakan aplikasi Starbucks untuk memesan minuman dan melakukan pembayaran.
  • Staf: Aktor ini mewakili staf restoran yang menerima pesanan, menyiapkan minuman, dan memberikan pesanan kepada pelanggan.
  • Sistem Pembayaran: Sistem pembayaran digital yang digunakan oleh pelanggan untuk melakukan pembayaran atas pesanan mereka.
  • Sistem Manajemen Pesanan: Sistem manajemen pesanan yang digunakan oleh staf Starbucks untuk mengelola pesanan pelanggan.
  • Sistem Loyalitas Pelanggan: Sistem loyalitas pelanggan yang digunakan untuk memberikan poin/bonus ekstra kepada pelanggan yang memesan secara online.

High-Level Design

Arsitektur Sistem

Arsitektur sistem adalah struktur sistem yang menggambarkan komponen-komponen utama, hubungan antara komponen-komponen tersebut, dan cara komponen-komponen tersebut berinteraksi satu sama lain. Berikut adalah arsitektur sistem untuk aplikasi Starbucks berbasis layanan take-out.

Berikut adalah detail aplikasi Starbucks yang diterapkan menggunakan arsitektur serverless:

  • Mobile app atau website: Pengguna mengakses aplikasi Starbucks melalui perangkat mobile atau web browser dan melakukan pemesanan.
  • API Gateway: Komponen serverless ini menerima permintaan pesanan dan merutekannya ke order service.
  • Order service: Fungsi lambda ini memvalidasi detail pesanan, dan berkomunikasi dengan inventory service untuk memeriksa tingkat inventaris dan memasukkan pesanan ke dalam layanan antrian.
  • Inventory service: Fungsi lambda ini memeriksa tingkat inventaris dalam sistem bahwa kita memiliki cukup produk dan bahan untuk membuat pesanan ini.
  • Payment service: Fungsi lambda ini menangani otorisasi pembayaran dan berinteraksi dengan PSP (Penyedia Layanan Pembayaran) pihak ketiga, seperti QRIS, OVO, GoPay, dan lainnya.
  • Notification service: Fungsi pembayaran berbicara ke notification service dan pelanggan menerima notifikasi melalui aplikasi atau melalui pesan teks.
  • Analytical platform: Fungsi pembayaran mengirimkan detail transaksi ke platform analitik.

Interaksi Pengguna

Berikut adalah diagram interaksi pengguna untuk aplikasi Starbucks berbasis layanan take-out.

  • Pengguna melakukan pemesanan
    • Pengguna menggunakan aplikasi untuk memesan minuman atau makanan.
    • Pesanan dikirim ke sistem order service.
  • Pembayaran dan sistem loyalitas
    • Pengguna melakukan pembayaran melalui integrasi gateway pembayaran.
    • Poin bintang dari program loyalitas ditambahkan ke akun pengguna jika memenuhi syarat.
  • Notifikasi dan konfirmasi
    • Sistem mengirimkan notifikasi kepada pengguna tentang konfirmasi pesanan dan estimasi waktu pengambilan.
  • Pemenuhan pesanan
    • Tim di toko mempersiapkan pesanan sesuai dengan spesifikasi pengguna.
    • Pengguna diinformasikan melalui aplikasi ketika pesanan siap diambil.
  • Umpan balik pengguna
    • Pengguna diberi kesempatan untuk memberikan ulasan dan feedback tentang pengalaman mereka.
    • Sistem mengelola interaksi ini untuk meningkatkan layanan dan pengalaman pelanggan.

Low-Level Design

LLD (Low-Level Design) adalah tahap desain yang lebih rinci dan spesifik dari arsitektur sistem. Pada tahap ini, kita akan merancang komponen-komponen sistem secara terperinci, termasuk desain database, desain UI, dan desain alur kerja. Berikut adalah contoh desain database untuk aplikasi Starbucks berbasis layanan take-out.

  1. User Service

    Fungsi:

    • Mengelola pendaftaran pengguna, login, autentikasi, dan manajemen profil.
    • Menyimpan data pengguna seperti nama pengguna, email, preferensi notifikasi, dan informasi profil lainnya.
    • Terintegrasi dengan penyedia autentikasi eksternal seperti Google atau Facebook untuk login yang aman dan mudah.

    Implementasi:

    • Menggunakan layanan autentikasi seperti OAuth 2.0 untuk integrasi dengan penyedia autentikasi eksternal.
    • Menggunakan database SQL atau NoSQL untuk menyimpan data pengguna.
    • Menggunakan enkripsi data untuk melindungi informasi sensitif pengguna.
    • Sesi pengguna yang dikelola dengan token akses dan refresh token.
  2. Order Service

    Fungsi:

    • Menerima pesanan dari pengguna dan memvalidasi detail pesanan.
    • Memeriksa inventaris untuk memastikan produk tersedia.
    • Menyimpan detail pesanan dan status pesanan.
    • Mengirim notifikasi ke pengguna tentang status pesanan.

    Implementasi:

    • Menggunakan fungsi lambda untuk menangani pesanan dan validasi.
    • Menggunakan database NoSQL untuk menyimpan detail pesanan.
    • Menggunakan layanan notifikasi seperti Firebase Cloud Messaging untuk mengirim notifikasi ke pengguna.
  3. Inventory Service

    Fungsi:

    • Memeriksa inventaris untuk memastikan produk dan bahan tersedia.
    • Memberikan notifikasi jika stok mencapai batas minimum.
    • Melacak perubahan stok dan inventaris.

    Implementasi:

    • Menggunakan fungsi lambda untuk memeriksa inventaris.
    • Menggunakan database NoSQL untuk menyimpan data inventaris.
    • Menggunakan layanan notifikasi untuk memberikan pemberitahuan stok.
  4. Payment Service

    Fungsi:

    • Memproses pembayaran pelanggan secara aman dan andal.
    • Integrasi dengan penyedia layanan pembayaran eksternal seperti QRIS, OVO, GoPay, dan lainnya.
    • Menyimpan riwayat transaksi dan detail pembayaran.

    Implementasi:

    • Menggunakan layanan pembayaran seperti Stripe atau PayPal untuk integrasi pembayaran.
    • Menggunakan enkripsi data untuk melindungi informasi pembayaran pelanggan.
    • Menggunakan database NoSQL untuk menyimpan riwayat transaksi dan detail pembayaran.
  5. Notification Service

    Fungsi:

    • Mengirim notifikasi kepada pengguna tentang status pesanan, promo, dan penawaran khusus.
    • Menyimpan riwayat notifikasi dan preferensi notifikasi pengguna.

    Implementasi:

    • Menggunakan layanan notifikasi seperti Firebase Cloud Messaging atau Twilio untuk mengirim notifikasi.
    • Menggunakan database NoSQL untuk menyimpan riwayat notifikasi dan preferensi pengguna.
  6. Analytics Platform

    Fungsi:

    • Menganalisis data transaksi dan perilaku pengguna untuk mendapatkan wawasan bisnis dan meningkatkan layanan.
    • Menyediakan laporan dan visual analytics untuk manajemen dan tim operasional.

    Implementasi:

    • Menggunakan layanan analitik seperti Google Analytics atau Mixpanel untuk menganalisis data.
    • Menggunakan database analitik seperti Amazon Redshift atau Google BigQuery untuk menyimpan data transaksi.

4. Desain Database dan UI

Berikut adalah desain database dan desain UI untuk aplikasi Starbucks berbasis layanan take-out.

Desain Database

Desain database adalah struktur data yang digunakan untuk menyimpan informasi pengguna, pesanan, inventaris, dan data lainnya dalam aplikasi. Berikut adalah desain database untuk aplikasi Starbucks.

Tabel users

Kolom Tipe Data Deskripsi
user_id INT Primary key, auto-increment
username VARCHAR Nama pengguna, unik
email VARCHAR Email pengguna, unik
password VARCHAR Kata sandi pengguna, terenkripsi
full_name VARCHAR Nama lengkap pengguna
bio VARCHAR Biografi pengguna
profile_image VARCHAR URL gambar profil
created_at TIMESTAMP Waktu pembuatan akun
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel orders

Kolom Tipe Data Deskripsi
order_id INT Primary key, auto-increment
user_id INT Foreign key ke tabel users
total_amount DECIMAL Total harga pesanan
status VARCHAR Status pesanan (pending, completed, cancelled)
created_at TIMESTAMP Waktu pembuatan pesanan
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel order_items

Kolom Tipe Data Deskripsi
item_id INT Primary key, auto-increment
order_id INT Foreign key ke tabel orders
product_id INT Foreign key ke tabel products
quantity INT Jumlah produk dalam pesanan
price DECIMAL Harga produk per item

Tabel products

Kolom Tipe Data Deskripsi
product_id INT Primary key, auto-increment
name VARCHAR Nama produk
price DECIMAL Harga produk
stock INT Jumlah stok produk
created_at TIMESTAMP Waktu pembuatan produk
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel store

Kolom Tipe Data Deskripsi
store_id INT Primary key, auto-increment
name VARCHAR Nama toko
location VARCHAR Lokasi toko
created_at TIMESTAMP Waktu pembuatan toko
updated_at TIMESTAMP Waktu pembaruan terakhir

Tabel notifications

Kolom Tipe Data Deskripsi
notification_id INT Primary key, auto-increment
user_id INT Foreign key ke tabel users
message VARCHAR Pesan notifikasi
created_at TIMESTAMP Waktu pembuatan notifikasi

Tabel loyalty_points

Kolom Tipe Data Deskripsi
point_id INT Primary key, auto-increment
user_id INT Foreign key ke tabel users
points INT Jumlah poin yang dimiliki pengguna
created_at TIMESTAMP Waktu pembuatan poin

Berikut adalah implementasi SQL untuk membuat tabel-tabel di atas:

Desain UI

Desain UI (User Interface) adalah tata letak dan tampilan antarmuka pengguna yang digunakan dalam aplikasi. Berikut adalah desain UI untuk aplikasi Starbucks berbasis layanan take-out.

Splash Screen

Laman Daftar/Login

Beranda

Laman Scroll Utama

Laman Kopi - Utama

Laman Kopi - Pilih Kalori

Laman Kopi - Pemesanan

Laman Pemesanan Berhasil

5. Presentasi dan Demo

Referensi

https://kuliahppl.blogspot.com/2024/06/model-bisnis-perusahaan.html

Komentar

Postingan populer dari blog ini

Tugas Pertemuan 2 PPL - Identifikasi Proses PPL

Tugas Pertemuan 5 PPL - High Level Design

Evaluasi Tengah Semester Perancangan Perangkat Lunak