Sequence Diagram: Pengertian, Simbol, dan Contoh Sistem Perpustakaan
Sequence diagram adalah diagram UML yang menggambarkan urutan pesan antarobjek dalam satu skenario, dari atas ke bawah mengikuti waktu. Kalau activity diagram menunjukkan alur kegiatan, sequence diagram menunjukkan siapa memanggil siapa, dan kapan. Diagram ini paling dekat dengan kode program, sehingga sering dibuat sesudah class diagram.

Foto: StockSnap (CC0)
Simbol sequence diagram
| Simbol | Bentuk | Fungsi |
|---|---|---|
| Aktor | Gambar orang | Pengguna yang memulai skenario |
| Objek / lifeline | Kotak di atas + garis putus-putus ke bawah | Objek yang terlibat; garis putus-putus menunjukkan "umur" objek selama skenario |
| Activation bar | Persegi panjang sempit di atas lifeline | Saat objek sedang aktif memproses sesuatu |
| Pesan sinkron | Panah garis penuh, kepala penuh | Memanggil method dan menunggu hasilnya |
| Pesan balasan (return) | Panah putus-putus | Hasil yang dikembalikan |
| Pesan asinkron | Panah garis penuh, kepala terbuka | Mengirim pesan tanpa menunggu balasan |
| Fragmen (alt, opt, loop) | Kotak berlabel di pojok kiri atas | Percabangan, kondisi opsional, atau perulangan |
Contoh: pengembalian buku
Skenarionya sama dengan contoh activity diagram, tetapi sekarang dilihat dari sisi objek-objek program: antarmuka (form), controller, dan objek data.
Penjelasan langkah
- Petugas memindai kode buku di FormPengembalian.
- Form meneruskan permintaan ke PengembalianController.
- Controller meminta objek Peminjaman mencari data pinjaman yang masih aktif untuk buku tersebut (pesan 3), dan menerima datanya (pesan 4, panah putus-putus).
- Controller menghitung keterlambatan. Panah yang kembali ke lifeline sendiri (pesan 5) disebut self-message, yaitu objek memanggil method miliknya sendiri.
- Fragmen opt berarti pesan 6–7 hanya terjadi jika syarat
[hariTerlambat > 0]terpenuhi. - Controller mencatat tanggal kembali (pesan 8) dan menambah stok Buku (pesan 9).
- Hasil dikembalikan ke form, lalu bukti pengembalian ditampilkan kepada petugas.
Fragmen yang sering dipakai
| Fragmen | Arti | Padanan di kode |
|---|---|---|
opt | Hanya dijalankan jika syarat terpenuhi | if tanpa else |
alt | Pilihan; dibagi garis putus-putus untuk setiap kondisi | if … else |
loop | Diulang selama syarat terpenuhi | for / while |
par | Dijalankan paralel | Thread / proses asinkron |
Dari sequence diagram ke kode
Pesan-pesan di diagram langsung menjadi pemanggilan method. Contoh PHP sederhana untuk controller-nya:
class PengembalianController
{
public function prosesKembali(string $kodeBuku): array
{
$pinjam = Peminjaman::cariPinjamanAktif($kodeBuku); // 3–4
$telat = $this->hitungHariTerlambat($pinjam); // 5
$denda = 0;
if ($telat > 0) { // opt
$denda = $pinjam->hitungDenda($telat); // 6–7
}
$pinjam->setTglKembali(new DateTime()); // 8
$pinjam->getBuku()->tambahStok(); // 9
return ['denda' => $denda, 'status' => 'selesai']; // 10
}
}
Kesalahan yang sering terjadi
- Nama pesan tidak sama dengan method di class diagram. Setiap pesan sinkron seharusnya ada sebagai method di class penerimanya.
- Lupa panah balasan, sehingga tidak jelas data apa yang dikembalikan.
- Semua skenario dimasukkan ke satu diagram. Buat satu sequence diagram per skenario use case.
- Database digambar sebagai aktor. Jika perlu ditampilkan, database adalah lifeline (objek), bukan aktor.
Dengan ini seri UML di blog sudah lengkap: use case → activity → class → sequence.