Sequence Diagram – Dalam pemodelan perangkat lunak diagram yang berperan untuk memperlihatkan interaksi antar obyek dalam perintah yang berurut disebut sequence diagram.
Table of Contents
Pengertian Sequence Diagram
Sequence diagram adalah penggambaran tentang interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display/form) berupa message yang digambarkan terhadap waktu. Dalam Diagram sequence ini diorganisasikan dengan 2 garis, yaitu:
- Garis horisontal menunjukkan elemen yang terlibat dalam interaksi. Elemen pada garis horisontal dapat muncul dengan berbagai urutan
- Garis vertikal menyatakan waktu proses.
Diagram Sequence biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan dengan respon dari sebuah event untuk menghasilkan output tertentu. Hal tersebut diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output.
Diagram ini secara khusus berasosiasi dengan diagram use case. Kemudian memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuati di dalam use case.
Baca Juga: Use Case Diagram Lengkap dengan Contohnya
Tujuan Sequence Diagram
Tujuan utama dari diagram Sequence adalah mendefinisikan urutan kejadian yang dapat menghasilkan output yang diinginkan. Hal ini Mirip dengan activity diagram seperti:
- Menggambarkan alur kejadian sebuah aktivitas
- Lebih detail dalam menggambarkan aliran data, termasuk data atau behaviour yang dikirimkan atau diterima
- Namun kurang mampu menjelaskan detail dari sebuah algoritma (loop, branching)
Simbol Sequence Diagram
Simbol | Keterangan |
---|---|
Actor | Menggambarkan pengguna yang berinteraksi dengan sistem |
Entity Class | Menggambarkan hubungan kegiatan yang akan dilakukan |
Boundary Class | Digunakan untuk menggambarkan sebuah Form |
Control Class | Menggambarkan penghubung antara boundary dengan tabel |
A focus of control & Life Line | Menggambarkan tempat mulai dan berakhirnya sebuah message |
Aktivasi / Activation | Menandakan ketika suatu objek mengirim atau menerima pesan |
Message | Menggambarkan Objek yang mengirim satu pesan ke objek lain |
Message to Self | Menggambarkan bahwa suatu objek hendak memanggil dirinya sendiri |
Message to Return | Message to return digambarkan dengan tanda panah yang berbalik ke tempat semula. Komponen yang satu ini dijelaskan untuk menunjukkan hasil dari pengiriman message. |
Destruction | Menyatakan suatu objek mengakhiri hidup objek lain, arah panah mengarah pada objek yang diakhiri. Sebaiknya jika ada create maka ada destroy |
Komponen dalam Sequence Diagram beserta Contohnya
PERAN CLASS
Pada diagram sequence, peran class ditunjukkan menggunakan notasi untuk class, tetapi nama class diawali dengan tanda slash ‘/’ diikuti nama peran dimana obyek harus sesuai dengan partisipasinya dalam peran, diikuti tanda titik dua ‘:’
Class-class lain juga ditunjukkan seperlunya, menggunakan notasi class, peran class dan class2 lain digunakan untuk komunikasi level-spesifik menggunakan diagram sequence. Contoh: peran class projectOrganization serta class Project dan Report
OBYEK TERTENTU
Pada diagram sequence, obyek tertentu dari suatu class sesuai dengan peran class ditunjukkan menggunakan notasi untuk obyek, tetapi nama obyek diikuti dengan tanda slash ‘/’, nama peran, tanda titik dua ‘:’ dan nama class dan diberi garis bawah.
Obyek lain juga dapat ditampilkan menggunakan notasi obyek. Obyek khusus sesuai dengan peran class dan obyek lain digunakan untuk kolaborasi level-anggota menggunakan diagram sequence
Contoh: Andy’s Organization memanikan peran dalam organisasi yang terdiri dari sebuah project yang merupakan subyek dari laporan. Juga terdapat obyek Project dan Report yang tak bernama.
LIFELINE
Lifeline, digambarkan dengan garis vertikal putus-putus dari sebuah elemen, menyatakan keberadaan elemen sepanjang waktu. Simbol Lifeline ini umumnya digunakan untuk menggambarkan eksekusi suatu objek dalam sequence. Atau bisa dikatakan bahwa simbol yang satu ini merupakan pesan dikirim dan diterima beserta aktivasinya. Contoh: lifeline untuk peran class (projectOrganization) dan class (Project dan Report)
AKTIVASI
Aktivasi digambarkan dengan segiempat kurus dan panjang pada lifeline, menyatakan periode selama elemen membentuk operasi. Segiempat di bagian atas menyatakan waktu inisial, dan segiempat di bagian bawah menyatakan waktu berakhir. Contoh aktivasi
KOMUNIKASI
Pada diagram sequence, komunikasi, pesan atau stimulus dinyatakan sebagai panah horisontal solid dari lifeline atau aktivasi dari sender ke lifeline atau aktivasi dari suatu penerima. Komunikasi digambarkan menggunakan sintak:
[guard] *[iteration] sequence_number : return_variable := operation_name (argument_list)
Dimana:
- Guard bersifat opsional dan menyatakan kondisi yang harus dipenuhi dalam komunikasi untuk komunikasi yang dikirim atau terjadi
- Iteration bersifat opsional dan menyatakan jumlah waktu komunikasi dikirim atau terjadi. Tanda asterik ‘*’ dan kurung siku dihilangkan jika tidak ada iterasi tertentu
- Sequence_number bersifat opsional integer yang menyatakan urutan komunikasi.
- Operation_name adalah nama oeprasi yang terjadi
- Argumen_list bersifat opsional. Setiap parameter bisa berupa nilai khusus atau nilai variabel dari komunikasi sebelumnya
Contoh Komunikasi Sequence Diagram:
- Diagram sequence mengijinkan seseorang membaca dokumentasi untuk mengikuti aliran pesan dari setiap obyek
- Garis vertikal dengan tanda kotak di bagian atas menyatakan anggota class (obyek)
- Label di sebelah kanan tanda petik dua ‘:’ adalah class
- Panah horisontal adalah pesan yang terkirim antara anggota dan dibaca dari atas ke bawah
- • Customer (user) menyimpan uang dalam MyAccount yang merupakan anggota dari class SavingsAccount. Kemudian obyek MyAccount memvalidasi account dengan menanyakan obyek Bank. MyBank menjalankan ValidateAccount. Akhirnya Customer menanyakan obyek ATM untuk mengeluarkan Resep dengan memanggil operasi GetReceipt
- Segiempat putih menyatakan area metode atau kumpulan metode yang terjadi dalam obyek MyBank. Garis putus-putuh menghasilkan return dari metode ValidateAccount
KOMUNIKASI: REKURSI
Sebuah obyek mungkin perlu memanggil pesan secara rekursif, artinya untuk memanggil pesan yag sama dari pesan:
- Misalnya cityLocations dinyatakan dalam diagram class sebagai kumpulan dari satu atau lebih apartemen atau rumah
- Surat dapat dikirim ke semua apartemen dalam lokasi
JENIS PESAN: Synchronous Messages
Dalam diagram sequence terdapat 4 jenis pesan diataranya: Synchronous Messages, Asynchronous Messages, Self-Reference Message dan Timed Messages. Pertama kita akan membahas Synchronous Messages:
- Asumsi nilai hasil diperlukan
- Sender menunggu nilai hasil sebelum memproses aktifitas lain
- Dinyatakan dengan panah penuh
- Pesan dapat di-kembalikan menggunakan panah garis putus-putus
JENIS PESAN: Asynchronous Messages
- Tidak menunggu hasil dari pesan
- Dicontohkan dengan sinyal
- Pengirim hanya bertanggung jawab untuk mendapatkan pesan ke penerima
- Biasanya dimodelkan menggunakan garis solid dan panah tak penuh untuk membedakan dengan pesan synchronous
JENIS PESAN: Self-Reference Message
Self-reference message adalah pesan dimana pengirim dan penerima adalah obyek yang sama:
- Dalam self-reference message, obyek memanggil dirinya sendiri
- Pesan 2 hanya menjalankan prosedur yang harus dieksekusi
JENIS PESAN:Timed Messages
- Pesan mempunyai atribut waktu yang ditentukan user, seperti sentTime atau receivedTime
- Atribut waktu yang ditentukan user harus dihubungkan dengan nomor pesan
- Dimodelkan dengan panah horisontal
- Pesan membutuhkan jumlah waktu tertentu, mungkin untuk menggunakan panah miring dari waktu pembuatan sampai penghapusan
Contoh: pesan 1,2,3, waktu eksekusi sama dengan 0. Pesan 4 membutuhkan waktu lebih banyak (waktu>0) untuk eksekusi
PESAN BERSYARAT
Pada diagram sequence, persyaratan (yang melibatkan komunikasi pesan atau stimuli) dalam interaksi bentuk umum ditampilkan sebagai beberapa komunikasi yang meninggalkan satu titik pada lifeline atau aktivasi, dengan komunikasi yang mempunyai ekspresi guard yang mutually exclusive.
Lifeline terbagi ke dalam 2 atau lebih lifeline untuk menunjukkan bagaimana satu elemen menangani beberapa komunikasi yang dapat dan lifeline akan bergabung kembali
Gambar berikut menunjukkan interaksi dan kolaborasi antara pembangkitan proyek dan status laporan, dimana class GenerateProject – StatusReportHandler meminta peran class projectOrganization menandakan bahwa proyek kosong jika proyek baru dibuat, dan class GenerateProject – StatusReportHandler meminta peran class projectOrganization melanjutkan pembangkitan informasi untuk elemen laporan jika proyek bukan baru dibuat.
Hanya komunikasi pertama yg ditampilkan untuk membangkitkan laporan. Jika tidak ada komunikasi lain untuk membangkitkan laporan, komunikasi GenerateReport kemungkinan kembali ke lifeline yg sama sebagai komunikasi OutputEmptyProject. Lifeline yang digunakan berbeda karena setiap lifeline menyatakan jalur eksekusi yang berbeda.
Pembuatan obyek: jika obyek dibuat selama eksekusi, akan muncul di suatu tempat di bawah obyek pembuatnya.
Penghapusan obyek: jika obyek dihapus selama waktu eksekusi, letakkan X pada titik dalam lifeline ketika terminasi terjadi.
Cara Membuat Sequence Diagram
Cara membuat sequence diagram dapat dilakukan secara online melalui website draw.io. Dalam membuat sequence diagram online Pertama anda perlu login, dapat dilakukan dengan menggunakan akun google. Kemudian akan ditampilkan halaman utama seperti berikut ini.
Buatlah diagram baru dengan menekan tombol “Create New Diagram”, selanjutnya akan diarahkan untuk memilih template dan menuliskan nama Diagram anda. Untuk memulai dari halaman kosong, anda dapat memilih template dengan nama “Blank Diagram”. Namun apabila anda ingin memulai dengan contoh sequence diagram, silahkan pilih template dengan nama “Sequence Diagram”. Kemudian tekan tombol Create.
Selanjutnya akan diarahkan untuk menyimpan diagram, anda dapat menyimpan diagram di posisi root atau memilih folder. Saran saya sebaiknya simpan diagram di folder tersendiri supaya lebih mudah mencarinya jika diperlukan.
Beginilah tampilan awal diagram anda jika memilih template “Sequence Diagram”, pada bagian kiri layar terdapat beberapa pilihan bentuk yang dapat anda gunakan. Pilihlah kelompok Bentuk dengan judul UML untuk kebutuhan membuat sequence Diagram.
Dengan contoh yang diberikan oleh template “Sequence Diagram” anda hanya perlu memodifikasi dan menambahkan bentuk/simbol yang sesuai dengan keperluan anda.
sequence diagram binus
Sequence Diagram Perpustakaan
Sequence Diagram Pdf
Untuk anda yang ingin belajar diagram sequence berikut ini beberapa sequence diagram pdf yang dapat anda download:
Contoh Sequence Diagram Penjualan
Contoh kali ini menggunakan referensi dari: Sidik, A., Sutarman, S., & Marlenih, M. (2017). Perancangan Sistem Informasi Penjualan Perumahan Citra Raya. Jurnal Sisfotek Global, 7(1).
Pada gambar di atas dapat dilihat bahwa ada 4 kelas yang saling berinteraksi, yaitu :
- Halaman login
- Controller
- Admins
- Halaman utama user
Gambar di atas merupakan Sequence Diagram Login diperlukan agar user dapat mengakses hak akses terhadap sistem. Pada skenario di atas login menggunakan username dan password untuk masuk ke dalam sistem, kemudian dilakukan validasi data oleh sistem dengan memanggil data pada tabel admin. Jika data yang diinput sesuai dengan database maka proses validasi sukses kemudian masuk ke menu utama dan jika data yang diinput tidak sesuai dengan database maka sistem akan menampilkan pesan tidak valid.
Pada gambar di atas dapat dilihat bahwa ada 4 kelas yang saling berinteraksi, yaitu :
- Halaman Produk Properti
- Halaman Tambah Produk
- Controller
- Produk
Gambar di atas Skenario Squance diagram di atas menunjukkan seorang Admin melakukan penginputan data di halaman tambah produk kemudian sistem melakukan proses menyimpanan data ke dalam tabel produk. Pada saat Admin akan melakukan Update dan Delete data maka admin harus memilih edit dihalaman produk properti setelah itu sistem akan memanggil data di database produk, kemudian sistem akan menampilkan data produk rumah dihalaman produk properti atau memilih hapus dihalaman produk properti setelah itu sistem akan menghapus data di database produk.
Pada gambar di atas dapat dilihat bahwa ada beberapa kelas yang saling berinteraksi, yaitu :
- Halaman Validasi Order
- Halaman Detail Order
- Controller
- Order
- Order_detail
- Produksi
Gambar di atas merupakan Skenario Squance diagram di atas menunjukkan seorang Admin melakukan validasi order dihalaman validasi order kemudian Admin memilih detail produk dan sistem akan menampilkan halaman detail order. Selanjutnya admin akan menentukan status order rumah. Jika status yang dipilih Sold maka sistem akan mengubah data di tabel orders dan dan mengurangi stok ditabel produk.
Jika status yang dipilih batal maka sistem hanya merubah data ditabel order tanpa mengurangi stok ditabel produk kemudian jika admin akan menghapus data yang dianggap tidak penting maka admin akan memilih hapus dihalaman validasi order dengan catatan status order sudah dirubah menjadi batal maka sistem akan menghapus data ditabel orders dan order_detail.
Pada gambar di atas dapat dilihat bahwa ada 4 kelas yang saling berinteraksi, yaitu :
- Halaman Validasi Produk
- Controller
- Produk
- Produk2
Gambar di atas merupakan Skenario Squance diagram di atas menunjukkan seorang Admin melakukan validasi data dihalaman validasi produk kemudian sistem akan memanggil data di tabel produk2 selanjutnya sistem akan menampilkan data produk yang di-upload marketing. Jika admin memilih valid maka sistem akan menyimpan data tersebut ke dalam tabel produk. Jika admin memlih tidak valid maka sistem akan menghapus data di dalam tabel produk2.
Pada gambar di atas dapat dilihat bahwa ada beberapa kelas yang saling berinteraksi, yaitu :
- Customer
- Halaman Home Century21
- Halaman Registrasi
- Controller
- Member
Gambar di atas merupakan Skenario Squance diagram di atas menunjukkan seorang Customer melakukan registrasi member dihalaman web century21 kemudian sistem akan memproses registrasi di tabel member selanjutnya sistem akan menampilkan login member. Jika customer berhasil dalam registrasi maka sistem akan menyimpan data tersebut ke dalam tabel member. Jika memilih tidak maka sistem akan menghapus data di dalam tabel member.
Pada gambar di atas dapat dilihat bahwa ada beberapa kelas yang saling berinteraksi, yaitu :
- Halaman Laporan
- Controller
- Orders
Gambar diatas merupakan Skenario Squance diagram di atas menunjukkan seorang Admin melakukan pemanggilan data laporan pada halaman laporan dengan cara memasukkan tanggal laporan untuk mencetak sebuah laporan kemudian sistem akan melakukan proses pencetakanan laporan.