Perancangan Perangkat Lunak - Tugas Pertemuan 7 - Desain Sistem Restauran

Timothy Hosia Budianto         5025211098

Arif Nugraha Santosa 5025211048


Dokumen Perancangan Sistem Restoran



Aplikasi Restoran dirancang untuk membantu restoran dan pelanggan dalam mengelola proses pemesanan dan pengantaran makanan. Aplikasi ini akan menyediakan platform bagi pelanggan untuk mencari restoran, melihat menu, memesan makanan, melacak pesanan, dan melakukan pembayaran. Staf restoran dapat mengelola pesanan, memperbarui menu, dan melihat peringkat restoran. Staf dapur dapat melihat dan mengelola pesanan makanan, dan pengemudi pengantaran dapat melihat pesanan yang ditugaskan kepada mereka.


PERSYARATAN FUNGSIONAL

  • Registrasi dan Login Pelanggan:

    • Pengguna dapat mendaftarkan akun baru dengan memasukkan nama, alamat email, dan kata sandi.

    • Pengguna dapat masuk ke akun mereka menggunakan alamat email dan kata sandi mereka.

    • Pengguna dapat memperbarui informasi akun mereka, termasuk nama, alamat email, dan kata sandi.

    • Pengguna dapat menghapus akun mereka.


  • Pencarian Restoran dan Menu:

    • Pengguna dapat mencari restoran berdasarkan nama, lokasi, atau jenis masakan.

    • Pengguna dapat melihat menu restoran, termasuk gambar, deskripsi, dan harga makanan.

  • Pemesanan Makanan:

    • Pengguna dapat memilih item dari menu dan menambahkannya ke keranjang belanja.

    • Pengguna dapat memilih untuk makan di tempat atau memesan untuk diantar.

    • Pengguna dapat memilih metode pembayaran.

    • Pengguna dapat melacak status pesanan mereka.

    • Pengguna dapat melacak lokasi pengemudi secara real-time di peta.

  • Manajemen Pesanan:

    • Staf restoran dapat melihat dan mengelola pesanan yang masuk.

    • Staf restoran dapat memperbarui status pesanan.

    • Staf dapur dapat melihat dan mengelola pesanan makanan.

    • Pengemudi pengantaran dapat melihat pesanan yang ditugaskan kepada mereka.

  • Peringkat Restoran:

    • Pengguna dapat melihat peringkat dan ulasan restoran dari pelanggan lain.

  • Pembayaran:

    • Pengguna dapat memilih dari berbagai metode pembayaran, seperti uang tunai, kartu kredit, atau dompet elektronik.

    • Pengemudi dapat melihat pendapatan mereka dari setiap pengiriman.

    • Pengemudi dapat menerima pembayaran mereka secara elektronik melalui aplikasi.

  • Manajemen Menu:

    • Staf restoran dapat menambahkan, menghapus, dan memperbarui item menu.

    • Staf restoran dapat mengatur gambar, deskripsi, dan harga makanan.

  • Pelaporan dan Analisis:

    • Staf restoran dapat menghasilkan laporan tentang penjualan, pesanan, dan pelanggan.

    • Laporan dapat di filter berdasarkan tanggal, waktu, lokasi, dan item menu.

    • Data dapat dianalisis untuk mengidentifikasi tren dan membuat keputusan bisnis yang lebih baik.

  • Manajemen Pengiriman:

    • Pengemudi dapat melihat daftar pesanan yang ditugaskan kepada mereka.

    • Pengemudi dapat menerima atau menolak pesanan.

    • Pengemudi dapat melihat detail pesanan, termasuk alamat pelanggan dan petunjuk arah.

    • Pengemudi dapat memperbarui status pesanan, seperti "Sedang Diambil", "Dalam Perjalanan", dan "Telah Diantar".

    • Pengemudi dapat berkomunikasi dengan pelanggan melalui aplikasi.

    • Pengemudi dapat melihat riwayat pengiriman mereka.

  • Navigasi dan Pelacakan GPS:

    • Pengemudi dapat menggunakan navigasi GPS bawaan aplikasi untuk menemukan alamat pelanggan.

    • Pengemudi dapat menerima pemberitahuan tentang perubahan rute atau penundaan lalu lintas.


