ETS PPL

Nama : Frederick Yonatan Susanto

NRP : 5025211121

Kelas : PPL A

Tahun Ajaran : 2023/2024 (Genap)

Link Youtube : https://youtu.be/M9D_LwW6BZg

Pada pertemuan kesembilan di kelas PPL A, kita ETS PPL, dengan soal dan jawaban sebagai berikut:

1. Apakah perbedaan model analysis dengan model desain?

    Model analisis dan model desain adalah dua tahap yang berbeda dalam pengembangan sistem atau aplikasi. - Model Analisis: Tahap analisis berkaitan dengan memahami masalah atau kebutuhan yang harus diselesaikan oleh sistem atau aplikasi. Pada tahap ini, fokus utamanya adalah mengidentifikasi persyaratan fungsional dan non-fungsional, serta menganalisis bagaimana sistem atau aplikasi tersebut akan berinteraksi dengan pengguna dan komponen lainnya. Model analisis biasanya mencakup pemodelan proses bisnis, diagram alur data, diagram use case, dan spesifikasi persyaratan. - Model Desain: Setelah persyaratan dianalisis, tahap desain bertujuan untuk merencanakan bagaimana persyaratan tersebut akan diimplementasikan dalam bentuk sistem atau aplikasi yang sesungguhnya. Ini melibatkan pemilihan struktur sistem, rancangan database, perancangan antarmuka pengguna, dan pemilihan teknologi yang akan digunakan untuk mengembangkan solusi. Model desain menghasilkan rancangan teknis yang mendetail yang akan menjadi dasar untuk pengembangan selanjutnya. 2. Jelaskan output proses Desain Aplikasi?

    Output dari proses desain aplikasi dapat berupa beberapa hal, antara lain: - Rancangan Arsitektur: Ini adalah gambaran umum tentang struktur keseluruhan dari aplikasi, termasuk komponen-komponen utama, bagaimana mereka berinteraksi satu sama lain, dan bagaimana data mengalir di antara mereka. - Rancangan Antar Muka Pengguna (UI): Ini mencakup tata letak, desain visual, dan navigasi dari aplikasi. Hal ini menentukan bagaimana pengguna akan berinteraksi dengan aplikasi dan bagaimana aplikasi akan merespons input pengguna. - Rancangan Basis Data: Ini adalah desain struktur database yang akan digunakan oleh aplikasi, termasuk tabel, relasi antar tabel, dan skema basis data. - Spesifikasi Teknis: Ini mencakup pemilihan teknologi dan alat yang akan digunakan untuk mengembangkan aplikasi, serta spesifikasi teknis lainnya seperti bahasa pemrograman yang akan digunakan, framework, dan library yang diperlukan. - Rancangan Algoritma dan Logika Bisnis: Ini merinci bagaimana proses bisnis atau logika aplikasi akan diimplementasikan dalam bentuk kode, termasuk algoritma yang akan digunakan dan logika pengolahan data. - Dokumentasi Desain: Ini mencakup dokumen yang merinci semua aspek dari desain aplikasi, termasuk diagram, sketsa, dan penjelasan yang diperlukan untuk memahami desain secara keseluruhan.


3. Visualisasikan Deskripsi dari aplikasi parkir berikut (Studi Kasus)



Gambar 1.  Diagram Alir software

Gambar 1 menjelaskan rancangan alur dari aplikasi web yang dibuat, mulai dari halaman login dan halaman utama, dimana halaman utama berisi beberapa menu seperti menu laporan, master data, dan pengaturan. Semua data yang terbuat disimpan pada database, dan database yang digunakan adalah PostgreSQL. PostgreSQL merupakan database management system yang dapat berjalan pada sistem operasi yang paling modern termasuk Windows, MAC, dan Linux.

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


HLD


A. PROBLEM STATEMENT

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


B. FUNCTIONAL REQUIREMENTS

  • 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


C. NON-FUNCTIONAL REQUIREMENTS

  • 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

ADDITIONAL REQUIREMENTS

  • 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


D. CAPACITY ASSUMPSITIONS

Untuk memperkirakan skala sistem dan mendapatkan gambaran tentang kebutuhan penyimpanan, perlu dibuat
beberapa asumsi tentang data yang disimpan dan lalu lintas (traffic).

Berikut adalah beberapa asumsi untuk desain yang diberikan, 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 secara rata-rata:
  • Setiap entri pengguna dalam basis data adalah 1 KB (dengan alamat, informasi profil, dll.)
  • Setiap tempat parkir memerlukan ruang penyimpanan yang minimal, misalnya 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
Dengan asumsi kita mempertahankan data transaksi pembayaran selama 1 tahun:
  • 144 MB per hari x 365 hari = 52,56 GB per tahun


E. ARSITEKTUR SISTEM


Gambar 2. Waterfall Development Model

Berdasarkan Gambar 1. Metode Waterfall Development Model perancangan software dimulai dari Analisa kebutuhan, kemudian desain sistem, penulisan kode program (coding), pengujian, dan penerapan serta pemeliharaan program.



