EAS PPL A

 Aplikasi Starbuck

 

Muhammad Naufal Arieffaza

05111840000126

PPL - A

 

 

 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?

1. Untuk model bisnis yang saya pilih adalah Model bisnis yang untuk aplikasi Starbucks . Aplikasi ini berfokus pada peningkatan pengalaman pelanggan dan efisiensi operasional melalui penggunaan teknologi mobile.

2.

1. Aplikasi Mobile Starbucks:

  • Alasan:Platform utama untuk pelanggan melakukan pemesanan, pembayaran, dan melihat status pesanan.
  • Perangkat Lunak Pendukung:
    • Android Studio: Untuk pengembangan aplikasi Android.
    • Xcode: Untuk pengembangan aplikasi iOS.

2. Sistem Navigasi (Google Maps API):

  • Alasan:Membantu pelanggan menemukan lokasi Starbucks terdekat dan memberikan petunjuk arah.
  • Perangkat Lunak Pendukung:
    • Google Maps API: Untuk integrasi fitur peta dan navigasi dalam aplikasi.

3. Sistem Pembayaran Online:

  • Alasan: 
Mengamankan dan memproses pembayaran digital untuk pemesanan.
  • Perangkat Lunak Pendukung:
    • Stripe/PayPal API: Untuk mengelola transaksi pembayaran online.

4. Sistem Manajemen Pesanan (Order Management System):

  • Alasan:
Mengelola pesanan yang masuk, memperbarui status pesanan, dan mengintegrasikan dengan aplikasi mobile serta sistem di dalam toko.
  • Perangkat Lunak Pendukung:
    • Node.js/Express.js atau Django/Flask: Untuk mengembangkan API backend dan mengelola logika bisnis.
    • PostgreSQL/MySQL: Untuk menyimpan data pesanan dan statusnya.

5. Sistem Manajemen Inventaris (Inventory Management System):

  • Alasan:
Memastikan ketersediaan bahan baku dan produk untuk pesanan yang masuk.
  • Perangkat Lunak Pendukung:
    • SAP/Oracle Inventory Management: Untuk mengelola stok dan bahan baku.

6. Sistem CRM (Customer Relationship Management):

  • Alasan:
Mengelola interaksi dengan pelanggan, program loyalitas, dan penawaran khusus.
  • Perangkat Lunak Pendukung:
    • Salesforce/Zendesk: Untuk mengelola data pelanggan, program loyalitas, dan komunikasi pelanggan.

7. Sistem Backend (Server dan Database):

  • Alasan:
    Menyimpan data pengguna, pesanan, dan transaksi secara aman dan efisien.
  • Perangkat Lunak Pendukung:
    • AWS/GCP/Azure: Untuk hosting server dan database dengan skalabilitas tinggi.
    • MongoDB/PostgreSQL: Untuk penyimpanan data yang terstruktur dan tidak terstruktur.




Tampilan (UI/UX Design)

a. Home Screen

Elemen Utama:

  • Peta interaktif dengan penanda lokasi Starbucks terdekat.
  • Tombol "Order Now" untuk memulai pemesanan.
  • Tombol "Account" untuk masuk ke profil pengguna.

b. Menu Screen

Elemen Utama:

  • Daftar produk dengan gambar, deskripsi, dan harga.
  • Kategori produk (Kopi, Minuman Dingin, Makanan, dll.).
  • Tombol "Add to Cart" untuk setiap produk.

c. Cart Screen

Elemen Utama:

  • Daftar produk yang dipilih dengan opsi untuk mengubah jumlah atau menghapus item.
  • Total harga.
  • Tombol "Checkout".

d. Checkout Screen

Elemen Utama:

  • Formulir detail pembayaran (integrasi dengan sistem pembayaran online).
  • Opsi untuk memilih metode pembayaran.
  • Ringkasan pesanan.
  • Tombol "Place Order".

e. Order Status Screen