PERSYARATAN NON-FUNGSIONAL


  • Keamanan:

    • Aplikasi harus aman dan terlindungi dari akses yang tidak sah.

    • Data pengguna harus dienkripsi dan dilindungi.

    • Transaksi pembayaran harus aman dan terjamin.

  • Kinerja:

    • Aplikasi harus cepat dan responsif.

    • Aplikasi harus dapat menangani beban puncak dengan baik.

    • Aplikasi harus dapat diakses dari berbagai perangkat dan jaringan.

  • Kegunaan:

    • Aplikasi harus mudah digunakan dan dinavigasi.

    • Antarmuka pengguna harus intuitif dan mudah dipahami.

    • Aplikasi harus tersedia dalam berbagai bahasa.

  • Aksesibilitas:

    • Aplikasi harus cepat tersedia 24/7.

    • Aplikasi harus dapat diakses meskipun ada gangguan jaringan.

    • Data pengguna harus aman dan terjamin.

  • Pemeliharaan:

    • Aplikasi harus mudah dipelihara dan diperbarui.

    • Dokumentasi harus lengkap dan mudah dipahami.

    • Dukungan harus tersedia untuk pengguna dan staf restoran.


ARSITEKTUR SISTEM


Arsitektur sistem aplikasi restoran menggunakan model three-tier (tiga lapis). Model ini membagi aplikasi menjadi tiga lapisan utama:

1. Presentasi (Presentation Layer)

Lapisan presentasi bertanggung jawab untuk menampilkan antarmuka pengguna kepada pengguna. Dalam kasus aplikasi restoran, lapisan presentasi dapat terdiri dari:

  • Aplikasi web: Aplikasi web yang dapat diakses oleh pelanggan melalui browser web.

  • Aplikasi seluler: Aplikasi seluler yang dapat diunduh pelanggan ke perangkat seluler mereka.

  • Panel admin: Panel admin yang dapat diakses oleh staf restoran untuk mengelola aplikasi.

2. Aplikasi (Application Layer)

Lapisan aplikasi bertanggung jawab untuk logika bisnis aplikasi. Dalam kasus aplikasi restoran, lapisan aplikasi dapat terdiri dari:

  • Modul pemesanan: Modul ini menangani proses pemesanan makanan, termasuk menambahkan item ke keranjang belanja, memilih metode pembayaran, dan memproses pembayaran.

  • Modul manajemen pesanan: Modul ini memungkinkan staf restoran untuk melihat dan mengelola pesanan, termasuk memperbarui status pesanan, mengelola inventaris, dan melacak pesanan yang diantar.

  • Modul pelacakan driver: Modul ini memungkinkan pelanggan untuk melacak lokasi driver yang mengantarkan pesanan mereka.

3. Data (Data Layer)

Lapisan data bertanggung jawab untuk menyimpan dan mengelola data aplikasi. Dalam kasus aplikasi restoran, lapisan data dapat terdiri dari:

  • Database: Database yang menyimpan data tentang pelanggan, restoran, menu, pesanan, dan driver.

  • API: API yang memungkinkan lapisan presentasi dan aplikasi untuk berinteraksi dengan database.

Koneksi Klien

Ketiga client (admin restoran, driver, dan pelanggan) terhubung ke aplikasi melalui internet. Setiap klien menggunakan protokol dan port yang berbeda untuk berkomunikasi dengan aplikasi.

  • Admin restoran: Admin restoran menggunakan panel admin untuk mengelola aplikasi. Panel admin biasanya dapat diakses melalui browser web dengan menggunakan URL tertentu.

  • Driver: Driver menggunakan aplikasi seluler untuk menerima dan mengelola pesanan. Aplikasi seluler biasanya berkomunikasi dengan aplikasi melalui API RESTful.

  • Pelanggan: Pelanggan dapat menggunakan aplikasi web atau aplikasi seluler untuk memesan makanan. Aplikasi web dan aplikasi seluler biasanya berkomunikasi dengan aplikasi melalui API RESTful.

