Nama:    Arif Nugraha Santosa

NRP:    5025211048

Kelas:    Perancangan Perangkat Lunak (A)


ETS PPL A


1. Apakah perbedaan model analysis dengan model desain?

Model Analisis

  • Fokus: Memahami kebutuhan dan permasalahan yang akan diatasi oleh perangkat lunak.
  • Tujuan: Menghasilkan spesifikasi perangkat lunak yang jelas dan lengkap, yang mencakup:
    • Kebutuhan fungsional: Apa yang harus dilakukan perangkat lunak?
    • Kebutuhan non-fungsional: Bagaimana perangkat lunak harus berperilaku? (misalnya: performa, keamanan, usability)
    • Batasan dan asumsi: Apa saja batasan dan asumsi yang mendasari desain perangkat lunak?
  • Aktivitas utama:
    • Pengumpulan dan analisis kebutuhan: Memahami kebutuhan pengguna dan pemangku kepentingan lainnya.
    • Pemodelan proses bisnis: Menentukan bagaimana proses bisnis akan dijalankan oleh perangkat lunak.
    • Pemodelan data: Menentukan data apa yang dibutuhkan oleh perangkat lunak dan bagaimana data tersebut akan disimpan dan dimanipulasi.

Model Desain

  • Fokus: Menerjemahkan spesifikasi perangkat lunak ke dalam solusi teknis yang konkret.
  • Tujuan: Menghasilkan arsitektur perangkat lunak yang detail dan terdokumentasi dengan baik, yang mencakup:
    • Komponen perangkat lunak: Apa saja komponen utama dari perangkat lunak?
    • Antarmuka: Bagaimana komponen-komponen tersebut akan berinteraksi satu sama lain?
    • Teknologi: Teknologi apa yang akan digunakan untuk membangun perangkat lunak?
  • Aktivitas utama:
    • Desain arsitektur: Menentukan struktur keseluruhan dari perangkat lunak.
    • Desain detail: Merancang setiap komponen perangkat lunak secara detail.
    • Pemilihan teknologi: Memilih teknologi yang tepat untuk membangun perangkat lunak.

PERBEDAAN UTAMA

AspekModel AnalisisModel Desain
FokusKebutuhan dan permasalahanSolusi teknis
TujuanSpesifikasi perangkat lunakArsitektur perangkat lunak
Aktivitas utamaPengumpulan kebutuhan, pemodelan proses bisnis, pemodelan dataDesain arsitektur, desain detail, pemilihan teknologi
HasilDokumen spesifikasi perangkat lunakDokumen arsitektur perangkat lunak

Model analisis dan model desain saling berkaitan erat. Model analisis memberikan dasar bagi model desain, dan model desain menerjemahkan spesifikasi perangkat lunak ke dalam solusi teknis yang konkret. Dengan pemahaman yang baik tentang kedua model ini, pengembang perangkat lunak dapat merancang perangkat lunak yang memenuhi kebutuhan pengguna dan pemangku kepentingan lainnya.

2. Jelaskan output proses Desain Aplikasi?

Proses desain aplikasi menghasilkan berbagai output penting untuk pengembangan aplikasi yang sukses. Dokumen Spesifikasi Desain (DSD) menjelaskan semua aspek aplikasi, termasuk tujuan, fungsionalitas, arsitektur, UI, basis data, dan persyaratan teknis. Prototipe memungkinkan pengguna untuk berinteraksi dan memberikan umpan balik, membantu memvalidasi desain dan mengidentifikasi masalah. Dokumentasi Desain mencakup diagram alir data, diagram arsitektur, panduan gaya UI, dan dokumentasi API. Rencana Implementasi menguraikan jadwal, sumber daya, anggaran, strategi pengujian, dan strategi peluncuran. Output ini membantu memastikan desain yang komprehensif, terdokumentasi dengan baik, dan mudah dikomunikasikan.

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

3. Visualisasikan Deskripsi dari apclikasi parkir berikut



4. Buat HLD dan LLD dari rancangan desain aplikasi parkir (Studi Kasus)

High Level Design:

1. Arsitektur Sistem

  • Arsitektur Client-Server:
    • Server:
      • Menyimpan data aplikasi, seperti informasi tempat parkir, kendaraan, pengguna, dan transaksi.
      • Memproses logika bisnis, seperti manajemen tempat parkir, manajemen kendaraan, manajemen pengguna, dan pelaporan.
      • Menyediakan API untuk client untuk berinteraksi dengan data dan logika bisnis.
    • Client:
      • Menampilkan antarmuka pengguna (UI) kepada pengguna.
      • Berkomunikasi dengan server melalui API untuk mengambil data, mengirimkan permintaan, dan menerima respons.
      • Client dapat berupa aplikasi web, aplikasi mobile, atau machine-to-machine (M2M) app.

2. Teknologi

  • Bahasa Pemrograman: Python, Java, atau C#
  • Framework: Django, Spring Boot, atau ASP.NET
  • Basis Data: PostgreSQL, MySQL, atau Oracle
  • Cloud Platform: AWS, Azure, atau GCP
  • Teknologi Lainnya:
    • WebSocket untuk komunikasi real-time antara client dan server.
    • Mobile SDK untuk pengembangan aplikasi mobile.
    • Sistem pembayaran elektronik untuk integrasi dengan penyedia pembayaran.

3. Desain Antarmuka Pengguna (UI)

  • UI yang mudah digunakan dan intuitif:
    • Desain yang bersih dan modern.
    • Navigasi yang mudah.
    • Ikon dan tombol yang jelas.
    • Teks yang mudah dibaca.
  • UI yang responsif dan dapat diakses:
    • Bekerja dengan baik di berbagai perangkat, seperti desktop, tablet, dan smartphone.
    • Dapat diakses oleh penyandang disabilitas.
  • UI yang mendukung multi-bahasa:
    • Mendukung beberapa bahasa untuk mengakomodasi pengguna dari berbagai negara.

4. Keamanan

  • Autentikasi dan otorisasi:
    • Pengguna harus masuk dengan nama pengguna dan kata sandi yang aman.
    • Pengguna hanya boleh mengakses data dan fungsionalitas yang diizinkan berdasarkan peran mereka.
  • Enkripsi:
    • Data yang sedang transit dan data yang disimpan harus dienkripsi.
  • Pemantauan keamanan:
    • Sistem harus secara teratur dipantau untuk mendeteksi dan mencegah pelanggaran keamanan.

5. Skalabilitas

  • Sistem harus dapat menampung jumlah pengguna dan kendaraan yang besar.
  • Sistem harus dapat diubah untuk memenuhi kebutuhan yang berubah.
  • Arsitektur serverless atau microservices dapat digunakan untuk meningkatkan skalabilitas.

6. Kinerja

  • Sistem harus responsif dan efisien.
  • Sistem harus dapat menangani beban puncak.
  • Teknologi caching dan load balancing dapat digunakan untuk meningkatkan kinerja.

7. Pengujian

  • Sistem akan diuji secara menyeluruh untuk memastikan bahwa memenuhi semua persyaratan.
  • Pengujian akan mencakup pengujian unit, pengujian integrasi, pengujian sistem, dan pengujian penerimaan pengguna.

8. Implementasi

  • Pengembangan berulang:
    • Sistem akan dikembangkan secara berulang.
    • Setiap iterasi akan fokus pada pengembangan satu set fitur tertentu.
    • Pengujian akan dilakukan setelah setiap iterasi.
  • Metodologi pengembangan agile:
    • Metodologi pengembangan agile, seperti Scrum atau Kanban, dapat digunakan untuk meningkatkan fleksibilitas dan kolaborasi.

9. Pemantauan dan Logging

  • Sistem harus dimonitor secara real-time untuk mendeteksi dan menyelesaikan masalah.
  • Log harus disimpan untuk tujuan debugging dan auditing.

10. Dokumentasi

  • Dokumentasi yang komprehensif harus dibuat untuk semua aspek sistem.
    • Dokumentasi harus mencakup:
      • Arsitektur sistem.
      • Desain UI.
      • Kode sumber.
      • Instruksi manual.
      • Dokumentasi API.

Kesimpulan

High-level design ini memberikan gambaran menyeluruh tentang arsitektur, teknologi, UI, keamanan, skalabilitas, kinerja, pengujian, implementasi, pemantauan, logging, dan dokumentasi aplikasi parkir. Desain ini dapat digunakan sebagai panduan untuk pengembangan aplikasi yang komprehensif, mudah digunakan, aman, dan skalabel.


