ETS PPL - Robby Ulung Pambudi

ETS 

Nama : Robby Ulung Pambudi

Kelas : PPL A

NRP : 5025211042 

Apakah perbedaan model analysis dengan model desain?

Perbedaan utama antara model analisis dan model desain terletak pada fokus dan tahapan yang dilakukan dalam proses pengembangan sistem informasi. Berikut ini adalah penjelasan lebih rinci mengenai perbedaan keduanya:

- Model Analisis:
  • Fokus utama adalah memahami kebutuhan bisnis dan mendefinisikan persyaratan fungsional yang harus dipenuhi oleh sistem.
  • Melibatkan identifikasi masalah, studi kelayakan, pengumpulan data, dan analisis kebutuhan pengguna.
  • Menghasilkan spesifikasi kebutuhan fungsional dan non-fungsional yang menggambarkan apa yang harus dilakukan oleh sistem.
  • Menggunakan teknik seperti pemodelan use case, pemodelan data, dan pemodelan proses bisnis.
- Model Desain:  
  • Fokus utama adalah merancang solusi teknis yang memenuhi persyaratan fungsional dan non-fungsional yang telah didefinisikan dalam tahap analisis.
  • Melibatkan perancangan arsitektur sistem, basis data, antarmuka pengguna, dan komponen-komponen sistem lainnya.
  • Menghasilkan spesifikasi desain teknis yang menggambarkan bagaimana sistem akan diimplementasikan secara terperinci.
  • Menggunakan teknik seperti pemodelan struktur data, perancangan antarmuka, dan perancangan arsitektur perangkat lunak.

Secara umum, model analisis memberikan gambaran tentang apa yang harus dilakukan oleh sistem, sedangkan model desain menentukan bagaimana sistem akan dibangun secara teknis untuk memenuhi persyaratan yang telah diidentifikasi. Kedua model ini saling terkait dan merupakan tahapan penting dalam siklus pengembangan sistem informasi yang efektif.

Jelaskan output proses Desain Aplikasi?

Output dari proses desain aplikasi adalah sekumpulan dokumen yang merinci bagaimana aplikasi akan dibangun dan dioperasikan. Dokumen-dokumen ini mencakup berbagai elemen desain yang dibutuhkan untuk mengembangkan perangkat lunak yang sesuai dengan kebutuhan pengguna dan spesifikasi yang telah ditetapkan. Berikut adalah beberapa output umum dari proses desain aplikasi:

  1. Spesifikasi Desain:

    • Dokumen yang merinci desain keseluruhan aplikasi, termasuk deskripsi umum, tujuan, dan cakupan sistem.
    • Detail arsitektur sistem, termasuk komponen-komponen utama, hubungan antar komponen, dan aliran data.
    • Diagram aliran data (DFD) atau model lainnya yang menggambarkan aliran informasi dalam sistem.
    • Deskripsi kebutuhan fungsional dan non-fungsional yang harus dipenuhi oleh desain.
  2. Desain Arsitektur:

    • Diagram arsitektur sistem yang menunjukkan komponen utama, lapisan aplikasi, dan interaksi di antara mereka.
    • Rancangan sistem distribusi jika aplikasi akan diimplementasikan dalam lingkungan terdistribusi.
    • Detail tentang infrastruktur teknologi yang akan digunakan, seperti platform, database, dan alat pengembangan.
  3. Desain Antarmuka Pengguna:

    • Wireframe atau prototipe antarmuka pengguna yang menunjukkan tata letak elemen-elemen antarmuka dan aliran navigasi.
    • Desain grafis, termasuk warna, jenis huruf, ikon, dan elemen desain visual lainnya.
    • Spesifikasi interaksi pengguna, seperti animasi, efek transisi, dan perilaku responsif.
  4. Desain Database:

    • Skema database yang merinci struktur tabel, atribut, dan hubungan antar entitas.
    • Desain indeks, kunci, dan constraint database yang diperlukan untuk performa dan integritas data.
    • Model entitas-relasi (ER) atau diagram lain yang menggambarkan struktur dan hubungan dalam database.
  5. Desain Komponen dan Logika Bisnis:

    • Rancangan komponen perangkat lunak, termasuk kelas, modul, atau layanan yang akan dibuat.
    • Detail logika bisnis atau algoritma yang akan digunakan dalam aplikasi, seperti algoritma pencarian, pengolahan data, dll.
    • Diagram aktivitas, diagram urutan, atau diagram lain yang menjelaskan alur logika aplikasi.
  6. Dokumentasi Teknis:

    • Dokumentasi teknis yang merinci cara menggunakan, mengelola, dan memelihara aplikasi.
    • Petunjuk instalasi dan konfigurasi yang diperlukan untuk mengimplementasikan aplikasi.
    • Dokumentasi API (Application Programming Interface) jika aplikasi menawarkan antarmuka pemrograman untuk integrasi dengan sistem lain.
 Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)