Keuntungan Arsitektur Three-Tier

Arsitektur three-tier memiliki beberapa keuntungan, antara lain:

  • Skalabilitas: Aplikasi dapat dengan mudah diskalakan dengan menambahkan server tambahan ke setiap lapisan.

  • Pemeliharaan: Aplikasi lebih mudah dipelihara karena setiap lapisan dapat diubah secara independen.

  • Keamanan: Data aplikasi lebih aman karena disimpan di lapisan data yang terpisah.

Kekurangan Arsitektur Three-Tier

Arsitektur three-tier juga memiliki beberapa kekurangan, antara lain:

  • Kompleksitas: Arsitektur three-tier lebih kompleks daripada arsitektur two-tier.

  • Biaya: Arsitektur three-tier membutuhkan lebih banyak hardware dan software daripada arsitektur two-tier.


HIGH LEVEL DESIGN



Terdapat beberapa komponen penting dalam High Level Design, seperti:


  1. Antarmuka Client: Pelanggan berinteraksi dengan sistem melalui berbagai platform, termasuk aplikasi seluler, antarmuka web yang dapat diakses dari berbagai perangkat, atau aplikasi desktop.

  2. Load Balancer: Berfungsi di belakang layar untuk memastikan pengalaman pengguna yang mulus dengan meratakan lalu lintas masuk ke berbagai server, meningkatkan ketersediaan dan kinerja sistem, terutama saat terjadi lonjakan trafik.

  3. Layanan Otentikasi dan Registrasi: Menyediakan keamanan bagi sistem dengan memastikan setiap pengguna melewati proses otentikasi yang ketat sebelum mengakses platform, serta memfasilitasi proses registrasi yang mulus bagi pengguna baru.

  4. Basis Data: Menjadi inti dari seluruh sistem, bertindak sebagai tempat penyimpanan utama untuk semua informasi penting seperti data pengguna, detail restoran, menu, pesanan, dan metadata lainnya, memastikan keandalan, keamanan, dan ketersediaan.

  5. Layanan Pembayaran: Menangani semua aspek terkait transaksi pembayaran, termasuk pengelolaan data pembayaran pelanggan, pemrosesan transaksi, dan integrasi dengan penyedia layanan pembayaran eksternal, memastikan keamanan dan keakuratan proses pembayaran.

  6. Layanan Penempatan Pesanan: Bertanggung jawab atas proses penempatan pesanan di restoran yang terhubung, memastikan pesanan diproses dengan cepat dan akurat dari penerimaan hingga penyampaian ke restoran yang sesuai.

  7. Layanan Pengiriman: Berfokus pada aspek pengiriman pesanan, termasuk mencari dan menetapkan agen pengiriman yang tepat serta memberikan pembaruan lokasi real-time kepada pelanggan menggunakan teknologi layanan peta.

  8. Layanan Admin Restoran: Menyediakan alat yang diperlukan bagi admin restoran untuk mengelola operasi harian mereka, mulai dari melihat dan mengelola pesanan yang diterima hingga memodifikasi menu, harga, dan informasi restoran.

  9. Layanan Peta: Memainkan peran penting dalam melacak lokasi pengguna dan agen pengiriman secara real-time, menyediakan informasi yang akurat dan terkini tentang lokasi untuk memastikan transparansi dan keandalan dalam proses pengiriman.


Selain itu terdapat beberapa komponen antarmuka yang dibutuhkan pada high level design tersebut yaitu : 


Pelanggan (Customer):

  • Tampilan Pengguna: Menawarkan antarmuka yang ramah pengguna untuk membantu pelanggan mencari restoran, melihat menu, melakukan pemesanan, dan melacak pesanan mereka.

  • Fitur Pencarian: Menyediakan alat pencarian canggih yang memudahkan pelanggan menemukan restoran sesuai dengan preferensi mereka.

  • Manajemen Pesanan: Memungkinkan pelanggan untuk mengakses dan mengelola pesanan mereka dengan mudah, termasuk mengonfirmasi, memperbarui status, dan membatalkan pesanan.

  • Pilihan Pembayaran: Menawarkan berbagai opsi pembayaran yang fleksibel untuk kenyamanan pelanggan.