Low Level Design:


Protokol Komunikasi

  • Aplikasi klien (aplikasi web, aplikasi seluler) dapat berkomunikasi dengan server menggunakan API RESTful.
  • API harus ditentukan untuk fungsionalitas seperti:
    • Menampilkan daftar tempat parkir yang tersedia.
    • Memesan tempat parkir.
    • Memproses pembayaran (berpotensi terintegrasi dengan API gateway pembayaran).
    • Mengambil riwayat parkir.

Pertimbangan Keamanan

  • Implemenkan autentikasi dan otorisasi pengguna untuk membatasi akses ke data sensitif dan fungsionalitas.

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

Arsitektur Client-Server:

  • Aplikasi Client:

    • Dapat berupa aplikasi web yang diakses melalui browser, aplikasi mobile native untuk Android atau iOS, atau mesin-ke-mesin (M2M) app untuk perangkat IoT seperti sensor parkir.
    • Bertanggung jawab untuk:
      • Menampilkan antarmuka pengguna (UI) kepada pengguna.
      • Mengirim permintaan ke server API untuk mengambil data, mengirimkan permintaan, dan menerima respons.
      • Menangani interaksi pengguna, seperti login, pencarian tempat parkir, pemesanan, dan pembayaran.
  • Server Aplikasi:

    • Dapat diimplementasikan menggunakan berbagai teknologi server seperti Java, Python, atau Node.js.
    • Bertanggung jawab untuk:
      • Menyimpan data aplikasi, seperti informasi tempat parkir, kendaraan, pengguna, dan transaksi.
      • Memproses logika bisnis, seperti manajemen tempat parkir, manajemen kendaraan, manajemen pengguna, dan pelaporan.
      • Menyediakan API untuk client untuk berinteraksi dengan data dan logika bisnis.

Komponen Utama:

  • Modul Manajemen Tempat Parkir:

    • Mengelola informasi tempat parkir, seperti lokasi, jenis, kapasitas, dan ketersediaan.
    • Memproses permintaan untuk mencari tempat parkir yang tersedia berdasarkan kriteria pengguna.
    • Memperbarui informasi ketersediaan tempat parkir secara real-time.
  • Modul Manajemen Kendaraan:

    • Mengelola informasi kendaraan, seperti plat nomor, jenis, dan waktu masuk/keluar.
    • Memproses permintaan untuk memesan tempat parkir dan menerbitkan karcis parkir.
    • Menangani pembayaran parkir dan mengintegrasikan dengan sistem pembayaran elektronik.
  • Modul Manajemen Pengguna:

    • Mengelola informasi pengguna, seperti nama, email, dan kata sandi.
    • Memproses pendaftaran dan autentikasi pengguna.
    • Memberikan akses ke fungsionalitas aplikasi berdasarkan peran pengguna.
  • Modul Pelaporan:

    • Menghasilkan laporan tentang penggunaan tempat parkir, pendapatan parkir, dan pelanggaran parkir.
    • Menyediakan data untuk analisis dan pengambilan keputusan.

Integrasi Sistem:

  • Sistem Kontrol Akses:

    • Aplikasi parkir dapat diintegrasikan dengan sistem kontrol akses untuk memungkinkan pengguna membuka pintu gerbang dan lift dengan kartu parkir mereka.
  • Sistem Pembayaran Elektronik:

    • Aplikasi parkir dapat diintegrasikan dengan sistem pembayaran elektronik untuk memungkinkan pengguna membayar parkir dengan dompet digital.

Pertimbangan Skalabilitas:

  • Arsitektur serverless atau microservices:

    • Arsitektur serverless atau microservices dapat digunakan untuk meningkatkan skalabilitas aplikasi dengan memungkinkan penambahan sumber daya secara horizontal sesuai kebutuhan.
  • Caching:

    • Caching dapat digunakan untuk menyimpan data yang sering diakses, seperti informasi tempat parkir yang tersedia, untuk mengurangi beban pada database dan meningkatkan waktu respons.
  • Load balancing:

    • Load balancing dapat digunakan untuk mendistribusikan lalu lintas antar beberapa server aplikasi untuk meningkatkan kinerja dan ketersediaan.

