ETS Perancangan Perangkat Lunak

Nama : I Gusti Ngurah Ervan Juli Ardana

NRP : 5025211205

Kelas : Perancangan Perangkat Lunak (A)


Evaluasi Tengah Semester

perancangan Perangkat Lunak


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  


Jawaban : 

  1. Perbedaan antara model analysis dan model desain diantaranya : 


  • Model Analisis:


Model analisis bertujuan untuk memahami dan mendefinisikan kebutuhan sistem secara menyeluruh. Ini melibatkan identifikasi masalah yang perlu diselesaikan oleh perangkat lunak, mendefinisikan fungsionalitas yang diinginkan, dan menetapkan batasan sistem. Pada tahap ini, perhatian utama adalah pada apa yang harus dilakukan sistem dan mengapa. Ini melibatkan pemahaman yang mendalam tentang kebutuhan pengguna dan tujuan bisnis. 


  • Model Desain:


Model desain, di sisi lain, bertujuan untuk merancang solusi teknis untuk memenuhi kebutuhan yang telah didefinisikan dalam model analisis. Ini melibatkan pemilihan arsitektur sistem, rancangan struktur data, algoritma, dan komponen perangkat lunak lainnya. Fokus pada tahap ini adalah bagaimana sistem akan dibangun. Ini melibatkan memikirkan struktur internal sistem, interaksi antara komponen, dan strategi implementasi.



Jadi, perbedaan utama antara model analisis dan model desain adalah bahwa model analisis berkaitan dengan apa yang harus dilakukan oleh sistem, sedangkan model desain berkaitan dengan bagaimana sistem tersebut akan dibangun untuk mencapai tujuan tersebut.


  1. Prinsip perancangan perangkat lunak adalah abstraction, coupling & cohesion, decomposition & modularisation, encapsulation, separation of interface and implementation, sufficiency, completeness, & primitiveness serta separation of concern. Kemudian output dari proses desain aplikasi diantaranya : 


  • Desain Arsitektur : 

Desain arsitektur mencakup struktur dan komponen-komponen besar dari aplikasi. Ini adalah kerangka kerja yang menentukan bagaimana semua bagian dari sistem akan berinteraksi satu sama lain.

  • Desain Interface

Desain interface berkaitan dengan tata letak, struktur, dan interaksi antarmuka pengguna aplikasi.

  • Desain Data

Desain data melibatkan pemodelan struktur data dan basis data yang digunakan oleh aplikasi. Ini termasuk pemilihan jenis data yang tepat, hubungan antara entitas, skema basis data, dan strategi manajemen data.

  • Desain Algoritma

Desain algoritma melibatkan pemilihan dan perancangan algoritma untuk mencapai fungsi dan tujuan tertentu dalam aplikasi.











  1. Berikut Visualisasi Deskripsi aplikasi parkir yang saya buat : 

Penjelasan : 

  • Proses Register : pada proses ini user akan melakukan registrasi mulai dengan mendaftarkan data diri hingga data kendaraan yang digunakan

  • Proses Login & Autentikasi : pada proses ini user dapat melakukan login berdasarkan registrasi yang telah dilakukan dan dilakukan autentikasi. jika username dan password yang dimasukan sesuai maka akan berlanjut ke proses selanjutnya, jika tidak maka harus melakukan login ulang

  • Proses Menampilkan Peta parkir dan Mencari tempat parkir : pada proses ini aplikasi akan menampilkan peta parkir dan user akan memeriksa, jika tidak ada parkir yang tersedia maka user harus menunggu dan mencari ulang

  • Proses Memesan Tiket : Pada proses ini user dapat memesan tiket setelah memeriksa peta parkir dan setelah memesan sistem akan menampilkan tiket parkir yang sudah di pesan

  • Proses Membayar Parkir : pada proses ini user dapat membayar tiket jika sudah selesai parkir dan sistem akan memberikan beberapa metode pembayaran tunai dan elektronik

  • Proses Pembayaran Tunai : pada proses ini user akan melakukan pembayaran menuju pos, dan pihak parkir akan memberikan tiket pembayaran yang berisi QR Code dan user hanya perlu melakukan scan terhadap QR code dan dapat keluar dari area parkir

  • Proses Pembayaran Elektronik : pada proses ini user dapat langsung melakukan pembayaran dan akan mendapatkan qr code pada aplikasi. Terakhir user hanya perlu melakukan Scan dan dapat keluar dari area parkir


  1. Berikut merupakan HLD dan LLD dari aplikasi parkir berikut : 


  • HLD :