Elemen Utama:

  • Status pesanan (Diterima, Diproses, Siap diambil).
  • Estimasi waktu pengambilan.
  • Peta dengan rute ke Starbucks terdekat.
  • Tombol "Cancel Order".

f. Profile Screen

Elemen Utama:

  • Informasi akun pengguna (Nama, Email, Poin Loyalitas).
  • Riwayat pesanan.
  • Pengaturan aplikasi.

2. Pengembangan Frontend

a. Teknologi dan Alat

  • Platform: iOS dan Android
  • Frameworks: SwiftUI untuk iOS dan Jetpack Compose untuk Android
  • Libraries: Networking libraries seperti Alamofire untuk iOS dan Retrofit untuk Android, serta Google Maps SDK untuk peta.

b. Struktur Aplikasi

  • Navigation: Menggunakan komponen navigasi khusus untuk masing-masing platform (NavigationView di iOS dan Navigation Component di Android).
  • Data Binding: Menggunakan Combine di iOS dan LiveData di Android untuk mengikat data antara UI dan logika aplikasi.
  • Network Requests: API Client untuk komunikasi dengan backend.

3. Pengembangan Backend

a. Teknologi dan Alat

  • Server: Layanan cloud seperti AWS, Google Cloud, atau Azure untuk hosting server.
  • Framework: Menggunakan framework server seperti Express.js (Node.js), Django (Python), atau Spring Boot (Java) untuk pengembangan API.
  • Database: Basis data relasional seperti PostgreSQL atau MySQL, atau basis data NoSQL seperti MongoDB.
  • API: RESTful API untuk komunikasi antara frontend dan backend.
  • Keamanan: HTTPS untuk semua komunikasi data, serta JWT (JSON Web Token) untuk otentikasi dan otorisasi.

b. Struktur API

  • Auth: Endpoint untuk login dan registrasi pengguna.
  • Products: Endpoint untuk mendapatkan daftar produk dan detail produk tertentu.
  • Orders: Endpoint untuk membuat dan mengelola pesanan.
  • Users: Endpoint untuk mengelola data pengguna.

4. Integrasi Sistem

  • Navigasi dan Lokasi: Menggunakan Google Maps API untuk menampilkan lokasi Starbucks terdekat dan memberikan petunjuk arah kepada pengguna.
  • Pemesanan dan Pembayaran: Integrasi dengan gateway pembayaran seperti Stripe, PayPal, atau Square untuk memproses pembayaran online dengan aman.
  • Manajemen Pesanan: Sistem manajemen pesanan yang mengelola status pesanan dari penerimaan hingga penyelesaian.
  • Manajemen Inventaris: Sistem untuk melacak stok bahan baku dan produk, memastikan ketersediaan untuk pesanan yang masuk.
  • CRM: Sistem manajemen hubungan pelanggan untuk mengelola data pelanggan, program loyalitas, dan penawaran khusus.
  • Keamanan: Implementasi firewall dan enkripsi data untuk melindungi informasi pengguna dan transaksi.

5. Alur Kerja Sistem

  1. Pengguna membuka aplikasi Starbucks di smartphone.
  2. Pengguna mencari lokasi Starbucks terdekat menggunakan Google Maps API.
  3. Pengguna memilih produk dan melakukan pemesanan melalui aplikasi.
  4. Aplikasi mengirim data pesanan ke Backend System melalui RESTful API.
  5. Backend System memproses pesanan dan mengirim konfirmasi ke pengguna.
  6. Backend System mengupdate Inventory Management System untuk mengurangi stok.
  7. Backend System mengelola pembayaran melalui Payment Gateway.
  8. Order Management System mengelola status pesanan dan menginformasikan waktu pengambilan.
  9. Staf di toko menerima notifikasi pesanan dan mulai menyiapkan pesanan.
  10. Pengguna menerima notifikasi bahwa pesanan siap diambil.
  11. Pengguna mengambil pesanan di jendela pengambilan.
  12. Sistem CRM mencatat transaksi dan memperbarui poin loyalitas.

