Evaluasi Tengah Semester Perancangan Perangkat Lunak
Nama : Cindi Dwi Pramudita
NRP : 5025201042
Kelas : Perancangan Perangkat Lunak A
Soal
1. Apakah perbedaan model analysis dengan model desain?
2. Jelaskan output proses Desain Aplikasi?
3. Visualisasikan Deskripsi dari apclikasi parkir berikut (Studi Kasus)
4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)
5. Gambarkan Arsitektur dari Aplikasi Parkir yang akan dibangun (Studi Kasus)
6. Dokumentasikan dan Demokan dalam Video Youtube dari rancangan aplikasi yang telah dibangun
Jawaban :
1. Perbedaan Model Analysis dengan Model Desain:
- Model Analysis adalah langkah awal dalam proses perancangan sistem yang berfokus pada analisis kebutuhan dan identifikasi masalah. Tujuan dari model analysis adalah untuk mengidentifikasi kebutuhan sistem dan mengembangkan konsep sistem yang sesuai dengan kebutuhan tersebut.
- Model Desain adalah langkah berikutnya dalam proses perancangan sistem yang berfokus pada pengembangan rancangan sistem yang sesuai dengan kebutuhan yang telah diidentifikasi. Tujuan dari model desain adalah untuk mengembangkan rancangan sistem yang dapat memenuhi kebutuhan dan memperbaiki masalah yang telah diidentifikasi.
- Rancangan Antarmuka Pengguna (User Interface Design):Rancangan antarmuka pengguna adalah bagian dari proses desain aplikasi yang berfokus pada bagaimana pengguna akan berinteraksi dengan aplikasi. Rancangan antarmuka pengguna meliputi:
- Rancangan Algoritma (Algorithm Design):Rancangan algoritma adalah bagian dari proses desain aplikasi yang berfokus pada bagaimana aplikasi akan mengelola data dan menghasilkan output. Rancangan algoritma meliputi:
- Rancangan Struktur Data (Data Structure Design):Rancangan struktur data adalah bagian dari proses desain aplikasi yang berfokus pada bagaimana aplikasi akan menyimpan dan mengelola data. Rancangan struktur data meliputi:
- Rancangan Sistem (System Design):Rancangan sistem adalah bagian dari proses desain aplikasi yang berfokus pada bagaimana aplikasi akan berinteraksi dengan sistem lain dan bagaimana aplikasi akan dijalankan. Rancangan sistem meliputi:
- Rancangan Dokumentasi (Documentation Design):Rancangan dokumentasi adalah bagian dari proses desain aplikasi yang berfokus pada bagaimana aplikasi akan di dokumentasikan. Rancangan dokumentasi meliputi:
- Dashboard Utama: Menampilkan ikhtisar ketersediaan tempat parkir, laporan pendapatan, penggunaan, dan pelanggaran parkir.
- Manajemen Tempat Parkir: Memungkinkan admin untuk menambahkan, menghapus, dan memodifikasi informasi tempat parkir. Admin juga dapat menentukan jenis tempat parkir dan tarif parkir untuk setiap jenis.
- Manajemen Kendaraan: Fitur untuk mendaftarkan kendaraan yang masuk dan keluar dari area parkir, menerbitkan tiket parkir, memproses pembayaran, dan menangani pelanggaran.
- Manajemen Pengguna: Admin dapat mengelola informasi pengguna, menetapkan peran dan akses, serta melacak aktivitas pengguna.
- Pelaporan: Menghasilkan laporan pendapatan, penggunaan, dan pelanggaran parkir untuk analisis.
- Keamanan: Fitur keamanan untuk melindungi data pengguna dari akses tidak sah dan mencegah penipuan serta pencurian.
- Ketersediaan dan Skalabilitas: Sistem yang dapat diakses 24/7 dari berbagai perangkat dan mampu menampung jumlah pengguna dan kendaraan yang besar.
- Kinerja: Sistem yang responsif dan efisien, dapat menangani beban puncak dengan baik.
- Integrasi dengan Sistem Lain: Dapat terhubung dengan sistem kontrol akses dan pembayaran elektronik.
- Dukungan Multi-bahasa dan Aksesibilitas: Mendukung beberapa bahasa dan dapat diakses oleh penyandang disabilitas.
4. HLD
a. Arsitektur
Aplikasi ini akan memiliki arsitektur tiga lapis:
- Lapisan Presentasi: Lapisan ini bertanggung jawab untuk menampilkan antarmuka pengguna kepada pengguna. Ini akan diimplementasikan menggunakan HTML, CSS, dan JavaScript untuk aplikasi web dan Java atau Kotlin untuk aplikasi seluler.
- Lapisan Bisnis: Lapisan ini bertanggung jawab untuk logika aplikasi, seperti memvalidasi input pengguna, memproses pembayaran, dan mengelola data parkir. Ini akan diimplementasikan menggunakan Java atau Python.
- Lapisan Data: Lapisan ini bertanggung jawab untuk menyimpan dan mengambil data dari database. Ini akan diimplementasikan menggunakan database relasional, seperti MySQL atau PostgreSQL.
b. Komponen Utama
Aplikasi ini akan terdiri dari komponen utama berikut:
- Modul Manajemen Tempat Parkir: Modul ini bertanggung jawab untuk mengelola informasi tempat parkir, seperti lokasi, jenis, dan ketersediaan.
- Modul Manajemen Kendaraan: Modul ini bertanggung jawab untuk mengelola informasi kendaraan, seperti nomor plat, jenis, dan waktu masuk.
- Modul Manajemen Pengguna: Modul ini bertanggung jawab untuk mengelola informasi pengguna, seperti nama, alamat email, dan metode pembayaran.
- Modul Pembayaran: Modul ini bertanggung jawab untuk memproses pembayaran parkir.
- Modul Pelaporan: Modul ini bertanggung jawab untuk menghasilkan laporan tentang pendapatan parkir, penggunaan parkir, dan pelanggaran parkir.
c. Interaksi
Pengguna akan berinteraksi dengan aplikasi melalui aplikasi seluler atau sistem web. Aplikasi akan berkomunikasi dengan server pusat yang menjalankan logika aplikasi dan mengakses database.
d. Keamanan
Aplikasi ini akan menerapkan berbagai langkah keamanan untuk melindungi data pengguna dan mencegah penipuan. Langkah-langkah keamanan ini mungkin termasuk:
- Otentikasi pengguna
- Enkripsi data
- Otorisasi akses
e. Skalabilitas
Aplikasi ini dirancang untuk skalabel untuk mengakomodasi jumlah pengguna dan kendaraan yang besar. Ini dapat dicapai dengan menggunakan arsitektur microservices dan cloud computing.
LLD
a. Modul Manajemen Tempat Parkir
- Kelas:
TempatParkir
- Atribut:
id
: Pengenal unik tempat parkirlokasi
: Lokasi tempat parkirjenis
: Jenis tempat parkir (misalnya, mobil, motor, VIP)tarif
: Tarif parkir per jamketersediaan
: Status ketersediaan tempat parkir (tersedia, ditempati, dipesan)
- Metode:
getLokasi()
: Mengembalikan lokasi tempat parkirgetJenis()
: Mengembalikan jenis tempat parkirgetTarif()
: Mengembalikan tarif parkir per jamgetKetersediaan()
: Mengembalikan status ketersediaan tempat parkirsetKetersediaan(boolean tersedia)
: Mengubah status ketersediaan tempat parkir
- Atribut:
- Database:
- Tabel
tempat_parkir
- Kolom:
id
: INT (primary key)lokasi
: VARCHAR(255)jenis
: VARCHAR(255)tarif
: DECIMAL(10,2)ketersediaan
: TINYINT(1)
- Kolom:
- Tabel
b. Modul Manajemen Kendaraan
- Kelas:
Kendaraan
- Atribut:
id
: Pengenal unik kendaraannomorPlat
: Nomor plat kendaraanjenis
: Jenis kendaraan (misalnya, mobil, motor)waktuMasuk
: Waktu kendaraan masuk area parkirwaktuKeluar
: Waktu kendaraan keluar area parkir (jika sudah keluar)biayaParkir
: Biaya parkir kendaraan (dihitung berdasarkan waktu masuk dan keluar)
- Metode:
getNomorPlat()
: Mengembalikan nomor plat kendaraangetJenis()
: Mengembalikan jenis kendaraangetWaktuMasuk()
: Mengembalikan waktu kendaraan masuk area parkirgetWaktuKeluar()
: Mengembalikan waktu kendaraan keluar area parkir (jika sudah keluar)setWaktuKeluar(DateTime waktuKeluar)
: Mengatur waktu kendaraan keluar area parkirhitungBiayaParkir()
: Menghitung biaya parkir kendaraan berdasarkan waktu masuk dan keluar
- Atribut:
- Database:
- Tabel
kendaraan
- Kolom:
id
: INT (primary key)nomor_plat
: VARCHAR(255)jenis
: VARCHAR(255)waktu_masuk
: DATETIMEwaktu_keluar
: DATETIMEbiaya_parkir
: DECIMAL(10,2)
- Kolom:
- Tabel
c. Modul Manajemen Pengguna
- Kelas:
Pengguna
- Atribut:
id
: Pengenal unik penggunanama
: Nama penggunaalamatEmail
: Alamat email penggunakataSandi
: Kata sandi penggunametodePembayaran
: Metode pembayaran pengguna (misalnya, kartu kredit, dompet digital)
- Metode:
getNama()
: Mengembalikan nama penggunagetAlamatEmail()
: Mengembalikan alamat email penggunagetKataSandi()
: Mengembalikan kata sandi penggunagetMetodePembayaran()
: Mengembalikan metode pembayaran penggunasetMetodePembayaran(String metodePembayaran)
: Mengatur metode pembayaran pengguna
- Atribut:
- Database:
- Tabel
pengguna
- Kolom:
id
: INT (primary key)nama
: VARCHAR(255)alamat_email
: VARCHAR(255)kata_sandi
: VARCHAR(255)metode_pembayaran
: VARCHAR(255)
- Kolom:
- Tabel
d. Modul Pembayaran
- Kelas:
Pembayaran
- Atribut:
id
: Pengenal unik pembayaranidPengguna
: Pengenal pengguna yang melakukan pembayaranidKendaraan
: Pengenal kendaraan yang dibayarmetodePembayaran
: Metode pembayaran yang digunakanjumlah
: Jumlah pembayaranwaktuPembayaran
: Waktu pembayaran dilakukan
- Metode:
getIdPengguna()
: Mengembalikan pengenal pengguna yang melakukan pembayaran
- Atribut:
Comments
Post a Comment