HLD atau High Level Design akan menyajikan struktur sistem sebagai arsitektur aplikasi/database, alur aplikasi, dan arsitektur teknologi. Dokumentasi Desain Tingkat Tinggi mungkin menggunakan beberapa istilah non-teknis, tidak seperti Low Level Design yang seharusnya hanya berupa jargon teknis. Pertama, saya akan menyusun requirements yang dibutuhkan sistem yang dirancang untuk mengelola tempat parkir dan pergerakan kendaraan di area tertentu. Sistem ini dapat digunakan di berbagai tempat.


  1. Requirements


Secara garis besar sistem ini membutuhkan beberapa requirements diantaranya : 

  • Memudahkan pengendara untuk menemukan tempat parkir yang tersedia

  • Mempercepat proses pembayaran parkir

  • Meningkatkan keamanan kendaraan

  • Menganalisis data penggunaan parkir

  • Meningkatkan pendapatan dari parkir

Namun jika saya bedah menjadi kebutuhan fungsional dan non fungsional maka akan menjadi sebagai berikut : 


  • 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


  1. Capacity Assumptions


Estimasi memiliki 1000.000 user

Estimasi memiliki 1000 Slot Parkir


Setiap baris pelanggan di DB berukuran 1 KB (dengan alamat, info profil, dll.)

Setiap slot parkir = 2 MB (detail, foto, dll.)

Setiap pemesanan = 1 KB.


Total yang dibutuhkan :


1 juta pelanggan x 1 KB per pengguna = 1 GB

1000 slot parkir x 2 MB per slot parkir= 2 GB

500 pesanan per jam = 12.000 pemesanan per hari (perkiraan)

12.000 pesanan per hari x 1 KB per pesanan = 0,012 GB per hari

Dengan asumsi kami mempertahankan pesanan selama 3 tahun terakhir:


00,12 GB per hari x 365 hari x 3 tahun = 13,14 GB (kurang-lebih)


  1. Services


Sistem ini dapat dibagi menjadi 2 bagian diantaranya:


  • Layanan User (Customer):

User akan diberikan beberapa layanan diantaranya seperti Antarmuka untuk pengguna aplikasi  yang memungkinkan mereka untuk mencari tempat parkir, melakukan pembayaran, dan akses fitur-fitur lainnya. Sebagai tambahan adapula beberapa keuntungan yang didapatkan seperti Mendaftarkan kendaraan yang masuk ke area parkir, Membayar parkir dan mendapatkan tiket parkir, Melihat informasi ketersediaan tempat parkir secara real-time., Melakukan pembayaran parkir secara elektronik. hingga Melihat riwayat transaksi parkir.


  • Layanan Admin:


Admin akan diberikan beberapa laayanan diantaranya seperti Antarmuka khusus untuk Admin yang memungkinkan mereka untuk mengelola sistem parkir, sebagai tambahan terdapat beberapa peran yang didaptkan admin dianyaranya Menambahkan, menghapus, dan memodifikasi informasi tempat parkir, Menentukan jenis tempat parkir (mobil, motor, VIP) dan menetapkan tarif parkir, Melihat laporan pendapatan parkir, penggunaan parkir, dan pelanggaran parkir, Menambahkan, menghapus, dan memodifikasi informasi pengguna serta menetapkan peran dan akses pengguna.


  • Necessary Components:


  • User Interface

User terlibat dengan sistem melalui aplikasi seluler, antarmuka web, atau aplikasi desktop.

  • Load Balancer

Mendistribusikan traffic masuk secara merata ke beberapa server, penyeimbang beban meningkatkan ketersediaan tinggi dan mengoptimalkan kinerja secara keseluruhan.

  • Authentication and Registration Services

Layanan ini menangani otentikasi dan registrasi pengguna. Semua pengguna, termasuk pelanggan, admin restoran, dan agen pengiriman, menjalani proses otentikasi dan registrasi.

  • Database

Menyimpan data pengguna, detail restoran, menu, pesanan, dan metadata, database berfungsi sebagai pusat penyimpanan untuk sistem.

  • Payment Services

Bertanggung jawab untuk mengelola semua data dan layanan terkait pembayaran.

  • Parkir Placement Services

Layanan ini bertugas melakukan pemesanan tempat parkir mengelola semua proses terkait pemesanan.

  • Admin Services

