Tugas Pertemuan 7 PPL-A


 Nama     : Muhammad Ahyun Irsyada 

 NRP       :  5025211251


Desain Sistem Manajemen Restoran

Referensi : Desain Sistem Manajemen Restoran

Desain Sistem Manajemen Restoran adalah proses merancang sebuah sistem yang terintegrasi untuk mengelola berbagai aspek operasional dalam sebuah restoran. Tujuan utamanya adalah untuk meningkatkan efisiensi operasional, meningkatkan pengalaman pelanggan, dan memudahkan pengelolaan bisnis secara keseluruhan.

Desain Sistem Manajemen Restoran mencakup pengembangan dan implementasi berbagai komponen teknologi informasi yang mendukung fungsi-fungsi kunci dalam operasi restoran. Ini melibatkan perencanaan dan integrasi perangkat lunak dan perangkat keras untuk memungkinkan pengelola restoran dan stafnya mengelola pesanan, inventaris, keuangan, dan aspek lain dari bisnis dengan lebih efisien.

Requirements

Functional requirements 
  • Izinkan pelanggan untuk mencari restoran, melihat menu, memesan.
  • Staf restoran dapat mengelola pesanan, memperbarui menu.
  • Pelanggan dapat melihat peringkat restoran.
  • Pelanggan dapat makan di tempat atau meminta pengiriman.
  • Staf dapur dapat melihat dan mengelola pesanan makanan.
  • Driver pengiriman dapat melihat pesanan pengiriman yang ditetapkan.
  • Pelanggan dapat melacak pesanan mereka.
  • Pelanggan dapat memilih metode pembayaran.

Persyaratan non-fungsional 

  • Skalabilitas: Ini memastikan sistem tetap responsif selama permintaan puncak, beradaptasi dengan penambahan fitur baru, dan menangani fluktuasi lalu lintas.
  • Keandalan: Keandalan sangat penting untuk kepercayaan pelanggan dan kelangsungan bisnis. Pengguna harus memiliki keyakinan pada pemrosesan pesanan sistem yang konsisten dan akurat, dan waktu henti harus diminimalkan untuk pemilik restoran dan agen pengiriman yang mengandalkan platform.
  • Ketersediaan Tinggi: Sistem yang andal dan selalu dapat diakses meningkatkan kepercayaan pelanggan, mendukung operasi restoran yang efisien, dan pada akhirnya berkontribusi pada keberhasilan seluruh ekosistem manajemen restoran.
  • Konsistensi yang kuat: Setiap perubahan harga, menu, lokasi pengguna, detail pembayaran harus mencerminkan dengan cepat.

Asumsi Kapasitas

Untuk memperkirakan skala sistem dan untuk mendapatkan ide tentang persyaratan penyimpanan, kita harus membuat beberapa asumsi tentang data dan lalu lintas yang disimpan.

Berikut adalah beberapa asumsi untuk desain yang diberikan.

  • 10 juta restoran
  • Pengguna aktif harian = 100 juta
  • Pengguna aktif per detik = 1160 pengguna/detik (perkiraan)
  • Rata-rata Pesanan per menit = 250.000 / menit
  • Rata-rata Order per detik = 4200 order/detik (perkiraan)
  • Pesanan puncak = 2 * Pesanan rata-rata per menit = 500.000 pesanan / menit

Estimasi Penyimpanan


Mari kita asumsikan rata-rata:

  • Setiap baris pelanggan di DB adalah 1 KB (dengan alamat, info profil, dll.)
  • Setiap restoran = 2 MB (detail, menu, foto, dll.)
  • Setiap pesanan = 1 KB.

Total penyimpanan yang dibutuhkan:

100 juta pelanggan x 1 KB per pengguna = 100 GB
10 juta restoran x 2 MB per restoran = 20 TB
500.000 pesanan per menit = 72 juta pesanan per hari (sekitar)
72 juta pesanan per hari x 1 KB per pesanan = 72 GB per hari
Dengan asumsi kami mempertahankan pesanan selama 3 tahun terakhir:

72 GB per hari x 365 hari x 3 tahun = 77TB (sekitar)

Desain Tingkat Tinggi



Dalam kerangka ini, tiga layanan mendasar membutuhkan manajemen:

Layanan Klien
Pelanggan mengotentikasi diri mereka sendiri untuk memesan di restoran. Setelah penempatan pesanan, mereka harus memiliki kemampuan untuk melacak status pesanan mereka, dengan fleksibilitas untuk melakukan pembayaran melalui berbagai metode.

Layanan Admin Restoran
Otentikasi adalah langkah awal untuk admin restoran, yang kemudian dapat mengakses semua pesanan yang ditempatkan di tempat mereka. Admin dapat menerima dan memproses pesanan berdasarkan preferensi pengguna untuk makan di tempat atau pesan antar. Selain itu, mereka memiliki wewenang untuk mengubah detail terkait restoran seperti menu dan harga.

Layanan Pengiriman
Agen pengiriman mengotentikasi diri mereka sendiri dan berinteraksi dengan Layanan Pengiriman, memanfaatkan Layanan Peta untuk melacak lokasi mereka. Layanan ini memberi tahu agen tentang pesanan terdekat, yang dapat mereka terima dan kemudian kirimkan ke pelanggan.

Komponen yang diperlukan:


Desain Database 


Tabel Customer:

  • customer_id (PK): Pengenal unik untuk setiap pelanggan.

  • customer_name: Mencatat nama pelanggan.

  • address: Menyimpan alamat pelanggan.

  • phone_no: Menyimpan nomor telepon pelanggan.

  • email: Menyimpan alamat email pelanggan.


Tabel Restaurant:

  • restaurant_id (PK): Pengenal unik untuk setiap restoran.

  • restaurant_name: Mencatat nama restoran.

  • payment_details_id (FK): Kunci asing terhubung ke detail pembayaran untuk transaksi.

  • location: Menyimpan lokasi restoran.

  • menu_id (FK): Kunci asing terhubung ke menu untuk modifikasi menu.


Tabel Agen Pengiriman:

  • agent_id (PK): Pengenal unik untuk setiap agen pengiriman.

  • payment_details_id (FK): Kunci asing terhubung ke detail pembayaran untuk transaksi agen.

  • phone_no: Menyimpan nomor telepon agen pengiriman.

  • email: Menangkap alamat email agen pengiriman.

  • vehicle_number: Mencatat nomor kendaraan yang digunakan oleh agen.

  • address: Menyimpan alamat permanen agen pengiriman.


Tabel Pesanan:

  • order_id (PK): Pengenal unik untuk setiap pesanan.

  • customer_id (FK): Kunci asing terhubung ke tabel pelanggan.

  • restaurant_id (FK): Kunci asing terhubung ke tabel restoran.

  • agent_id (FK): Kunci asing terhubung ke tabel agen pengiriman.

  • time_stamp: Mencatat penanda waktu saat pesanan ditempatkan.

  • is_delivery: Boolean yang menunjukkan apakah pesanan untuk pengiriman.

  • delivery_location: Menyimpan lokasi untuk pesanan pengiriman.

  • items_id (FK): Kunci asing yang menunjuk ke tabel yang menyimpan barang dan kuantitas.

  • delivery_price: Mencatat biaya pengiriman.

  • items_price: Menyimpan jumlah total harga barang yang dipesan.

  • transaction_id: Menyimpan rincian transaksi.

  • order_status: Mencatat status pesanan.


Tabel NoSQL:

  • Tabel Penilaian Restoran:

restaurant_id: Pengenal unik untuk setiap restoran.

rating: Menyimpan penilaian yang diberikan untuk restoran.

  • Tabel Penilaian Agen:

agent_id: Pengenal unik untuk setiap agen pengiriman.