Restoran:

  • Antarmuka Staff Restoran: Menyediakan platform bagi staf restoran untuk efisien mengelola pesanan, menu, dan inventaris.

  • Manajemen Pesanan: Memudahkan staf restoran dalam menerima, memproses, dan memperbarui status pesanan dengan cepat.

  • Manajemen Menu: Menyediakan alat untuk memperbarui menu, mengelola stok, dan menyesuaikan harga dengan mudah.

  • Pelaporan dan Analisis: Menyediakan laporan dan analisis data untuk membantu restoran memahami tren penjualan dan membuat keputusan yang lebih baik.


Pengemudi Pengiriman:

  • Antarmuka Pengemudi: Menyediakan platform bagi pengemudi untuk melihat dan mengelola pesanan pengiriman mereka dengan efisien.

  • Manajemen Pengiriman: Memfasilitasi proses pengambilan, pengiriman, dan pelaporan pengiriman secara tepat waktu.

Administrator:

  • Antarmuka Admin: Menyediakan alat administratif bagi admin untuk mengelola pengguna, restoran, pengemudi, dan aspek lain dari sistem.

  • Manajemen Pengguna: Memungkinkan admin untuk mengelola akun, menangani keamanan, dan menjaga integritas sistem dengan memantau aktivitas pengguna dan memproses permintaan pendaftaran.

  • Manajemen Restoran dan Pengemudi: Menyediakan fasilitas untuk verifikasi dan manajemen restoran serta pengemudi yang terdaftar dalam sistem.



LOW LEVEL DESIGN



1. Layanan Restoran

Layanan Restoran menangani semua fungsi yang terkait dengan restoran. Ia hanya akan berinteraksi dengan Data Restoran. Layanan ini akan menampilkan halaman pertama aplikasi, yaitu daftar semua restoran atau hasil pencarian restoran. Layanan ini juga memungkinkan restoran untuk mendaftar dan Admin untuk mengelolanya.

  • Fitur:

    • Restoran dapat mendaftar sendiri - tambahRestoran

    • Pelanggan dapat melihat daftar semua restoran - getAllRestoran

    • Admin dapat mencari restoran menggunakan ID - getRestoranById

    • Pelanggan dapat mencari restoran menggunakan nama - getRestoranByName

    • Pelanggan dapat mencari restoran menggunakan kota - getRestoranByKota

2. Layanan Pengguna

Layanan Pengguna menyediakan fitur terkait profil pengguna. Ia hanya akan berinteraksi dengan Data Pengguna. Layanan ini memungkinkan Pelanggan dan Kurir untuk mendaftar dan memperbarui profil mereka.

  • Fitur:

    • Pengguna dapat mendaftar sendiri - tambahPengguna

    • Pengguna dapat menghapus profil mereka - hapusPengguna

    • Pengguna dapat memperbarui profil mereka - perbaruiPengguna

    • Pengguna dapat melihat info profil mereka - getPengguna

3. Layanan Menu Makanan

Setelah pelanggan memilih restoran, halaman kedua aplikasi, yaitu menu makanan, akan ditampilkan oleh Layanan Menu Makanan. Layanan ini juga memungkinkan pelanggan untuk mencari item pada menu berdasarkan kategori tertentu. Ia hanya akan berinteraksi dengan Data Menu Makanan.

  • Fitur:

    • Restoran dapat menambahkan menu makanan - tambahMenuMenurutIdRestoran

    • Admin dapat mencari menu makanan menggunakan ID - getMenuById

    • Pelanggan dapat melihat menu - getMenuMenurutIdRestoran

    • Admin dapat menambahkan lebih banyak item dalam menu - tambahItemMenuMenurutIdMenu

    • Restoran dapat menambahkan lebih banyak item - tambahItemMenuMenurutIdRestoran

    • Pelanggan dapat mencari item menggunakan jenis masakan - getItemMenuMenurutIdRestoranDanMasakan

    • Pelanggan dapat mencari item menggunakan jenis makanan - getItemMenuMenurutIdRestoranDanJenisMakanan

    • Admin dapat mencari item menggunakan ID - getItemMenuById