Jawab : 

    Berikut merupakan visualisasi dari aplikasi parkir :



High Level Design (HLD)

A. Kebutuhan

  1. Kebutuhan Fungsional

    a. Manajemen Tempat Parkir:

    • Menambahkan, menghapus, dan mengubah informasi tempat parkir
    • Menentukan jenis tempat parkir (misalnya, mobil, motor, VIP)
    • Menetapkan tarif parkir untuk setiap jenis tempat parkir
    • Melacak ketersediaan tempat parkir secara real-time

    b. Manajemen Kendaraan:

    • Mendaftarkan kendaraan yang masuk dan keluar dari area parkir
    • Menerbitkan tiket parkir
    • Memproses pembayaran parkir
    • Menangani pelanggaran parkir

    c. Manajemen Pengguna:

    • Menambahkan, menghapus, dan mengubah informasi pengguna
    • Menetapkan peran dan hak akses pengguna
    • Melacak aktivitas pengguna

    d. Pelaporan:

    • Menghasilkan laporan pendapatan parkir
    • Menghasilkan laporan penggunaan parkir
    • Menghasilkan laporan pelanggaran parkir
  2. Kebutuhan Non-fungsional

    a. Keamanan:

    • Melindungi data pengguna dari akses tidak sah
    • Mencegah penipuan dan pencurian

    b. Ketersediaan:

    • Sistem harus tersedia 24/7
    • Sistem harus dapat diakses dari berbagai perangkat

    c. Skalabilitas:

    • Sistem harus dapat menangani jumlah pengguna dan kendaraan yang besar
    • Sistem harus bisa diadaptasi untuk memenuhi kebutuhan yang berubah

    d. Kinerja:

    • Sistem harus responsif dan efisien
    • Sistem harus mampu menangani beban puncak
  3. Persyaratan Tambahan

    a. Integrasi dengan Sistem Lain:

    • Sistem harus bisa diintegrasikan dengan sistem kontrol akses
    • Sistem harus bisa diintegrasikan dengan sistem pembayaran elektronik

    b. Dukungan Multi-bahasa:

    • Sistem harus mendukung beberapa bahasa

    c. Aksesibilitas:

    • Sistem harus dapat diakses oleh penyandang disabilitas

B. Asumsi Kapasitas

Untuk memperkirakan skala sistem dan kebutuhan penyimpanan, berikut adalah beberapa asumsi yang dibuat dengan fokus pada satu tempat parkir:

  • Satu tempat parkir
  • Pengguna aktif harian = 1000
  • Pengguna aktif per detik = 0,01 pengguna/detik (sekitar)
  • Rata-rata kendaraan masuk per menit = 100
  • Rata-rata kendaraan keluar per menit = 100
  • Rata-rata transaksi pembayaran per menit = 50

Estimasi Penyimpanan

Jika diasumsikan:

  • Setiap entri pengguna dalam basis data adalah 1 KB (dengan alamat, informasi profil, dll.)
  • Setiap tempat parkir memerlukan ruang penyimpanan sekitar 100 MB untuk detail tempat parkir, pengaturan tarif, dll.
  • Setiap transaksi pembayaran memerlukan sekitar 1 KB ruang penyimpanan.

