Perancangan Perangkat Lunak - Tugas Pertemuan 6 - Low Level Design (LLD)
Nama : Timothy Hosia Budianto
NRP : 5025211098
Kelas : PPL - A
Tahun : 2024
Low Level Design
Low Level Design (LLD) adalah tahap dalam pengembangan perangkat lunak di mana konsep-konsep yang telah diidentifikasi dalam desain tingkat tinggi (High Level Design atau HLD) diimplementasikan menjadi rancangan teknis yang lebih mendetail. Biasanya, tahap ini dilakukan setelah spesifikasi fungsional telah ditetapkan dan menjelaskan secara rinci bagaimana setiap fitur atau komponen akan diwujudkan. Fokus utama dalam desain tingkat rendah adalah pada aspek teknis dan implementasi konkret dari perangkat lunak yang sedang dikembangkan. Ini mencakup pemecahan masalah teknis seperti pemilihan struktur data yang tepat, algoritma yang akan digunakan, desain antarmuka yang akan dibangun, dan implementasi rinci dari fitur-fitur yang telah direncanakan pada tahap desain tingkat tinggi. Pada pertemuan mata kuliah ini, kami diberi tugas untuk berlatih dalam pembuatan desain tingkat tinggi (HLD) dan desain tingkat rendah (LLD) dalam dokumen pengembangan perangkat lunak.
Low Level Design Facebook
Untuk Pemilihan Database
Dalam memilih arsitektur database yang sesuai, sistem manajemen basis data relasional (RDBMS) seperti SQL dianggap penting untuk tabel-tabel yang mengandung informasi kritis, seperti detail pelanggan, restoran, dan agen. Pilihan ini dibuat karena kebutuhan akan konsistensi tinggi, yang memastikan refleksi yang cepat dan akurat terhadap setiap perubahan, seperti perubahan detail pembayaran atau harga menu.
Kepatuhan SQL terhadap properti ACID (Atomicity, Consistency, Isolation, Durability) membuatnya sangat cocok untuk menjaga integritas data dan memastikan keandalan dalam skenario-skenario semacam ini.
Sebaliknya, untuk data yang memerlukan persyaratan konsistensi yang lebih santai, seperti peringkat restoran dan agen, basis data NoSQL adalah pilihan yang bijaksana.
NoSQL, yang ditandai dengan properti BASE (Basically Available, Soft state, Eventually consistent), sejalan dengan sifat dataset ini. Ini memungkinkan fleksibilitas yang lebih besar, mengakomodasi sifat dinamis dan non-kritis dari informasi peringkat, di mana konsistensi yang langsung dan ketat bukanlah perhatian utama.
Pendekatan hibrida ini memanfaatkan kekuatan kedua basis data SQL dan NoSQL, menyesuaikan arsitektur database dengan kebutuhan khusus dan karakteristik data yang dikelola.
Komunikasi dengan Server
Menggunakan API RESTful untuk Sistem Manajemen Restoran membuktikan keunggulan karena kesederhanaan, antarmuka yang seragam, dan keadaan tanpa keadaan (statelessness). Desain REST yang langsung, dengan menggunakan metode-metode standar HTTP, memfasilitasi kemudahan penggunaan dan pengembangan, mempromosikan interoperabilitas di berbagai platform dan bahasa pemrograman.
Pendekatan yang berpusat pada sumber daya cocok dengan entitas-entitas dalam sistem, dan keadaan tanpa keadaan memungkinkan skalabilitas horizontal, yang penting untuk menangani lalu lintas tinggi yang diantisipasi dalam sistem manajemen restoran. Selain itu, API RESTful mendukung fleksibilitas dalam format data, penanganan kesalahan yang terstandarisasi melalui kode status HTTP, dan mekanisme caching, yang berkontribusi pada komunikasi yang efisien, identifikasi kesalahan, dan peningkatan kinerja secara keseluruhan.
Microservices Used
Alur kerja sistem
Berikut adalah proses langkah demi langkah:
- 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, memilih dari detail restoran dan menu yang disimpan di CDN.
- Setelah memilih, Layanan Penempatan Pesanan menangkap spesifikasi pesanan, termasuk item dan jumlah. Pengguna kemudian memilih antara pengiriman makanan atau makan di tempat, dengan sistem melacak status pesanan.
- Layanan Penempatan Pesanan mengirimkan pesanan ke Antrian Pesanan, yang selanjutnya diambil oleh Layanan Penempatan Restoran untuk diterima dan diproses oleh admin restoran.
- Pada kasus makan di tempat, ketika makanan siap, Layanan Penempatan Pesanan memberi tahu pelanggan melalui Antrian Notifikasi. Layanan Notifikasi mengelola permintaan ini, mengirimkan pemberitahuan kepada pelanggan.
Berikut adalah proses langkah demi langkah untuk pengiriman:
- Layanan Penempatan Pesanan memberi tahu Antrian Pengiriman, memicu Layanan Pengiriman untuk mencari agen pengiriman terdekat.
- Setelah seorang agen menerima pesanan, mereka terhubung dengan pengguna melalui Layanan Peta, memungkinkan pelanggan untuk melacak lokasi agen secara teratur.
- Transaksi pembayaran difasilitasi oleh Layanan Pembayaran, diarahkan ke portal pembayaran bank atau layanan UPI yang sesuai.
- Setelah pengiriman berhasil, status pesanan diperbarui menjadi "telah dikirim," dengan detail pesanan disimpan dalam database.
- Pelanggan juga dapat memberikan peringkat restoran, disimpan dalam database NoSQL.
Optimalisasi lebih lanjut untuk sistem
Untuk meningkatkan efisiensi Sistem Manajemen Restoran lebih lanjut, beberapa optimalisasi dapat dipertimbangkan:
- Strategi caching, seperti mengimplementasikan Content Delivery Network (CDN) untuk aset statis seperti gambar dan menu, dapat signifikan meningkatkan waktu respons dan mengurangi beban server.
- Menggunakan pemrosesan asinkron untuk tugas-tugas yang tidak sensitif waktu, seperti notifikasi pesanan, dapat meningkatkan respons sistem.
- Indeksasi database yang efisien, strategi sharding, dan replikasi harus diimplementasikan untuk memastikan pengambilan data cepat dan ketersediaan tinggi.
- Pengimbang beban dapat dioptimalkan secara dinamis untuk mendistribusikan lalu lintas secara efektif, dan sistem harus mencakup langkah-langkah keamanan yang menyeluruh, termasuk enkripsi untuk data sensitif dan titik akhir API yang aman.
- Pemantauan kinerja secara teratur dan analisis akan membantu mengidentifikasi dan mengatasi bottleneck potensial, memastikan optimalisasi berkelanjutan dari Manajemen Restoran.
Comments
Post a Comment