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:
Antarmuka Client: Pelanggan berinteraksi dengan sistem melalui berbagai platform, termasuk aplikasi seluler, antarmuka web yang dapat diakses dari berbagai perangkat, atau aplikasi desktop.
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.
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.
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.
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.
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.
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.
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.
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
Post a Comment