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

APSI - TUGAS 4 - Seleksi dan Manajemen Proyek

Pada era globalisasi yang semakin maju, perusahaan-perusahaan harus mampu beradaptasi dengan berbagai perubahan yang terjadi, baik dalam hal teknologi, ekonomi, sosial, maupun politik. Salah satu aspek yang sangat penting dalam menjalankan perusahaan adalah pengelolaan Sumber Daya Manusia (SDM). Dalam konteks ini, seleksi dan manajemen SDM memiliki peran yang sangat krusial untuk menghasilkan karyawan yang kompeten dan mampu mendukung kemajuan perusahaan. Seleksi SDM Seleksi SDM merupakan salah satu proses penting dalam pengelolaan SDM. Proses ini bertujuan untuk memilih individu yang memiliki kompetensi dan karakteristik yang sesuai dengan kebutuhan perusahaan. Berikut ini adalah beberapa tahapan dalam proses seleksi SDM: 1. Analisis Kebutuhan Langkah pertama dalam proses seleksi SDM adalah menganalisis kebutuhan perusahaan. Hal ini meliputi identifikasi posisi yang diperlukan, jumlah karyawan yang dibutuhkan, serta kualifikasi dan kompetensi yang harus dimiliki oleh calon karyawan. 2...