Gambar 3. Komunikasi dengan mikrokontroller pada saat masuk

Gambar 3 menjelaskan diagram alur integrasi aplikasi server dengan mikrokontroller pada saat memasuki parkiran untuk validasi data. Komunikasi yang digunakan adalah HTTP, yaitu sebuah protokol komunikasi yang akan digunakan dalam WWW (World Wide Web) antar komputer yang saling terhubung dalam jaringan internet [19], [20]. Dimulai dari mikrokontroller yang melakukan pemindaian barcode lalu Mikrokontroller akan megirimkan hasil pembacaan barcode ke server, dengan métode HTTP Request GET pada endpoint API yang telah disediakan. setelah itu server akan mencari data kendaraan sesuai dengan yang direquest. Kemudian server akan mengirimkan kembali ke mikrokontroller hasil dari pencarian data tersebut. Jika data tidak ditemukan maka akan kembali ke pembacaan barcode. Jika data ditemukan maka mikrokontroler akan membuat data laporan kendaraan masuk parkiran pada server.



Gambar 4. Komunikasi dengan mikrokontroller pada saat keluar

Gambar 4 menjelaskan diagram alir integrasi aplikasi server dengan mikrokontroller pada saat keluar parkiran untuk validasi data hasil pembacaan barcode scanner dan sensor fingerprint. Mula-mula Mikrokontroller akan megirimkan hasil pembacaan barcode ke server, setelah itu server akan mencari data kendaraan yang nomor mesinnya sama dengan hasil pembacaan barcode. Kemudian server akan mengirimkan kembali ke mikrokontroller hasil dari pencarian data tersebut. Jika data tidak ditemukan maka akan kembali ke pembacaan barcode. Jika data ditemukan maka akan masuk validasi selanjutnya yaitu pembacaan sidik jari. Hasil pembacaan sidik jari dikirimkan ke server untuk dicek apakah cocok atau tidak dengan barcode sebelumnya di scan. Jika tidak, maka mikrokontroller akan kembali melakukan pembacaan sidik jari. Jika hasilnya cocok, maka mikrokontroler akan membuat data laporan kendaraan keluar parkiran pada server.


F. TECHNOLOGY

1. Lingkungan Pengembangan
  • Sistem operasi: Linux (Ubuntu), Windows
  • Perangkat Pengembangan Terpadu (IDE): Visual Studio Code, IntelliJ IDEA
2. Bahasa Pemrograman

      a. Bagian Belakang (Back-End)
  • Java menggunakan kerangka Spring Boot atau Jakarta EE (untuk aplikasi yang menggunakan Java)
  • Python dengan kerangka Django atau Flask (untuk aplikasi yang menggunakan Python)
  • Node.js menggunakan kerangka Express.js (untuk aplikasi yang menggunakan JavaScript)
  • PHP dengan kerangka Laravel atau CodeIgniter (pilihan, bergantung pada preferensi)
      b. Bagian Depan (Front-End)
  • HTML, CSS, JavaScript
  • Kerangka JavaScript: React.js, Angular, Vue.js
3. Basis Data
  • MySQL atau PostgreSQL untuk basis data relasional
  • MongoDB untuk basis data NoSQL (jika fleksibilitas skema diperlukan)
4. Server
  • Apache HTTP Server atau Nginx untuk server web
  • Apache Tomcat atau Jetty (opsional, untuk aplikasi yang menggunakan Java)
  • Express.js (opsional, untuk aplikasi yang menggunakan Node.js)


LLD 

A. COMPONENT

Inilah komponen-komponen yang diperlukan dari sistem aplikasi parkir:

a. Interface Pengguna (User Interface): Pengguna berinteraksi dengan platform melalui aplikasi mobile, situs web, atau kios parkir.

b. Monitoring Ketersediaan Tempat Parkir (Parking Availability Monitoring): Layanan ini memantau ketersediaan tempat parkir secara real-time dan memberikan informasi kepada pengguna tentang slot parkir yang tersedia di area yang mereka inginkan.

c. Layanan Registrasi Kendaraan (Vehicle Registration Service): Bertugas mendaftarkan kendaraan yang masuk dan keluar dari area parkir, mencetak tiket parkir, dan menyimpan data ke dalam database.

d. Sistem Pembayaran (Payment System): Layanan ini mengelola pembayaran parkir dari pengguna, termasuk pembayaran tunai, kartu kredit, atau metode pembayaran digital lainnya.

e. Manajemen Pelanggaran Parkir (Parking Violation Management): Mengurus pelanggaran parkir seperti kendaraan yang berada di tempat yang tidak diizinkan atau melewati batas waktu parkir yang ditetapkan.

f. Layanan Administratif (Administration Services): Memungkinkan administrator untuk mengelola informasi tentang tempat parkir, pengguna, dan aktivitas pengguna, termasuk pembuatan laporan dan analisis data.

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

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

i. Layanan Monitoring Kinerja (Performance Monitoring Service): Memantau kinerja sistem secara keseluruhan untuk memastikan responsif dan efisiennya sistem, serta mengidentifikasi dan menangani puncak beban.