rating: Mencatat penilaian yang diberikan untuk agen pengiriman.




  1. Klien berinteraksi dengan penyeimbang beban untuk berbagai layanan.

  2. Penyeimbang beban memantau kesehatan server dan mengelola lalu lintas.

  3. Layanan API menangani otentikasi pengguna dan komunikasi dengan mikro layanan.

  4. Layanan otentikasi menyediakan otentikasi pengguna yang kokoh dan fungsionalitas pendaftaran pengguna.

  5. Layanan pembayaran memvalidasi pembayaran dan memastikan akurasi transaksi.

  6. CDN menyimpan aset statis seperti gambar dan menu, mengurangi beban server.

  7. Layanan pencarian restoran memungkinkan pengguna untuk mencari restoran berdasarkan kriteria.

  8. Layanan penempatan pesanan mengelola siklus hidup pesanan dan komunikasi dengan restoran dan pelanggan.

  9. Layanan pengiriman memfasilitasi pengambilan pesanan dan pelacakan waktu nyata.

  10. Layanan peta memberikan pembaruan lokasi waktu nyata kepada pelanggan.

  11. Antrian pemberitahuan dan layanan menangani pemberitahuan kepada pengguna.

  12. Cache menyimpan permintaan yang sedang berlangsung untuk pengambilan cepat, meningkatkan kinerja sistem.

  13. Database menyimpan data pengguna, informasi restoran, dan menu, menggunakan SQL untuk data penting dan NoSQL untuk metadata yang kurang penting.


Alur Kerja Sistem:


    • Pelanggan memulai proses pendaftaran melalui layanan pendaftaran, memberikan semua detail yang diperlukan dan menerima ID pelanggan unik.
    • Pelanggan yang kembali menggunakan layanan otentikasi untuk verifikasi.
    • Selanjutnya, pelanggan menjelajahi restoran terdekat menggunakan layanan pencarian, membuat pilihan dari detail dan menu restoran yang disimpan CDN.
    • Setelah membuat pilihan, Layanan Penempatan Pesanan menangkap spesifik pesanan, yang mencakup item dan jumlah. Pengguna kemudian memilih pengiriman makanan atau makan di tempat, dengan sistem melacak status pesanan.
    • Jasa Penempatan Pesanan menyalurkan pesanan ke Antrian Pesanan, selanjutnya diambil oleh Jasa Penempatan Restoran untuk penerimaan dan pengolahan oleh admin restoran.
    • Dalam skenario makan di tempat, ketika makanan sudah siap, Layanan Penempatan Pesanan memberi tahu pelanggan melalui Antrian Pemberitahuan. Layanan Pemberitahuan menangani permintaan, mengirimkan pemberitahuan kepada pelanggan.

Di bawah ini adalah proses langkah demi langkah untuk pengiriman:

  • Layanan Penempatan Pesanan memberi tahu Antrean Pengiriman, mendorong Layanan Pengiriman untuk menemukan agen pengiriman terdekat.
  • Setelah agen menerima pesanan, mereka terhubung dengan pengguna melalui Map Services, memungkinkan pelanggan untuk melacak lokasi agen secara berkala.
  • Transaksi pembayaran difasilitasi oleh Layanan Pembayaran, mengarahkan ke portal pembayaran bank masing-masing atau layanan UPI.
  • Setelah pengiriman berhasil, status pesanan diperbarui menjadi "terkirim," dengan detail pesanan disimpan dalam database.
  • Pelanggan juga dapat memberikan peringkat restoran, disimpan dalam database NoSQL.


Optimisasi:


Untuk lebih meningkatkan efisiensi Sistem Manajemen Restoran, beberapa optimasi dapat dipertimbangkan:

  • Strategi caching, seperti menerapkan Jaringan Pengiriman Konten (CDN) untuk aset statis seperti gambar dan menu, dapat secara signifikan meningkatkan waktu respons dan mengurangi beban server.
  • Menggunakan pemrosesan asinkron untuk tugas yang tidak sensitif terhadap waktu, seperti pemberitahuan pesanan, dapat meningkatkan responsivitas sistem.
  • Strategi pengindeksan, sharding, dan replikasi database yang efisien harus diterapkan untuk memastikan pengambilan data yang cepat dan ketersediaan tinggi.
  • Load balancing dapat dioptimalkan secara dinamis untuk mendistribusikan lalu lintas secara efektif, dan sistem harus menggabungkan langkah-langkah keamanan menyeluruh, termasuk enkripsi untuk data sensitif dan mengamankan titik akhir API.
  • Pemantauan dan analisis kinerja secara teratur akan membantu mengidentifikasi dan mengatasi potensi kemacetan, memastikan optimalisasi Manajemen Restoran yang berkelanjutan.


Komentar

Postingan populer dari blog ini

Tugas 1 PPB-B

PPB-B EAS

Tugas PPL Pertemuan 10