3.RPL

Analisis Sistem

Dalam analisis sistem, diidentifikasi beberapa masalah utama yang dihadapi oleh pengguna. Pertama, pengguna mengalami kesulitan dalam menemukan lokasi Starbucks terdekat secara cepat dan efisien. Kedua, proses pemesanan produk melalui aplikasi sering kali memakan waktu dan tidak intuitif. Ketiga, pengguna mengalami kesulitan dalam melacak status pesanan mereka dan mendapatkan notifikasi waktu pengambilan yang tepat. Terakhir, pengguna merasa sulit untuk mengelola profil dan riwayat pesanan mereka dengan mudah.

Arsitektur Sistem

Arsitektur sistem yang dirancang melibatkan dua komponen utama, yaitu aplikasi mobile untuk pengguna dan backend server untuk manajemen data dan proses. Aplikasi mobile akan berjalan pada platform iOS dan Android, menggunakan framework SwiftUI untuk iOS dan Jetpack Compose untuk Android. Backend server akan dihosting di layanan cloud seperti AWS, Google Cloud, atau Azure, dan menggunakan framework server seperti Express.js (Node.js), Django (Python), atau Spring Boot (Java).

Tabel 1. Spesifikasi Kebutuhan Fungsional

ID

Kebutuhan Fungsional

Deskripsi

F01

Registrasi Pengguna

Pengguna dapat membuat akun baru dengan memasukkan informasi seperti nama, email, dan kata sandi.

F02

Login Pengguna

Pengguna dapat masuk ke akun mereka dengan menggunakan email dan kata sandi.

F03

Lihat Daftar Produk

Pengguna dapat melihat daftar produk yang tersedia lengkap dengan gambar, deskripsi, dan harga.

F04

Tambah Produk ke Keranjang

Pengguna dapat menambahkan produk ke keranjang belanja mereka.

F05

Lihat Keranjang Belanja

Pengguna dapat melihat produk yang telah mereka tambahkan ke keranjang belanja.

F06

Ubah Jumlah Produk di Keranjang

Pengguna dapat mengubah jumlah produk yang ada di keranjang belanja mereka.

F07

Hapus Produk dari Keranjang

Pengguna dapat menghapus produk dari keranjang belanja mereka.

F08

Checkout

Pengguna dapat melanjutkan proses checkout untuk menyelesaikan pembelian mereka.

F09

Pembayaran

Pengguna dapat melakukan pembayaran melalui berbagai metode pembayaran yang tersedia.

F10

Lihat Status Pesanan

Pengguna dapat melihat status pesanan mereka (Diterima, Diproses, Siap diambil).

F11

Lihat Riwayat Pesanan

Pengguna dapat melihat riwayat pesanan mereka yang telah selesai.

F12

Batalkan Pesanan

Pengguna dapat membatalkan pesanan mereka sebelum pesanan diproses.

F13

Lihat Peta Lokasi Starbucks

Pengguna dapat melihat peta interaktif yang menampilkan lokasi Starbucks terdekat.

F14

Lihat Detail Akun Pengguna

Pengguna dapat melihat dan mengedit informasi akun mereka seperti nama, email, dan poin loyalitas.

F15

Tulis Ulasan Produk

Pengguna dapat menulis ulasan dan memberikan rating untuk produk yang mereka beli.

F16

Lihat Ulasan Produk

Pengguna dapat melihat ulasan dari produk yang tersedia di aplikasi.

F17

Logout

Pengguna dapat keluar dari akun mereka.

Tabel 2. Kebutuhan Non-Fungsional

ID

Kebutuhan Non-Fungsional

Deskripsi

NF01

Performa Aplikasi

Aplikasi harus responsif dengan waktu pemuatan halaman tidak lebih dari 2 detik.

NF02

