Pertemuan 13 KPPL (E) - 20/11/2024

 Kelompok 7 KPPL E

Nama (NRP): 

  1. Amelia Nova Safitri        (5025231041)
  2. Tarisha Falah Basuki       (5025231043)

Tugas Pertemuan 13

Latihan :

  1. Berdasarkan SRS dan Use Case Smart Home pada minggu lalu buatlah Analysis Modelnya.
  2. Analysis Model, Use Case Diagram, Activity Diagram, dan Class Diagram
  3. Lengkapi Analysis Model yang dibuat dengan Behavioral Element.
  4. Pengerjaan bisa secara kelompok, maksimal 2

Jawaban:

Analysis Model untuk studi kasus Smart Home pada minggu lalu 


Analysis model ini mencakup tiga bagian utama:
1. Use Case Diagram
2. Activity Diagram
3. Class Diagram
4. Behavioral Element

1. Use Case Diagram


2. Activity Diagram

Activity Diagram untuk proses "Pemberitahuan Pergerakan pada objek yang ditangkap oleh CCTV"

@startuml
|#LightBlue|Kamera CCTV|
start
: Memantau Area Rumah;
: Mendeteksi Gerakan;

|#LightGreen|Sistem Smart Home|
if (Gerakan Terdeteksi?) then (Ya)
    : Analisis Tipe Gerakan;
    if (Gerakan Mencurigakan?) then (Ya)
        : Rekam Video;
        : Aktifkan Mode Siaga;
    else (Tidak)
        : Lakukan Verifikasi Ringan;
    endif

    : Kirim Notifikasi ke Smartphone;

|#AntiqueWhite|Smartphone Pengguna|
    : Tampilkan "Camera Alert";
    : Putar Notifikasi;
    
    if (Pengguna Merespons?) then (Ya)
        : Buka Aplikasi;
        : Lihat Rekaman Kamera;
        : Tentukan Tindakan;
        if (Tindakan?) then (Panggil Keamanan)
            : Hubungi Keamanan;
        else (Abaikan)
            : Kembali ke Mode Normal;
        endif
    else (Tidak)
        : Simpan Log Kejadian;
    endif
endif

stop
@enduml

Alur Utama:
  1. Kamera CCTV secara terus-menerus memantau area rumah
  2. Ketika gerakan terdeteksi, sistem melakukan analisis
  3. Sistem memutuskan apakah gerakan tersebut mencurigakan
  4. Jika ya, sistem merekam video dan mengaktifkan mode siaga
  5. Mengirim notifikasi "Camera Alert" ke smartphone pengguna
  6. Pengguna dapat memilih untuk:
    • Melihat rekaman
    • Memanggil keamanan
    • Mengabaikan notifikasi
Kondisi Kritis:
  1. Deteksi gerakan otomatis
  2. Penilaian tingkat ancaman
  3. Notifikasi instan
  4. Opsi respons pengguna


3. Class Diagram

Class diagram ini menampilkan kelas utama dalam aplikasi Smart Home dan hubungannya

@startuml
class User {
    - userId: String
    - name: String
    - userType: UserType
    + authenticateUser()
    + controlDevice()
}

enum UserType {
    ADMIN
    REGULAR
}

class SmartHomeSystem {
    - systemName: String
    + processVoiceCommand()
    + processAppCommand()
    + validateAuthorization()
}

abstract class SmartDevice {
    - deviceId: String
    - deviceName: String
    - connectionStatus: Boolean
    + turnOn()
    + turnOff()
    + getStatus()
}

class Light {
    - brightness: int
    + adjustBrightness()
}

class CoffeeMachine {
    - brewingStatus: Boolean
    + startBrewing()
    + stopBrewing()
}

class SecuritySystem {
    - alarmStatus: Boolean
    - cameraStatus: Boolean
    + armAlarm()
    + disarmAlarm()
    + detectMovement()
}

class WeatherService {
    + getCurrentWeather()
    + getDailyForecast()
}

class NotificationService {
    + sendDeviceNotification()
    + sendSecurityAlert()
    + sendPackageDeliveryNotification()
}

class GoogleAssistantIntegration {
    + processVoiceCommand()
    + connectToSmartDevices()
}

User "1" -- "1..*" Perangkat: mengontrol
  • Seorang pengguna dapat mengontrol satu atau lebih perangkat pintar.
User "1" -- "1..*" Sensor: memantau
  • Seorang pengguna dapat memantau status dari satu atau lebih sensor.
User "1" -- "0..*" Notifikasi: menerima
  • Seorang pengguna dapat menerima nol atau lebih notifikasi dari sistem.
User "1" -- "1..*" LogAktivitas: memiliki
  • Seorang pengguna dapat memiliki satu atau lebih log aktivitas.
AdministratorSistem "1" -- "0..*" User: mengelola
  • Seorang administrator sistem dapat mengelola nol atau lebih pengguna.

Penjelasan:
  1. User: Representasi dari pengguna rumah yang dapat login, logout, dan menggunakan sistem untuk mengontrol perangkat. Pengguna juga bisa mendapatkan notifikasi dan melihat log aktivitas.
  2. AdministratorSistem: Bertugas mengelola data pengguna dan melakukan pemeliharaan sistem secara keseluruhan, termasuk menambah atau menghapus pengguna.
  3. Perangkat: Objek rumah pintar seperti lampu, kunci pintu, atau mesin kopi, yang dapat dihidupkan, dimatikan, atau dikontrol fungsinya oleh pengguna.
  4. Sensor: Digunakan untuk mendeteksi situasi tertentu, seperti keberadaan gerakan, asap, atau perubahan suhu, dan memberikan informasi tersebut kepada pengguna.
  5. Notifikasi: Memberikan pemberitahuan kepada pengguna terkait aktivitas di rumah pintar, seperti alarm yang berbunyi atau perangkat yang dinyalakan/dimatikan.
  6. LogAktivitas: Menyimpan catatan aktivitas yang dilakukan oleh pengguna, seperti perangkat yang dinyalakan atau dimatikan, serta interaksi dengan sistem.


