EAS

Clarissa Luna Maheswari - 5025211003


1. Deskripsikan model bisnis yang dipilih!

Model bisnis yang dipilih adalah Starbucks. Starbucks mengadopsi model bisnis yang berfokus pada memberikan pengalaman kopi premium kepada pelanggan melalui jaringan toko ritel yang luas. Blueprint yang digunakan menggambarkan layanan Starbucks selama pandemi COVID-19, dengan berbagai penyesuaian untuk menjaga kesehatan dan keselamatan baik pelanggan maupun staf.

Perjalanan pelanggan dimulai dari pencarian lokasi Starbucks terdekat menggunakan Google Maps. Setelah sampai di Starbucks, pelanggan akan melihat logo dan tanda-tanda yang memberikan petunjuk lebih lanjut. Pelanggan kemudian dapat memesan minuman secara online melalui aplikasi Starbucks untuk mendapatkan poin bonus dan kemudian mengambil pesanan mereka di jendela pengambilan tanpa kontak langsung dengan staf. Setelah menerima minuman mereka, pelanggan meninggalkan Starbucks.

Staf front office bertugas memberikan informasi kepada pelanggan mengenai cara operasi Starbucks saat ini (hanya take-out), menangani pesanan, dan memastikan minuman diserahkan dengan aman kepada pelanggan. Sementara itu, staf back office mengikuti protokol kesehatan dengan sering mencuci tangan dan menyiapkan minuman dengan mengikuti prosedur keselamatan. Proses dukungan melibatkan sistem pencetakan untuk pesanan, sistem aplikasi untuk mengelola pesanan online, dan sistem pembayaran online untuk memfasilitasi transaksi tanpa kontak.


2. Identifikasi perangkat lunak apa saja yang diperlukan, kemudian jelaskan alasannya!