Keamanan Data

Semua data pengguna harus dienkripsi menggunakan protokol HTTPS.

NF03

Skalabilitas

Sistem harus dapat menangani peningkatan jumlah pengguna dan pesanan tanpa degradasi kinerja.

NF04

Kompatibilitas

Aplikasi harus kompatibel dengan versi terbaru dan satu versi sebelumnya dari iOS dan Android.

NF05

Ketersediaan

Aplikasi harus tersedia 99.9% dari waktu operasi.

NF06

Pemulihan Kesalahan

Aplikasi harus memiliki mekanisme untuk memulihkan data dalam kasus kegagalan sistem.

NF07

Kemudahan Penggunaan

Aplikasi harus memiliki antarmuka yang intuitif dan mudah digunakan oleh pengguna.

NF08

Dukungan Pelanggan

Sistem harus menyediakan dukungan pelanggan 24/7 melalui chat atau email.

NF09

Pemeliharaan Sistem

Aplikasi harus mudah untuk diperbarui dan dipelihara oleh tim pengembang.

NF10

Pengujian

Aplikasi harus melalui pengujian menyeluruh termasuk pengujian fungsional, kinerja, dan keamanan.

NF11

Integritas Data

Sistem harus memastikan integritas data selama transaksi multi-pengguna.

NF12

Ketahanan Terhadap Beban

Sistem harus dirancang untuk menahan beban puncak selama acara promosi besar atau hari libur.

 

Contoh Use Case Diagram
 

Use Case adalah teknik yang digunakan dalam pengembangan perangkat lunak atau desain sistem informasi untuk menangkap kebutuhan fungsional dari sistem tersebut. Ini menggambarkan interaksi antara "aktor", yang memulai interaksi dengan sistem. Setiap Use Case direpresentasikan dengan urutan langkah yang sederhana. Pada sistem yang sedang dikembangkan, Use Case dapat diamati pada Gambar

http://www.plantuml.com/plantuml/png/VP91Qm8n48Nl-HN3dkh1lr2qGcd1Kb5ipzDaN0Tt4vdCkaZfVozn0uKOUWllcpmoxsKH5KM7lZCT7HGqW71xL70iP9M3DsWr2EmZ2M249XsQB2vTp_wctawDCUaI-hOZQ7QAyZNOKuJb-TonnUJMmBS1WCbkFd-4Xosr79LaLkZhqB8lnIS9OoJOI723rLZYfNDfWnMAbkY3QQo2_TcXKXLjgGyNWeE4lifNHxAdCDpfRtWYsE2r9rz_nxiu4jWfwX3_6NZXg46kvSIdi19iwS8qrcvdL7LEqHsueteADPgxgApvpDx1NylhC5KyCsak_usSXyUsQ2tpOkLxbXzM9bRpV_KNybDWFsP1tgLV_Gi0 

Gambar 1 Use Case Diagram 

 Contoh Tabel Skenario

Tabel 3. Tabel Skenario Use Case Login

Aksi Aktor

Reaksi Sistem

Skenario Normal

1. User membuka halaman login



2. Sistem menampilkan form login dengan field email dan password.

3. User memasukkan email dan password


4. User menekan tombol "Login"



5. Sistem memvalidasi kredensial pengguna.


6. Sistem memverifikasi keberadaan akun pengguna.


7. Sistem mengizinkan akses ke fitur-fitur aplikasi setelah login berhasil.

 

8. Sistem menampilkan halaman utama aplikasi.

Skenario Alternatif

1. User memasukkan email atau password yang salah

 

 

2. Sistem menampilkan pesan kesalahan bahwa email atau password salah

3. User belum mengaktifkan akun

 

 

4. Sistem menampilkan pesan bahwa akun belum diaktifkan dan meminta user untuk mengaktifkan akun melalui email konfirmasi.

5.User memencet tombol “lupa password”

 

 

