BAB II TINJAUAN PUSTAKA
2.1
MMOG
MMOG adalah sebuah tipe game yang dapat dimainkan oleh pengguna dalam jumlah banyak yang dapat mencapai ratusan bahkan ribuan pengguna secara simultan dan real time menggunakan media internet. MMOG memungkinkan pengguna untuk bekerjasama dan berkompetisi dengan pengguna lain dari seluruh dunia dalam skala besar. MMOG membutuhkan ketersediaan waktu yang lebih lama dari pengguna ketika memainkan game. MMOG dapat membentuk sebuah lingkungan virtual diantara para pengguna, karena sebagian besar MMOG memiliki ciri ekslusif dari multiplayer game sehingga pengguna tidak dapat menyelesaikan permainan seperti tipikal game single player. MMOG juga memiliki karakteristik tersendiri yaitu memungkinkan dimainkan oleh banyak pengguna dalam sebuah dunia permainan, dan semua pengguna dapat berinteraksi dengan pengguna lain setiap waktu. Aspek teknologi MMOG harus memungkinkan ketersediaan server yang memadai untuk mendukung pengguna dalam jumlah yang sangat besar, sehingga satu server MMOG dapat melayani ribuan pengguna dalam saat bersamaan. Untuk mendukung kenyamanan pengguna, MMOG membutuhkan skala dunia game yang besar dan dedicated server untuk menghubungkan pengguna pada dunia game tersebut. 2.1.1
Arsitektur MMOG
Ada 3 (tiga) arsitektur yang sering digunakan oleh MMOG yaitu arsitektur peer-topeer, arsitektur client-server dan arsitektur distributed-server. Pada arsitektur peerto-peer semua client melakukan komunikasi secara simetrik dengan setiap client lainnya dan tidak memerlukan server. Jika terdapat N client maka pesan yang akan dikirim oleh setiap client adalah N-1, hal ini menyebabkan pemborosan bandwidth
7
dan latency yang dihasilkan sangat besar. Arsitektur peer-to-peer
biasanya
digunakan untuk jumlah client sedikit dan tidak dianjurkan untuk game MMOG. Player 1
Player 2
Player 3
Player 4
Gambar 2.1 Arsitektur peer-to-peer.
Pada arsitektur client-server semua informasi terpusat pada satu server dan setiap client yang terkoneksi ke server hanya mengirim data ke server kemudian server melakukan agregasi state dan mengirimkan kembali ke semua client. Central Server
Player 1
Player 4 Player 2
Player 3
Gambar 2.2 Arsitektur client-server.
Arsitektur distributed-server merupakan gabungan dari beberapa arsitektur clientserver dimana antara server satu dengan server lainnya terhubung menggunakan high speed connection. Setiap server yang telah melakukan agregasi keadaan akan direplikasi ke server lain, sehingga setiap client dapat melihat client lain yang berbeda server. 8
Player 4
Player 5
Server 1 Player 3
Server 2
Player 2
Player 1 Player 8
Server 3
Server 4
Player 7
Player 6
Gambar 2.3 Arsitektur distributed-server.
Arsitektur distributed-server memungkinkan dapat melayani pengguna dalam skala besar (hingga ratusan ribu pengguna) dan server dapat ditambah secara dinamis tanpa menggangu jalannya game. 2.1.2
Karakteristik MMOG
Karakteristik MMOG adalah sebagai berikut.
Server menjaga konsistensi status pemain secara terus menerus.
Menggunakan dunia game yang tetap.
Pemain dapat memulai dan mengakhiri game kapan saja.
Terdapat interaksi sosial diantara pemain.
Terdapat virtual ekonomi.
2.2
Jaringan Komputer
Jaringan komputer adalah sebuah koleksi dari komputer-komputer (PC, workstation, mainframe) dan peralatan pendukung lainnya yang semuanya saling terhubung. Tujuan dari jaringan komputer tersebut adalah memberikan akses untuk berbagi resources (sumber daya), mengizinkan pemakai untuk melakukan komunikasi, dan dapat membentuk transaksi seperti e-banking, e-commerce dan lain sebagainya. 9
2.2.1
Model Open Systems Interconnection (OSI)
Model Open Systems Interconnection (OSI) adalah sebuah framework berlapis untuk merancang sistem jaringan yang memungkinkan terjadinya komunikasi antara semua tipe-tipe komputer[7]. Model OSI disusun oleh 7 (tujuh) lapisan terpisah tetapi saling berhubungan, dimana setiap lapisan merupakan bagian suatu proses pergerakan informasi dalam suatu jaringan. Susunan lapisan tersebut adalah sebagai berikut. 1. Physical, bertanggung jawab mentransmisikan bit-bit melalui media fisik. 2. Data link, mengorganisasikan bit-bit menjadi frame-frame data, dan bertanggung jawab untuk mengirimkannya ke lokasi tujuan tanpa terjadinya error (kesalahan). 3. Network, bertanggung jawab mengirimkan paket data ke network tujuan yang mungkin melalui beberapa jaringan (multiple network interconnection). 4. Transport, bertanggung jawab mengirimkan pesan secara lengkap ke host (komputer) tujuan. 5. Session, memberikan layanan untuk membentuk, mengatur, dan sinkronisasi interaksi antara perangkat-perangkat sistem komunikasi. 6. Presentation, bertanggung jawab pada proses translasi (perubahan data), enkripsi (keamanan data), dan kompresi (pemampatan data). 7. Application, mengizinkan pengguna untuk melakukan akses jaringan seperti FTP, HTTP, DNS, dan sebagainya. Pada Gambar 2.4, memberikan gambaran mengenai prinsip kerja lapisan OSI, L7 data artinya sebagai unit data pada lapisan ke-7, L6 data artinya unit data pada lapisan ke-6 dan seterusnya. Pada komputer pengirim, proses dimulai pada lapisan ke-7 (lapisan aplikasi), kemudian bergerak ke lapisan di bawahnya secara sekuensial sampai lapisan ke-1 (lapisan fisik). Pada setiap lapisan (kecuali lapisan 7 dan 1) ditambahkan header ke dalam unit data dan khusus lapisan ke-2 ditambahkan trailer. Ketika unit data dilewatkan melalui lapisan 1 (lapisan fisik) maka unit data tersebut diubah menjadi sinyal elektromagnetik dan ditransportasikan sepanjang media transmisi. Ketika sinyal elektromagnetik sampai pada alamat komputer tujuan melalui lapisan 1 (lapisan fisik) maka sinyal tersebut diubah kembali menjadi data digital. Unit data tersebut kemudian bergerak ke lapisan di atasnya secara sekuensial 10
sampai lapisan ke-7 (lapisan aplikasi). Pada lapisan ini (lapisan aplikasi) user menerima pesan sesuai aslinya dari komputer pengirim.
Gambar 2.4 Prinsip kerja model OSI[7]. 2.2.2
Alamat IP
Setiap komputer yang terhubung ke internet diidentifikasi menggunakan alamat internet protocol (IP). Alamat IP dinyatakan oleh nilai binari 32 bit/4 byte (untuk IPv4) yang unik dan universal yang mendefinisikan koneksi dari host (komputer) ke internet. Bagian alamat IP yang mendefinisikan network (jaringan) disebut dengan netid, sedangkan bagian alamat IP yang mendefinisikan host atau router pada suatu jaringan disebut hostid. Alamat IP dibagi menjadi 5 (lima) kelas yaitu kelas A, B, C, D, dan E. Kelas dari suatu alamat IP dapat diketahui dengan cara mengetahui nilai pada byte pertama alamat IP. Berikut ini adalah Gambar 2.5 sebagai ketetapan kelas-kelas untuk format alamat IP (IPv4). 11
Gambar 2.5 Format alamat IP[7].
Alamat IP dalam kelas A, B, dan C dibagi kedalam netid dan hostid dengan panjang byte berbeda-beda tergantung pada kelas alamat IP tersebut. Sedangkan kelas D dan E tidak dibagi kedalam netid dan hostid. Kelas D digunakan untuk alamat multicast dan kelas E dipersiapkan untuk kegunaan masa depan. Gambar 2.6 berikut menunjukan panjang byte masing-masing netid dan hostid.
Gambar 2.6 Netid dan hostid[7].
Komunikasi pada internet dapat dicapai dengan menggunakan alamat unicast, multicast, dan broadcast. Komunikasi unicast adalah one-to-one (satu ke satu), dimana satu komputer sumber mengirim paket ke satu komputer tujuan. Yang termasuk alamat unicast adalah alamat IP kelas A, B, dan C. Komunikasi multicast adalah one-to-many (satu ke banyak), dimana paket yang dikirim adalah dari satu komputer sumber ke alamat grup multicast. Alamat multicast adalah alamat IP kelas D, dimana alamat tersebut hanya digunakan sebagai alamat
12
tujuan saja, tidak digunakan sebagai alamat sumber pengirim. Komunikasi multicast dapat dilakukan pada level lokal (LAN) dan level global (internet). Komunikasi broadcast adalah one-to-all (satu ke semua), dimana komunikasi tersebut hanya dapat dilakukan pada level lokal (LAN). Pada level global (internet) komunikasi broadcast belum diizinkan. 2.2.3
UDP
Di dalam protokol TCP/IP khususnya pada transport layer (lapisan transport), terdapat 2 (dua) protokol utama yaitu Transmission Control Protocol (TCP) dan UDP. Kedua protokol tersebut mengalami revolusi yang berbeda (atau bahkan berlawanan). TCP lahir sebagai sebuah teknologi yang berdasar pada koneksi, menjaga sesi aplikasi, dan menjamin tingkat komunikasi yang handal dan memiliki standarisasi pada tingkat flow control. UDP tidak memiliki kesemua fitur tersebut dan sangat bergantung pada aplikasi untuk menghasilkan sekumpulan fitur yang mencukupi. UDP dapat dikatakan sebagai protokol yang tidak terikat aturan. UDP tidak menjaga sesi koneksi dan paket yang dikirimkan bersifat independen dari satu paket ke paket yang lain sehingga urutan paket yang datang bukanlah sebuah jaminan dari protokol ini. Selain itu UDP tidak menawarkan mekanisme sekuritas secara built-in. Keunggulan UDP terletak pada kecepatan, pada TCP sekurangkurangnya membutuhkan tiga pertukaran paket yaitu pada saat open connection (membuka koneksi), acknowledgment (pemberian jawaban), dan begin transmission (mulai pengiriman paket), sedangkan pada UDP hanya dibutuhkan satu kali pertukaran data. UDP sangat cocok diterapkan pada aplikasi yang membutuhkan kinerja tinggi, paket yang dipertukarkan berukuran kecil, urutan dan kehilangan paket tidak terlalu berpengaruh pada aplikasi dan client yang dilayani berjumlah sangat banyak. Paket UDP mempunyai header berukuran 8 byte terdiri dari:
port sumber berjumlah 16 bit, yang berarti nomor port pengirim antara 0 sampai dengan 65535,
13
port tujuan berjumlah 16 bit, yang berarti nomor port penerima antara 0 sampai 65535,
panjang total 16 bit, yang mendefinisikan panjang total paket UDP (header dan data) antara 0 sampai dengan 65535 byte,
cheksum berukuran 16 bit, tergantung pada pseudo-header (IP header), UDP header, dan data. Checksum bersifat optional (pilihan), jika tidak digunakan maka checksum di set dengan 0.
Gambar 2.7 Format paket UDP[7].
Paket UDP minimum berukuran 8 byte yang berarti paket UDP hanya berisi header dan tidak ada data. Panjang data maksimum dalam paket UDP adalah 65507 (65535 – 20 – 8) byte (20 byte untuk IP header dan 8 byte untuk UDP header). Pada saat paket UDP akan dikirim, maka akan terjadi proses encapsulation (pembungkusan) paket UDP ke dalam pseudo-header (IP header) dan dilakukan proses decapsulation (pengeluaran) paket UDP dari pseudo-header sebelum paket UDP diterima oleh komputer tujuan. Gambar 2.8 dan Gambar 2.9 menunjukan format pseudo-header yang ditambahkan pada paket UDP dan tahapan proses encapsulation dan decapsulation paket UDP terhadap pseudo-header.
14
Gambar 2.8 Format pseudo-header (IP header) [7].
Gambar 2.9 Proses encapsulation dan decapsulation paket UDP[7].
2.2.4
Antarmuka Soket (Socket Interface)
Socket interface adalah satu set dari deklarasi, definisi, dan prosedur untuk membuat aplikasi client-server[7]. Socket interface terdiri dari tiga tipe socket yaitu stream 15
socket, datagram socket, dan raw socket. Semua tipe socket tersebut dapat digunakan dalam lingkungan TCP/IP.
Gambar 2.10 Tipe-tipe socket[7].
Stream socket digunakan pada protokol berorientasi koneksi (connection-oriented) seperti TCP. TCP menggunakan sepasang stream socket untuk menghubungkan suatu progam aplikasi dengan progam aplikasi lainnya melalui internet. Datagram socket digunakan pada protokol yang tidak berorientasi koneksi (connectionless) seperti UDP. UDP menggunakan sepasang datagram socket untuk mengirim pesan dari suatu program aplikasi ke prorgam aplikasi lainnya melalui internet. Raw socket secara langsung menggunakan layanan IP tanpa menggunakan stream socket maupun datagram socket. Beberapa protokol yang menggunakan raw socket diantaranya adalah Internet Control Message Protocol (ICMP) dan Open Shortest Path First (OSPF). Pada protokol berbasis connectionless, komunikasi client-server menggunakan UDP dan datagram socket. Server menerima request (permintaan) dalam bentuk datagram dari UDP, memproses request, dan memberikan respon ke UDP untuk dikirim ke client. Server hanya melayani satu request pada satu saat. 16
Iterasi komunikasi pada server dibentuk menggunakan fungsi-fungsi sebagai berikut (lihat Gambar 2.11). 1. Membuka socket. Server meminta sistem operasi untuk membuat sebuah socket, kemudian socket membuat struktur socket yang terdiri dari family (untuk keluarga alamat IP menggunakan AF_INET), tipe socket (untuk UDP menggunakan SOCK_DGRAM), dan protokol (untuk UDP menggunakan IPPROTO_UDP). 2. Mengikat socket (binding). Server meminta sistem operasi untuk memanggil fungsi bind untuk mengikat socket yang telah dibuat ke alamat lokal pada port yang telah ditetapkan. 3. Mengulangi fungsi-fungsi sebagai berikut : a. menerima request (receiving); server memanggil fungsi recvfrom untuk membaca antrian request yang dikirim oleh client, b. mengirim respon (sending); setelah datagram request diproses, server memanggil fungsi sendto untuk mengirim respon ke client. Pada client fungsi-fungsi yang dibentuk adalah sebagai berikut. 1. Membuka socket. Client meminta sistem operasi untuk membuat socket, kemudian socket membuat struktur socket. 2. Mengulangi fungsi-fungsi sebagai berikut : a. mengirim request (sending); client meminta sistem operasi untuk memanggil fungsi sendto untuk mengirim request ke server, b. menerima respon (receiving); client memanggil fungsi recvfrom untuk menerima respon yang dikirm oleh server. 3. Menutup socket (closing). Ketika client tidak melakukan request lagi, maka client meminta sistem operasi untuk memanggil fungsi close untuk meghapus socket yang telah dibuat.
17
Gambar 2.11 Iterasi komunikasi client-server menggunakan protokol UDP[7]. 2.3
AI pada Game Komputer
Metoda-metoda yang digunakan pada AI sangat banyak ragamnya, diantaranya yang akan dibahas pada tesis ini adalah metoda AI berbasis aturan (Rule-based AI) dan teknik pencarian lintasan terpendek menggunakan algoritma A* Pathfinding. 2.3.1
Rule-based AI
Rule-based AI terdiri atas aturan-aturan yang mempunyai sisi kondisi (antecedent) dan sisi aksi (consequent). Rule-based AI sering digunakan dalam implementasi AI pada game karena menggunakan pendekatan seperti yang biasa digunakan dalam pemrograman. Perancangan Rule-based AI umumnya dapat diprediksi, sehingga mudah dilakukan pengujian dan mencari kesalahan. 18
Rule-based AI digunakan sedemikan luas baik untuk aplikasi dunia nyata maupun aplikasi game. Dalam bentuk yang paling sederhana, sistem rule-based terdiri atas seperangkat aturan if-then yang digunakan untuk tindakan pengambilan keputusan (decision making). Salah satu kelebihan dari sistem ini adalah dapat meniru bagaimana manusia berpikir dan memberikan alasan berdasarkan fakta-fakta yang ada serta pengetahuan akan permasalahan tertentu. Kelebihan yang lain adalah rule-based AI mudah untuk diprogram karena pengetahuan dikodekan dalam bentuk aturan dengan sifat modular. Hal ini memberikan beberapa kemudahan baik dalam coding maupun modifikasi pengembangan. Gambar 2.12 berikut adalah sebuah ilustrasi tech tree pada suatu game RTS.
Peasant
Woodwalls
Woodcutter
Stonemason
Stonewalls
Barrack
Temple
Priest
Blacksmith
Retcher
Crossbowman Archer
Spearman
Longbowman
Foot Soldier Calvalry
Gambar 2.12 Contoh tech tree pada game RTS[2].
Rule-based AI memungkinkan non-player karakter pada game memiliki perilaku yang realistis untuk mengimbangi karakter yang dijalankan oleh manusia yaitu mampu untuk merencanakan dan membangun strategi pertahanan dan menyerang. 19
2.3.2
Algoritma A* Pathfinding
Algoritma A* Pathfinding digunakan untuk mencari lintasan terpendek antara dua posisi pada peta 2D. Untuk menerapkan algoritma A* terdapat beberapa obyek yang perlu didefinisikan sebagai berikut. 1. Peta adalah tempat dimana algoritma A* digunakan untuk mencari lintasan antara dua posisi. 2. Titik adalah struktur yang mewakili posisi di peta. Posisi diwakili oleh sebuah titik berupa grid di dalam peta 2D. Titik menyimpan informasi posisi penting untuk algoritma A*. 3. Jarak digunakan untuk menentukan layak atau tidaknya suatu titik dijelajahi yang dihitung berdasarkan jumlah tile lintasan terpendek antara dua titik ketika menggunakan algoritma A* pada peta 2D. 4. Biaya masing-masing titik terhubung menunjukkan lintasan yang diduga terpendek. Pada umumnya dapat berupa acuan jarak tempuh, waktu tempuh, atau konsumsi bahan bakar. Pada game, yang banyak digunakan adalah jarak tempuh di suatu peta 2D. Algoritma A* menandai lintasan untuk dua titik dengan kondisi open untuk titik yang belum diuji dan close untuk titik yang telah diuji. Pada awalnya, close tidak ada sama sekali dan open adalah titik mulai. Pada setiap iterasi, algoritma A* menghilangkan titik yang memiliki peluang paling tinggi dari kondisi open untuk diuji. Apabila titik bukan merupakan tujuan, maka titik yang lokasinya bersebelahan akan diurut dengan cara : 1. jika titik-titik tersebut baru, titik-titik itu ditandai dengan open, 2. jika titik-titik sudah pada kondisi open, informasi dari lokasi ini diperbaharui apabila titik-titik ini memiliki jarak terpendek. Jika titik-titik sudah pada kondisi close maka diabaikan, karena titik-titik ini sudah diuji. Pada Gambar 2.13 merupakan suatu contoh bangaimana A* pathfinding bekerja. Titik P (2,2) adalah posisi awal dan E (0,1) adalah titik tujuan.
20
Gambar 2.13 Contoh A* pathfinding pada sebuah peta[8].
Untuk menerapkan algoritma ini, maka setiap titik memiliki tiga atribut sebagai berikut.
G (goal) adalah jarak antara titik awal dengan titik sekarang.
H (heuristic) adalah estimasi jarak dari titik sekarang ke titik tujuan.
F (fitness) adalah jumlah G dengan H.
Pada Gambar 2.13 terdapat 8 titik yang berdekatan dengan (2,2) yaitu (1,1), (2,1), (3,1), (1,2), (3,2), (1,3), (2,3), dan (3,3). Semua titik tersebut ditandai dengan open, kemudian setiap titik diperiksa apakah terdapat titik tujuan, apabila tidak maka nilai F setiap titik dihitung dan titik (2,2) ditandai dengan close. Tabel 2.1 Perhitungan nilai F, G, H pada setiap titik. Titik
G
H
F=G+H
(1,1) (2,1) (3,1) (1,2) (3,2) (1,3) (2,3) (3,3)
1 1 1 1 1 1 1 1
1 2 3 2 4 3 4 5
2 3 4 3 5 4 5 6
21
Tabel 2.2 Daftar titik yang ditandai pada setiap iterasi. Iterasi 1 2
Daftar titik open
Daftar titik close
(1,1), (2,1), (3,1), (1,2), (3,2), (2,2) (1,3), (2,3), (3,3). (1,0) (2,2), (1,2)
Dari Tabel 2.1, titik (1,1) memiliki nilai F terendah. Dari titik ini kemudian diperiksa titik berdekatan yang belum ditandai yaitu (1,0). Titik (1,1) ditandai open kemudian diperiksa apakan titik ini adalah titik tujuan. Karena titik ini adalah titik tujuan, maka lintasan sudah ditemukan. 2.4
UML
UML merupakan sistem arsitektur yang bekerja dalam OOAD dengan satu bahasa yang konsisten
untuk
menentukan,
menggambarkan,
mengkonstruksi,
dan
mendokumentasikan artifak yang terdapat dalam sistem software[13]. 2.4.1
Use Case Diagram
Menjelaskan manfaat sistem jika dilihat menurut pandangan orang yang berada diluar sistem (actor). Diagram ini juga menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar. Selama proses analisis, diagram ini digunakan untuk menangkap requirements sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Ada 3 (tiga) tipe hubungan dalam use case diagram yaitu :
communicates, hubungan ini menunjukan partisipasi actor di dalam use case dan dilambangkan dengan garis lurus dan solid;
extends, hubungan extends dari use case A ke B mengindikasi bahwa instance use case B merupakan perpanjangan kelakuan use case A;
include (uses), hubungan include dari use case A ke B mengindikasi bahwa use case B akan dipanggil (dibutuhkan) setiap kali use case A dieksekusi secara normal.
22
Gambar 2.14 Contoh use case diagram[13]. 2.4.2
Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah obyek dan merupakan inti dari pengembangan dan desain berorientasi obyek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class memiliki tiga area pokok. 1. Nama (dan stereotype) 2. Atribut 3. Metoda Atribut dan metoda dapat memiliki salah satu sifat berikut.
Private, hanya dapat dipanggil di dalam kelas itu sendiri, tidak dapat dipanggil dari luar class.
Protected, hanya dapat dipanggil oleh class yang bersangkutan dan class turunannya.
Public, dapat dipanggil oleh siapa saja.
23
Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Hubungan antar class dapat berupa sebagai berikut. 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
Gambar 2.15 Contoh class diagram[13]. 24
2.4.3
Sequence Diagram
Sequence diagram menggambarkan interaksi antar obyek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri dari dimensi vertikal (waktu) dan dimensi horizontal (obyek-obyek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktifitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing obyek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu obyek ke obyek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message.
Gambar 2.16 Contoh sequence diagram[16].
25