j. Layanan Pelaporan (Reporting Service): Menghasilkan laporan tentang pendapatan parkir, penggunaan tempat parkir, dan pelanggaran parkir untuk memberikan wawasan kepada administrator dan pihak terkait lainnya.


B. ALGORITHM

Gambar 5. Flow of Diagram Sistem parkir

Proses parkir dimulai dari pengendara melihat informasi kuota parkir, jika masih tersedia maka pengendara bisa parkir kendaraannya. Namun jika tidak tersedia maka harus menunggu sampai kuota parkir tersedia kembali atau tidak jadi parkir. Kemudian saat akan meninggalkan area parkir, pengendara harus memvalidasi data kendaraan (barcode) dan data pemilik kendaraan (fingerprint). Proses pemindaian dilakukan sebanyak dua kali, yaitu pada saat masuk, pengendara harus memindai barcode untuk membuka palang pintu. Kemudian pada saat pengendara akan keluar, pengendara harus memindai barcode dan fingerprint. Pemindaian barcode berfungsi untuk memverifikasi kendaraannya.



                                                 Gambar 6. Class Diagram Sistem Parkir


D. IMPLEMENTATION

1. Registrasi Pengguna

Endpoint:
POST /api/users/register

Permintaan:
```json
{
    "nama_pengguna": "username",
    "kata_sandi": "password",
    "email": "user@example.com",
    "alamat": "123 Jalan Utama, Kota",
    "telepon": "+1234567890"
}
```

Respon:
```json
{
    "pesan": "Pendaftaran pengguna berhasil",
    "id_pengguna": "12345",
    "token": "token_autentikasi"
}
```

2. Masuk Pengguna

Endpoint:
POST /api/users/login

Permintaan:
```json
{
    "nama_pengguna": "username",
    "kata_sandi": "password"
}
```

Respon:
```json
{
    "pesan": "Login berhasil",
    "id_pengguna": "12345",
    "token": "token_autentikasi"
}
```

3. Pencarian Tempat Parkir

Endpoint:
GET /api/parking/search?lokasi=Kota&ketersediaan=Tersedia&tipe=mobil

Respon:
```json
[
    {
        "id_parkir": "abc123",
        "lokasi": "123 Jalan Utama, Kota",
        "tipe": "mobil",
        "ketersediaan": true
    },
    {
        "id_parkir": "def456",
        "lokasi": "456 Jalan Elm, Kota",
        "tipe": "mobil",
        "ketersediaan": false
    }
]
```

4. Reservasi Tempat Parkir

Endpoint:
POST /api/parking/reserve

Permintaan:
```json
{
    "id_pengguna": "12345",
    "id_parkir": "abc123",
    "durasi": "2 jam"
}
```

Respon:
```json
{
    "pesan": "Tempat parkir berhasil dipesan",
    "id_reservasi": "res123",
    "id_parkir": "abc123"
}
```

5. Pembayaran Parkir

Endpoint:
POST /api/parking/pay

Permintaan:
```json
{
    "id_reservasi": "res123",
    "jumlah": 10.50,
    "metode_pembayaran": "kartu_kredit"
}
```

Respon:
```json
{
    "pesan": "Pembayaran berhasil",
    "id_reservasi": "res123",
    "jumlah": 10.50
}
```

E. USER INTERFACE


Gambar 7. Monitoring Sistem Parkir via mobile

Pada aplikasi mobile menampilkan Informasi jumlah kendaraan parkir dan sisa slot parkir yang sama dengan data rekapitulasi pada halaman monitoring di website. 


Gambar 8. Halaman Monitoring (Public)

Gambar 8 merupakan halaman monitoring data keluarmasuk kendaraan per hari beserta jumlah rekapitulasinya. Halaman ini bisa diakses publik


Gambar 9.  Halaman Laporan (role Admin)

Gambar 9 merupakan halaman yang menampilkan semua data laporan keluar-masuk kendaraan, Menumenu utamanya berada di navbar, diantarannya yaitu Master Data yang berisikan Data Kendaraan, Data Pemilik Kendaraan dan Data Sidik Jadi. Pada menu pengaturan merupakan halaman untuk mengatur kapasitas maksimum area parkir. Halaman ini beserta menu-menu nya hanya bisa diakses oleh admin 


Gambar 10. Notifikasi pada aplikasi mobile

Pada gambar 10, diperlihatkan bahwa terdapat notifikasi parkiran sudah penuh. Oleh karena itu, pada saat kondisi parkiran sudah penuh, satpam atau petugas bisa menutup pintu masuk parkir agar tidak terjadi overload. 


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


Gambar 10. Arsitektur Sistem Parkir

6. Dokumentasikan dan Demokan dalam Video Youtube dari rancangan aplikasi yang telah dibangun


Link Youtube : https://youtu.be/M9D_LwW6BZg




Comments

Popular posts from this blog

Tugas Pertemuan 7 PPL

Tugas Pertemuan 6 PPL