Beranda

Sequence Diagram: Pengertian, Simbol, dan Contoh Sistem Perpustakaan

Yogi Mardilah ·

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.

Laptop dengan kode program di meja

Foto: StockSnap (CC0)

Simbol sequence diagram

SimbolBentukFungsi
AktorGambar orangPengguna yang memulai skenario
Objek / lifelineKotak di atas + garis putus-putus ke bawahObjek yang terlibat; garis putus-putus menunjukkan "umur" objek selama skenario
Activation barPersegi panjang sempit di atas lifelineSaat objek sedang aktif memproses sesuatu
Pesan sinkronPanah garis penuh, kepala penuhMemanggil method dan menunggu hasilnya
Pesan balasan (return)Panah putus-putusHasil yang dikembalikan
Pesan asinkronPanah garis penuh, kepala terbukaMengirim pesan tanpa menunggu balasan
Fragmen (alt, opt, loop)Kotak berlabel di pojok kiri atasPercabangan, 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.

Petugas :FormPengembalian:PengembalianController:Peminjaman:Buku opt [hariTerlambat > 0] 1: pindai(kodeBuku) 2: prosesKembali(kodeBuku) 3: cariPinjamanAktif(kodeBuku) 4: dataPinjaman 5: hitungHariTerlambat() 6: hitungDenda(hariTerlambat) 7: jumlahDenda 8: setTglKembali(hariIni) 9: tambahStok() 10: hasil (denda, status) 11: tampilkan bukti

Penjelasan langkah

  1. Petugas memindai kode buku di FormPengembalian.
  2. Form meneruskan permintaan ke PengembalianController.
  3. Controller meminta objek Peminjaman mencari data pinjaman yang masih aktif untuk buku tersebut (pesan 3), dan menerima datanya (pesan 4, panah putus-putus).
  4. Controller menghitung keterlambatan. Panah yang kembali ke lifeline sendiri (pesan 5) disebut self-message, yaitu objek memanggil method miliknya sendiri.
  5. Fragmen opt berarti pesan 6–7 hanya terjadi jika syarat [hariTerlambat > 0] terpenuhi.
  6. Controller mencatat tanggal kembali (pesan 8) dan menambah stok Buku (pesan 9).
  7. Hasil dikembalikan ke form, lalu bukti pengembalian ditampilkan kepada petugas.

Fragmen yang sering dipakai

FragmenArtiPadanan di kode
optHanya dijalankan jika syarat terpenuhiif tanpa else
altPilihan; dibagi garis putus-putus untuk setiap kondisiif … else
loopDiulang selama syarat terpenuhifor / while
parDijalankan paralelThread / 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.