Memungkinkan restoran untuk melihat dan mengelola pesanan yang dilakukan, layanan ini juga memungkinkan admin untuk mengubah data letak parkir, data user, ketersediaan parkit dll

 

Low Level Design (LLD) : 


  • Database Design : 


Berikut adalah beberapa tabel yang akan ada di dalam aplikasi Tempat Parkir ini:


  • Tabel Slot Parkir:

Menyimpan informasi tentang setiap tempat parkir yang tersedia, termasuk jenis tempat parkir (seperti mobil, motor, VIP), jumlah slot, dan tarif parkir.


  • Tabel Kendaraan:

Menyimpan data tentang setiap kendaraan yang masuk dan keluar dari area parkir. Ini mencakup informasi seperti plat nomor, jenis kendaraan, waktu masuk, waktu keluar, dan status pembayaran.


  • Tabel user:

Berisi informasi tentang pengguna aplikasi parkir, termasuk detail pribadi seperti nama, alamat, nomor telepon, dan informasi login. Tabel ini juga dapat menyimpan informasi tentang peran dan hak akses pengguna.


  • Tabel Transaksi Parkir:

Mencatat setiap transaksi parkir yang terjadi, termasuk informasi tentang kendaraan yang diparkir, waktu masuk dan keluar, tarif parkir yang dikenakan, dan status pembayaran.


  • Tabel Feedback:

Digunakan untuk menyimpan data yang digunakan dalam pembuatan laporan, seperti pendapatan parkir, penggunaan slot parkir, dan pelanggaran parkir. Ini mencakup kolom-kolom seperti tanggal, jenis laporan, dan data relevan lainnya.


  • Tabel Tarif Parkir:

Berisi informasi tentang tarif parkir untuk setiap jenis tempat parkir. Ini mencakup tarif per jam atau tarif lainnya yang dikenakan kepada pengguna untuk parkir kendaraan mereka.


  • Tabel Transaksi Detail:

Berisi rincian transaksi yang lebih detail terkait parkir kendaraan.



  • Technology : 


a. Lingkungan Pengembangan:

  • Sistem Operasi: Linux (Ubuntu) atau Windows 10/11

  • IDE : Visual Studio Code


b. Bahasa Pemrograman:


HTML, CSS, JavaScript (React.js), Java, Python, PHP, Node.js, dll


c. Basis Data:


MySQL , PostgreSQL  MongoDB, NoSQL 


d. Server:


Apache HTTP Server , Express.js, Simple Web Server, dll

  • Interface : 





5. Berikut merupakan Arsitektur dari Aplikasi Parkir yang akan dibangun :


 

        -     Presentation Layer (Lapisan Presentasi):


  • Web Application: Antarmuka pengguna berbasis web untuk pengendara dan administrator parkir.

  • Mobile Application: Aplikasi mobile untuk pengendara yang menyediakan fungsionalitas serupa dengan aplikasi web.

  • Kiosk Interfaces: Antarmuka fisik pada kios di area parkir untuk pendaftaran kendaraan dan pembayaran


-     Application Layer (Lapisan Aplikasi)


  • Parking Management Service: Mengelola tempat parkir, jenis tempat parkir, dan tarif.

  • Vehicle Management Service: Mengelola pendaftaran kendaraan, penerbitan tiket, dan pelanggaran parkir.

  • User Management Service: Mengelola data pengguna, peran, dan akses.

  • Payment Service: Memproses pembayaran parkir melalui integrasi dengan sistem pembayaran elektronik.

  • Reporting Service: Menghasilkan laporan pendapatan, penggunaan, dan pelanggaran parkir.


        -     Data Layer (Lapisan Data):


  • Database: Penyimpanan data tempat parkir, kendaraan, pengguna, transaksi pembayaran, dan laporan.

  • Real-Time Data Store: Menyimpan informasi ketersediaan tempat parkir secara real-time.


        -     Integration Layer (Lapisan Integrasi):


  • API Gateway: Menyediakan antarmuka terpusat untuk semua layanan backend.

  • Integration Middleware: Mengelola integrasi dengan sistem kontrol akses dan sistem pembayaran elektronik.



6. Berikut merupakan link hasil dokumentasi yang saya buat :


https://www.youtube.com/watch?v=BNRzHGtq5s8


Komentar

Postingan populer dari blog ini

Tugas 8 PPL - Estimasi Kapasitas Sistem

Tugas 6 PPL - Studi kasus 1 - Desain Sistem Restauran

Tugas 5 PPL - Low Level Design (LLD)