Langsung ke konten utama

Studi Kasus 1 - Desain Sistem Restaurant

NAMA   : Ananda Hadi Saputra

KELAS  : PPL A

NRP       : 5025201148

Tugas yang diberikan pada mata kuliah Perancangan Perangkat Lunak (A), yaitu terkait Software Architecture.

Berikut merupakan dokumentasinya :



Desain Sistem Aplikasi Kasir Restaurant


High Level Design

  1. Functional Requirements:

    1. Order Management

      1. Mengizinkan staf menunggu untuk memasukkan pesanan pelanggan dengan memilih item dari menu digital.

      2. Kelola modifikasi dan permintaan khusus untuk setiap item (misalnya, tanpa bawang, saus tambahan).

      3. Hitung total pesanan termasuk pajak dan biaya layanan.

    2. Manajemen Tabel

      1. Lacak ketersediaan meja dan tetapkan pesanan ke tabel tertentu.

      2. Aktifkan penggabungan atau pemisahan tabel untuk grup yang lebih besar.

      3. Kelola reservasi dan daftar tunggu.

    3. Manajemen persediaan

      1. Perbarui tingkat inventaris berdasarkan pesanan yang dilakukan.

      2. Peringatkan staf ketika tingkat persediaan rendah atau barang habis.

    4. Proses pembayaran

      1. Terima berbagai metode pembayaran (tunai, kartu kredit/debit, pembayaran seluler).

      2. Menghasilkan dan mencetak tanda terima terperinci untuk pelanggan.

    5. Pelaporan dan Analisis

      1. Hasilkan laporan penjualan berdasarkan item, periode waktu, atau anggota staf.

      2. Analisis tren dan preferensi pelanggan.

    6. Manajemen Staf

      1. Izinkan akses tingkat manajer untuk penjadwalan dan izin staf.

      2. Memantau kinerja dan produktivitas staf.

  1. Non-Functional Requirements:

    1. Performance (performa)

      1. Waktu respons untuk pemasukan dan pemrosesan pesanan harus cepat untuk meminimalkan waktu tunggu pelanggan.

      2. Sistem harus menangani beban puncak selama jam sibuk secara efisien.

    2. Reliability (keandalan)

      1. Sistem harus tersedia selama jam operasional restoran dengan waktu henti minimal.

      2. Integritas dan keamanan data sangat penting untuk mencegah hilangnya pesanan atau informasi pelanggan.

    3. Usability (Kegunaan)

      1. Antarmuka pengguna yang intuitif agar mudah diadopsi oleh pelayan dan manajemen.

      2. Dukungan untuk berbagai bahasa jika diperlukan untuk staf yang beragam.

    4. Security (Keamanan)

      1. Pemrosesan pembayaran harus mematuhi standar PCI DSS untuk melindungi informasi pembayaran pelanggan.

      2. Kontrol akses berbasis peran untuk memastikan privasi dan integritas data.

    5. Scalability (Skalabilitas)

      1. Kemampuan untuk menskalakan sistem untuk mengakomodasi pertumbuhan jumlah tabel dan transaksi.


  1. Global Considerations:

    1. Localization (Lokalisasi)

      1. Dukungan untuk berbagai mata uang dan sistem pajak berdasarkan lokasi restoran.

      2. Kepatuhan terhadap peraturan setempat mengenai layanan makanan dan perpajakan.

    2. Accessibility (Aksesibilitas)

      1. Pastikan fitur aksesibilitas bagi pengguna penyandang disabilitas (misalnya pembaca layar, navigasi keyboard).

    3. Integration (Integrasi)

      1. Kompatibilitas dengan sistem eksternal seperti sistem tampilan dapur (KDS), software akuntansi, dan platform pemesanan online.

    4. Maintenance and Support (Pemeliharaan dan Dukungan)

      1. Pembaruan dan pemeliharaan rutin untuk mengatasi bug dan kerentanan keamanan.

      2. Penyediaan dukungan teknis dan pemecahan masalah.


