ETS - Perancangan Perangkat Lunak (A)
Nama : Yusna Millaturrosyidah
NRP : 5025211254
Kelas : Perancangan Perangkat Lunak (A)
Evaluasi Tengah Semester
Soal
1. Apakah perbedaan model analysis dengan model desain?
2. Jelaskan output proses Desain Aplikasi?
3. Visualisasikan Deskripsi dari aplikasi 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
STUDI KASUS
Aplikasi Sistem Parkir
Aplikasi sistem parkir adalah perangkat lunak yang dirancang untuk mengelola tempat parkir dan pergerakan kendaraan di area tertentu. Sistem ini dapat digunakan di berbagai tempat, seperti:
Mal
Gedung perkantoran
Rumah sakit
Bandara
Tempat wisata
Universitas
Aplikasi sistem parkir menawarkan berbagai fitur dan manfaat, antara lain:
Memudahkan pengendara untuk menemukan tempat parkir yang tersedia
Mempercepat proses pembayaran parkir
Meningkatkan keamanan kendaraan
Menganalisis data penggunaan parkir
Meningkatkan pendapatan dari parkir
Spesifikasi Kebutuhan Perangkat Lunak Sistem Parkir
Kebutuhan Fungsional
Manajemen tempat parkir:
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
Manajemen kendaraan:
Mendaftarkan kendaraan yang masuk dan keluar area parkir
Menerbitkan tiket parkir
Memproses pembayaran parkir
Menangani pelanggaran parkir
Manajemen pengguna:
Menambahkan, menghapus, dan memodifikasi informasi pengguna
Menetapkan peran dan akses pengguna
Melacak aktivitas pengguna
Pelaporan:
Menghasilkan laporan pendapatan parkir
Menghasilkan laporan penggunaan parkir
Menghasilkan laporan pelanggaran parkir
Kebutuhan Non-fungsional
Keamanan:
Melindungi data pengguna dari akses yang tidak sah
Mencegah penipuan dan pencurian
Ketersediaan:
Sistem harus tersedia 24/7
Sistem harus dapat diakses dari berbagai perangkat
Skalabilitas:
Sistem harus dapat menampung jumlah pengguna dan kendaraan yang besar
Sistem harus dapat diubah untuk memenuhi kebutuhan yang berubah
Kinerja:
Sistem harus responsif dan efisien
Sistem harus dapat menangani beban puncak
Persyaratan Tambahan
Integrasi dengan sistem lain:
Sistem harus dapat diintegrasikan dengan sistem kontrol akses
Sistem harus dapat diintegrasikan dengan sistem pembayaran elektronik
Dukungan multi-bahasa:
Sistem harus mendukung beberapa bahasa
Aksesibilitas:
Sistem harus dapat diakses oleh penyandang disabilitas
JAWABAN
Model Analisis : proses memahami dan mengidentifikasi kebutuhan sistem serta masalah yang harus diselesaikan. Bertujuan untuk memahami dan mengidentifikasi kebutuhan sistem dan masalah yang harus diselesaikan. Fokusnya adalah pada identifikasi dan analisis masalah atau kebutuhan. Model analisis melibatkan pemecahan sistem menjadi komponen-komponen individualnya dan memahami interaksi antara komponen-komponen tersebut untuk mencapai kebutuhan sistem. Hasil dari analisis ini biasanya berupa dokumentasi kebutuhan, diagram alir proses, dan diagram use case.
Model Desain : proses merancang arsitektur, komponen, modul, antarmuka, dan data sistem untuk memenuhi persyaratan yang diidentifikasi dalam model analisis. Bertujuan untuk merancang solusi yang memenuhi persyaratan yang diidentifikasi dalam model analisis. Fokusnya adalah pada merancang struktur atau blueprint dari produk atau sistem yang akan dikembangkan. Model Desain melibatkan perancangan arsitektur sistem, komponen, modul, antarmuka, dan data. Hasil dari desain ini biasanya berupa desain teknis yang mendetail seperti diagram kelas, diagram sekuen, dan spesifikasi desain.
Output dari proses desain aplikasi biasanya berupa berbagai dokumen yang memberikan panduan dan spesifikasi teknis tentang bagaimana sebuah aplikasi akan dibangun. Output dari proses desain aplikasi antara lain :
Wireframes : gambaran visual sederhana dari tata letak antarmuka pengguna (UI) tanpa detail desain yang lengkap. Wireframes membantu dalam menentukan posisi elemen-elemen utama di antarmuka pengguna, seperti tombol, teks, dan gambar.
Mockups : Versi statis yang lebih rinci dari desain UI, sering kali termasuk desain warna, gaya, dan tipografi.
Diagram Arsitektur Aplikasi : Representasi visual dari arsitektur aplikasi, termasuk komponen utama, hubungan antarkomponen, dan aliran data. Diagram ini membantu developer memahami struktur aplikasi dan bagaimana komponen saling berinteraksi.
Spesifikasi Fungsional dan Teknis : Dokumen ini menjelaskan secara rinci tentang fitur dan fungsionalitas aplikasi, serta spesifikasi teknis yang diperlukan untuk mengimplementasikannya. Hal ini mencakup deskripsi fungsi, algoritma, protokol komunikasi, dan persyaratan teknis lainnya.
Diagram Database : Apabila aplikasi menggunakan basis data, diagram database akan merinci struktur basis data, tabel, kolom, dan relasi antar entitas. Hal ini juga membantu developer dalam merancang dan mengelola basis data yang dibutuhkan oleh aplikasi.
Dokumen Desain UI/UX : Dokumen ini memberikan panduan tentang desain UI/UX aplikasi, termasuk prinsip desain, panduan warna, tipografi, dan ikon. Hal ini membantu memastikan konsistensi antarmuka user di seluruh aplikasi.
Visualisasi diatas merupakan alur proses pengguna dalam mencari dan menggunakan tempat parkir melalui sebuah aplikasi atau sistem. Proses dimulai dengan langkah "Start", diikuti oleh pengguna yang melakukan "Login/Register" untuk mengakses sistem. Setelah login atau registrasi, pengguna harus "Input Data Kendaraan" untuk menyediakan informasi mengenai kendaraan mereka.
Selanjutnya, sistem akan "Mencari Tempat Parkir" yang tersedia. Jika sistem menemukan tempat parkir, pengguna akan diberi opsi untuk "Booking Tempat Parkir". Setelah tempat parkir berhasil dipesan, pengguna dapat "Masuk Area Parkir" dan kemudian "Parkir Kendaraan".
Setelah memarkir kendaraan, pengguna harus melakukan "Pembayaran Parkir" sebelum mereka bisa "Keluar Area Parkir". Proses ini berakhir pada langkah "Selesai". Namun, jika pada tahap pencarian tidak ditemukan tempat parkir yang tersedia, sistem akan "Menampilkan pesan Tidak Tersedia Tempat Parkir", dan proses berakhir di situ tanpa melanjutkan ke tahap booking dan seterusnya.
Visualisasi Design Aplikasi Sistem Parkir
High-Level Design (HLD)
Arsitektur Sistem : Aplikasi sistem parkir dirancang dengan berbagai komponen utama yang bekerja sama untuk menyediakan layanan parkir yang efisien dan aman. Berikut adalah komponen-komponen utama dalam arsitektur sistem :
Aplikasi Web : Antarmuka pengguna yang dapat diakses melalui browser web, menyediakan fitur untuk mencari tempat parkir, melakukan pembayaran, dan melihat laporan.
Aplikasi Mobile (iOS dan Android): Aplikasi yang dioptimalkan untuk perangkat seluler, memungkinkan pengguna untuk menemukan tempat parkir, memproses pembayaran, dan mengakses informasi parkir saat bepergian.
Server Aplikasi: Tempat logika bisnis dan aturan sistem dijalankan. Mengelola permintaan dari frontend dan mengkoordinasikan interaksi dengan basis data dan integrasi eksternal.
Server Basis Data: Menyimpan semua data terkait parkir, kendaraan, pengguna, dan laporan dalam struktur yang terorganisir dan aman.
Sistem Kontrol Akses: Mengelola akses kendaraan ke area parkir, seperti pintu masuk dan keluar otomatis.
Sistem Pembayaran Elektronik: Memfasilitasi transaksi pembayaran parkir melalui berbagai metode pembayaran seperti kartu kredit, debit, atau dompet digital.
Requirements
Kebutuhan Fungsional
Manajemen tempat parkir
Menambahkan, menghapus, dan memodifikasi informasi tempat parkir: Fitur ini memungkinkan administrator untuk mengelola informasi tentang tempat parkir, termasuk menambahkan lokasi baru, menghapus lokasi yang tidak aktif, dan memodifikasi detail lokasi.
Menentukan jenis tempat parkir: Administrator dapat menentukan jenis tempat parkir seperti mobil, motor, atau VIP untuk mengatur tarif dan ketersediaan.
Menentukan tarif parkir: Administrator dapat menetapkan tarif parkir untuk setiap jenis tempat parkir yang ditentukan.
Melacak ketersediaan tempat parkir secara real-time: Sistem akan terus memperbarui status ketersediaan tempat parkir untuk memungkinkan pengguna untuk menemukan tempat parkir yang tersedia.
Manajemen Kendaraan
Mendaftarkan kendaraan yang masuk dan keluar area parkir: Ketika kendaraan masuk ke area parkir, informasi tentang kendaraan tersebut akan didaftarkan dalam sistem. Ketika kendaraan keluar, informasi tersebut akan diperbarui.
Menerbitkan tiket parkir: Setiap kendaraan yang masuk akan diberikan tiket parkir yang berisi informasi tentang waktu masuk dan jenis tempat parkir.
Memproses pembayaran parkir: Sistem akan memproses pembayaran parkir berdasarkan tarif yang ditetapkan dan waktu parkir.
Menangani pelanggaran parkir: Sistem akan memantau aktivitas parkir dan menangani pelanggaran seperti parkir di tempat yang tidak diizinkan atau melebihi batas waktu parkir.
Manajemen User
Menambahkan, menghapus, dan memodifikasi informasi pengguna: Administrator dapat mengelola informasi pengguna termasuk nama, nomor telepon, dan detail lainnya.
Menetapkan peran dan akses pengguna: Administrator dapat menetapkan peran dan hak akses untuk setiap pengguna, seperti admin, petugas parkir, atau pengguna biasa.
Melacak aktivitas pengguna: Sistem akan mencatat aktivitas pengguna termasuk login, perubahan data, dan transaksi parkir.
Pelaporan
Menghasilkan laporan pendapatan parkir: Sistem akan menghasilkan laporan tentang pendapatan parkir berdasarkan waktu tertentu, jenis tempat parkir, atau lokasi.
Menghasilkan laporan penggunaan parkir: Laporan ini akan mencakup statistik tentang penggunaan tempat parkir, termasuk tingkat keterisian dan waktu parkir rata-rata.
Menghasilkan laporan pelanggaran parkir: Laporan ini akan mencakup informasi tentang pelanggaran parkir yang terjadi, tindakan yang diambil, dan status penyelesaiannya.
Kebutuhan Non-Fungsional
Security : Sistem harus memiliki mekanisme autentikasi dan otorisasi yang kuat untuk melindungi data pengguna dan transaksi. Data harus dienkripsi baik dalam transit maupun saat disimpan.
Scalability : Sistem harus dapat menangani peningkatan jumlah pengguna dan transaksi tanpa penurunan kinerja.
Availability : Sistem harus dirancang untuk mencapai uptime yang tinggi, minimal 99.9%.
Performance : Sistem harus memberikan respons cepat terhadap permintaan pengguna, dengan waktu respons rata-rata di bawah 2 detik.
Maintenance : Sistem harus mudah dipelihara dan diperbarui, dengan dokumentasi yang lengkap untuk setiap komponen.
Module Interaction
Dalam sistem parkir ini, berbagai modul berinteraksi untuk menyediakan layanan yang efisien dan aman. Aplikasi Web dan Aplikasi Mobile adalah antarmuka pengguna yang memungkinkan pencarian tempat parkir, pembayaran, dan akses laporan. Kedua aplikasi ini mengirimkan permintaan ke Server Aplikasi, yang mengelola logika bisnis dan berkomunikasi dengan Server Basis Data untuk mengakses data parkir, kendaraan, dan pengguna.
Server Aplikasi juga berinteraksi dengan Sistem Pembayaran Elektronik untuk memproses transaksi menggunakan berbagai metode pembayaran seperti kartu kredit, debit, dan dompet digital. Sistem Kontrol Akses mengelola pintu masuk dan keluar kendaraan serta memantau ketersediaan tempat parkir secara real-time. Semua modul ini bekerja bersama untuk memastikan pengguna dapat dengan mudah menemukan tempat parkir, melakukan pembayaran, dan menerima layanan yang efisien dan aman.
Low Level Design (LLD)
Rincian spesifik untuk setiap komponen.
Aplikasi Web : dibangun menggunakan framework React.js untuk front-end dan Node.js untuk back-end. Aplikasi ini menyediakan fitur utama seperti pencarian tempat parkir dengan form pencarian yang terintegrasi dengan peta interaktif, modul pembayaran yang terhubung dengan gateway pembayaran, dan dashboard laporan yang menampilkan pendapatan, penggunaan parkir, dan pelanggaran.
Aplikasi Mobile : yang dioptimalkan untuk perangkat iOS dan Android, dikembangkan menggunakan framework React Native. Fitur utamanya meliputi pencarian tempat parkir dengan menggunakan geolokasi untuk menemukan tempat terdekat, integrasi pembayaran mobile seperti Apple Pay dan Google Wallet, serta notifikasi real-time mengenai ketersediaan tempat parkir.
Server Aplikasi : menggunakan bahasa pemrograman Java dengan framework Spring Boot. Server ini menangani semua permintaan dari aplikasi web dan mobile, serta mengelola operasi CRUD untuk data parkir, kendaraan, dan pengguna dengan berkoordinasi dengan database.
Server Basis Data : menggunakan PostgreSQL sebagai Database Management System. Struktur datanya mencakup tabel-tabel untuk menyimpan informasi lokasi parkir, data kendaraan yang terdaftar, data pengguna, dan transaksi pembayaran.
Sistem Kontrol Akses : terdiri dari perangkat keras seperti pembaca RFID dan kamera pengenal plat nomor. Fitur utamanya adalah manajemen pintu masuk dan keluar, yang mengontrol akses kendaraan berdasarkan validasi tiket atau plat nomor. Sistem ini juga terintegrasi dengan server aplikasi untuk mengirim data kendaraan masuk dan keluar secara real-time.
Sistem Pembayaran Elektronik : menggunakan gateway pembayaran seperti Stripe dan PayPal. Sistem ini memproses berbagai metode pembayaran dan melakukan verifikasi transaksi, serta memperbarui status pembayaran di database untuk memastikan semua transaksi tercatat dengan benar dan aman.
Algoritma dan logika pemrograman.
Pencarian Tempat Parkir
Terima input lokasi dan waktu.
Query database untuk tempat parkir yang tersedia.
Filter hasil berdasarkan ketersediaan real-time.
Kembalikan daftar tempat parkir dengan detail dan peta.
Proses Pembayaran
Terima detail pembayaran dari pengguna.
Kirim data ke gateway pembayaran untuk verifikasi.
Jika berhasil, perbarui status transaksi di database.
Kirim konfirmasi pembayaran ke pengguna.
Manajemen Kendaraan
Terima data kendaraan saat masuk.
Simpan data ke tabel kendaraan dan buat tiket parkir.
Saat kendaraan keluar, perbarui status tiket dan hitung biaya parkir.
Proses pembayaran dan keluarkan kendaraan.
Detail implementasi basis data.
Tabel Tempat Parkir
CREATE TABLE tempat_parkir (
id SERIAL PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
lokasi VARCHAR(255) NOT NULL,
jenis VARCHAR(50) NOT NULL,
tarif DECIMAL(10, 2) NOT NULL,
ketersediaan BOOLEAN NOT NULL
);
Tabel Kendaraan
CREATE TABLE kendaraan (
id SERIAL PRIMARY KEY,
plat_nomor VARCHAR(15) NOT NULL,
jenis VARCHAR(50) NOT NULL,
waktu_masuk TIMESTAMP NOT NULL,
waktu_keluar TIMESTAMP,
status VARCHAR(20) NOT NULL
);
Tabel User/Pengguna
CREATE TABLE pengguna (
id SERIAL PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
nomor_telepon VARCHAR(15),
email VARCHAR(100) NOT NULL,
peran VARCHAR(50) NOT NULL
);
User : Pengguna berada di dalam mobil dan mengirimkan permintaan (request) melalui aplikasi parkir yang ada di perangkat mereka. Permintaan ini dikirimkan ke jaringan melalui Wireless Access Point terdekat.
Wireless Access Point : Terdapat dua Wireless Access Point yang berfungsi sebagai penghubung antara perangkat pengguna, server aplikasi, dan area parkir. Access Point ini menangkap sinyal permintaan dari perangkat pengguna dan meneruskannya ke server aplikasi melalui internet.
Internet : Internet bertindak sebagai jalur komunikasi utama yang menghubungkan semua komponen dalam sistem. Semua permintaan dari pengguna dan area parkir serta respon dari server aplikasi melewati jaringan internet.
Server Aplikasi & Database :
Server Aplikasi: Bertugas memproses semua permintaan yang masuk dari pengguna dan area parkir. Server aplikasi menjalankan logika bisnis sistem parkir.
Database: Menyimpan semua data yang dibutuhkan untuk operasional sistem parkir, seperti data pengguna, data tempat parkir, dan transaksi parkir.
Server aplikasi dan database berinteraksi untuk memberikan respon yang tepat berdasarkan data yang tersedia.
Area Parkir : Area parkir dilengkapi dengan berbagai perangkat yang terhubung ke Wireless Access Point. Perangkat ini termasuk sensor parkir, kamera, dan sistem pembayaran otomatis. Area parkir mengirimkan permintaan status tempat parkir dan menerima respon dari server aplikasi untuk mengelola ketersediaan tempat parkir.
Alur Interaksi : Pengguna mengirim permintaan parkir melalui perangkat mereka yang diteruskan oleh Wireless Access Point ke internet. Permintaan tersebut sampai ke Server Aplikasi yang kemudian memprosesnya dengan bantuan Database. Server Aplikasi mengirimkan respon kembali melalui internet dan Wireless Access Point ke perangkat pengguna. Area parkir juga berinteraksi dengan server aplikasi melalui Wireless Access Point untuk memperbarui status tempat parkir dan mengelola ketersediaan tempat parkir. Semua data dan komunikasi ini memungkinkan sistem untuk memberikan informasi real-time mengenai ketersediaan tempat parkir kepada pengguna.
Link YouTube Demo : https://youtu.be/GN1oPmXycm8
Komentar
Posting Komentar