4. Layanan Harga

Pada halaman keranjang, Layanan Harga akan memungkinkan Pelanggan untuk melihat detail tagihan. Layanan ini akan memanggil Layanan Keranjang untuk mendapatkan semua item keranjang guna menampilkan tagihan. Kita dapat menggunakan Pola Strategi dan memiliki berbagai jenis strategi - DiskonDuaPuluhPersen, DiskonLimaRatus, dll.

  • Fitur:

    • Pelanggan dapat melihat detail tagihan - getBill

5. Layanan Pesanan

Pelanggan dapat melakukan pemesanan atau membatalkan pesanan setelah keranjang selesai menggunakan Layanan Pesanan. Layanan ini hanya akan berinteraksi dengan Data Pesanan. Layanan ini juga memungkinkan pelanggan untuk melihat riwayat pesanan. Pelanggan dapat memilih riwayat berdasarkan restoran juga. Kita dapat menggunakan Pola Perintah untuk menangani perintah pemesanan dan pembatalan.

  • Fitur:

    • Pelanggan dapat melakukan atau membatalkan pesanan - perbaruiPesanan

    • Admin dapat mencari pesanan - getPesananById

    • Pelanggan dapat melihat riwayat pesanan mereka untuk sebuah restoran - getAllPesananMenurutIdRestoran

    • Pelanggan dapat melihat semua riwayat pesanan mereka - getAllPesanan

6. Layanan Pembayaran

Pembayaran dapat dilakukan ke restoran menggunakan Layanan Pembayaran. Layanan ini akan berinteraksi dengan Data Pembayaran dan juga memanggil Layanan Harga untuk memvalidasi pembayaran yang dilakukan & Layanan Pesanan untuk memperbarui status pesanan. Layanan ini memungkinkan Pelanggan untuk menambahkan Pembayaran ke pesanan mereka.

  • Fitur:

    • Pelanggan dapat membayar pesanan mereka - tambahPembayaran

    • Admin dapat mencari pembayaran menggunakan ID - getPembayaranById

    • Pelanggan dapat melihat pembayaran yang dilakukan - getPembayaranMenurutIdPesanan

    • Pembayaran harus sesuai dengan tagihan - validasiPembayaran

7. Layanan Pengiriman

Layanan Pengiriman akan menangani semua fungsi yang terkait dengan pengiriman pesanan. Layanan ini akan berinteraksi dengan Data Pengiriman dan juga memanggil Layanan Pesanan untuk mendapatkan pesanan yang akan dikirim.

  • Fitur:

    • Admin/Restoran dapat menambahkan pengiriman - tambahPengiriman

    • Admin dapat melihat pengiriman menggunakan ID - getPengirimanById

    • Kurir dapat melihat semua pengiriman yang dilakukan - getPengirimanMenurutIdKurir

    • Pelanggan dapat melacak status pesanan - getStatusPesanan

Sistem pengiriman makanan melibatkan beberapa algoritma untuk memastikan layanan yang lancar dan efisien.

1. Algoritma Personalisasi:

  • Tujuan: Menampilkan pilihan restoran yang paling relevan untuk pengguna.

  • Cara Kerja:

    • Algoritma ini mempertimbangkan lokasi pengguna, riwayat pesanan, dan preferensi.

    • Misalnya, jika pelanggan biasanya memesan masakan India, aplikasi akan memprioritaskan restoran India terdekat.

  • Struktur Data:

    • Data pengguna (lokasi, riwayat pesanan, preferensi)

    • Data restoran (jenis masakan, lokasi)

2. Algoritma Popularitas:

  • Tujuan: Memberikan visibilitas lebih besar pada restoran populer.

  • Cara Kerja:

    • Algoritma ini memperhitungkan popularitas restoran berdasarkan:

      • Jumlah pesanan

      • Peringkat restoran

    • Restoran yang sering dipesan dan memiliki peringkat tinggi akan diberi visibilitas lebih besar di aplikasi.

  • Struktur Data:

    • Data restoran (jumlah pesanan, peringkat)

