ETS PPL
Nama : Tigo S Yoga
Kelas : PPL A
NRP : 5025211125
ETS PPL
1. Apakah perbedaan model analysis dengan model desain?
- Model Analysis (Analisis Model):
- Model analisis berfokus pada memahami dan memodelkan domain masalah atau sistem yang akan dibangun.
- Tujuannya adalah untuk menangkap dan merepresentasikan persyaratan dan kebutuhan dari sistem yang akan dikembangkan.
- Menghasilkan model yang menggambarkan apa yang harus dilakukan oleh sistem.
- Contoh model analisis meliputi use case diagram, activity diagram, class diagram (untuk konsep domain), dan sequence diagram.
- Model Desain (Model Desain):
- Model desain berfokus pada merancang solusi teknis untuk memenuhi persyaratan yang ditangkap dalam model analisis.
- Tujuannya adalah untuk menentukan arsitektur, komponen, dan implementasi detail dari sistem yang akan dibangun.
- Menghasilkan model yang menggambarkan bagaimana sistem akan dibangun.
- Contoh model desain meliputi class diagram (untuk desain kelas), component diagram, deployment diagram, dan sequence diagram (untuk menunjukkan interaksi antara objek desain).
2. Jelaskan output proses Desain Aplikasi?
Proses desain aplikasi biasanya menghasilkan beberapa artefak atau model desain, termasuk:
a. Arsitektur Aplikasi:
- Diagram arsitektur yang menggambarkan komponen-komponen utama aplikasi dan hubungan di antaranya.
- Deskripsi lengkap tentang pola desain, framework, dan teknologi yang akan digunakan.
b. Desain Antarmuka Pengguna (UI):
- Mockup atau wireframe yang merepresentasikan tampilan antarmuka pengguna aplikasi.
- Pedoman gaya desain (style guide) yang mencakup warna, tipografi, ikon, dan elemen desain lainnya.
c. Desain Basis Data:
- Skema basis data yang mencakup tabel, kolom, hubungan, dan batasan.
- Model data yang menggambarkan entitas dan hubungan di antara mereka.
d. Desain Kelas:
- Diagram kelas yang menunjukkan kelas-kelas utama, atribut, metode, dan hubungan di antara mereka.
- Deskripsi rinci tentang tanggung jawab dan operasi setiap kelas.
e. Desain Komponen:
- Diagram komponen yang menggambarkan modul, layanan, atau komponen aplikasi yang terpisah.
- Spesifikasi antarmuka untuk setiap komponen.
f. Desain Deployment:
- Diagram deployment yang menunjukkan lingkungan deployment aplikasi, seperti server, database, dan komponen eksternal.
- Persyaratan infrastruktur dan konfigurasi untuk setiap lingkungan.
g. Dokumentasi Desain:
- Dokumen desain yang mencakup deskripsi rinci tentang setiap aspek desain aplikasi.
- Panduan pengembangan dan pengujian untuk tim pengembang.
Output desain aplikasi ini memberikan panduan yang jelas dan terperinci untuk tahap implementasi dan pengembangan aplikasi selanjutnya.
3. Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)
Berdasarkan gambar diagram alur tersebut, alur aplikasi sistem parkir dapat dijelaskan sebagai berikut:
- Mulai - Pengguna memulai dengan memasuki area parkir.
- User memasuki area parkir - Pengguna memasuki area parkir dengan kendaraannya.
- User mencari area parkir - Pengguna mencari tempat parkir yang tersedia.
- Kendaraan terparkir - Pengguna berhasil memarkir kendaraannya di tempat yang tersedia.
- Keluar? - Pada tahap ini, sistem akan memeriksa apakah pengguna ingin keluar dari area parkir atau tidak.
- Jika tidak, maka sistem akan kembali ke tahap "Kendaraan terparkir".
- Jika ya, maka sistem akan melanjutkan ke tahap berikutnya.
- Menghitung tarif berdasarkan waktu dan jenis tempat parkir - Sistem akan menghitung tarif parkir yang harus dibayarkan oleh pengguna berdasarkan durasi waktu parkir dan jenis tempat parkir yang digunakan.
- User membayar parkir - Pengguna melakukan pembayaran parkir sesuai dengan tarif yang dihitung oleh sistem.
- Selesai - Proses parkir selesai, dan pengguna dapat meninggalkan area parkir
Diagram alur ini menggambarkan proses utama yang dialami oleh pengguna saat menggunakan aplikasi sistem parkir, dimulai dari memasuki area parkir, mencari tempat parkir, menghitung tarif, hingga melakukan pembayaran sebelum keluar dari area parkir.
4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)
High Level Design (HLD)
Kebutuhan Fungsional
Manajemen Tempat Parkir
- Deskripsi: Mengelola data tempat parkir, termasuk penambahan, penghapusan, dan modifikasi informasi tempat parkir.
- Fitur: Menentukan jenis tempat parkir (mobil, motor, VIP), melacak ketersediaan secara real-time, menentukan tarif parkir.
Manajemen Kendaraan
- Deskripsi: Mengelola informasi kendaraan yang masuk dan keluar area parkir.
- Fitur: Pendaftaran kendaraan, penerbitan tiket parkir, pemrosesan pembayaran, penanganan pelanggaran parkir.
Manajemen Pengguna
- Deskripsi: Mengelola data pengguna sistem, termasuk penambahan, penghapusan, dan modifikasi informasi pengguna.
- Fitur: Menetapkan peran dan akses pengguna, melacak aktivitas pengguna.
Pelaporan
- Deskripsi: Menghasilkan laporan yang dibutuhkan untuk analisis dan manajemen.
- Fitur: Laporan pendapatan parkir, penggunaan parkir, pelanggaran parkir.
Kebutuhan Non-Fungsional
Keamanan
- Deskripsi: Melindungi data pengguna dari akses yang tidak sah dan mencegah penipuan serta pencurian.
- Fitur: Enkripsi data, autentikasi dan otorisasi pengguna, pemantauan aktivitas.
Ketersediaan
- Deskripsi: Sistem harus tersedia dan dapat diakses oleh pengguna setiap saat.
- Fitur: Ketersediaan 24/7, sistem failover, pemulihan bencana.
Skalabilitas
- Deskripsi: Sistem harus mampu menampung jumlah pengguna dan kendaraan yang besar.
- Fitur: Skalabilitas horizontal dan vertikal, arsitektur berbasis microservices.
Kinerja
- Deskripsi: Sistem harus responsif dan efisien dalam menangani permintaan pengguna.
- Fitur: Latensi rendah, throughput tinggi, optimasi kinerja.
Arsitektur Sistem
Antarmuka Pengguna (Web App dan Mobile App)
- Deskripsi: Menyediakan antarmuka interaktif bagi pengguna untuk mengakses fitur-fitur sistem parkir.
- Komponen: Desain responsif, user-friendly, integrasi dengan layanan backend.
Application Layer
- Manajemen Tempat Parkir: Komponen yang menangani semua logika bisnis terkait tempat parkir.
- Manajemen Kendaraan: Komponen yang mengelola logika bisnis terkait pendaftaran dan pemrosesan kendaraan.
- Manajemen Pengguna: Komponen yang mengelola informasi dan aktivitas pengguna.
- Pelaporan: Komponen yang menghasilkan laporan analitik.
Data Access Layer
- Deskripsi: Mengelola akses ke data yang disimpan dalam database.
- Komponen: ORM (Object-Relational Mapping), query optimization, caching.
Database
- Deskripsi: Menyimpan semua data terkait sistem parkir.
- Komponen: Tabel pengguna, tabel kendaraan, tabel tempat parkir, tabel transaksi, tabel pelanggaran parkir, tabel aktivitas pengguna.
Komponen Sistem
Pendaftaran Kendaraan
- Deskripsi: Mengelola pendaftaran kendaraan yang masuk ke area parkir.
- Fitur: Pendaftaran otomatis, pencatatan informasi kendaraan.
Penerbitan Tiket Parkir
- Deskripsi: Mengelola penerbitan tiket parkir bagi kendaraan yang masuk.
- Fitur: Penerbitan tiket digital, verifikasi tiket.
Pembayaran Parkir
- Deskripsi: Mengelola proses pembayaran parkir.
- Fitur: Pembayaran elektronik, integrasi dengan gateway pembayaran.
Manajemen Pengguna
- Deskripsi: Mengelola informasi dan aktivitas pengguna sistem.
- Fitur: Autentikasi, otorisasi, manajemen peran.
Manajemen Pelanggaran Parkir
- Deskripsi: Mengelola dan mencatat pelanggaran parkir.
- Fitur: Pencatatan pelanggaran, pemberitahuan pelanggaran.
Integrasi dengan Sistem Kontrol Akses
- Deskripsi: Mengintegrasikan sistem parkir dengan sistem kontrol akses fisik.
- Fitur: Verifikasi akses, kontrol pintu masuk/keluar.
Integrasi dengan Sistem Pembayaran Elektronik
- Deskripsi: Mengintegrasikan sistem parkir dengan berbagai metode pembayaran elektronik.
- Fitur: Integrasi dengan e-wallet, kartu kredit, pembayaran online.
Low Level Design (LLD)
Teknologi
Bahasa Pemrograman:
- Python: Untuk backend dan layanan mikro.
- JavaScript (Node.js): Untuk server-side scripting dan API development.
Framework:
- Django (Python): Untuk pengembangan aplikasi web dan API.
- Express.js (Node.js): Untuk pengembangan API dan middleware.
Database:
- MySQL: Database relasional untuk penyimpanan data struktur.
- PostgreSQL: Alternatif database relasional dengan fitur-fitur tambahan.
Server:
- Apache: Web server untuk mengelola aplikasi web.
- Nginx: Reverse proxy server untuk distribusi load dan peningkatan kinerja.
Cloud Platform:
- AWS: Infrastruktur cloud untuk hosting dan layanan tambahan.
- Google Cloud Platform: Alternatif untuk hosting dan layanan cloud.
- Microsoft Azure: Alternatif lain untuk solusi cloud.
Keamanan:
- TLS/SSL: Enkripsi komunikasi data.
- OAuth: Protokol autentikasi dan otorisasi.
Monitoring dan Pemantauan:
- Prometheus: Sistem monitoring dan alerting.
- Grafana: Platform analisis dan visualisasi data.
Kontrol Versi:
- Git: Sistem kontrol versi.
- GitHub: Platform untuk repositori dan kolaborasi kode.
Desain Basis Data
Tabel Pengguna
- Kolom: user_id, username, password_hash, email, role, created_at, updated_at.
Tabel Kendaraan
- Kolom: vehicle_id, user_id, license_plate, vehicle_type, registered_at.
Tabel Tempat Parkir
- Kolom: parking_spot_id, spot_type, is_available, rate_per_hour, location.
Tabel Transaksi
- Kolom: transaction_id, user_id, vehicle_id, parking_spot_id, amount, payment_method, transaction_date.
Tabel Pelanggaran Parkir
- Kolom: violation_id, user_id, vehicle_id, violation_type, violation_date, fine_amount.
Tabel Aktivitas Pengguna
- Kolom: activity_id, user_id, activity_type, timestamp.
Desain Antarmuka Pengguna
Halaman Utama
- Deskripsi: Tampilan awal aplikasi dengan opsi login dan navigasi utama.
- Fitur: Login/Logout, navigasi ke pencarian parkir, manajemen akun.
Pencarian Tempat Parkir
- Deskripsi: Halaman untuk mencari dan memesan tempat parkir.
- Fitur: Peta interaktif, filter pencarian, konfirmasi reservasi.
Konfirmasi Parkir
- Deskripsi: Halaman untuk konfirmasi reservasi tempat parkir.
- Fitur: Detail reservasi, opsi pembatalan, navigasi ke tempat parkir.
Pembayaran Parkir
- Deskripsi: Halaman untuk melakukan pembayaran parkir.
- Fitur: Detail transaksi, metode pembayaran, konfirmasi pembayaran.
Laporan Pengguna
- Deskripsi: Halaman untuk melihat riwayat dan laporan penggunaan parkir.
- Fitur: Laporan transaksi, laporan pelanggaran, pengaturan akun.
Algoritma dan Alur Aplikasi
Algoritma Pendaftaran Kendaraan
- Deskripsi: Mengelola pendaftaran kendaraan baru ke sistem.
- Langkah: Validasi data, simpan data kendaraan ke database, kirim konfirmasi.
Algoritma Penerbitan Tiket Parkir
- Deskripsi: Mengelola penerbitan tiket parkir bagi kendaraan yang masuk.
- Langkah: Validasi tempat parkir, terbitkan tiket, update status tempat parkir.
Algoritma Pembayaran Parkir
- Deskripsi: Mengelola proses pembayaran parkir.
- Langkah: Validasi transaksi, proses pembayaran, update status pembayaran, kirim notifikasi.
Integrasi dan Komunikasi dengan Server
Pendaftaran Pengguna
- Deskripsi: Proses registrasi pengguna baru ke sistem.
- Langkah: Kirim data registrasi ke server, simpan data pengguna, kirim konfirmasi.
Login Pengguna
- Deskripsi: Proses autentikasi pengguna.
- Langkah: Validasi kredensial, berikan token akses, simpan sesi pengguna.
Pencarian Tempat Parkir
- Deskripsi: Proses mencari tempat parkir yang tersedia.
- Langkah: Kirim permintaan pencarian ke server, terima data tempat parkir, tampilkan hasil.
Reservasi Tempat Parkir
- Deskripsi: Proses reservasi tempat parkir oleh pengguna.
- Langkah: Validasi tempat parkir, konfirmasi reservasi, update status tempat parkir.
Pembayaran Parkir
- Deskripsi: Proses pembayaran parkir oleh pengguna.
- Langkah: Validasi data pembayaran, proses transaksi, update status pembayaran, kirim notifikasi.
5. Gambarkan Arsitektur dari Aplikasi Parkir yang akan dibangun (Studi Kasus)
Arsitektur aplikasi parkir pada gambar yang diberikan menunjukkan berbagai komponen sistem yang bekerja sama untuk mengelola parkir kendaraan secara efektif. Berikut adalah penjelasan mengenai masing-masing komponen dan interaksi di antara mereka:
Parking Service:
- Ini adalah komponen yang menangani proses masuk kendaraan ke area parkir. Saat kendaraan masuk, layanan ini mencatat informasi kendaraan dan alokasi tempat parkir.
- Informasi yang dicatat kemudian disimpan dalam Vehicle Parking Details.
Ticketing Service:
- Setelah kendaraan masuk, layanan tiket mengeluarkan tiket parkir yang berisi informasi seperti waktu masuk, nomor tempat parkir, dan tarif parkir.
- Data dari layanan tiket juga disimpan dalam Vehicle Parking Details untuk referensi lebih lanjut.
Exit Service:
- Saat kendaraan akan keluar dari area parkir, layanan ini memverifikasi informasi tiket dan menghitung biaya parkir berdasarkan durasi parkir.
- Informasi ini kemudian diteruskan ke Payment Service untuk pemrosesan pembayaran.
Payment Service:
- Komponen ini bertanggung jawab atas pemrosesan pembayaran biaya parkir. Ini bisa melibatkan pembayaran tunai, kartu kredit, atau sistem pembayaran elektronik lainnya.
- Detail pembayaran disimpan dalam Payment Details dan juga dikirim ke Auditing Services untuk pencatatan dan pelacakan.
Web Hooks Confirmation:
- Setelah pembayaran selesai, konfirmasi dikirim melalui web hooks ke aplikasi atau sistem pihak ketiga yang relevan, seperti sistem pembayaran elektronik eksternal (Third Party Payments).
- Hal ini memungkinkan integrasi dengan berbagai metode pembayaran dan memberikan fleksibilitas kepada pengguna.
Auditing Services:
- Layanan ini mengelola dan mengawasi semua transaksi parkir dan pembayaran untuk memastikan keakuratan dan keamanan data.
- Semua data yang relevan disimpan dalam Auditing Warehouse untuk keperluan audit dan pelaporan.
Auditing Warehouse:
- Ini adalah repositori tempat semua data audit disimpan. Data ini mencakup informasi detail mengenai parkir kendaraan, transaksi pembayaran, dan aktivitas layanan audit.
- Warehouse ini digunakan untuk analisis mendalam dan pelaporan manajemen.
Alur Kerja Sistem:
Masuk Parkir:
- Kendaraan memasuki area parkir.
- Parking Service mencatat informasi dan meneruskan ke Ticketing Service.
- Ticketing Service mengeluarkan tiket parkir dan menyimpan detailnya dalam Vehicle Parking Details.
Keluar Parkir:
- Kendaraan menuju Exit Service.
- Exit Service memverifikasi tiket dan menghitung biaya parkir.
- Informasi diteruskan ke Payment Service untuk pemrosesan pembayaran.
Pembayaran:
- Payment Service memproses pembayaran dan menyimpan detail pembayaran dalam Payment Details.
- Konfirmasi pembayaran dikirim melalui Web Hooks Confirmation ke sistem pembayaran pihak ketiga jika diperlukan.
- Auditing Services mencatat semua transaksi dalam Auditing Warehouse untuk tujuan pelaporan dan audit.
Kesimpulan:
Arsitektur ini dirancang untuk mengelola operasi parkir secara efisien, mulai dari masuknya kendaraan hingga pemrosesan pembayaran dan pelaporan. Setiap komponen bekerja bersama untuk memastikan bahwa seluruh proses berjalan lancar, aman, dan terpantau dengan baik. Integrasi dengan layanan pihak ketiga melalui web hooks memungkinkan fleksibilitas dalam metode pembayaran dan konfirmasi transaksi.
Komentar
Posting Komentar