4. Behavioral Element

A. Pola Komunikasi (Communication Patterns)

  1. Event-Driven Communication
    • Sistem merespons peristiwa secara real-time
    • Contoh: Deteksi gerakan → Notifikasi instan
    • Menggunakan mekanisme publish-subscribe
  2. Komunikasi Antar Komponen
    • Protokol komunikasi: WiFi, Bluetooth Low Energy (BLE), MQTT untuk pesan ringan
    • Enkripsi end-to-end untuk keamanan data

B. Alur Kendali (Control Flow)

  1. Manajemen Kondisi
    • State Machine untuk setiap perangkat
    • Transisi status perangkat yang jelas
    • Contoh state Light: OFF, ON, DIMMING
  2. Aturan Eksekusi Perintah

           ```

           if (user_authorization == valid):

               if (device_connected == true):

                   execute_command()

               else:

                   send_connection_error()

           else:

               deny_access()

           ```

C. Manajemen Status (State Management)

  1. Device State Tracking
    • Rekam status real-time setiap perangkat
    • Logging perubahan status
    • Mempertahankan konsistensi status
  2. Siklus Hidup Perangkat (Device Lifecycle):
    • Discover
    • Pair
    • Activate
    • Monitor
    • Deactivate

D. Penanganan Error (Error Handling)

  1. Mekanisme Fallback
    • Alternatif manual jika sistem gagal
    • Contoh: Kunci pintu manual, Tombol fisik lampu
  2. Strategi Recovery

           ```python

           def handle_device_failure(device):

               try:

                   reconnect(device)

               except ConnectionError:

                   log_error(device)

                   notify_user(device)

                   activate_backup_system()

           ```

E. Pola Integrasi (Integration Mechanisms)

  1. API Integration
    • RESTful APIs
    • Webhook untuk notifikasi
    • Standar komunikasi terbuka
  2. Protokol Keamanan
  • OAuth 2.0 untuk autentikasi
  • JWT untuk otorisasi
  • Enkripsi AES-256

F. Arsitektur Sistem

  1. Microservices
    • Layanan terpisah untuk:
      • Manajemen Pengguna
      • Kontrol Perangkat
      • Keamanan
      • Notifikasi
  2. Scalability Pattern (Horizontal Scaling):
    • Tambah node untuk beban tinggi
    • Load balancing
    • Cache distributed

G. Skenario Interaksi Kompleks

  1. Contoh Skenario: Mode Tidur
    • When "Good Night" Command Received:
      • Matikan semua lampu
      • Kunci pintu
      • Aktifkan alarm keamanan
      • Atur suhu ideal
      • Nonaktifkan perangkat tidak perlu
  2. Prioritas Perintah
    • Perintah keamanan memiliki prioritas tertinggi
    • Dapat meng-override perintah lain

H. Pertimbangan Keamanan Lanjutan

  1. Multi-Factor Authentication
    • Kombinasi: Suara, Sidik jari, Lokasi geografis
  2. Anomali Detection
    • Machine Learning untuk deteksi aktivitas mencurigakan
    • Adaptive security rules

Kesimpulan Behavioral Elements

🔑 Kunci Utama:

- Responsif

- Aman

- Fleksibel

- Dapat di-scale

- User-friendly


Rekomendasi Implementasi

1. Gunakan event-driven architecture

2. Implementasi robust error handling

3. Fokus pada keamanan berlapis

4. Desain modular

5. Sediakan mekanisme manual backup


Dengan menggunakan Analysis Model, kita dapat memiliki gambaran yang sangat jelas dan terstruktur tentang alur proses, objek-objek utama, serta interaksi yang terjadi di dalam aplikasi Smart Home. Pendekatan ini memungkinkan kita untuk memahami bagaimana setiap elemen dalam sistem, seperti pengguna, perangkat pintar, sensor, layanan notifikasi, dan log aktivitas, saling berhubungan dan berfungsi secara bersama-sama. Selain itu, model ini memberikan panduan yang komprehensif dalam merancang dan mengimplementasikan sistem dengan efisiensi yang lebih tinggi, sekaligus meminimalkan potensi kesalahan dalam tahap pengembangan. Dengan pemahaman yang mendalam terhadap proses kerja sistem, kita dapat lebih mudah melakukan pengujian terhadap fungsionalitas, mengidentifikasi area yang memerlukan perbaikan, serta memastikan bahwa sistem berjalan sesuai dengan kebutuhan pengguna dan spesifikasi yang telah ditentukan. Analisis model juga membantu dalam mendukung komunikasi yang lebih efektif di antara anggota tim pengembang, sehingga seluruh pihak memiliki pemahaman yang sama terkait tujuan dan cara kerja sistem.

Comments

Popular posts from this blog

Pertemuan 4-5 PPB (B) - 11/03/2026

Pertemuan 1 PPB (B) - 25/02/2026

Evaluasi Tengah Semester (ETS) PPB (B)