3. Algoritma Jarak:

  • Tujuan: Memprioritaskan restoran terdekat dari pelanggan.

  • Cara Kerja:

    • Algoritma ini memperhitungkan jarak antara restoran dan pelanggan.

    • Restoran yang terletak lebih dekat dengan pelanggan akan muncul lebih tinggi dalam hasil pencarian.

    • Hal ini karena aplikasi berasumsi bahwa restoran terdekat memiliki waktu pengiriman yang lebih singkat.

  • Struktur Data:

    • Data restoran (lokasi)

    • Data pengguna (lokasi)

4. Algoritma Data Real-Time:

  • Tujuan: Meningkatkan akurasi algoritma lainnya dengan menggunakan data real-time.

  • Cara Kerja:

    • Aplikasi pengiriman makanan menggunakan data real-time untuk membuat algoritme mereka lebih akurat.

    • Misalnya, jika restoran sedang mengalami volume pesanan yang tinggi, aplikasi dapat menurunkan peringkatnya dalam hasil pencarian.

  • Struktur Data:

    • Data restoran (jumlah pesanan saat ini)

5. Sistem Rekomendasi:

  • Tujuan: Memberikan rekomendasi restoran kepada pengguna berdasarkan pola belanja serupa.

  • Cara Kerja:

    • Sistem rekomendasi ini dapat didasarkan pada jumlah pesanan yang tersimpan dalam aplikasi pengiriman makanan.

    • Sistem ini didasarkan pada teknik "nearest-neighbor" yang menghitung restoran favorit pelanggan dan menganalisis pelanggan lain dengan pola pembelian serupa.

  • Struktur Data:

    • Data pesanan (pelanggan, restoran)


DESAIN BASIS DATA


Tabel:

Restoran:

id_restoran (INT, Primary Key)

nama_restoran (VARCHAR(255))

kota (VARCHAR(255))

deskripsi (TEXT)

gambar (BLOB)

rating (DECIMAL(2,1))

status (ENUM('Aktif', 'Tidak Aktif'))


Pengguna:

id_pengguna (INT, Primary Key)

nama_pengguna (VARCHAR(255))

email (VARCHAR(255))

kata_sandi (VARCHAR(255))

tipe_pengguna (ENUM('Pelanggan', 'Admin', 'Kurir'))

nomor_telepon (VARCHAR(255))

alamat (TEXT)

Menu:

id_menu (INT, Primary Key)

id_restoran (INT, Foreign Key references Restoran(id_restoran))

nama_menu (VARCHAR(255))

deskripsi (TEXT)

harga (DECIMAL(10,2))

kategori (VARCHAR(255))

gambar (BLOB)

Item Menu:

id_item_menu (INT, Primary Key)

id_menu (INT, Foreign Key references Menu(id_menu))

jenis_masakan (VARCHAR(255))

jenis_makanan (VARCHAR(255))

Pesanan:

id_pesanan (INT, Primary Key)

id_pengguna (INT, Foreign Key references Pengguna(id_pengguna))

id_restoran (INT, Foreign Key references Restoran(id_restoran))

tanggal_pesanan (DATETIME)

status_pesanan (ENUM('Menunggu', 'Diproses', 'Sedang Dikirim', 'Selesai', 'Dibatalkan'))

total_bayar (DECIMAL(10,2))

Detail Pesanan:

id_detail_pesanan (INT, Primary Key)

id_pesanan (INT, Foreign Key references Pesanan(id_pesanan))

id_item_menu (INT, Foreign Key references Item Menu(id_item_menu))

jumlah (INT)

harga_satuan (DECIMAL(10,2))

Pembayaran:

id_pembayaran (INT, Primary Key)

id_pesanan (INT, Foreign Key references Pesanan(id_pesanan))

metode_pembayaran (ENUM('Tunai', 'Kartu Kredit', 'Transfer Bank'))

tanggal_pembayaran (DATETIME)

status_pembayaran (ENUM('Belum Dibayar', 'Dibayar'))

total_bayar (DECIMAL(10,2))

Pengiriman:

id_pengiriman (INT, Primary Key)

id_pesanan (INT, Foreign Key references Pesanan(id_pesanan))

