Evaluasi Tengah Semester (ETS)
Nama : Fathin Muhashibi Putra
NRP : 5025211229
Kelas : PPL - A
ETS
Berikut merupakan dokumentasi Evaluasi Tengah Semester (ETS) mata kuliah Perancangan Perangkat Lunak :
1. Apakah perbedaan model analysis dengan model desain?
Jawab :
Berikut merupakan perbedaan model analysis dengan model desain :
A. Model Analisis
Model analisis adalah tahap awal dalam pengembangan perangkat lunak di mana fokus utamanya adalah untuk memahami masalah yang harus diselesaikan dan kebutuhan pengguna. Di sini, tim pengembang berusaha untuk:
a. Memahami Kebutuhan Pengguna: Identifikasi apa yang pengguna butuhkan dari perangkat lunak.
b. Mengidentifikasi Masalah: Analisis menyeluruh dilakukan untuk memahami masalah yang ingin dipecahkan oleh perangkat lunak.
c. Menentukan Kebutuhan Fungsional dan Non-Fungsional: Spesifikasi kebutuhan fungsional (apa yang sistem lakukan) dan non-fungsional (bagaimana sistem melakukannya) dikumpulkan.
d. Memodelkan Sistem: Model konseptual dari sistem dibuat, sering menggunakan alat seperti Use Case Diagrams, Sequence Diagrams, dll.
e. Validasi Kebutuhan: Kebutuhan dikonfirmasi dengan pemangku kepentingan untuk memastikan pemahaman yang benar.
B. Model Desain
Model desain adalah langkah selanjutnya setelah analisis selesai. Di sini, berbagai aspek desain perangkat lunak diperhatikan, termasuk:
a. Arsitektur Sistem: Desain struktur keseluruhan sistem, termasuk bagaimana komponen perangkat lunak akan berinteraksi satu sama lain.
b. Desain Rinci: Merinci desain arsitektur menjadi komponen perangkat lunak yang lebih kecil, sering menggunakan diagram kelas, diagram urutan, dll.
c. Desain Antarmuka Pengguna: Membuat tata letak antarmuka pengguna, desain grafis, dll.
d. Desain Database: Merancang struktur database, tabel, dan hubungan antara entitas.
e. Desain Algoritma dan Logika Bisnis: Merancang algoritma dan logika yang akan digunakan dalam aplikasi.
C. Perbedaan Utama
a. Fokus: Model analisis berkaitan dengan memahami kebutuhan dan masalah, sementara model desain berkaitan dengan merancang solusi untuk masalah tersebut.
b. Abstraksi: Model analisis cenderung lebih abstrak dan konseptual, sedangkan model desain lebih detail dan konkret.
c. Tujuan: Tujuan analisis adalah mendapatkan pemahaman yang baik tentang masalah, sementara tujuan desain adalah merancang solusi yang dapat diimplementasikan.
d. Output (Keluaran): Hasil analisis adalah spesifikasi kebutuhan, model konseptual, dll., sementara hasil desain adalah desain sistem yang rinci, termasuk arsitektur, desain antarmuka pengguna, dll.
2. Jelaskan output proses Desain Aplikasi?
Jawab :
Output dari proses desain aplikasi adalah serangkaian dokumen yang merinci bagaimana aplikasi akan dibangun dan beroperasi. Hal ini mencakup berbagai elemen desain yang diperlukan untuk mengembangkan perangkat lunak yang sesuai dengan kebutuhan pengguna dan spesifikasi yang telah ditetapkan. Berikut merupakan beberapa output yang umum dari proses desain aplikasi:
1. Spesifikasi Desain:
- Dokumen yang merinci desain keseluruhan aplikasi, termasuk deskripsi umum, tujuan, dan lingkup sistem.
- Detail arsitektur sistem, termasuk komponen-komponen utama, hubungan antara komponen, dan aliran data.
- Diagram aliran data (DFD) atau model lainnya yang menggambarkan aliran informasi dalam sistem.
- Deskripsi kebutuhan fungsional dan non-fungsional yang akan dipenuhi oleh desain.
2. Desain Arsitektur:
- Diagram arsitektur sistem yang menunjukkan komponen utama, lapisan aplikasi, dan interaksi antar mereka.
- Rancangan sistem distribusi jika aplikasi akan diimplementasikan dalam lingkungan yang terdistribusi.
- Detail tentang infrastruktur teknologi yang akan digunakan, seperti platform, database, dan alat pengembangan.
3. Desain Antarmuka Pengguna:
- Wireframe atau prototipe antarmuka pengguna yang menunjukkan tata letak elemen-elemen antarmuka dan aliran navigasi.
- Desain grafis, termasuk warna, jenis huruf, ikon, dan elemen desain visual lainnya.
- Spesifikasi interaksi pengguna, seperti animasi, efek transisi, dan perilaku responsif.
4. Desain Database:
- Skema database yang merinci struktur tabel, atribut, dan hubungan antara entitas.
- Desain indeks, kunci, dan constraint database yang diperlukan untuk performa dan integritas data.
- Model entitas-relasi (ER) atau diagram lain yang menggambarkan struktur dan hubungan dalam database.
5. Desain Komponen dan Logika Bisnis:
- Rancangan komponen perangkat lunak, termasuk kelas, modul, atau layanan yang akan dibuat.
- Detail logika bisnis atau algoritma yang akan digunakan dalam aplikasi, seperti algoritma pencarian, pengolahan data, dll.
- Diagram aktivitas, diagram urutan, atau diagram lain yang menjelaskan alur logika aplikasi.
6. Dokumentasi Teknis:
- Dokumentasi teknis yang merinci cara menggunakan, mengelola, dan memelihara aplikasi.
- Petunjuk instalasi dan konfigurasi yang diperlukan untuk mengimplementasikan aplikasi.
- Dokumentasi API (Application Programming Interface) jika aplikasi menawarkan antarmuka pemrograman untuk integrasi dengan sistem lain.
3. Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)
Jawab :
Berikut merupakan visualisasi dari aplikasi parkir :
4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)
Jawab :
Aplikasi sistem parkir adalah perangkat lunak yang dirancang untuk mengelola dan mengoptimalkan penggunaan tempat parkir di berbagai lokasi seperti mal, gedung perkantoran, rumah sakit, bandara, tempat wisata, dan universitas. Fitur utamanya mencakup manajemen tempat parkir, kendaraan, dan pengguna, serta pelaporan pendapatan, penggunaan, dan pelanggaran parkir. Berikut merupakan high level design dan low level design dari aplikasi sistem parkir :
High Level Design (HLD)
A. Requirements (Kebutuhan)
- Menambahkan, menghapus, dan memodifikasi informasi tempat parkir
- Menentukan jenis tempat parkir (misalnya, mobil, motor, VIP)
- Menentukan tarif parkir untuk setiap jenis tempat parkir
- Melacak ketersediaan tempat parkir secara real-time
- Mendaftarkan kendaraan yang masuk dan keluar area parkir
- Menerbitkan tiket parkir
- Memproses pembayaran parkir
- Menangani pelanggaran parkir
- Menambahkan, menghapus, dan memodifikasi informasi pengguna
- Menetapkan peran dan akses pengguna
- Melacak aktivitas pengguna
- Menghasilkan laporan pendapatan parkir
- Menghasilkan laporan penggunaan parkir
- Menghasilkan laporan pelanggaran parkir
- Melindungi data pengguna dari akses yang tidak sah
- Mencegah penipuan dan pencurian
- Sistem harus tersedia 24/7
- Sistem harus dapat diakses dari berbagai perangkat
- Sistem harus dapat menampung jumlah pengguna dan kendaraan yang besar
- Sistem harus dapat diubah untuk memenuhi kebutuhan yang berubah
- Sistem harus responsif dan efisien
- Sistem harus dapat menangani beban puncak
- Sistem harus dapat diintegrasikan dengan sistem kontrol akses
- Sistem harus dapat diintegrasikan dengan sistem pembayaran elektronik
- Sistem harus mendukung beberapa bahasa
- Sistem harus dapat diakses oleh penyandang disabilitas
B. Capacity Assumptions
- Satu tempat parkir
- Pengguna aktif harian = 1000
- Pengguna aktif per detik = 0,01 pengguna/detik (sekitar)
- Rata-rata Kendaraan Masuk per Menit = 100
- Rata-rata Kendaraan Keluar per Menit = 100
- Rata-rata Transaksi Pembayaran per Menit = 50
- Setiap entri pengguna dalam basis data adalah 1 KB (dengan alamat, informasi profil, dll.)
- Setiap tempat parkir memerlukan ruang penyimpanan yang minimal, misalnya 100 MB untuk detail tempat parkir, pengaturan tarif, dll.
- Setiap transaksi pembayaran memerlukan sekitar 1 KB ruang penyimpanan.
- 1000 pengguna x 1 KB per pengguna = 1 MB
- 1 tempat parkir x 100 MB = 100 MB
- 100 transaksi pembayaran per menit = 144.000 transaksi per hari (sekitar)
- 144.000 transaksi per hari x 1 KB per transaksi = 144 MB per hari
- 144 MB per hari x 365 hari = 52,56 GB per tahun
C. Necessary Components
Low Level Design (LLD)
A. Teknologi
- Sistem Operasi: Linux (Ubuntu) atau Windows 10/11
- IDE (Integrated Development Environment): Visual Studio Code, IntelliJ IDEA, atau Eclipse
- Java dengan framework Spring Boot atau Jakarta EE (untuk aplikasi berbasis Java)
- Python dengan framework Django atau Flask (untuk aplikasi berbasis Python)
- Node.js dengan framework Express.js (untuk aplikasi berbasis JavaScript)
- PHP dengan framework Laravel atau CodeIgniter (opsional, tergantung preferensi)
- HTML, CSS, JavaScript (ES6+)
- Framework JavaScript: React.js, Angular, atau Vue.js
- MySQL atau PostgreSQL untuk basis data relasional
- MongoDB untuk basis data NoSQL (jika diperlukan fleksibilitas skema)
- Apache HTTP Server atau Nginx untuk server web
- Apache Tomcat atau Jetty (opsional, untuk aplikasi Java)
- Express.js (opsional, untuk aplikasi Node.js)
- Spring Security (untuk keamanan)
- Hibernate atau Spring Data JPA (untuk akses basis data)
- JWT (JSON Web Tokens) untuk otentikasi API
- Redux atau Context API untuk manajemen keadaan
- Axios atau Fetch API untuk melakukan permintaan HTTP
- Bootstrap, Material-UI, atau Tailwind CSS untuk desain responsif
- Git untuk kontrol versi
- Postman atau Insomnia untuk menguji API
- Docker untuk kontainerisasi aplikasi
- JUnit atau TestNG untuk pengujian otomatis (Java)
- PyTest atau unittest untuk pengujian otomatis (Python)
B. Database
B. Design Interface
5. Gambarkan Arsitektur dari Aplikasi Parkir yang akan dibangun (Studi Kasus)
Jawab :
Berikut merupakan arsitektur dari aplikasi parkir yang akan dibangun :
a. Web Server:
- Sistem Operasi: Linux (Ubuntu) atau Windows 10/11
- Web Server: Apache HTTP
- Server Basis Data: MySQL
b. Backend:
- Bahasa Pemrograman: Java dengan framework Spring Boot
- Keamanan: Spring Security
- Akses Basis Data: Spring Data JPA
- Otentikasi API: JSON Web Tokens (JWT)
c. Frontend:
- Bahasa Pemrograman: HTML, CSS, JavaScript (ES6+)
- Framework JavaScript: React.js
- Manajemen Keadaan: Redux
- Permintaan HTTP: Axios
d. Alat Pengembangan Tambahan:
- Kontrol Versi: Git
- Pengujian API: Postman atau Insomnia
- Kontainerisasi: Docker
- Pengujian Otomatis (opsional): JUnit untuk pengujian backend, React Testing Library untuk pengujian frontend
6. Dokumentasikan dan Demokan dalam Video Youtube dari rancangan aplikasi yang telah dibangun
Referensi :
https://sistemparkir.com/software-parkir/
https://kuliahppl.blogspot.com/2024/03/high-level-design.html
https://kuliahppl.blogspot.com/2024/04/low-level-design.html
https://kuliahppl.blogspot.com/2024/03/software-architecture.html
http://jurnalsyntaxadmiration.com/index.php/jurnal/article/download/238/385
Comments
Post a Comment