Keamanan:

  • Autentikasi dan otorisasi:

    • Pengguna harus masuk dengan nama pengguna dan kata sandi yang aman.
    • Pengguna hanya boleh mengakses data dan fungsionalitas yang diizinkan berdasarkan peran mereka.
  • Enkripsi:

    • Data yang sedang transit dan data yang disimpan harus dienkripsi.
  • Pemantauan keamanan:

    • Sistem harus secara teratur dipantau untuk mendeteksi dan mencegah pelanggaran keamanan.

Pemantauan dan Logging:

  • Pemantauan sistem:

    • Sistem harus dimonitor secara real-time untuk mendeteksi dan menyelesaikan masalah.
  • Logging:

    • Log harus disimpan untuk tujuan debugging dan auditing.



6. Dokumentasi dan Demo

Nama:    Arif Nugraha Santosa

NRP:    5025211048

Kelas:    Perancangan Perangkat Lunak (A)

Tugas Pertemuan 2 PPL - Identifikasi Proses PPL

Setelah melaksanakan pertemuan kedua pada kelas PPL A. Mahasiswa diminta untuk mengidentifikasi proses perancangan perangkat lunak dengan jurnal/dokumen perancangan perangkat lunak sebagai referensi.

Referensi

Saya mengambil referensi dari sebuah jurnal DPPL berjudul "Perancangan Sistem Informasi Pengelolaan Dana Masjid Berbasis Web Menggunakan Unified Modeling Language (UML)" yang dapat diakses melalui link berikut
Link dokumen referensi: click me

Identifikasi Proses PPL

Desain Arsitektur

Use case diagram adalah diagram yang menggambarkan hubungan antara aktor dengan sistem. Use case diagram mendeskripsikan interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Use case diagram juga. Pada gambar di atas menunjukkan Use case diagram pada sistem yang di rancang. Pada sistem terdapat 2 (dua) aktor utama yaitu admin dan user. Dalam sistem yang dirancang, admin dapat melakukan login, logout, mengelolah data masjid, mengelolah informasi dan mengelolah laporan dana kas masjid. Sedangkan user dalam sistem ini hanya dapat melihat informasi yang tercantum dalam website serta dapat mengunduh laporan dana keuangan kas masjid. 

Berikut adalah activity diagram dari Sistem Informasi Pengelolaan Dana Masjid Al-Istiqomah Muaro Jambi, yang terdiri dari activity diagram mengelola informasi dan activity diagram mengelola laporan dana kas.

Pada gambar di atas, admin dapat mengelolah informasi dengan memilih menu kegiatan untuk menambahkan informasi umum ataupun menu keuangan untuk menambahkan data kas yang telah masuk dari para donatur yang telah menyumbang. Sistem akan melakukan pengecekan dan verifikasi data yang telah ditambahkan. Apabila data sudah benar, maka system akan menyimpan ke dalam database, apabila data tidak sesuai, maka admin akan kembali melakukan pengolahan informasi.

Pada gambar di atas, setelah admin melakukan pengimputan data, system akan melakukan pengolahan dan pencetakan laporan, admin dapat menampilkan laporan dan mencetak laporan secara keseluruhan. 

Desain Interface

Halaman Home pada Website Sistem Informasi Pengelolaan Dana Masjid berisi tentang informasi seputar masjid Al-istiqomah seperti profil, kesekretariatan dan keuangan.

Halaman keuangan berisi tentang informasi donasi yang terdiri dari informasi donasi yatim piatu, donasi sarana prasarana, donasi Ramadhan dan donasi kegiatan Masjid.

Halaman laporan berisi tentang laporan setiap bulan dari keuangan masjid Al-Istiqomah yang dapat di lihat dan di download oleh user dan admin.

Desain Data

Class diagram merupakan hubungan antar kelas dan penjelasan detail tiap-tiap kelas di dalam model desain dari suatu system, juga memperlihatkan aturan-aturan dan tanggung jawab entitas yang menentukan perilaku system

Desain Algoritma

Jurnal referensi tidak memberikan flowchart mengenai algoritma penerapan setiap usecasenya.