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 PWEB

Nama    : Ananda Hadi Saputra NRP      : 5025201148 Kelas    : Pemograman Web - A Tahun   : 2023 ETS PWEB 1. Jelaskan fungsi html, css, javascript, bootstrap, dalam pembangunan aplikasi web HTML (Hypertext Markup Language): Fungsi : HTML adalah bahasa markup yang digunakan untuk membuat struktur dasar dari halaman web. Ini mendefinisikan elemen-elemen seperti teks, gambar, tautan, paragraf, dan bagian lainnya dalam dokumen web. Peran : HTML digunakan untuk mengatur konten dasar di halaman web dan memberikan struktur yang akan dihiasi dengan gaya CSS. CSS (Cascading Style Sheets): Fungsi : CSS digunakan untuk mengatur tampilan dan tata letak elemen-elemen HTML. Ini mendefinisikan warna, jenis huruf, ukuran, jarak antara elemen, dan gaya visual lainnya. Peran : CSS memungkinkan pengembang untuk merancang tampilan yang menarik dan konsisten untuk halaman web. JavaScript: Fungsi : JavaScript adalah bahasa pemrograman yang digunakan untuk memberik...

APSI - TUGAS 5 - Requirement Definition

Requirement Definition Definisi Requirements Dalam pengembangan perangkat lunak, definisi requirements mengacu pada proses mengidentifikasi, mendefinisikan, dan mendokumentasikan kebutuhan atau persyaratan yang harus dipenuhi oleh suatu sistem atau aplikasi. Requirements atau kebutuhan ini berfungsi sebagai panduan bagi tim pengembang perangkat lunak dalam merancang, mengembangkan, dan menguji sistem yang diinginkan. Fungsi Requirements Berikut adalah beberapa fungsi utama dari requirements: Menjelaskan kebutuhan pengguna: Requirements membantu menggambarkan dan menjelaskan kebutuhan pengguna atau pemangku kepentingan terkait sistem atau aplikasi yang akan dikembangkan. Menyediakan panduan untuk perancangan sistem: Requirements menjadi dasar dalam merancang arsitektur, fungsionalitas, dan fitur-fitur yang akan ada dalam sistem. Membantu dalam perencanaan dan estimasi proyek: Requirements yang terdefinisi dengan baik memungkinkan tim pengembang untuk melakukan perencanaan proyek yang le...

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...