Low level Design

  1. Database Design:

    1. Menu Items:

      1. item_id (Primary Key): Unique identifier for the menu item.

      2. name: The name of the menu item.

      3. price: The price of the menu item.

      4. category_id (Foreign Key): Category ID to categorize the menu item.

    2. Category:

      1. category_id (Primary Key): Unique identifier for the menu item category.

      2. name: Category name (e.g. Appetizer, Main Course, Drink).

    3. Order:

      1. order_id (Primary Key): Unique identifier for the order.

      2. table_number: The table number where the order was placed.

      3. order_time: Timestamp when the order was placed.

      4. status: The current status of the order (for example, Pending, In Progress, Completed).

    4. Items ordered:

      1. order_item_id (Primary Key): Unique identifier for each item in the order.

      2. order_id (Foreign Key): ID of the Order that owns the item.

      3. item_id (Foreign Key): The item ID of the menu item.

      4. quantity: The number of menu items ordered.

      5. special_requests: Any special requests or modifications to the item.

    5. Inventory:

      1. inventory_id (Primary Key): Unique identifier for an inventory item.

      2. item_id (Foreign Key): The item ID linked to the menu item.

      3. quantity_available: The number of items available currently in stock.


  1.  System Components:

    1. Frontend Application:

      1. Teknologi: React.js untuk antarmuka pengguna.

      2. Komponen: Antarmuka entri pesanan, manajemen tabel, tampilan menu.

    2. Backend Server:

      1. Teknologi: Node.js dengan Express.js untuk REST API.

      2. Komponen: Titik akhir API untuk menangani pesanan, item menu, dan inventaris.

    3. Database Management System (DBMS):

      1. Teknologi: PostgreSQL untuk manajemen database relasional.

      2. Peran: Menyimpan dan mengelola data terkait item menu, pesanan, dan inventaris.

    4. Payment Gateway Integration:

      1. Teknologi: Stripe API untuk memproses pembayaran dengan aman.

      2. Komponen: Integrasi untuk memudahkan transaksi pembayaran.


  1. User Interfaces (UI):

    1. Waitstaff Interface: 

      1. Display menu items with categories for easy selection. 

      2. Ability to add/remove items and specify quantities. 

      3. View order summary and submit orders. 

    2. Manager Dashboard: 

      1. Akses ke laporan penjualan, status inventaris, dan riwayat pesanan.

      2. Ability to add/edit menu items and manage staff.


  1. Technology Stack:

    1. Frontend: React.js, HTML/CSS, JavaScript. 

    2. Back End: Node.js, Express.js. 

    3. Database: PostgreSQL. 

    4. Payment Integration: Stripe API. 

    5. Deployment: Docker for containerization, AWS for cloud hosting.


  1. Workflow Example:

    1. Pelayan masuk ke sistem menggunakan Role mereka.

    2. Pelayan memilih meja dan mulai menambahkan item dari menu ke pesanan.

    3. Pelayan menentukan modifikasi atau permintaan khusus untuk setiap item.

    4. Detail pesanan dikirim ke server backend melalui panggilan API dan disimpan dalam database.

    5. Staf dapur melihat pesanan dan mulai menyiapkan barang-barangnya.

    6. Setelah siap, pesanan ditandai sebagai selesai di sistem.

    7. Pelayan membuat tagihan dan memproses pembayaran menggunakan gateway pembayaran terintegrasi.



Komentar

Postingan populer dari blog ini

ETS - PPL A

NAMA   : Ananda Hadi S NRP        : 5025201148 KELAS : PPL A 1. Apakah perbedaan model analysis dengan model desain? Model Analysis Model analisis fokus pada pemahaman dan penjelasan tentang bagaimana suatu sistem atau fenomena bekerja atau berinteraksi.  Tujuan utama dari model analisis adalah untuk mengidentifikasi masalah, memahami hubungan antara variabel, dan memberikan pemahaman yang mendalam tentang suatu situasi atau sistem.  Contoh dari model analisis termasuk model matematika, analisis data, atau teori yang digunakan untuk menjelaskan dan memprediksi perilaku sistem tertentu.  Model Desain Model desain berfokus pada pembuatan rencana atau representasi bagaimana suatu sistem atau objek akan dibuat atau dirancang.  Tujuan dari model desain adalah untuk menghasilkan solusi atau implementasi yang memenuhi kebutuhan atau tujuan tertentu berdasarkan hasil analisis.  Contoh model desain meliputi blueprints (denah), skema konstruksi, a...

APSI - TUGAS 8 - Data Modelling

  Apa itu Data Modelling? Data modeling adalah proses merancang struktur dan representasi data untuk memahami, menggambarkan, dan mengorganisasi informasi dalam suatu sistem atau organisasi. Hal ini dilakukan dengan menggunakan konsep, notasi, dan metode tertentu untuk menyusun model data yang mempresentasikan hubungan antara entitas, atribut, dan aturan yang berlaku dalam konteks yang relevan. Data modeling membantu dalam pemahaman dan dokumentasi yang lebih baik tentang data yang digunakan dan diproses dalam suatu sistem. Tujuannya adalah untuk menciptakan pemahaman yang konsisten dan jelas tentang struktur data, hubungan antara data, dan aturan bisnis yang mengatur penggunaan data. jenis jenis data modeling CDM (Conceptual Data Model): Model data konseptual (CDM) adalah representasi tingkat tinggi dari struktur data yang berfokus pada pemahaman konseptual dari domain atau sistem yang dimodelkan. CDM membantu untuk memahami informasi yang diperlukan dalam suatu organisasi atau si...

EAS - PPL A

NAMA     : Ananda Hadi S NRP      : 5025201148 KELAS : PPL A EAS Perancangan Perangkat Lunak A, dengan pilihan desain Starbuck Deskripsikan model bisnis yang dipilih? Touchpoints (Titik Kontak) Google Map Smart Phone Google Map Smart Phone Car Store’s Architecture and Signage Printed Materials Starbucks Application and Credit Card Machine Starbucks Application Pick-up Window, Employee Employee, Pick-up Box, and Drinks User Journey Pengaturan tujuan:  Pelanggan mengatur tujuan ke Starbucks terdekat menggunakan Google Maps di smartphone. (Catatan:  Menyediakan informasi tentang bagaimana Starbucks beroperasi saat ini: hanya untuk dibawa pulang). Perjalanan ke starbucks:  Pelanggan berjalan atau mengemudi ke lokasi Starbucks. Melihat tanda dan logo:  Pelanggan melihat logo Starbucks dan tanda pada pintu masuk. Instruksi di pintu:  Pelanggan melihat instruksi di pintu mengenai proses pemesanan. Memilih pesan online:  Pelanggan...