6.Sistem menampilkan halaman lupa password

 

Contoh Activity Diagram

Gambar 2 Activity Diagram Login

http://www.plantuml.com/plantuml/png/VT51JiGm30NGVKzXTSy5MA0v0AmGxFyGJsl5SQiu4OBJGpeY6gHerdcsy-sJ5-HIaqvlpfaUdkZromkdHthXL55eXIB1IBT5R9gkhyqrtvGXxQ8HHfSjfpytw0QliJ5E4AK0entkdriE8sxSRDdIULEQdrlN-MPyb-zG2N2Xc3cmkK1fPrkMQXXwpdAHU5JmcJC2O8HORLZMKoxoBHOFwkpaN5YnNkFIRvyLBZeAehBUhB4M911sFRumyedjWqjFhdL7NzHyzm1zoB-QQJgnXNRX7m00 
Contoh Sequence Diagram
 
http://www.plantuml.com/plantuml/png/TP6nJaCn34NtV8NL7R4pe5Ql0mCIKgkoko-cH1WdECwGloUc30J1viJdwDuessgerjuvu6fPuLH9mpatYQWTTgM4DOjfPjWrUrskCm-6n9BrBtwFXcUi58AVuERUFRY3fqBYuw_hXTFw1bbWSqmNWLEvVSoN99lWQwUce24ye4Gcc6Wuq4UZQc6cXpzL6lOpQNhfi2X5xunSmqJybNWWQofNDQreANjWRJpd_NpLaII2BpraLXpuxZN0VQg5iV_3RacY_yOd 
Gambar 2 Sequence Diagram


4. Contoh Desain UI

Starbucks App - Redesign Challenge

Desain Database

http://www.plantuml.com/plantuml/png/fLLVQzim47_Nfn1zAGpQ3p1AQKWyPZOdmNQozSaSzYqHioLFEhSpIx_xx4WrKH6aeI_1kbyi_VwSpW-6G5FNr8nTyqYIe9uly9UGWeIIXg4jNMsoACskE1X-VEB_6EUVU6TG5wBYdtcypFdTtVhR_Vq0tDmCFn8Q783jB9r_dQL30HiGjLTfmPXdfQjY3sRl8RNgeQQ-Q9MGPEp-GxdK28HL0JIKyZY9idoMh0UWQwiGyC8c0UjqjTZCSwl1BLvbj5fLNKdlLbAXARLeHuV6uwAV8xTMYtBysoAQnydi-yWM27TAzzwxee4T5ftsdFY8i5MwU8t6FZfHWw-XS0AfVJdHQWYeCnutKWHr0Otg9FdwFaYwYFCeiSnFrZvzmYQemS6-23_CiC0_7LWE8nZ8pUkPsMCIBLtFkCNKCz0tAEa2Sev0mCW6QQygp_HG3XgaWNBiEhjtk7t2XiVBxK1-bJuUjKmh9qR89vIaT1-GSxcZv-EVRx9ybGo9fz4sZdvOWzyM7JUDJmAVBsdaiumra92xYM-fcZ5ATvNFs-d6OP55MHQlbfQzLt7K3HeZbBpu4fBwZV9zym7_jaAZ2L2zvYdMS9pYUz4QPkVso-7szd1mayAllVNVGtrzZBa9Ei4d5zZ7GXipUtpeNHznTovmtjJ1Z3sWhCOFs7y0 

 

Tabel: USERS

Nama Kolom

Tipe Data

Keterangan

user_id

INT

Primary key, identitas unik pengguna

name

VARCHAR

Nama lengkap pengguna

email

VARCHAR

Alamat email pengguna

password_hash

VARCHAR

Hash dari kata sandi pengguna

loyalty_points

INT

Poin loyalitas yang diberikan kepada pengguna

created_at

TIMESTAMP

Timestamp kapan akun pengguna dibuat

updated_at

TIMESTAMP

Timestamp kapan akun pengguna terakhir diperbarui

