Elaborasi Use Case adalah tahap kritis dalam siklus pengembangan perangkat lunak, khususnya dalam konteks rekayasa kebutuhan dan analisis serta desain berorientasi objek. Ini menghubungkan kesenjangan antara use case tingkat tinggi dan spesifikasi sistem yang rinci, memungkinkan pengembang, analis, dan pemangku kepentingan untuk memahami bagaimanasistem berperilaku dalam merespons tujuan pengguna tertentu.
Panduan ini memberikan gambaran komprehensif tentang elaborasi use case, termasuk tujuannya, konsep kunci, metodologi langkah demi langkah, praktik terbaik, dan contoh dunia nyata.
Elaborasi Use Case adalah proses menyempurnakan use case tingkat tinggi menjadi deskripsi rinci dan dapat dijalankan mengenai perilaku sistem. Ini mengubah narasi sederhana interaksi pengguna menjadi spesifikasi yang tepat, dapat diuji, dan dapat diimplementasikan.

✅ Tujuan: Untuk mendefinisikan apa yang harus dilakukan sistem, bagaimana harus melakukannya, dan dalam kondisi apa, dalam detail yang cukup untuk pengembangan dan pengujian.
Mengurangi Ambiguitas: Mencegah salah pemahaman terhadap kebutuhan.
Meningkatkan Kemampuan Pelacakan: Menghubungkan kebutuhan dengan desain, kode, dan kasus pengujian.
Mendukung Desain & Implementasi: Menyediakan dasar untuk diagram kelas, diagram urutan, dan desain basis data.
Memungkinkan Pengujian: Memfasilitasi pembuatan skenario pengujian dan kriteria penerimaan.
Meningkatkan Kolaborasi: Memastikan pemahaman bersama di antara pemangku kepentingan, pengembang, dan penguji.
Use case menggambarkan urutan tindakan yang dilakukan sistem untuk menghasilkan hasil yang bernilai bagi aktor (pengguna atau sistem eksternal).
Contoh: “Tarik Tunai” dari ATM.
Entitas eksternal yang berinteraksi dengan sistem. Bisa berupa pengguna manusia, sistem lain, atau pemicu waktu.
Contoh: Pelanggan, Mesin ATM, Gateway Pembayaran.
Aktor Utama: Memulai use case.
Aktor Sekunder: Mendukung aktor utama (misalnya, server bank).
Kondisi yang harus benar sebelum use case dapat dimulai.
Contoh: Pengguna harus memiliki kartu yang valid dan PIN yang benar.
Kondisi yang harus benar setelah use case selesai.
Contoh: Uang tunai dikeluarkan, saldo rekening diperbarui.
Jalur yang paling umum dalam use case yang mengarah pada keberhasilan.
Contoh: Masukkan kartu → Masukkan PIN → Pilih penarikan → Masukkan jumlah → Terima uang tunai.
Cabang dalam use case yang menangani pengecualian, kesalahan, atau variasi.
Contoh: PIN tidak valid → Coba lagi atau batalkan.
Titik-titik dalam alur utama di mana perilaku alternatif dapat dimasukkan (misalnya, melalui “<>” dalam UML).
Contoh: “<>: Notifikasi bank tentang aktivitas mencurigakan.”
Kendala pada perilaku sistem (misalnya, kinerja, keamanan, kenyamanan penggunaan).
Contoh: “Transaksi harus selesai dalam waktu 3 detik.”
Mulai dengan use case tingkat tinggi (misalnya, “Tempatkan Pesanan”).
Gunakan template:
Nama Use Case: Tempatkan Pesanan
Aktor Utama: Pelanggan
Pihak Berkepentingan: Pelanggan, Sistem Manajemen Pesanan, Gateway Pembayaran
Daftar semua kondisi yang harus dipenuhi sebelum use case dimulai.
Pelanggan telah masuk ke sistem.
Keranjang belanja berisi setidaknya satu item.
Metode pembayaran telah disimpan.
Nyatakan apa yang harus benar setelah use case selesai.
Pesanan dibuat dalam sistem.
Persediaan diperbarui.
Pembayaran diproses.
Email konfirmasi dikirim.
Rincian jalur ideal dan sukses.
Pelanggan memilih “Checkout” dari keranjang belanja.
Sistem menampilkan ringkasan pesanan.
Pelanggan mengonfirmasi alamat pengiriman.
Pelanggan memilih metode pembayaran.
Sistem memproses pembayaran.
Pembayaran dikonfirmasi.
Sistem membuat pesanan dan menghasilkan konfirmasi.
Konfirmasi ditampilkan dan email dikirim.
Daftar kemungkinan penyimpangan dari aliran utama.
Aliran Alternatif A: Stok Tidak Cukup
Sistem memeriksa persediaan.
Barang habis stok.
Sistem menampilkan pesan: “Barang tidak tersedia.”
Pelanggan dapat menghapus barang atau melanjutkan tanpa barang tersebut.
Aliran Alternatif B: Pembayaran Ditolak
Pembayaran ditolak.
Sistem menampilkan kesalahan: “Pembayaran ditolak.”
Pelanggan dapat mencoba lagi atau memilih metode lain.
Aliran Alternatif C: Alamat Pengiriman Tidak Valid
Sistem memvalidasi alamat.
Alamat tidak valid.
Sistem meminta pelanggan untuk memperbaikinya.
Gunakan ekstensi gaya UML untuk menunjukkan perilaku opsional.
<>: Notifikasi Sistem Persediaan
Pemicu: Ketika suatu barang habis stok saat checkout.
Tujuan: Memberi tahu gudang untuk melakukan pengisian stok.
<>: Terapkan Kupon Diskon
Pemicu: Pelanggan memasukkan kode kupon yang valid.
Tujuan: Mengurangi total biaya.
Sertakan keterbatasan sistem.
Pesanan harus diproses dalam waktu 5 detik.
Pembayaran harus dienkripsi menggunakan TLS 1.3.
Sistem harus mendukung 10.000 pengguna bersamaan.
Berkolaborasi dengan pemangku kepentingan untuk memastikan kelengkapan dan akurasi.
Tanyakan: “Apakah ini mencakup semua tujuan pengguna?”
Tanyakan: “Apakah semua kasus tepi dipertimbangkan?”
Tanyakan: “Apakah seorang pengembang dapat membangun berdasarkan ini?”
| Alat/Teknik | Tujuan |
|---|---|
| Diagram Kasus Penggunaan (UML) | Menggambarkan aktor dan kasus penggunaan. |
| Diagram Urutan | Menampilkan alur pesan antar objek selama kasus penggunaan. |
| Diagram Aktivitas | Memodelkan alur kerja yang kompleks dan titik keputusan. |
| Pemetaan Cerita Pengguna | Menghubungkan kasus penggunaan dengan perjalanan pengguna dan prioritas. |
| Tabel Keputusan | Memperjelas logika yang kompleks (misalnya, aturan diskon). |
Jaga Kasus Penggunaan Berpusat pada Pengguna: Fokus pada tujuan pengguna, bukan fitur sistem.
Gunakan Penamaan yang Konsisten: Gunakan format kata kerja-kata benda (misalnya, “Perbarui Profil”).
Hindari Istilah Teknis: Tulis untuk pemangku kepentingan non-teknis.
Gunakan Bahasa Sederhana: Jelas dan ringkas.
Iterasi: Sempurnakan kasus penggunaan seiring meningkatnya pemahaman.
Tautkan ke Artefak Lain: Hubungkan kasus penggunaan dengan diagram kelas, kasus uji, dan cerita pengguna.
Prioritaskan: Fokus pada kasus penggunaan bernilai tinggi atau berisiko tinggi terlebih dahulu.
Aktor Utama: Pelanggan
Aktor Sekunder: Server Bank, Sistem Deteksi Penipuan
Pelanggan telah masuk sistem.
Akun sumber memiliki dana yang cukup.
Batas transfer belum dilampaui.
Dana dipindahkan dari akun sumber ke akun tujuan.
Transaksi dicatat di kedua akun.
Pemberitahuan dikirim ke kedua pihak.
Pelanggan memilih “Transfer Uang” dari dasbor.
Sistem menampilkan formulir transfer.
Pelanggan memasukkan akun tujuan dan jumlah.
Sistem memvalidasi akun dan jumlah.
Pelanggan mengonfirmasi transfer.
Sistem memeriksa aturan deteksi penipuan.
Transaksi disetujui dan dieksekusi.
Pesan konfirmasi ditampilkan.
A1: Dana Tidak Cukup
→ Sistem menampilkan: “Dana tidak cukup.”
→ Pelanggan dapat membatalkan atau menyesuaikan jumlah.
A2: Penipuan Terdeteksi
→ Sistem menghentikan transfer dan mengirim peringatan.
→ Pelanggan harus memverifikasi melalui 2FA atau menghubungi dukungan.
A3: Akun Tujuan Tidak Valid
→ Sistem menampilkan: “Akun tidak ditemukan.”
→ Pelanggan dapat memasukkan kembali atau menggunakan pencarian akun.
<>: Kirim Pemberitahuan ke Penerima
Pemicu: Transfer selesai.
Tujuan: Memberi tahu penerima.
<>: Terapkan Biaya Transfer
Pemicu: Jumlah transfer > $1.000.
Tujuan: Potong biaya $5.
Semua transfer harus dicatat dan dapat diaudit.
Waktu respons ≤ 2 detik.
Data dienkripsi saat dalam perjalanan dan saat disimpan.
| Kesalahan | Solusi |
|---|---|
| Terlalu samar (misalnya, “Sistem harus memproses pesanan”) | Gunakan tindakan yang spesifik dan dapat diukur. |
| Bahasa yang terlalu teknis | Gunakan bahasa alami; hindari istilah kode atau basis data. |
| Jalur pengecualian yang hilang | Gunakan aliran alternatif untuk menangani kegagalan. |
| Tidak ada kriteria keberhasilan yang jelas | Tentukan postcondition dengan jelas. |
| Tidak ada tinjauan dari pemangku kepentingan | Libatkan pengguna, penguji, dan analis bisnis. |
Elaborasi use case bukan hanya sebuah kegiatan dokumentasi—ini adalah proses strategis yang memastikan sistem memenuhi kebutuhan pengguna nyata dengan kejelasan, ketepatan, dan kelengkapan. Dengan secara sistematis mengembangkan use case tingkat tinggi menjadi spesifikasi rinci dan dapat diambil tindakan, tim mengurangi risiko, meningkatkan komunikasi, dan menetapkan fondasi yang kuat untuk pengiriman perangkat lunak yang sukses.
✅ Kiat Akhir: Anggap elaborasi use case sebagai percakapan iteratif—bukan tugas satu kali. Perbaiki secara terus-menerus seiring Anda memahami lebih dalam tentang sistem dan penggunanya.
# Nama Use Case: [contoh: Perbarui Profil]
**Aktor Utama**: [contoh: Pelanggan]
**Aktor Sekunder**: [contoh: Database, Layanan Email]
**Pemangku Kepentingan**: [contoh: Pelanggan, Tim Dukungan]
### Pra-kondisi
- [Daftar kondisi]
### Pasca-kondisi
- [Daftar hasil]
### Skenario Sukses Utama (Alur Dasar)
1. [Langkah 1]
2. [Langkah 2]
...
### Alur Alternatif
- **A1: [Nama]**
1. [Langkah]
2. [Langkah]
- **A2: [Nama]**
...
### Ekstensi (<<extend>>)
- **<<extend>>: [Nama]**
- Pemicu: [Kapan]
- Tujuan: [Mengapa]
### Persyaratan Non-Fungsional
- [Kinerja, Keamanan, Kegunaan, dll.]
### Catatan
- [Konteks tambahan atau asumsi]
Dengan mengikuti panduan ini, tim dapat menguasai seni elaborasi use case dan membangun sistem yang tidak hanya fungsional tetapi benar-benar selaras dengan harapan pengguna.
Tarik Uang Tunai
Pelanggan (pemegang rekening bank)
Mesin ATM
Server Bank (Sistem Perbankan Inti)
Gerbang Pembayaran (untuk pemrosesan transaksi)
Sistem Deteksi Penipuan
Printer (untuk pembuatan struk)
Pelanggan: Ingin menarik uang tunai secara aman dan efisien.
Bank: Memastikan integritas transaksi, pencegahan penipuan, dan pembaruan rekening yang akurat.
Operator ATM: Menjaga ketersediaan mesin dan persediaan uang tunai.
Tim Keamanan: Memantau perilaku mencurigakan dan mencegah penipuan.
Pelanggan memiliki kartu bank yang valid yang dimasukkan ke ATM.
Pelanggan telah berhasil melakukan otentikasi (memasukkan PIN yang benar).
Akun pelanggan aktif dan tidak diblokir.
ATM memiliki uang tunai yang cukup di brankas.
Akun pelanggan memiliki saldo tersedia yang cukup.
Batas penarikan harian belum dilampaui.
Jumlah uang tunai yang diminta dicairkan kepada pelanggan.
Saldo akun pelanggan dikurangi sebesar jumlah penarikan.
Riwayat transaksi dibuat dalam sistem bank.
Kuitansi dicetak (jika diminta).
ATM mencatat transaksi untuk audit dan penyesuaian.
| Langkah | Aksi Sistem | Respons Aktor |
|---|---|---|
| 1 | ATM menampilkan: “Harap masukkan PIN Anda.” | Pelanggan memasukkan PIN. |
| 2 | ATM memvalidasi PIN dengan Server Bank. | Sistem mengonfirmasi PIN benar. |
| 3 | ATM menampilkan menu utama: “Tarik Tunai, Cek Saldo, Transfer, Keluar.” | Pelanggan memilih “Tarik Tunai.” |
| 4 | ATM menampilkan: “Masukkan jumlah yang ingin ditarik.” | Pelanggan memasukkan jumlah (misalnya $100). |
| 5 | ATM memvalidasi: |
Jumlah berada dalam batas harian.
Akun memiliki dana yang cukup.
ATM memiliki cukup uang tunai. | Sistem mengonfirmasi validitas. |
| 6 | ATM meminta otorisasi dari Server Bank. | Server Bank menyetujui transaksi. |
| 7 | ATM mencairkan uang dari brankas. | Pelanggan menerima uang. |
| 8 | ATM menampilkan: “Apakah Anda ingin struk?” | Pelanggan memilih “Ya” atau “Tidak.” |
| 9 | Jika “Ya”: ATM mencetak struk dengan:
Tanggal/waktu
Jumlah penarikan
Saldo sisa
ID Transaksi | Pelanggan mengambil struk. |
| 10 | ATM menampilkan: “Terima kasih. Harap ambil kartu Anda.” | Pelanggan mengambil kartu. |
| 11 | ATM kembali ke status idle. | Sistem diatur ulang. |
✅ Hasil Sukses: Pelanggan menerima uang tunai dan (secara opsional) struk. Akun diperbarui.
Pemicu: Pelanggan memasukkan PIN yang salah tiga kali.
Aksi Sistem: ATM mengunci kartu dan menampilkan: “Kartu terkunci. Hubungi bank Anda.”
Aksi Pemain: Pelanggan keluar dan menghubungi bank.
Pasca kondisi: Kartu diblokir sementara; transaksi dicatat.
⚠️ Catatan: Ini adalah tindakan keamanan untuk mencegah akses yang tidak sah.
Pemicu: Pelanggan memasukkan jumlah yang melebihi saldo yang tersedia.
Tindakan Sistem: ATM menampilkan: “Dana tidak mencukupi. Saldo saat ini: $X.”
Tindakan Aktor: Pelanggan memilih “Batal” atau memasukkan jumlah yang lebih rendah.
Pasca-kondisi: Tidak ada uang dikeluarkan; tidak ada perubahan pada akun.
Pemicu: Pelanggan memasukkan jumlah yang valid, tetapi brankas ATM kosong atau di bawah minimum.
Tindakan Sistem: ATM menampilkan: “Uang tidak tersedia. Silakan coba lagi nanti.”
Tindakan Aktor: Pelanggan membatalkan atau kembali nanti.
Pasca-kondisi: Transaksi tidak diproses; tidak ada perubahan pada akun.
Pemicu: Pelanggan mencoba menarik lebih dari batas harian (misalnya, $1.000).
Tindakan Sistem: ATM menampilkan: “Melebihi batas penarikan harian. Coba jumlah yang lebih kecil.”
Tindakan Aktor: Pelanggan mengurangi jumlah atau membatalkan.
Pasca-kondisi: Transaksi tidak diproses.
Pemicu: Server bank menolak transaksi (misalnya karena peringatan penipuan, akun dibekukan).
Aksi Sistem: ATM menampilkan: “Transaksi ditolak. Harap hubungi bank Anda.”
Aksi Aktor: Pelanggan membatalkan dan menghubungi bank.
Pasca kondisi: Tidak ada uang dikeluarkan; tidak ada perubahan akun.
| Perluasan | Pemicu | Tujuan |
|---|---|---|
| <>: Notifikasi Sistem Deteksi Penipuan | Ketika penarikan dilakukan di negara asing atau melebihi perilaku biasa | Tandai aktivitas mencurigakan untuk ditinjau |
| <>: Kirim Pemberitahuan SMS ke Pelanggan | Setelah penarikan berhasil | Beritahu pelanggan mengenai transaksi (keamanan ditingkatkan) |
| <>: Terapkan Biaya Penarikan | Untuk pemegang akun non-utama atau jenis akun tertentu | Tagih biaya untuk layanan tertentu |
| <>: Cetak Riwayat Transaksi | Jika pelanggan memilih “Cetak Riwayat” di menu | Berikan ringkasan cetak dari transaksi terkini |
| Kategori | Persyaratan |
|---|---|
| Kinerja | Transaksi harus diproses dalam waktu 3 detik. |
| Keamanan | Semua komunikasi dienkripsi (TLS 1.3). PIN tidak pernah disimpan atau dikirim dalam bentuk teks biasa. |
| Keandalan | ATM tidak boleh mencairkan uang kecuali server bank mengonfirmasi otorisasi. |
| Kemudahan Penggunaan | Antarmuka harus dapat diakses (misalnya, tombol besar, panduan suara untuk tunanetra). |
| Ketersediaan | ATM harus beroperasi 99,9% dari waktu. |
| Audit & Kepatuhan | Semua transaksi harus dicatat dan dapat dilacak selama 7 tahun (sesuai peraturan perbankan). |
ATM harus secara rutin dipelihara untuk memastikan ketersediaan uang tunai dan keandalan perangkat keras.
Jika kartu tidak diambil dalam waktu 30 detik setelah transaksi, maka akan secara otomatis disimpan (fitur anti-pencurian).
Sistem mendukung beberapa mata uang dan perhitungan nilai tukar (jika berlaku).
[Pelanggan] --(Tarik Tunai)--> [ATM]
[ATM] --(Otentikasi PIN)--> [Server Bank]
[ATM] --(Periksa Dana)--> [Server Bank]
[ATM] --(Keluarkan Uang)--> [Brankas Uang]
[ATM] --(Cetak Kwitansi)--> [Printer]
[ATM] --(Notifikasi Sistem Penipuan)--> [Sistem Deteksi Penipuan]
(Catatan: Dalam diagram UML lengkap, hubungan kasus pengguna seperti <> dan <> akan ditampilkan.)
Ini kasus pengguna yang dirinci untuk “Tarik Tunai” memberikan spesifikasi yang jelas, terstruktur, dan dapat diuji yang:
Mencatat tujuan pengguna dan perilaku sistem.
Menangani pengecualian dunia nyata.
Mendukung keamanan, kepatuhan, dan kemudahan penggunaan.
Berfungsi sebagai dasar untuk desain, pengujian, dan implementasi.
Ini cocok digunakan dalam sprint agile, dokumen desain sistem, atau spesifikasi persyaratan formal.
📘 Langkah Selanjutnya:
Ubah ini menjadi diagram urutan untuk menunjukkan interaksi objek.
Buat kasus uji berdasarkan setiap alur (utama dan alternatif).
Tautkan ke diagram kelas (contoh, Akun, Transaksi, ATM, Pendeteksi Penipuan).