ETS Perancangan Perangkat Lunak A
1. Apakah perbedaan model analysis dengan model desain?
Model Analisis: Fokusnya adalah pada pemahaman yang mendalam tentang kebutuhan dan masalah yang akan diselesaikan oleh sistem atau aplikasi yang akan dikembangkan. Model analisis mengidentifikasi dan mendefinisikan persyaratan fungsional dan non-fungsional dari sistem, serta menggambarkan hubungan antara elemen-elemen yang terlibat. Dalam tahap ini, biasanya digunakan diagram aliran data (DFD), diagram use case, dan dokumen-dokumen lain yang menggambarkan kebutuhan dan spesifikasi sistem.
Model Desain: Setelah kebutuhan dan masalah telah diidentifikasi dalam tahap analisis, model desain menciptakan rancangan teknis untuk sistem atau aplikasi yang akan dibangun. Ini termasuk pemilihan teknologi, struktur database, desain antarmuka pengguna, dan algoritma yang digunakan. Model desain bertujuan untuk mengubah spesifikasi yang telah diidentifikasi menjadi bentuk implementasi yang konkret dan teknis.
2. Jelaskan output proses Desain Aplikasi?
- Desain Arsitektur: Rencana secara keseluruhan tentang bagaimana aplikasi akan dibangun. Ini termasuk pemilihan platform, struktur aplikasi, dan integrasi komponen.
- Desain Database: Skema database yang mencakup tabel, relasi, dan kueri-kueri yang diperlukan untuk menyimpan dan mengelola data.
- Desain Antarmuka Pengguna (UI): Tata letak, elemen-elemen UI, warna, font, dan navigasi aplikasi. Ini mencakup desain halaman, formulir, tombol, dan elemen visual lainnya.
- Desain Algoritma dan Logika Bisnis: Algoritma-algoritma yang akan digunakan dalam aplikasi untuk melakukan berbagai tugas seperti validasi data, pengolahan informasi, dan pengambilan keputusan.
- Dokumentasi Desain: Dokumen yang menjelaskan semua aspek teknis dari aplikasi, termasuk diagram alur, diagram kelas (jika menggunakan pendekatan berorientasi objek), dan spesifikasi teknis lainnya.
- Prototype atau Mockup: Model awal dari aplikasi yang menampilkan bagaimana UI akan terlihat dan berperilaku. Ini membantu dalam pengujian dan validasi desain sebelum implementasi sebenarnya.
3. Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)
Proses Pengguna Parkir:
- Mulai: Pengguna parkir memulai proses dengan memasuki area parkir.
- Parkir: Pengguna memarkir kendaraannya di tempat yang tersedia.
- Pembayaran: Pengguna kemudian melakukan pembayaran parkir melalui mesin pembayaran otomatis atau petugas parkir.
- Selesai: Setelah pembayaran selesai, pengguna dapat meninggalkan area parkir.
Proses Petugas:
- Login: Petugas masuk ke sistem parkir dengan melakukan login menggunakan kredensial yang diberikan.
- Validasi: Sistem memeriksa validitas login. Jika login tidak valid, proses berhenti. Jika login valid, proses berlanjut.
- Kelola Data Pengguna: Petugas dapat mengelola data pengguna parkir, termasuk menambahkan, menghapus, atau memodifikasi informasi pengguna.
- Cek Transaksi Pembayaran: Petugas memeriksa transaksi pembayaran yang telah dilakukan oleh pengguna parkir untuk memastikan semuanya tercatat dengan benar.
- Laporan: Petugas menghasilkan laporan berdasarkan data transaksi pembayaran dan data pengguna parkir.
- Selesai: Proses untuk petugas selesai setelah laporan dibuat.
Proses Admin:
- Login: Admin masuk ke sistem parkir dengan melakukan login menggunakan kredensial yang diberikan.
- Validasi: Sistem memeriksa validitas login. Jika login tidak valid, proses berhenti. Jika login valid, proses berlanjut.
- Kelola Data Petugas: Admin dapat mengelola data petugas, termasuk menambahkan, menghapus, atau memodifikasi informasi petugas.
- Retribusi Parkir: Admin mengelola retribusi atau tarif parkir yang dikenakan kepada pengguna parkir.
- Kelola Data Lahan Parkir: Admin mengelola data tempat parkir, termasuk menambahkan, menghapus, atau memodifikasi informasi tentang tempat parkir.
- Monitoring Jumlah Kendaraan: Admin memonitor jumlah kendaraan yang terparkir di area parkir untuk memastikan ketersediaan dan penggunaan lahan parkir optimal.
4. High Level Design dan Low Level Design
Arsitektur Sistem
Aplikasi ini dirancang dengan arsitektur berbasis web untuk memfasilitasi akses dari berbagai perangkat. Komponen utamanya mencakup frontend untuk antarmuka pengguna dan backend untuk pemrosesan data. Bagian backend akan menggunakan teknologi server-side seperti Node.js atau Python Django untuk menjalankan logika bisnis dan berinteraksi dengan database yang akan digunakan untuk menyimpan informasi penting seperti tempat parkir, data pengguna, informasi kendaraan, dan riwayat transaksi parkir.
Komponen Utama
Komponen utama dari aplikasi sistem parkir ini mencakup antarmuka pengguna yang memungkinkan pengguna untuk melihat informasi tempat parkir yang tersedia, memproses pembayaran, dan melakukan manajemen pengguna. Selain itu, terdapat komponen manajemen tempat parkir yang bertanggung jawab atas penambahan, penghapusan, dan modifikasi informasi tempat parkir beserta penetapan tarifnya. Manajemen kendaraan merupakan bagian yang mengurus pendaftaran kendaraan, penerbitan tiket parkir, proses pembayaran, dan menangani pelanggaran parkir. Terakhir, terdapat juga komponen manajemen pengguna yang mengelola informasi pengguna, menetapkan peran dan akses, serta melacak aktivitas pengguna untuk menjaga keamanan dan integritas data.
Keamanan
Keamanan dalam aplikasi ini diprioritaskan dengan melakukan otentikasi pengguna sebelum mengakses fitur-fitur khusus, menggunakan protokol HTTPS untuk melindungi data saat berkomunikasi dengan server, dan melakukan enkripsi pada data sensitif seperti informasi pengguna dan transaksi parkir.
Skalabilitas
Aplikasi ini akan memungkinkan pengguna untuk mengaksesnya secara online 24/7 dan akan menggunakan teknologi cloud untuk meningkatkan skalabilitas dan ketersediaan. Sistem akan didesain agar mampu menangani beban puncak dengan menerapkan pendekatan skalabilitas horizontal.
Estimasi Kapasitas Perancangan Sistem
1. Total Traffic:
- Traffic per month: 50,000 vehicles
- Traffic per second = (50.000)/30x24x60x60 = 0.019
2. Reservations and Payments:
- Assumption: 30% of users reserve parking spaces in advance
- 10% of users pay for parking without a reservation
3. Transactions Per Second (TPS):
- TPS for reservations = 30% of 0.019 = 0.0057 transactions per second
- TPS for direct payments = 10% of 0.019 = 0.0019 transactions per second
- Total TPS = 0.0057 + 0.0019 = 0.0076 transactions per second
4. Storage Requirements:
- Storage per reservation: 200 KB
- Storage per payment: 100 KB (assuming payments without reservation require less data)
- Total storage per second = (0.0057 transactions per second * 200 KB) + (0.0019 transactions per second * 100 KB)
- Total storage per second = 1.14 KB + 0.19 KB = 1.33 KB per second
5. Storage Required Per Year:
- Total storage per year = 1.33 KB per second * 60 seconds * 60 minutes * 24 hours * 365 days
- Total storage per year = 1.33 KB * 31,536,000 seconds
- Total storage per year = 41,943,680 KB
- Total storage per year ≈ 40 GB
Desain Database
Tabel Tempat Parkir: ID Tempat Parkir, Jenis Kendaraan, Status Ketersediaan, Tarif Parkir.
Tabel Tarif Parkir: ID Tarif, Jenis Kendaraan, Tarif Per Jam, Maksimum Durasi, Tarif Pelanggaran.
Tabel Transaksi Parkir: ID Transaksi, ID Tempat Parkir, ID Pengguna, Tanggal dan Waktu Masuk, Tanggal dan Waktu Keluar, Total Pembayaran.
Implementasi Backend:
- API: Mengembangkan API untuk menambah, menghapus, dan memodifikasi informasi tempat parkir.
- Algoritma Real-Time: Mengimplementasikan algoritma yang dapat melacak ketersediaan tempat parkir secara real-time, memberikan data terkini mengenai status setiap tempat parkir.
- Perhitungan Pembayaran: Mengembangkan fungsi untuk menghitung total pembayaran berdasarkan durasi parkir dan tarif yang berlaku, termasuk fitur untuk penyesuaian tarif dinamis sesuai dengan waktu dan jenis tempat parkir.
Desain Frontend:
- Halaman Informasi Tempat Parkir: Menyediakan halaman yang menampilkan informasi terkini tentang ketersediaan tempat parkir, lengkap dengan filter untuk jenis kendaraan dan lokasi.
- Formulir Pendaftaran Kendaraan: Membuat formulir interaktif untuk memasukkan informasi kendaraan dan memilih tempat parkir yang diinginkan.
- Halaman Pembayaran: Menyediakan halaman yang menampilkan rincian total pembayaran dan proses pembayaran, termasuk opsi pembayaran elektronik dan konfirmasi transaksi.
Implementasi Keamanan:
- Otentikasi Token Sesi: Mengimplementasikan mekanisme login menggunakan token sesi untuk otentikasi, memastikan setiap sesi pengguna aman dan valid.
- Validasi Input: Melakukan validasi input dari pengguna untuk mencegah serangan injeksi SQL atau XSS, memastikan data yang dimasukkan aman dan tidak merusak sistem.
- Kontrol Akses Berbasis Peran: Menentukan akses ke fitur-fitur tertentu berdasarkan peran pengguna yang terotentikasi, memberikan hak akses yang sesuai dengan tingkat otorisasi pengguna dan mencegah akses tidak sah.
Desain Antar Muka
5. Gambarkan artsitektur dari aplikasi yang akan dibangun
Alur Proses Sistem Parkir
- Masuk Kendaraan: Ketika kendaraan memasuki area parkir, sistem mencatat detail parkir melalui Parking Service.
- Penerbitan Tiket: Ticketing Service mengeluarkan tiket dan menyimpan detail kendaraan di Vehicle Parking Details.
- Proses Keluar Kendaraan: Saat kendaraan hendak keluar, Exit Service menangani proses keluarnya kendaraan.
- Pengelolaan Pembayaran: Payment Service mengelola pembayaran yang melibatkan layanan pembayaran pihak ketiga.
- Konfirmasi Pembayaran: Setelah pembayaran berhasil, konfirmasi diterima melalui Web Hooks Confirmation.
- Verifikasi dan Audit: Auditing Services memverifikasi dan mengaudit data parkir serta pembayaran, kemudian menyimpan hasilnya di Auditing Warehouse.
Dokumentasi (Youtube)
Comments
Post a Comment