Total penyimpanan yang diperlukan:

  • 1000 pengguna x 1 KB per pengguna = 1 MB
  • 1 tempat parkir x 100 MB = 100 MB
  • 100 transaksi pembayaran per menit = 144.000 transaksi per hari (sekitar)
  • 144.000 transaksi per hari x 1 KB per transaksi = 144 MB per hari

Jika data transaksi pembayaran dipertahankan selama 1 tahun:

  • 144 MB per hari x 365 hari = 52,56 GB per tahun

C. Komponen yang Diperlukan

Berikut adalah komponen penting dari sistem aplikasi parkir:

a. Antarmuka Pengguna (User Interface): Pengguna berinteraksi dengan sistem melalui aplikasi seluler, situs web, atau kios parkir.

b. Pemantauan Ketersediaan Tempat Parkir (Parking Availability Monitoring): Melacak ketersediaan tempat parkir secara real-time dan memberikan informasi kepada pengguna.

c. Layanan Pendaftaran Kendaraan (Vehicle Registration Service): Mendaftarkan kendaraan yang masuk dan keluar dari area parkir, menghasilkan tiket parkir, dan memasukkan data ke dalam basis data.

d. Sistem Pembayaran (Payment System): Memproses pembayaran parkir melalui berbagai metode pembayaran.

e. Manajemen Pelanggaran Parkir (Parking Violation Management): Mengelola pelanggaran parkir seperti parkir di tempat yang tidak sesuai atau melebihi batas waktu.

f. Layanan Administrasi (Administration Services): Memungkinkan admin untuk mengelola informasi tempat parkir, pengguna, dan aktivitas pengguna, serta membuat laporan dan analisis data.

g. Layanan Keamanan (Security Services): Melindungi data pengguna dari akses tidak sah dan mencegah penipuan atau pencurian di area parkir.

h. Integrasi Sistem (System Integration): Memungkinkan integrasi dengan sistem kontrol akses dan pembayaran elektronik untuk meningkatkan keamanan dan kenyamanan pengguna.

i. Layanan Pemantauan Kinerja (Performance Monitoring Service): Memantau kinerja sistem untuk memastikan responsif dan efisiensi, serta menangani beban puncak.

j. Layanan Pelaporan (Reporting Service): Menghasilkan laporan pendapatan parkir, penggunaan parkir, dan pelanggaran parkir untuk memberikan wawasan kepada administrator dan pemangku kepentingan lainnya.

Low Level Design (LLD)

A. Teknologi

  1. Lingkungan Pengembangan:

    • Sistem Operasi: Linux (Ubuntu) atau Windows 10/11
    • IDE (Integrated Development Environment): Visual Studio Code, IntelliJ IDEA, atau Eclipse
  2. Bahasa Pemrograman:

    Backend:

    • Java dengan framework Spring Boot atau Jakarta EE
    • Python dengan framework Django atau Flask
    • Node.js dengan framework Express.js
    • PHP dengan framework Laravel atau CodeIgniter (opsional)

    Frontend:

    • HTML, CSS, JavaScript (ES6+)
    • Framework JavaScript: React.js, Angular, atau Vue.js
  3. Basis Data:

    • MySQL atau PostgreSQL untuk basis data relasional
    • MongoDB untuk basis data NoSQL (jika diperlukan fleksibilitas skema)
  4. Server:

    • Apache HTTP Server atau Nginx untuk server web
    • Apache Tomcat atau Jetty (opsional, untuk aplikasi Java)
    • Express.js (opsional, untuk aplikasi Node.js)
  5. Framework dan Library Tambahan:

    Backend:

    • Spring Security (untuk keamanan)
    • Hibernate atau Spring Data JPA (untuk akses basis data)
    • JWT (JSON Web Tokens) untuk otentikasi API

    Frontend:

    • Redux atau Context API untuk manajemen state
    • Axios atau Fetch API untuk permintaan HTTP
    • Bootstrap, Material-UI, atau Tailwind CSS untuk desain responsif
  6. Alat Pengembangan Tambahan:

    • Git untuk kontrol versi
    • Postman atau Insomnia untuk menguji API
    • Docker untuk kontainerisasi aplikasi
    • JUnit atau TestNG untuk pengujian otomatis (Java)
    • PyTest atau unittest untuk pengujian otomatis (Python)

