Back to Pemodelan Perangkat Lunak

Use-Case Relationships: Include vs Extend

Questions/Cues

  • Mengapa include bersifat wajib dalam eksekusi?
  • Kapan hubungan extend digunakan?
  • Perbedaan perilaku include vs extend
  • Contoh nyata implementasi <>
  • Kriteria penggunaan <>

Reference Points

  • Scenario Modeling Slides (Halaman 12-13)

Hubungan Include (<>)

Hubungan include mendefinisikan ketergantungan wajib antara dua use-case di mana use-case target harus selalu dieksekusi ketika use-case sumber dijalankan. Ini merepresentasikan hubungan “harus dilakukan” yang tidak opsional. Contohnya, use-case “Pembayaran Online” harus selalu <> use-case “Verifikasi Kartu Kredit” karena verifikasi merupakan prasyarat mutlak sebelum transaksi dapat diselesaikan.

Dalam diagram UML, hubungan include ditunjukkan dengan panah bertitik dari use-case sumber ke use-case target yang diberi label <>. Penting untuk dicatat bahwa use-case target tidak dapat berdiri sendiri dalam konteks ini - ia hanya diakses melalui use-case sumber yang memanggilnya.

Hubungan Extend (<>)

Hubungan extend merepresentasikan perilaku opsional yang hanya dieksekusi dalam kondisi tertentu. Use-case target memperluas (extend) use-case sumber hanya ketika kondisi ekstensi tertentu terpenuhi. Misalnya, use-case “Pemesanan Tiket Pesawat” mungkin memiliki hubungan <> dengan use-case “Pilih Kursi” karena pemilihan kursi merupakan fitur tambahan yang hanya relevan jika maskapai menyediakan opsi ini.

Dalam notasi UML, panah extend mengarah dari use-case tambahan (extension) ke use-case dasar (base) dengan label <>. Titik ekstensi (extension point) harus didefinisikan secara eksplisit dalam deskripsi use-case dasar untuk menunjukkan di mana ekstensi dapat disisipkan.

Perbedaan Fundamental

Perbedaan utama terletak pada sifat hubungan dan kondisi eksekusi:

  • Include: Wajib dan deterministik (selalu dieksekusi)
  • Extend: Opsional dan kondisional (hanya pada keadaan tertentu)

Contoh analogi: Pada proses memasak nasi goreng:

  • Include = Memanaskan wajan (wajib dilakukan)
  • Extend = Menambahkan telur mata sapi (opsional, tergantung preferensi)

Kriteria Penggunaan

Gunakan <> ketika:

  1. Terdapat fungsionalitas yang digunakan ulang di beberapa use-case
  2. Urutan langkah yang sama diperlukan di berbagai konteks
  3. Memisahkan perilaku inti dari implementasi teknis

Gunakan <> ketika:

  1. Terdapat alur alternatif yang tidak selalu diperlukan
  2. Perilaku tambahan hanya relevan dalam skenario khusus
  3. Ingin menjaga use-case dasar tetap sederhana

Summary

Hubungan <> mendefinisikan ketergantungan wajib dimana use-case target harus selalu dieksekusi, sementara <> menambahkan perilaku opsional berdasarkan kondisi tertentu. Perbedaan utama terletak pada sifat wajib vs opsional dan deterministik vs kondisional. Include cocok untuk fungsionalitas umum yang digunakan ulang, sedangkan extend ideal untuk alur alternatif dan fitur tambahan. Kedua hubungan ini meningkatkan modularitas model use-case dengan memisahkan perilaku inti dari ekstensi opsional.