Perancangan Perangkat Lunak - ETS
Al-Ferro Yudisthira Putra
5025211176
Evaluasi Tengah Semester
Perancangan Perangkat Lunak
Soal
1. Apakah perbedaan model analysis dengan model desain?
Secara garis besar, perbedaan utama dari model analysis dan model desain adalah karena Model analysis memiliki fokus mendalam pada bidang pengidentifikasian dan pemahaman masalah serta kebutuhan sedangkan model desain lebih fokus kepada merancang solusi yang memenuhi persyaratan yang telah ditetapkan dalam analysis.
Berikut merupakan point-point perbedaan antara model analysis dan model desain:
Model Analisis:
Model analisis berkaitan dengan memahami masalah, kebutuhan, dan persyaratan dari produk atau sistem yang akan dikembangkan.
Tujuan utama dari model analisis adalah untuk mengidentifikasi masalah, mendefinisikan kebutuhan pengguna, memahami batasan-batasan, dan menentukan solusi yang memenuhi persyaratan.
Proses analisis ini melibatkan pengumpulan informasi, pemodelan konsep, identifikasi alternatif solusi, dan evaluasi risiko.
Output dari model analisis berupa spesifikasi kebutuhan, skenario pengguna, dan pemahaman yang mendalam tentang masalah yang akan dipecahkan.
Model Desain:
Model desain berkaitan dengan merancang solusi yang memenuhi persyaratan yang telah ditetapkan dalam tahap analisis.
Tujuan utama dari model desain adalah mengembangkan rancangan yang jelas dan terperinci dari produk atau sistem, yang mencakup struktur, fungsi, antarmuka, dan fitur-fitur teknis.
Proses desain ini melibatkan pembuatan diagram, prototipe, simulasi, dan spesifikasi teknis yang lebih rinci.
Output dari model desain berupa desain produk atau sistem yang siap untuk implementasi, termasuk blueprint, diagram desain, dan dokumen teknis yang mendetail.
2. Jelaskan output proses Desain Aplikasi?
Terdapat beberapa output dalam proses desain aplikasi, seperti:
Wireframes dan Mockups:
Wireframes adalah representasi visual sederhana dari antarmuka pengguna (UI) yang menunjukkan tata letak elemen-elemen utama dalam aplikasi tanpa detail visual. Mockups adalah versi lebih rinci dari wireframes yang mencakup elemen-elemen visual seperti warna, font, dan gambar, memberikan representasi yang lebih mendekati tampilan akhir aplikasi.
Prototipe Interaktif:
Prototipe interaktif adalah versi fungsional sederhana dari aplikasi yang memungkinkan pengguna untuk menjelajahi dan berinteraksi dengan antarmuka pengguna serta fitur-fitur utama. Prototipe ini membantu dalam memvalidasi desain dan mengumpulkan umpan balik dari pengguna sebelum pengembangan sebenarnya dimulai.
Diagram Arsitektur:
Diagram arsitektur menjelaskan struktur keseluruhan aplikasi, termasuk komponen-komponen utama, aliran data, dan interaksi antara komponen-komponen tersebut. Ini membantu pengembang memahami bagaimana aplikasi akan dibangun dan diimplementasikan.
Spesifikasi Fungsional dan Teknis:
Dokumen spesifikasi fungsional menggambarkan fitur-fitur dan fungsionalitas yang akan disertakan dalam aplikasi, sering kali dalam bentuk daftar kebutuhan.Spesifikasi teknis merinci teknologi, platform, bahasa pemrograman, dan alat-alat yang akan digunakan dalam pengembangan aplikasi.
Desain Basis Data:
Desain basis data mendefinisikan struktur database aplikasi, termasuk tabel, kolom, hubungan antar tabel, dan kunci primer dan asing. Ini penting untuk memastikan penyimpanan dan pengelolaan data yang efisien dan efektif.
Guidelines Desain:
Guidelines desain adalah panduan yang merinci prinsip-prinsip desain, pola-pola desain, dan standar UI/UX yang harus diikuti dalam pengembangan aplikasi.Hal ini membantu memastikan konsistensi dan keseragaman antarmuka pengguna di seluruh aplikasi.
3. Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)
4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)
High Level Design
Terdapat beberapa services utama dalam High level Design,
Admin Tempat Parkir Services memiliki kemampuan untuk mengakses seluruh data yang ada di aplikasi
Client services memiliki kemampuan untuk menemukan tempat parkir secara mudah
Selain itu, terdapat beberapa komponen penting dalam aplikasi ini, seperti
Load Balancer, Load balancer berguna untuk membagi traffic yang masuk kedalam aplikasi agar seluruh pengguna dapat menggunakan aplikasi tanpa terganggu dengan latency yang ada.
Database, Database berguna untuk menyimpan data yang dimasukkan kedalam aplikasi dari Tempat Parkir ini
API Services, API Services berguna untuk menghubungkan frontend dari aplikasi dan juga Back end sehingga seluruh fitur dapat bekerja dengan baik
Payment Services, Payment services berguna untuk mengurus seluruh data yang berkaitan dengan pembayaran.
Manajemen Tempat Parkir: Layanan ini memungkinkan admin untuk menambahkan, menghapus, dan memodifikasi informasi mengenai tempat parkir. Ini mencakup aspek seperti ukuran area parkir, jenis tempat parkir (misalnya, mobil, motor, VIP), dan menentukan tarif parkir untuk setiap jenis tempat parkir.
Manajemen Kendaraan: Layanan ini bertanggung jawab untuk mengelola kendaraan yang masuk dan keluar dari area parkir. Ini termasuk mendaftarkan kendaraan yang masuk, menerbitkan tiket parkir, memproses pembayaran parkir, dan menangani pelanggaran parkir.
Manajemen Pengguna: Layanan ini memungkinkan admin untuk mengelola informasi pengguna aplikasi parkir. Ini meliputi menambahkan, menghapus, dan memodifikasi informasi pengguna, serta menetapkan peran dan akses pengguna. Selain itu, layanan ini melacak aktivitas pengguna untuk keperluan audit dan keamanan.
Pelaporan: Layanan ini bertanggung jawab untuk menghasilkan berbagai laporan terkait dengan operasi parkir. Ini mencakup laporan pendapatan parkir yang menunjukkan pendapatan yang dihasilkan dari parkir, laporan penggunaan parkir yang mencatat penggunaan slot parkir, dan laporan pelanggaran parkir yang mencatat pelanggaran dan tindakan yang diambil.
Low Level Design
Dalam aplikasi ini, tentunya diperlukan sebuah database. Berikut merupakan beberapa tabel yang nanti akan ada di aplikasi Tempat Parkir ini:
Tabel Tempat Parkir:
Tabel ini menyimpan informasi tentang setiap tempat parkir yang tersedia, termasuk jenis tempat parkir (misalnya, mobil, motor, VIP), jumlah slot, dan tarif parkir.
Tabel Kendaraan:
Tabel ini menyimpan data tentang setiap kendaraan yang masuk dan keluar dari area parkir. Ini termasuk informasi seperti plat nomor, jenis kendaraan, waktu masuk, waktu keluar, dan status pembayaran.
Tabel Pengguna:
Tabel ini berisi informasi tentang pengguna aplikasi parkir, termasuk detail pribadi seperti nama, alamat, nomor telepon, dan informasi login. Ini juga dapat menyimpan informasi tentang peran dan hak akses pengguna.
Tabel Transaksi Parkir:
Tabel ini mencatat setiap transaksi parkir yang terjadi, termasuk informasi tentang kendaraan yang diparkir, waktu masuk dan keluar, tarif parkir yang dikenakan, dan status pembayaran.
Tabel Laporan:
Tabel ini digunakan untuk menyimpan data yang digunakan dalam pembuatan laporan, seperti pendapatan parkir, penggunaan slot parkir, dan pelanggaran parkir. Ini mencakup kolom-kolom seperti tanggal, jenis laporan, dan data yang relevan untuk laporan tersebut.
Tabel Log Aktivitas:
Tabel ini mencatat aktivitas pengguna dalam sistem, seperti login, perubahan data, dan operasi lainnya yang dilakukan. Ini membantu dalam pemantauan keamanan dan audit sistem.
Tabel Tarif Parkir:
Tabel ini berisi informasi tentang tarif parkir untuk setiap jenis tempat parkir. Ini mencakup tarif per jam atau tarif lainnya yang dikenakan kepada pengguna untuk parkir kendaraan mereka.
Selain itu, terdapat beberapa microservices yang digunakan seperti,
CDN (Content Delivery Network):
Digunakan untuk menyampaikan konten statis seperti halaman web, gambar, atau file CSS/JavaScript kepada pengguna dengan lebih cepat, meningkatkan kecepatan akses.
Cache:
Digunakan untuk menyimpan data yang sering diakses atau berubah secara teratur, seperti informasi tentang status tempat parkir atau tarif parkir, mengurangi latensi akses ke database utama.
Database:
Digunakan untuk menyimpan data terkait tempat parkir, kendaraan, pengguna, transaksi, dan laporan, membantu aplikasi dalam melacak dan mengelola operasi parkir secara efisien.
Load Balancer:
Load balancer digunakan untuk mendistribusikan lalu lintas aplikasi secara merata di antara beberapa instance layanan yang berjalan. Ini membantu dalam meningkatkan ketersediaan, skalabilitas, dan kinerja aplikasi parkir dengan memastikan bahwa beban kerja didistribusikan dengan baik di seluruh sistem.
Autoscaling:
Autoscaling memungkinkan aplikasi untuk menyesuaikan jumlah instance layanan secara otomatis sesuai dengan permintaan lalu lintas. Dalam konteks manajemen tempat parkir, autoscaling dapat membantu dalam menanggapi fluktuasi lalu lintas parkir, sehingga aplikasi dapat tetap responsif bahkan saat ada lonjakan pengguna.
5. Gambarkan Arsitektur dari Aplikasi Parkir yang akan dibangun (Studi Kasus)
6. Dokumentasikan dan Demokan dalam Video Youtube dari rancangan aplikasi yang telah dibangun
Comments
Post a Comment