B. Database
 
-- Parking Spots Table
CREATE TABLE TempatParkir (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama_tempat VARCHAR(100) NOT NULL,
    jenis_tempat ENUM('mobil', 'motor', 'VIP') NOT NULL,
    tarif DECIMAL(10, 2) NOT NULL
);

-- Users Table
CREATE TABLE Pengguna (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama_pengguna VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    kata_sandi VARCHAR(100) NOT NULL,
    peran ENUM('admin', 'pengguna') NOT NULL,
    tempat_parkir_id INT,
    FOREIGN KEY (tempat_parkir_id) REFERENCES TempatParkir(id)
);

-- Vehicles Table
CREATE TABLE Kendaraan (
    id INT AUTO_INCREMENT PRIMARY KEY,
    plat_nomor VARCHAR(20) NOT NULL,
    jenis_kendaraan ENUM('mobil', 'motor') NOT NULL,
    waktu_masuk DATETIME NOT NULL,
    waktu_keluar DATETIME,
    biaya DECIMAL(10, 2),
    tempat_parkir_id INT,
    FOREIGN KEY (tempat_parkir_id) REFERENCES TempatParkir(id)
);

-- Parking Transactions Table
CREATE TABLE TransaksiParkir (
    id INT AUTO_INCREMENT PRIMARY KEY,
    waktu_transaksi DATETIME NOT NULL,
    jenis_transaksi ENUM('masuk', 'keluar') NOT NULL,
    kendaraan_id INT NOT NULL,
    FOREIGN KEY (kendaraan_id) REFERENCES Kendaraan(id)
);

-- Parking Violations Table
CREATE TABLE PelanggaranParkir (
    id INT AUTO_INCREMENT PRIMARY KEY,
    waktu_pelanggaran DATETIME NOT NULL,
    keterangan VARCHAR(255),
    kendaraan_id INT NOT NULL,
    FOREIGN KEY (kendaraan_id) REFERENCES Kendaraan(id)
);

-- User Activities Table
CREATE TABLE AktivitasPengguna (
    id INT AUTO_INCREMENT PRIMARY KEY,
    waktu_aktivitas DATETIME NOT NULL,
    aktivitas VARCHAR(255) NOT NULL,
    pengguna_id INT NOT NULL,
    FOREIGN KEY (pengguna_id) REFERENCES Pengguna(id)
);

B. Design Interface




 

 

Gambarkan Arsitektur dari Aplikasi Parkir yang akan dibangun (Studi Kasus)

Arsitektur Aplikasi Parkir

Berikut adalah arsitektur yang direncanakan untuk pembangunan aplikasi parkir:

a. Backend:

  • Menggunakan bahasa pemrograman Java dengan framework Spring Boot.
  • Menjamin keamanan melalui Spring Security.
  • Menggunakan Spring Data JPA untuk akses ke basis data.
  • API diotentikasi dengan JSON Web Tokens (JWT).

b. Web Server:

  • Sistem Operasi: Linux (Ubuntu) atau Windows 10/11.
  • Server Web: Apache HTTP.
  • Server Basis Data: MySQL.

c. Frontend:

  • Menggunakan HTML, CSS, dan JavaScript (ES6+).
  • Framework JavaScript: React.js.
  • Manajemen keadaan dilakukan dengan Redux.
  • Menggunakan Axios untuk permintaan HTTP.

d. Alat Pengembangan Tambahan:

  • Menggunakan Git untuk kontrol versi.
  • Menggunakan Postman atau Insomnia untuk pengujian API.
  • Menggunakan Docker untuk kontainerisasi.
  • Pengujian otomatis menggunakan JUnit untuk backend dan React Testing Library untuk frontend (opsional).

 


 


 



Komentar

Postingan populer dari blog ini

EAS PPL

Tugas 7 : Komponen Desain Sistem