Tabel: PRODUCTS

Nama Kolom

Tipe Data

Keterangan

product_id

INT

Primary key, identitas unik produk

name

VARCHAR

Nama produk

description

TEXT

Deskripsi produk

price

DECIMAL

Harga produk

category

VARCHAR

Kategori produk (Kopi, Minuman Dingin, Makanan)

image_url

VARCHAR

URL gambar produk untuk ditampilkan di UI

created_at

TIMESTAMP

Timestamp kapan produk ditambahkan ke sistem

updated_at

TIMESTAMP

Timestamp kapan informasi produk terakhir diperbarui

Tabel: ORDERS

Nama Kolom

Tipe Data

Keterangan

order_id

INT

Primary key, identitas unik pesanan

user_id

INT

Foreign key menghubungkan pesanan dengan pengguna

status

VARCHAR

Status pesanan (Diterima, Diproses, Siap diambil)

total_amount

DECIMAL

Jumlah total pembayaran untuk pesanan

created_at

TIMESTAMP

Timestamp kapan pesanan dibuat

updated_at

TIMESTAMP

Timestamp kapan status pesanan terakhir diperbarui

Tabel: ORDER_ITEMS

Nama Kolom

Tipe Data

Keterangan

order_item_id

INT

Primary key, identitas unik item dalam pesanan

order_id

INT

Foreign key menghubungkan item pesanan dengan pesanan

product_id

INT

Foreign key menghubungkan item pesanan dengan produk

quantity

INT

Jumlah produk yang dipesan dalam satu item

price

DECIMAL

Harga per unit produk pada saat pesanan dibuat

Tabel: PAYMENTS

Nama Kolom

Tipe Data

Keterangan

payment_id

INT

Primary key, identitas unik transaksi pembayaran

order_id

INT

Foreign key menghubungkan pembayaran dengan pesanan

amount

DECIMAL

Jumlah uang yang dibayarkan

method

VARCHAR

Metode pembayaran (Kartu Kredit, PayPal, dsb)

status

VARCHAR

Status pembayaran (Pending, Sukses, Gagal, dsb)

transaction_id

VARCHAR

ID transaksi dari penyedia pembayaran

created_at

TIMESTAMP

Timestamp kapan pembayaran dibuat

Tabel: INVENTORY

Nama Kolom

Tipe Data

Keterangan

inventory_id

INT

Primary key, identitas unik entri inventaris

product_id

INT

Foreign key menghubungkan inventaris dengan produk

quantity

INT

Jumlah produk yang tersedia dalam inventaris

updated_at

TIMESTAMP

Timestamp kapan jumlah inventaris produk terakhir diperbarui

Tabel: CUSTOMER_REVIEWS

Nama Kolom

Tipe Data

Keterangan

review_id

INT

Primary key, identitas unik ulasan pelanggan

user_id

INT

Foreign key menghubungkan ulasan dengan pengguna

product_id

INT

Foreign key menghubungkan ulasan dengan produk

rating

INT

Nilai rating yang diberikan pengguna terhadap produk

comment

TEXT

Komentar atau ulasan yang diberikan oleh pengguna

created_at

TIMESTAMP

Timestamp kapan ulasan dibuat

Tabel: USER_SESSIONS

Nama Kolom

Tipe Data

Keterangan

session_id

INT

Primary key, identitas unik sesi pengguna

user_id

INT

Foreign key menghubungkan sesi dengan pengguna

token

VARCHAR

Token atau kunci yang digunakan untuk otentikasi sesi

created_at

TIMESTAMP

Timestamp kapan sesi pengguna dimulai

expires_at

TIMESTAMP

Timestamp kapan sesi pengguna akan kedaluwarsa



 

Comments

Popular posts from this blog

Tugas 1 RK Studi Kasus PeduliLindungi

ETS PPL

Tugas Kelompok Rekayasa Kebutuhan 1