Berikut adalah perangkat lunak yang diperlukan berdasarkan model bisnis starbucks

  1. Aplikasi Mobile Starbucks
    Penelitian oleh Laith T. Khrais dan Abdullah M. Alghamdi (2021) menunjukkan bahwa penerimaan aplikasi mobile dapat meningkatkan pengalaman dan keterlibatan pelanggan dalam layanan e-commerce. Dengan adanya aplikasi mobile, user starbucks dapat memperoleh kemudahan, kenyamanan, dan akses ke berbagai produk dan layanan, yang secara signifikan meningkatkan pengalaman berbelanja pelanggan. (https//www.mdpi.com/1999-5903/13/3/77)

  2.  Sistem Manajemen Pesanan Online

Sistem manajemen pesanan yang baik dapat meningkatkan kepuasan pelanggan dan mengurangi waktu tunggu. Keakuratan dalam pemenuhan pesanan dan penggunaan teknologi pastinya diperlukan untuk memastikan efisiensi dan reliabilitas dalam proses pemenuhan pesanan. Dengan adanya sistem ini, pesanan dapat ditangani dengan lebih cepat dan efisien untuk mengurangi kesalahan dan mempercepat waktu pemrosesan.

  1. Sistem Pembayaran Elektronik
    Penggunaan pembayaran elektronik meningkatkan keamanan dan kenyamanan pelanggan dengan mengurangi risiko penularan virus melalui uang tunai dan mempercepat transaksi. Hal ini juga ditemukan dalam berbagai penelitian yang menunjukkan bahwa pembayaran elektronik memberikan pengalaman yang lebih aman dan nyaman bagi pelanggan. Dengan adanya pembayaran elektronik, proses checkout bisa dipercepat dan antrian di kasir bisa berkurang.  

  2. Sistem Pelacakan Pengiriman
    Sistem pelacakan pengiriman yang baik memberikan transparansi dan meningkatkan kepuasan pelanggan dengan informasi yang akurat tentang status pesanan. Penelitian menunjukkan bahwa sistem pelacakan yang efektif dapat meningkatkan loyalitas pelanggan dengan memberikan kepastian mengenai status pengiriman. Pengguna dapat melacak pesanan mereka secara real-time dan bisa memastikan pesanan tiba tepat waktu.

  3. Sistem Inventaris dan Manajemen Stok
    Sistem manajemen stok yang efektif dapat mengurangi biaya dan meningkatkan efisiensi operasional. Pengelolaan persediaan yang baik memastikan ketersediaan produk dan mencegah kekurangan stok, yang penting untuk operasi yang lancar. Sistem ini nantinya akan membantu dalam mengatur inventaris secara efisien, mengurangi limbah, dan memastikan produk selalu tersedia saat dibutuhkan.

  4. Sistem Manajemen Hubungan Pelanggan (CRM)
    CRM yang baik dapat meningkatkan retensi pelanggan dan kepuasan dengan mengelola data pelanggan dan interaksi untuk memberikan layanan yang lebih personal. CRM membantu membangun hubungan jangka panjang dengan pelanggan dan meningkatkan pengalaman mereka secara keseluruhan. Sistem ini memungkinan Starbucks untuk memahami kebutuhan dan preferensi pelanggan dengan lebih baik, serta menawarkan promosi dan layanan yang disesuaikan.

3. Buatkan rancangan perangkat lunaknya!

  1. Kebutuhan fungsional

    1. Navigasi dan Peta

      1. Integrasi dengan Google Maps untuk menunjukkan lokasi Starbucks terdekat.

      2. Kemampuan untuk mengatur destinasi melalui aplikasi.

    2. Pemesanan Online

      1. Antarmuka aplikasi untuk melakukan pemesanan online.

      2. Sistem pemesanan yang memberikan poin bonus untuk pemesanan online.

      3. Menampilkan perkiraan waktu pengambilan pesanan di aplikasi.

    3. Pembayaran

      1. Dukungan untuk berbagai metode pembayaran (kartu, pembayaran online).

      2. Integrasi dengan sistem pembayaran online untuk pemrosesan transaksi yang aman.

      3. Pemberian bonus untuk pembayaran online.

    4. Notifikasi dan Informasi

      1. Sistem pemberitahuan melalui aplikasi tentang status pesanan dan instruksi pengambilan.

      2. Informasi pada pintu mengenai cara kerja dan instruksi Starbucks saat pandemi.

    5. Interaksi Pelanggan

      1. Antarmuka aplikasi untuk memilih cara pemesanan dan menerima notifikasi.

      2. Sistem untuk mengonfirmasi pesanan dan mengatur waktu pengambilan.

      3. Kotak pengambilan khusus untuk mengurangi kontak langsung.

    6. Manajemen Pesanan dan Staf

      1. Sistem manajemen antrian pesanan untuk persiapan dan pengambilan.

      2. Sistem untuk mengatur dan memonitor tugas staf, termasuk penggunaan masker dan sarung tangan.

      3. Integrasi dengan sistem backend untuk memperbarui status pesanan.

  2. Kebutuhan non-fungsional

    1. Keamanan

      1. Enkripsi data untuk transaksi pembayaran online.

      2. Protokol keamanan untuk memastikan transaksi aman dan melindungi data pelanggan.

    2. Kinerja

      1. Waktu respons yang cepat untuk pemesanan dan notifikasi.

      2. Sistem yang mampu menangani beban pengguna yang tinggi tanpa penurunan performa.

    3. Keandalan

      1. Sistem harus selalu tersedia dengan downtime minimal.

      2. Kemampuan untuk menangani kesalahan dan memberikan pesan kesalahan yang informatif kepada pengguna.

    4. Skalabilitas

      1. Kemampuan untuk menangani peningkatan jumlah pengguna dan transaksi.

      2. Arsitektur yang dapat diperluas sesuai dengan pertumbuhan bisnis.

    5. Kegunaan

      1. Antarmuka yang mudah digunakan dan intuitif untuk pelanggan.

      2. Panduan dan instruksi yang jelas di aplikasi dan signage di toko.

    6. Kepatuhan

      1. Mematuhi regulasi dan pedoman kesehatan terkait COVID-19.

      2. Penggunaan protokol sanitasi dan kebersihan untuk staf dan pelanggan.

    7. Integrasi

      1. Kemampuan untuk berintegrasi dengan sistem pihak ketiga seperti Google Maps, sistem pembayaran online, dan platform manajemen staf.

    8. Mobilitas

      1. Aplikasi harus kompatibel dengan berbagai perangkat mobile (iOS dan Android).

      2. Desain responsif yang memastikan pengalaman pengguna yang baik di berbagai ukuran layar.

  3. Analisis kebutuhan pengguna

    1. Pelanggan

      1. Kemudahan Akses
        Pelanggan membutuhkan cara yang mudah untuk menemukan lokasi Starbucks terdekat dan melakukan pemesanan secara online.

      2. Informasi Real-time
        Pelanggan ingin menerima notifikasi real-time tentang status pesanan mereka dan perkiraan waktu pengambilan.

      3. Keamanan Pembayaran
        Pelanggan menginginkan proses pembayaran yang aman dan cepat, serta preferensi untuk pembayaran online yang memberikan bonus

      4. Minim Kontak
        Pelanggan mencari cara untuk meminimalkan kontak langsung, terutama selama pandemi.

    2. Staf Starbucks

      1. Manajemen Pesanan
        Staf membutuhkan sistem yang efisien untuk menerima, memproses, dan menyelesaikan pesanan dengan cepat.

      2. Kesehatan dan Keselamatan
        Staf memerlukan panduan yang jelas dan sistem pendukung untuk memastikan kesehatan dan keselamatan selama bekerja.

    3. Interaksi dengan Pelanggan
      Staf memerlukan alat untuk berkomunikasi dengan pelanggan mengenai status pesanan dan instruksi pengambilan.

    4. Manajemen Starbucks

      1. Pemantauan Kinerja
        Manajemen memerlukan sistem untuk memantau kinerja toko, inventaris, dan kepuasan pelanggan.

      2. Efisiensi Operasional
        Manajemen ingin memastikan bahwa operasi berjalan efisien dengan minim downtime dan gangguan.

    5. Data Analitik
      Manajemen membutuhkan akses ke data dan analitik untuk membuat keputusan bisnis yang informasional.

  4. Pemangku kepentingan

    1. Pelanggan
      Individu yang menggunakan aplikasi untuk memesan dan mengambil pesanan di Starbucks.

    2. Staf Toko
      Karyawan yang bertanggung jawab untuk memproses pesanan dan memberikan layanan kepada pelanggan.

    3. Manajemen Starbucks
      Tim yang bertanggung jawab atas operasi toko dan kepuasan pelanggan.

    4. Tim Pengembangan Aplikasi
      Developer  dan engineer  yang merancang dan memelihara aplikasi dan sistem backend.

    5. Penyedia Layanan Pembayaran
      Pihak ketiga yang menyediakan layanan pembayaran online.

    6. Penyedia Layanan Lokasi
      Pihak ketiga seperti Google Maps yang menyediakan layanan geolokasi.

  5. Lingkungan sistem

    1. Hardware

      1. Perangkat Mobile
        Smartphone pelanggan yang menjalankan aplikasi.

      2. Perangkat POS
        Tablet atau sistem POS di toko untuk staf.

      3. Server Backend
        Server yang meng-host API dan sistem backend.

    2. Software

      1. Aplikasi MobileAplikasi yang digunakan oleh pelanggan.

        1. Portal Web
          Antarmuka web untuk pemesanan online.

        2. Sistem Backend
          API dan layanan yang mendukung fungsionalitas aplikasi.

    3. Sistem Pembayaran
      Integrasi dengan gateway pembayaran pihak ketiga.

    4. Sistem Geolokasi
      Integrasi dengan layanan seperti Google Maps.

    5. Jaringan

      1. Koneksi Internet
        Koneksi yang stabil untuk mengakses layanan online.

      2. Keamanan Jaringan
        Protokol keamanan untuk melindungi data pelanggan dan transaksi.

  6. Analisis perancangan

    1. Arsitektur Sistem

      1. Microservices Architecture
        Menggunakan arsitektur microservices untuk memisahkan berbagai layanan (otentikasi, manajemen pesanan, notifikasi, pembayaran) yang dapat diskalakan secara independen.

      2. API Gateway
        Menggunakan API Gateway untuk mengelola permintaan API dan routing ke layanan yang sesuai.

    2. Desain Antarmuka Pengguna

      1. User-Centric Design
        Merancang antarmuka yang intuitif dan mudah digunakan untuk pelanggan dan staf.

      2. Responsiveness
        Memastikan antarmuka responsif di berbagai perangkat dan ukuran layar.

    3. Keamanan dan Privasi

      1. Enkripsi
        Menggunakan enkripsi untuk melindungi data pelanggan dan transaksi.

      2. Otentikasi dan Otorisasi
        Implementasi OAuth 2.0 atau JWT untuk keamanan otentikasi dan otorisasi pengguna.

    4. Pengujian dan Pemeliharaan

      1. Continuous Integration/Continuous Deployment (CI/CD)
        Mengimplementasikan pipeline CI/CD untuk pengembangan yang cepat dan pemeliharaan yang efisien.

      2. Automated Testing
        Menggunakan tes otomatis untuk memastikan kualitas dan keandalan aplikasi.

    5. Analitik dan Pelaporan

      1. Data Analytics
        Mengintegrasikan alat analitik untuk memantau kinerja aplikasi dan kepuasan pelanggan.

      2. Reporting Tools
        Menggunakan alat pelaporan untuk memberikan wawasan kepada manajemen mengenai operasi dan tren pelanggan.

  7. Desain arsitektur

Langkah-langkah Implementasi dari desain arsitektur:

  1. Menyiapkan Lingkungan Pengembangan:

    1. Instal alat pengembangan dan kerangka kerja yang diperlukan.

    2. Konfigurasi  API Gateway dan layanan backend.

  2.  Mengembangkan Aplikasi Mobile:

    1. Implementasi  antarmuka pengguna dan integrasikan dengan API backend.

    2. Penyiapan  notifikasi push untuk pembaruan secara real-time.

  3.  Mengembangkan Portal Web:

    1. Implementasi  antarmuka pengguna berbasis web dengan komunikasi real-time.

    2. Kompatibilitas yang sesuai dengan  standar PWA.

  4. Mengimplementasikan Layanan Backend

    1. Konfigurasikan API Gateway untuk routing API yang aman.

    2. Persiapan  layanan autentikasi dan manajemen pesanan.

    3. Integrasi  layanan notifikasi, penyimpanan data, layanan lokasi, dan sistem pembayaran.

  5. Mengembangkan Antarmuka Staf

    1. Pembuatan sistem POS front office untuk manajemen pesanan.

    2. Pengembangan  alat back office untuk manajemen inventaris dan staf.

  6. Pengujian dan Jaminan Kualitas

    1. Pengujian komprehensif untuk fungsi, kinerja, dan keamanan.

    2. Pengujian penerimaan pengguna untuk memastikan semua persyaratan terpenuhi.

  7. Penerapan dan Pemantauan

    1. Penerapan aplikasi ke lingkungan produksi.

    2. Pemantauan dan logging untuk pemeliharaan berkelanjutan.


  1. Desain rinci

    1. High level design

      1. User interface
        Titik masuk bagi pengguna untuk berinteraksi dengan sistem, melakukan pemesanan, dan mendapatkan pembaruan.

      2. Backend systems
        Komponen inti sistem yang menangani penyimpanan data, logika bisnis, dan layanan API.

      3. Location services (API Google Maps)
        Menyediakan layanan berbasis lokasi untuk menemukan Starbucks terdekat dan navigasi rute.

      4. Online ordering and payment services
        Mengelola proses pemesanan secara online dan menangani pembayaran dengan aman.

      5. API Eksternal (Gateway Pembayaran)
        Terhubung langsung dengan Sistem Pemesanan dan Pembayaran Online karena merupakan bagian integral dari pemrosesan pembayaran.

      6. Pengolahan Pesanan & Manajemen Pengambilan
        Logika backend yang menangani persiapan pesanan, mengatur waktu pengambilan, dan memberi tahu pengguna.

      7. Sistem Back Office (Manajemen Inventaris, Staf)
        Mengelola tingkat inventaris dan jadwal staf, memastikan sumber daya tersedia untuk memenuhi pesanan.

      8. Antarmuka Staf Front Office (Sistem POS)
        Antarmuka bagi staf untuk mengelola dan memenuhi pesanan pelanggan dengan efisien.

      9. Antarmuka Staf Back Office
        Menyediakan alat bagi staf back office untuk mengawasi operasi, mengelola sumber daya, dan memastikan kepatuhan terhadap protokol keamanan.

    2. Low level design

      1. Antarmuka Pengguna

        1. Aplikasi Mobile

          1. Dibangun menggunakan framework mobile seperti React Native atau Flutter untuk mendukung berbagai platform (iOS dan Android).

          2. Memanfaatkan GraphQL atau REST API untuk komunikasi dengan server backend.

          3.  Implementasi push notifications untuk memberikan notifikasi real-time kepada pengguna.

        2. Portal Web 

          1. Dibangun menggunakan framework seperti React.js atau Angular.

          2. Menggunakan AJAX atau WebSockets untuk komunikasi real-time dengan server backend.

          3. Mengimplementasikan teknologi PWA (Progressive Web App) untuk pengalaman pengguna yang lebih baik.

      2. Sistem Backend

        1. API Gateway

          1. Dibangun menggunakan solusi seperti Kong atau AWS API Gateway untuk mengelola dan merutekan permintaan API.

          2. Menyediakan rate limiting, logging, dan monitoring untuk mengelola beban dan keamanan.

        2. Layanan Otentikasi

          1. Menggunakan OAuth 2.0 atau JWT (JSON Web Token) untuk otentikasi dan otorisasi pengguna.

          2. Memanfaatkan layanan seperti Auth0 atau Firebase Authentication untuk pengelolaan yang lebih mudah.

        3. Layanan Manajemen Pesanan

          1. Dibangun dengan menggunakan bahasa pemrograman seperti Node.js atau Python (Django/Flask).

          2. Menggunakan database NoSQL seperti MongoDB untuk menyimpan data pesanan secara efisien.

        4. Layanan Notifikasi

          1. Menggunakan Firebase Cloud Messaging (FCM) atau OneSignal untuk mengirim notifikasi push ke aplikasi mobile.

          2. Implementasi email dan SMS notifications menggunakan layanan seperti SendGrid atau Twilio.

        5. Penyimpanan Data

          1.  Menggunakan kombinasi dari database SQL (seperti PostgreSQL) dan NoSQL (seperti MongoDB) untuk penyimpanan data yang efisien dan skalabel.

      3. Layanan Lokasi

        1. Geolocation API

          1.  Integrasi dengan layanan pemetaan seperti Google Maps API atau Mapbox.

          2. Menggunakan algoritma pencarian geospasial untuk menemukan lokasi toko terdekat berdasarkan input pengguna.

      4. Pemesanan Online

        1. Ordering API

          1. Dibangun menggunakan framework seperti Express.js (untuk Node.js) atau Django REST Framework.

          2. Mengimplementasikan endpoint RESTful untuk penempatan dan modifikasi pesanan.

        2.  Manajemen Menu

          1. Menggunakan CMS (Content Management System) seperti Strapi atau Firebase untuk mengelola data menu secara real-time.

      5. Sistem Pembayaran

        1. Integrasi Payment Gateway

          1.  Integrasi dengan gateway pembayaran seperti Stripe, PayPal, atau Midtrans untuk memproses pembayaran dengan aman.

          2.  Mengimplementasikan tokenisasi kartu kredit dan enkripsi untuk keamanan data pembayaran.

        2. Layanan Transaksi

          1. Mengelola catatan transaksi menggunakan database relasional seperti PostgreSQL.

          2. Memastikan integritas data transaksi dengan menggunakan ACID properties (Atomicity, Consistency, Isolation, Durability).

      6.  Pemrosesan Pesanan dan Manajemen Pengambilan

        1.  Sistem Antrian Pesanan

          1.  Menggunakan sistem antrian pesan (message queue) seperti RabbitMQ atau Apache Kafka untuk mengelola aliran pesanan.

        2.  Notifikasi Pengambilan

          1. Mengirim notifikasi pengambilan menggunakan FCM atau OneSignal setelah pesanan siap diambil.

      7.  Inventaris

        1. Sistem Pelacakan Inventaris

          1. Menggunakan solusi ERP (Enterprise Resource Planning) atau custom-built system untuk memonitor dan memperbarui stok secara real-time.

        2.  Peringatan Restock

          1.  Mengirim peringatan otomatis kepada staf melalui email atau notifikasi ketika stok mencapai ambang batas tertentu.

      8.  Manajemen Staf

        1.  Penjadwalan Karyawan

          1. Menggunakan tools seperti Google Calendar API atau custom-built scheduling system untuk mengelola jadwal dan shift karyawan.

        2. Manajemen Tugas

          1. Menggunakan aplikasi manajemen tugas seperti Trello atau custom-built system untuk penugasan dan pelacakan tugas.

      9. Antarmuka Staf Front Office (Sistem POS)

        1. Antarmuka Pemrosesan Pesanan

          1. Dibangun dengan menggunakan framework seperti React.js atau Vue.js untuk aplikasi web yang mudah digunakan oleh staf.

        2. Antarmuka Interaksi Pelanggan

          1. Memanfaatkan tablet atau perangkat POS yang mendukung aplikasi web untuk interaksi dengan pelanggan.

      10. API Eksternal (Payment Gateway)

        1.  Payment Processing API
          Integrasi dengan API dari gateway pembayaran yang dipilih untuk pemrosesan transaksi yang aman dan cepat.

      11.  Antarmuka Staf Back Office

        1.  Portal Admin

          1.  Dibangun menggunakan framework seperti React.js atau Angular untuk manajemen inventaris, jadwal staf, dan tugas administratif.

          2. Mengimplementasikan dashboard analitik untuk memantau kinerja dan metrik operasional.

      12. Aliran Data

        1. Pelanggan melakukan pemesanan

 Data pesanan dikirim melalui API Gateway ke Layanan Manajemen Pesanan.

  1.  Layanan Manajemen Pesanan memproses pesanan
    Memperbarui Sistem Antrian Pesanan dan berinteraksi dengan Sistem Pelacakan Inventaris.

  2. Payment Gateway memproses pembayaran

Transaksi dikonfirmasi melalui Layanan Transaksi.

  1. Layanan Notifikasi mengirim pembaruan
    Memberi tahu pelanggan tentang status pesanan.

  2. Staf menerima detail pesanan
    Memulai persiapan pesanan.

  3. Notifikasi Pengambilan dikirim
    Pelanggan diberi tahu ketika pesanan siap diambil.

  4. Pelanggan mengambil pesanan
    Di titik pengambilan yang ditentukan.


  1. Implementasi dan Uji desain
    Berbentuk desain database dan desain UI di nomor empat

  2. Pemeliharaan dan Perbaikan

    1. Pemeliharaan Rutin

      1. Pembaruan Sistem
        Memastikan bahwa semua perangkat lunak, termasuk aplikasi seluler dan sistem backend, diperbarui secara teratur untuk memperbaiki bug, meningkatkan keamanan, dan menambahkan fitur baru.

      2. Pembersihan Data
        Melakukan pembersihan data secara berkala untuk menghapus data yang tidak perlu dan mengoptimalkan kinerja sistem.

      3. Pemeriksaan Kinerja
        Melakukan pemeriksaan rutin terhadap kinerja sistem untuk memastikan bahwa sistem berjalan dengan optimal dan tidak ada bottleneck yang mempengaruhi operasi.

    2. Perbaikan

      1. Penanganan Bug
        Mendeteksi dan memperbaiki bug yang dilaporkan oleh pengguna atau yang ditemukan selama pengujian.

      2. Pemulihan dari Kegagalan
        Memiliki rencana pemulihan yang jelas untuk menangani kegagalan sistem, termasuk backup data dan pemulihan bencana.

    3.  Keamanan

      1. Patch Keamanan
        Memastikan bahwa semua patch keamanan diterapkan secepat mungkin untuk melindungi sistem dari ancaman keamanan.

      2. Pemantauan Keamanan
        Memantau sistem secara terus-menerus untuk mendeteksi potensi ancaman dan meresponsnya dengan cepat.

    4. Pelatihan dan Dukungan

      1. Pelatihan Staf
        Memberikan pelatihan kepada staf untuk memastikan mereka dapat menggunakan sistem dengan efektif dan mengetahui langkah-langkah yang harus diambil jika terjadi masalah.

      2. Dukungan Pelanggan
        Menyediakan dukungan pelanggan untuk membantu pengguna jika mereka mengalami masalah dengan aplikasi atau sistem lainnya.

    5. Evaluasi dan Peningkatan

      1. Umpan Balik Pengguna
        Mengumpulkan dan menganalisis umpan balik dari pengguna untuk mengidentifikasi area yang memerlukan peningkatan.

      2. Pengujian Berkelanjutan
        Melakukan pengujian berkelanjutan untuk memastikan bahwa setiap perubahan atau pembaruan tidak menyebabkan masalah baru.

4. Lengkapi dengan desain database dan desain UI

Desain Database

CREATE TABLE Users (

    user_id INT PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(100) NOT NULL,

    email VARCHAR(100) NOT NULL UNIQUE,

    password VARCHAR(255) NOT NULL,

    date_of_birth DATE,

    total_points INT DEFAULT 0

);


CREATE TABLE Stores (

    store_id INT PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(100) NOT NULL,

    address VARCHAR(255) NOT NULL,

    latitude DECIMAL(9,6) NOT NULL,

    longitude DECIMAL(9,6) NOT NULL,

    opening_hours VARCHAR(100),

    closing_hours VARCHAR(100)

);


CREATE TABLE Products (

    product_id INT PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(100) NOT NULL,

    description TEXT,

    price DECIMAL(10,2) NOT NULL,

    image_url VARCHAR(255),

    category VARCHAR(50)

);


CREATE TABLE Orders (

    order_id INT PRIMARY KEY AUTO_INCREMENT,

    user_id INT,

    store_id INT,

    order_date DATETIME DEFAULT CURRENT_TIMESTAMP,

    total_amount DECIMAL(10,2) NOT NULL,

    status VARCHAR(50),

    FOREIGN KEY (user_id) REFERENCES Users(user_id),

    FOREIGN KEY (store_id) REFERENCES Stores(store_id)

);


CREATE TABLE OrderDetails (

    order_detail_id INT PRIMARY KEY AUTO_INCREMENT,

    order_id INT,

    product_id INT,

    quantity INT NOT NULL,

    price DECIMAL(10,2) NOT NULL,

    FOREIGN KEY (order_id) REFERENCES Orders(order_id),

    FOREIGN KEY (product_id) REFERENCES Products(product_id)

);


CREATE TABLE Rewards (

    reward_id INT PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(100) NOT NULL,

    description TEXT,

    points_required INT NOT NULL,

    image_url VARCHAR(255)

);


CREATE TABLE RewardRedemptions (

    redemption_id INT PRIMARY KEY AUTO_INCREMENT,

    user_id INT,

    reward_id INT,

    redemption_date DATETIME DEFAULT CURRENT_TIMESTAMP,

    FOREIGN KEY (user_id) REFERENCES Users(user_id),

    FOREIGN KEY (reward_id) REFERENCES Rewards(reward_id)

);

Desain UI

5. Buat Presentasi dan demo hasil rancangan Perangkat Lunak, kemudian upload di Youtube, dan isi lembar monitoring?

sudah dicantumkan di form, terima kasih 





















Comments

Popular posts from this blog

Pertemuan 2: Prinsip Desain Software

Pertemuan 13: Desain System Aplikasi Instagram