id_kurir (INT, Foreign Key references Pengguna(id_pengguna))

tanggal_pengiriman (DATETIME)

status_pengiriman (ENUM('Belum Diambil', 'Sedang Diantar', 'Telah Diterima'))

Relasi:

  • Restoran memiliki banyak Menu (N:M)

  • Menu memiliki banyak Item Menu (N:M)

  • Pengguna dapat melakukan banyak Pesanan (N:M)

  • Restoran memiliki banyak Pesanan (N:M)

  • Pesanan memiliki banyak Detail Pesanan (N:M)

  • Pesanan memiliki satu Pembayaran (1:1)

  • Pesanan memiliki satu Pengiriman (1:1)

  • Kurir memiliki banyak Pengiriman (N:M)

Penjelasan:

  • Tabel Restoran menyimpan informasi tentang restoran, seperti nama, kota, deskripsi, gambar, rating, dan status.

  • Tabel Pengguna menyimpan informasi tentang pengguna, seperti nama, email, kata sandi, tipe pengguna, nomor telepon, dan alamat.

  • Tabel Menu menyimpan informasi tentang menu restoran, seperti nama, deskripsi, harga, kategori, dan gambar.

  • Tabel Item Menu menyimpan informasi tentang item menu, seperti jenis masakan dan jenis makanan.

  • Tabel Pesanan menyimpan informasi tentang pesanan, seperti


Teknologi untuk Mengimplementasikan Sistem Aplikasi Restoran

Bahasa Pemrograman:

  • Frontend:

    • JavaScript: Bahasa pemrograman yang populer untuk pengembangan web frontend. Digunakan untuk membangun antarmuka pengguna yang interaktif dan responsif.

    • ReactJS/VueJS/AngularJS: Pustaka JavaScript yang membantu membangun aplikasi web frontend yang kompleks dan terstruktur.

  • Backend:

    • Java: Bahasa pemrograman yang populer untuk pengembangan backend. Performa tinggi dan skalabel, cocok untuk aplikasi yang kompleks.

    • Go: Bahasa pemrograman yang relatif baru, tetapi semakin populer untuk pengembangan backend. Performa tinggi, skalabel, dan mudah dipelajari.

Framework:

  • Frontend:

    • Next.js: Framework JavaScript populer untuk membangun aplikasi web frontend statis dan dinamis.

  • Backend:

    • Spring Boot: Framework Java populer untuk membangun aplikasi web backend.

    • Gin-gonic: Framework Go populer untuk membangun aplikasi web backend.

Database:

  • MySQL: Database relasional populer yang mudah dipelajari dan digunakan.

  • PostgreSQL: Database relasional open-source yang kuat dan skalabel.

  • MongoDB: Database NoSQL populer yang cocok untuk data yang tidak terstruktur.

Server Web:

  • Nginx: Server web open-source yang populer dan berkinerja tinggi.

  • Apache: Server web open-source yang populer dan mudah dikonfigurasi.

Cloud Hosting:

  • Google Cloud Platform (GCP): Platform cloud computing yang populer dan menawarkan berbagai layanan, termasuk komputasi, penyimpanan, dan database.

Teknologi Lainnya:

  • Sistem Antrian Pesan: Sistem seperti RabbitMQ atau Kafka dapat digunakan untuk menangani asinkronisasi dan skalabilitas aplikasi.

  • Sistem Otentikasi dan Otorisasi: Sistem seperti OAuth 2.0 atau JWT dapat digunakan untuk mengamankan aplikasi dan mengelola akses pengguna.

  • Sistem Pembayaran: Sistem seperti Stripe atau PayPal dapat digunakan untuk memproses pembayaran online.


UI/UX



REFERENSI

Perancangan Sistem Manajemen Restoran | Desain Sistem - GeeksforGeeks

Swiggy’s High Level System Design | by Prateek Singh | Bootcamp (uxdesign.cc)

Comments

Popular posts from this blog

Pemrograman Perangkat Beregerak - ETS - - Timothy Hosia

ETS PPL A

EAS PPL A - Perancangan Perangkat Lunak Hotel