RPL 2 || PERTEMUAN 11 DAN 12

DIAGRAM STATUS
STUDI KASUS PENGIRIMAN BARANG


1. Pengertian Diagram Status

    Diagram status sering disebut juga dengan diagram mesin status. Dalam Bahasa Inggris diagram status disebut dengan State Machine Diagram atau Statechart Diagram. Diagram status merupakan diagram UML yang digunakan untuk menggambarkan perubahan status atau transisi status dari sebuah mesin atau sistem atau objek. Diagram status cocok digunakan untuk menggambarkan alur interaksi pengguna dengan sistem. Diagram status berfungsi untuk memodelkan metode/behavior (lifecycle) sebuah class atau objek menunjukkan urutan kejadian sesaat (status) yang dilewati sebuah objek, transisi dari sebuah status ke status lainnya. Jika diagram sekuen digunakan untuk interaksi antar objek, maka diagram status digunakan untuk interaksi didalam sebuah objek. Perubahan tersebut digambarkan dalam suatu graf berarah. 

    Diagram status dapat juga dikatakan adalah diagram yang digunakan untuk medeskripsikan perilaku sistem. Diagram status mendeskripsikan semua kondisi yang mungkin muncul sebagai sebuah objek begitu pula dengan event/kejadian. Diagram status mengambarkan seluruh state/status yang memungkinkan objek-objek dalam class dapat dimiliki dan kejadian-kejadian yang menyebabkan status berubah. Perubahan dalam suatu state disebut juga transisi (transition). Suatu transisi juga dapat memiliki sebuah aksi yang dihubungkan pada status atau yang harus dilakukan dalam hubungannya dengan transisi status. Sebuah status adalah kondisi selama hidup objek atau interaksi selama memenuhi suatu kondisi, melaksanakan suatu aksi, atau menunggu suatu kejadian. 

    Diagram status merupakan pengembangan dari diagram Finite State Automata dengan penambahan beberapa fitur dan konsep baru. Diagram Finite State Automata (FSA) biasanya diajarkan dalam mata kuliah Automata. Didalam diagram status ada beberapa elemen yaitu kotak yang merepresentasikan state sebuah objek, tanda panah untuk menunjukkan perpindahan ke state yang selanjutnya dan bagian aktivitas dari simbol state menggambarkan aktivitas objek yang akan dilakukan selama didalam state.

    Sebelum membuat diagram status untuk sebuah studi kasus, ada beberapa hal yang perlu dipikirkan terlebih dahulu, yaitu :

a. Identifikasi objek untuk dianalisis.

b. Mengidentifikasi state/status keadaan.

c. Mengidentifikasi event/peristiwa/kejadian.

    Adapun manfaat dari statechart diagram adalah sebagai berikut;

a. Memodelkan sistem reaktif, yaitu sebuah sistem yang merespon kejadian internal ataupun external.

b. Memodelkan sebuah aktivitas life time dari awal hingga akhir.

c. Memodelkan aspek dinamik suatu sistem.

d. Memodelkan masa pakai sistem reaktif.

e. Menggambarkan objek yang beda ketika sistem sedang berjalan.


2. Simbol Diagram Status

    Berikut ini simbol-simbol dari diagram status yaitu :

3. Tutorial Membuat Diagram Status dengan Visio

    Untuk membuat diagram status dapat menggunakan tools berupa Microsoft Visio. Berikut ini langkah-langkah membuat diagram status dengan Visio :

1. Buka Microsoft Visio. Lalu, akan muncul tampil awal dari Visio saat pertama dibuka. Ada banyak model yang dapat dibuat dengan Visio. Kemudian, pilih Basic Diagram.

2. Setelah itu, akan muncul tampilan untuk membuat file baru. Klik Create untuk membuat file baru Visio.

3. Dibagian kiri terdapat pilihan bentuk untuk membuat berbagai bentuk dan diagram. Pilih More Shapes untuk mencari bentuk-bentuk yang sesuai dengan diagram status. Setelah memilih More Shapes, kemudian ada muncul beberapa pilihan dan pilih Software and Database, lalu pada pilihan berikutnya pilih Software. Setelah itu, ada banyak pilihan diagram dan setiap pilihan tersebut akan menampilkan bentuk yang berbeda sesuai dengan bentuk dari diagramnya. Pada pilihan tersebut terdapat Data Flow Diagram Shape, disana ada beberapa bentuk yang sesuai untuk membuat diagram status. Oleh karena itu, pilih saja Data Flow Diagram Shape dan akan dimodif agar bentuknya sesuai dengan diagram status.

Berikut ini bentuk-bentuk yang ada pada Data Flow Diagram yaitu :

4. Untuk mengatur agar simbol-simbol tidak berwarna dan hanya hitam putih (tujuannya agar isi atau tulisan dapat terlihat jelas), maka bisa dilakukan dengan pilih Design dibagian atas. Lalu pilih bentuk design yang tidak berwarna atau hitam putih. Maka, simbol-simbol yang terletak disebelah kiri akan berubah menjadi hitam putih semuanya. 

5. Untuk membuat start, maka tarik simbol State atau bisa juga Data Process ke halaman kerja. Maka akan terbentuk bulat, kemudian beri warna pada bulatan tersebut agar hitam.

6. Untuk membuat state, maka tarik simbol External interactor ke halaman kerja. Maka akan terbentuk persegi panjang. Lalu klik bentuk tersebut dan pilih Format Shape untuk mnegatur agar ujung dari persegi panjang agar lengkung. 

Disebelah kanan alan muncul bagian Format Shape, piih Line karena yang akan diatur adalah bentuk garisnya. Lalu, cari Rounding presets untuk menentukan garis pembentuk persegi panjang. Kemudian, pilih bentuk yang ujung dari perseginya agak lengkung.

7. Untuk membuat end, maka tarik simbol State atau bisa juga Data Process ke halaman kerja. Maka akan terbentuk bulat. Lalu tarik lai bentuk tersebut dan letakkan didalam bentuk bulatan yang pertama dana tur ukurannya agar lebih kecil dan letaknya tepat ditengah-tengah. Pada bulatan yang kecil di tengah diatur agar berwarna hitam. 

8. Selanjutnya, untuk pemberian nama pada state dilakukan dengan mengklik bagian tengah dari simbol state (persegi panjang), lalu tuliskan isi dari state tersebut.  

9. Untuk membuat event (garis panah) dari start ke state dan dari state ke end dapat menggunakan line dibagian atas (pilihan disamping Pointer Tool). Pilih bentuk garis lalu tarik dari start ke state. 

Setelah dibuat garis dari start ke state, klik garis tersebut lalu klik kanan dan pilih Format Shape. Pada tampilan Format Shape disebelah kanan pilih Line, lalu scroll dan cari End Arrow Type untuk memilih bentuk mata panah disalah satu ujung garis. Arahkan mata panah ke tahap yang dituju.

10. Untuk menuliskan keterangan disamping event, dilakukan dengan mengklik Text yang ada dibagian atas. Kemudian, mengklik letak teks tersebut disamping event yang ada di halaman kerja. Lalu, tuliskan isi teksnya.

11. Begitulah cara membuat diagram status. Jadi, lakukan hal-hal diatas tadi untuk membuat start, end, state dan event serta teksnya. Sampai pada akhirnya akan menghasilkan diagram status yang lengkap sesuai dengan studi kasus.


4. Praktikum Studi Kasus Diagram Status

A. Diagram Status Kelas Main

Objek : m dari class Main

Penjelasan :

Terdapat metode main() dari class Main yang membawa transisi atau event dari status awal (start) ke status akhir (end). Jadi, metode main() digunakan untuk menjalankan sistem hingga akhir. 

B. Diagram Status Kelas Antarmuka

Objek : am dari class Antarmuka

Penjelasan :

Terdapat beberapa metode didalam class Antarmuka yang ketika dijalankan akan membawa dari status awal (start) ke status akhir (end), seperti formLogin() untuk login,  formBarang() untuk menampilkan data barang, formPengiriman() untuk menampilkann data pengiriman, formDistributor untuk menampilkan data distributor, dan lainnya. 

Namun, terdapat beberapa metode yang dijalankan sebagai bagian dari proses lain yang akan dilanjutkan oleh metode lainnya. Contohnya seperti untuk proses mengubah dan menghapus data, maka pada awalnya akan dijalankan proses pencarian data untuk menemukan data yang akan diubah atau dihapus. Seperti berikut ini :

a. Dari start akan menampilkan formCariBarang() untuk menemukan data barang yang dicari, untuk mengubah atau menghapus data tersebut melalui tampilan formDetilBarang(), dan setelah itu akan menuju ke end. 

b. Dari start akan menampilkan formCariPengiriman() untuk menemukan data pengiriman yang dicari, untuk mengubah atau menghapus data tersebut melalui tampilan formDetilPengiriman(), dan setelah itu akan menuju ke end. 

c. Dari start akan menampilkan formCariDistributor() untuk menemukan data distributor yang dicari, untuk mengubah atau menghapus data tersebut melalui tampilan formDetilDistributor(), dan setelah itu akan menuju ke end. 

C. Diagram Status Kelas Validasi

Objek : v dari class Validasi

Penjelasan :

Dari status awal (start) membawa transisi (event) yaitu metode login() ke state variabel SESSION sebagai penanda bahwa status telah login. Pada state itu akan membawa transisi ke state itu sendiri berupa metode memeriksaStatusLogin() untuk pengecekan atau pemeriksaan setelah login. Setelah login dan diperiksa maka akan menuju ke status akhir (end) dengan membawa transisi (event) yaitu metode logout() untuk keluar dari sistem.

D. Diagram Status Kelas KoneksiDB

Objek : k dari class KoneksiDB

Penjelasan :

Pada class KoneksiDB, berjalan dari status awal (start) dengan membawa transisi (event) berupa metode open() ke state untuk masuk ke keadaaan dimana database (basis data) siap untuk diakses dan dikelola. Setelah itu, terdapat transisi berupa metode execute() untuk menjalankan query pada database sehingga akan masuk ke state dimana query telah dijalankan atau dieksekusi. Kemudian, terdapat metode getResult() pada transisi selanjutnya untuk menampilkan data dari database sebagai hasil dari query yang telah dijalankan pada database. Lalu, dari state hasil query berjalan ke status akhir (end) dengan membawa metode close() untuk menutup database.

E. Diagram Status Kelas KelolaBarang

Objek : kb dari class KelolaBarang

Penjelasan :

Pada class KelolaBarang terdapat beberapa metode seperti untuk mencari, menampilkan, menambah, mengubah dan menghapus data barang. Proses mencari data barang merupakan proses yang dapat berdiri sendiri, dan juga sebagai bagian dari proses mengubah dan menghapus data. Karena sebelum mengubah atau menghapus data, maka perlu dicari terlebih dahulu data yang diinginkan. 

Pada diagram status class KelolaBarang diawali dengan adanya status awal (start) untuk menandakan aktifnya sistem, yang langsung menuju ke status akhir (end) dengan membawa transisi (event) berupa metode cariBarang() atau tampilBarang() ataupun tambahBarang(). Jadi, metode-metode tadi dapat berjalan langsung dari start ke end tanpa perlu metode lainnya, artinya metode tersebut dapat berdiri sendiri. 

Terdapat juga, dari status awal (start) yang membawa transisi (event) metode cariBarang() ke state (keadaan) dimana untuk mencari data barang yang diinginkan. Setelah itu, dari state tersebut akan berjalan dengan transisi berupa metode ubahBarang() ataupun hapusBarang(), yang nantinya menuju ke status akhir (end). Jadi, metode ubahBarang() dan hapusBarang() sebelumnya memerlukan metode cariBarang(). Hal ini karena data barang memiliki banyak data, sehingga perlunya pencarian data terlebih dahulu.

F. Diagram Status Kelas KelolaPengiriman

Objek : kp dari class KelolaPengiriman

Penjelasan :

Pada class KelolaPengiriman terdapat beberapa metode seperti untuk mencari, menampilkan, menambah, mengubah dan menghapus data pengiriman. Proses mencari data pengiriman merupakan proses yang dapat berdiri sendiri, dan juga sebagai bagian dari proses mengubah dan menghapus data. Karena sebelum mengubah atau menghapus data, maka perlu dicari terlebih dahulu data yang diinginkan. 

Pada diagram status class KelolaPengiriman diawali dengan adanya status awal (start) untuk menandakan aktifnya sistem, yang langsung menuju ke status akhir (end) dengan membawa transisi (event) berupa metode cariPengiriman() atau tampilPengiriman() ataupun tambahPengiriman(). Jadi, metode-metode tadi dapat berjalan langsung dari start ke end tanpa perlu metode lainnya, artinya metode tersebut dapat berdiri sendiri. 

Terdapat juga, dari status awal (start) yang membawa transisi (event) metode cariPengiriman() ke state (keadaan) dimana untuk mencari data pengiriman yang diinginkan. Setelah itu, dari state tersebut akan berjalan dengan transisi berupa metode ubahPengiriman() ataupun hapusPengiriman(), yang nantinya menuju ke status akhir (end). Jadi, metode ubahPengiriman() dan hapusPengiriman() sebelumnya memerlukan metode cariPengiriman(). Hal ini karena data pengiriman memiliki banyak data, sehingga perlunya pencarian data terlebih dahulu.

G. Diagram Status Kelas KelolaDistributor

Objek : kd dari class KelolaDistributor

Penjelasan :

Pada class KelolaDistributor terdapat beberapa metode seperti untuk mencari, menampilkan, menambah, mengubah dan menghapus data distributor. Proses mencari data distributor merupakan proses yang dapat berdiri sendiri, dan juga sebagai bagian dari proses mengubah dan menghapus data. Karena sebelum mengubah atau menghapus data, maka perlu dicari terlebih dahulu data yang diinginkan. 

Pada diagram status class KelolaDistributor diawali dengan adanya status awal (start) untuk menandakan aktifnya sistem, yang langsung menuju ke status akhir (end) dengan membawa transisi (event) berupa metode cariDistributor() atau tampilDistributor() ataupun tambahDistributor(). Jadi, metode-metode tadi dapat berjalan langsung dari start ke end tanpa perlu metode lainnya, artinya metode tersebut dapat berdiri sendiri. 

Terdapat juga, dari status awal (start) yang membawa transisi (event) metode cariDistribitor() ke state (keadaan) dimana untuk mencari data distributor yang diinginkan. Setelah itu, dari state tersebut akan berjalan dengan transisi berupa metode ubahDistributor() ataupun hapusDistributor(), yang nantinya menuju ke status akhir (end). Jadi, metode ubahDistirbutor() dan hapusDistributor() sebelumnya memerlukan metode cariDistributor(). Hal ini karena data distributor memiliki banyak data, sehingga perlunya pencarian data terlebih dahulu.

H. Diagram Status Kelas KelolaAkun

Objek : ka dari class KelolaAkun

Penjelasan :

Pada class KelolaAkun terdapat beberapa metode seperti menampilkan dan mengubah data akun admin. Data akun admin hanya memiliki satu data, hal ini karena hanya ada satu admin di perusahaan. 

Pada diagram status class KelolaAkun diawali dengan adanya status awal (start) untuk menandakan aktifnya sistem, yang langsung menuju ke status akhir (end) dengan membawa transisi (event) berupa metode tampilAkun() ataupun ubahAkun(). Jadi, pada class ini tidak ada metode cari akun karena hanya ada satu data akun admin yang dapat ditampilkan dan diubah. Sehingga metode-metode tersebut berdiri sendiri tanpa metode lainnya.

I. Diagram Status Kelas KelolaKepala

Objek : kk dari class KelolaKepala

Penjelasan :

Pada class KelolaKepala terdapat beberapa metode seperti menampilkan dan mengubah data kepala gudang. Data kepala gudang hanya memiliki satu data, hal ini karena hanya ada satu kepala gudang di perusahaan. 

Pada diagram status class KelolaKepala diawali dengan adanya status awal (start) untuk menandakan aktifnya sistem, yang langsung menuju ke status akhir (end) dengan membawa transisi (event) berupa metode tampilKepala() ataupun ubahKepala(). Jadi, pada class ini tidak ada metode cari kepala gudang karena hanya ada satu data kepala gudang yang dapat ditampilkan dan diubah. Sehingga metode-metode tersebut berdiri sendiri tanpa metode lainnya.

J. Diagram Status Kelas Barang

Objek : b dari class Barang

Penjelasan :

Pada class barang ini, terdapat metode set dan get pada atributnya. Metode set digunakan untuk mengisi nilai dari setiap atribut yang ada pada class barang, yaitu IdBarang, NamaBarang, BeratBarang, SatuanBarang, HargaBarang, Kadaluwarsa, dan IdPengiriman. Semua metode set dapat dijalankan sendiri (diisi manual) ataupun diisi dari hasil menjalankan query cariBarang() atau tampilBarang(). Selain itu, metode set juga diperlukan sebelum menjalankan query tambahBarang() atau ubahBarang() ataupun hapusBarang(). Hal itu karena, metode-metode tersebut membutuhkan nilai atribut dari class dalam membentuk querynya. Jadi, perlu diatur terlebih dahulu nilai-nilai atribut dengan metode set, kemudian baru dijalankan querynya. Sedangkan metode get pada atribut dapat dijalankan dan digunakan untuk menampilkan nilai atribut jika nilai tersebut telah terisi.

Jadi, dari diagram status diatas diawali dari status awal (start) menuju ke state (keadaan) dimana nilai atribut telah terisi dengan membawa transisi (event) berupa metode set untuk nilai atributnya. Dari start bisa juga ke state dimana query dieksekusi yaitu berupa query cariBarang() atau tampilBarang() sebagai isi dari transisinya. Lalu, menuju ke state dimana nilai atribut telah terisi dengan membawa transisi metode set untuk nilai atributnya. Setelah itu, akan menuju kembali ke state query dieksekusi dengan transisi query tambahBarang() atau ubahBarang() ataupun hapusBarang(). Jika sudah mencapai state dimana nilai atribut telah terisi, maka untuk menampilkan data dengan transisi berupa metode get dan akan menuju ke status akhir (end). 

K. Diagram Status Kelas Pengiriman

Objek : p dari class Pengiriman

Penjelasan :

Pada class pengiriman ini, terdapat metode set dan get pada atributnya. Metode set digunakan untuk mengisi nilai dari setiap atribut yang ada pada class pengiriman, yaitu IdPengiriman, TglPengiriman, Jumlah, Total, Id, IdDistributor, dan IdKepala. Semua metode set dapat dijalankan sendiri (diisi manual) ataupun diisi dari hasil menjalankan query cariPengiriman() atau tampilPengiriman(). Selain itu, metode set juga diperlukan sebelum menjalankan query tambahPengiriman() atau ubahPengiriman() ataupun hapusPengiriman(). Hal itu karena, metode-metode tersebut membutuhkan nilai atribut dari class dalam membentuk querynya. Jadi, perlu diatur terlebih dahulu nilai-nilai atribut dengan metode set, kemudian baru dijalankan querynya. Sedangkan metode get pada atribut dapat dijalankan dan digunakan untuk menampilkan nilai atribut jika nilai tersebut telah terisi.

Jadi, dari diagram status diatas diawali dari status awal (start) menuju ke state (keadaan) dimana nilai atribut telah terisi dengan membawa transisi (event) berupa metode set untuk nilai atributnya. Dari start bisa juga ke state dimana query dieksekusi yaitu berupa query cariPengiriman() atau tampilPengiriman() sebagai isi dari transisinya. Lalu, menuju ke state dimana nilai atribut telah terisi dengan membawa transisi metode set untuk nilai atributnya. Setelah itu, akan menuju kembali ke state query dieksekusi dengan transisi query tambahPengiriman() atau ubahPengiriman() ataupun hapusPengiriman(). Jika sudah mencapai state dimana nilai atribut telah terisi, maka untuk menampilkan data dengan transisi berupa metode get dan akan menuju ke status akhir (end). 

L. Diagram Status Kelas Distributor

Objek : d dari class Distributor

Penjelasan :

Pada class distributor ini, terdapat metode set dan get pada atributnya. Metode set digunakan untuk mengisi nilai dari setiap atribut yang ada pada class distributor, yaitu IdDistributor, NamaDistributor, AlamatDistributor, HpDistributor, UsernameDistributor, dan PasswordDistributor. Semua metode set dapat dijalankan sendiri (diisi manual) ataupun diisi dari hasil menjalankan query cariDistributor() atau tampilDistributor(). Selain itu, metode set juga diperlukan sebelum menjalankan query tambahDistributor() atau ubahDistributor() ataupun hapusDistributor(). Hal itu karena, metode-metode tersebut membutuhkan nilai atribut dari class dalam membentuk querynya. Jadi, perlu diatur terlebih dahulu nilai-nilai atribut dengan metode set, kemudian baru dijalankan querynya. Sedangkan metode get pada atribut dapat dijalankan dan digunakan untuk menampilkan nilai atribut jika nilai tersebut telah terisi.

Jadi, dari diagram status diatas diawali dari status awal (start) menuju ke state (keadaan) dimana nilai atribut telah terisi dengan membawa transisi (event) berupa metode set untuk nilai atributnya. Dari start bisa juga ke state dimana query dieksekusi yaitu berupa query cariDistributor() atau tampilDistributor() sebagai isi dari transisinya. Lalu, menuju ke state dimana nilai atribut telah terisi dengan membawa transisi metode set untuk nilai atributnya. Setelah itu, akan menuju kembali ke state query dieksekusi dengan transisi query tambahDistributor() atau ubahDistributor() ataupun hapusDistributor(). Jika sudah mencapai state dimana nilai atribut telah terisi, maka untuk menampilkan data dengan transisi berupa metode get dan akan menuju ke status akhir (end). 

M. Diagram Status Kelas Admin

Objek : a dari class Admin

Penjelasan :

Pada class admin ini, terdapat metode set dan get pada atributnya. Metode set digunakan untuk mengisi nilai dari setiap atribut yang ada pada class admin, yaitu Id, Nama, Alamat, Hp, Username, dan Password. Semua metode set dapat dijalankan sendiri (diisi manual) ataupun diisi dari hasil menjalankan query tampilAkun(). Selain itu, metode set juga diperlukan sebelum menjalankan query ubahAkun(). Hal itu karena, metode tersebut membutuhkan nilai atribut dari class dalam membentuk querynya. Jadi, perlu diatur terlebih dahulu nilai-nilai atribut dengan metode set, kemudian baru dijalankan querynya. Sedangkan metode get pada atribut dapat dijalankan dan digunakan untuk menampilkan nilai atribut jika nilai tersebut telah terisi.

Jadi, dari diagram status diatas diawali dari status awal (start) menuju ke state (keadaan) dimana nilai atribut telah terisi dengan membawa transisi (event) berupa metode set untuk nilai atributnya. Dari start bisa juga ke state dimana query dieksekusi yaitu berupa query tampilDistributor() sebagai isi dari transisinya. Lalu, menuju ke state dimana nilai atribut telah terisi dengan membawa transisi metode set untuk nilai atributnya. Setelah itu, akan menuju kembali ke state query dieksekusi dengan transisi query ubahAkun(). Jika sudah mencapai state dimana nilai atribut telah terisi, maka untuk menampilkan data dengan transisi berupa metode get dan akan menuju ke status akhir (end). 

N. Diagram Status Kelas Kepala_Gudang

Objek : kg dari class Kepala_Gudang

Penjelasan :

Pada class kepala_gudang ini, terdapat metode set dan get pada atributnya. Metode set digunakan untuk mengisi nilai dari setiap atribut yang ada pada class kepala_gudang, yaitu IdKepala, NamaKepala, JkKepala, AlamatKepala, HpKepala, UsernameKepala, dan PasswordKepala. Semua metode set dapat dijalankan sendiri (diisi manual) ataupun diisi dari hasil menjalankan query tampilKepala(). Selain itu, metode set juga diperlukan sebelum menjalankan query ubahKepala(). Hal itu karena, metode tersebut membutuhkan nilai atribut dari class dalam membentuk querynya. Jadi, perlu diatur terlebih dahulu nilai-nilai atribut dengan metode set, kemudian baru dijalankan querynya. Sedangkan metode get pada atribut dapat dijalankan dan digunakan untuk menampilkan nilai atribut jika nilai tersebut telah terisi.

Jadi, dari diagram status diatas diawali dari status awal (start) menuju ke state (keadaan) dimana nilai atribut telah terisi dengan membawa transisi (event) berupa metode set untuk nilai atributnya. Dari start bisa juga ke state dimana query dieksekusi yaitu berupa query tampilKepala() sebagai isi dari transisinya. Lalu, menuju ke state dimana nilai atribut telah terisi dengan membawa transisi metode set untuk nilai atributnya. Setelah itu, akan menuju kembali ke state query dieksekusi dengan transisi query ubahKepala(). Jika sudah mencapai state dimana nilai atribut telah terisi, maka untuk menampilkan data dengan transisi berupa metode get dan akan menuju ke status akhir (end). 

 

RPL 2 || PERTEMUAN 10

DIAGRAM KOMUNIKASI DAN DIAGRAM KOLABORASI
STUDI KASUS PENGIRIMAN BARANG


1. Pengertian Diagram Komunikasi

    Diagram komunikasi (Communication Diagram) adalah sebuah diagram UML yang menggambarkan tentang interaksi antar objek atau bagian dalam bentuk urutan pengiriman pesan. Diagram komunikasi memrepresentasikan informasi yang diperoleh dari class diagram (diagram kelas), sequence diagram (diagram sekuen) dan use case diagram (diagram use case) untuk mendeskripsikan gabungan antara struktur statis dan tingkah laku dinamis dari suatu sistem. 

    Diagram komunikasi mengelompokkan message atau pesan pada kumpulan diagram sekuen menjadi sebuah diagram. Dalam diagram komunikasi yang dituliskan adalah operasi atau metode yang dijalankan antara objek yang satu dan objek lainnya secara keseluruhan, oleh karena itu dapat diambil dari jalannya interaksi pada semua diagram sekuen. Penomoran metode dapat dilakukan berdasarkan ururan dijalankannya metode atau operasi diantara objek yang satu dengan objek lainnya atau objek itu sendiri. 

    Yang membedakan diagram komunikasi dari diagram yang lain adalah diagram komunikasi ini yang mengarahkan objek-objek dan asosiasi dengan objek-objek yang lain dalam sistem bersamaan dengan interaksinya. Asosiasi ini tidaklah dijelaskan dalam sequence diagram. Sequence diagram hanya menunjukkan objek-objek dan pesan-pesan yang ikut serta dalam interaksi tersebut serta urutan prosesnya. Tetapi tidak menunjukkan hubungan diantara objek-objek yang ada.

    Adapun tujuan dari diagram komunikasi adalah :

a. Model pesan melalui antar peran atau objek yang mengirimkan operasi penggunaan dan fungsionalitas kasus.

b. Mekanisme model dalam desain arsitektur sistem.

c. Tangkap interaksi yang mengarahkan pesan yang dilewati antar peran dan objek dalam skenario kolaborasi.

d. Model skenario alternatif dalam kasus pemakaian atau operasi yang melibatkan kolaborasi dari berbagai interaksi dan objek.

e. Dukung pengidentifikasian objek (sebab kelas), atributnya (parameter pesan), dan operasi (pesan) yang ikut serta dalam use case.


2. Pengertian Diagram Kolaborasi

    Diagram kolaborasi (Collaboration Diagram) adalah diagram yang mengelompokkan message atau pesan pada kumpulan diagram komunikasi menjadi sebuah diagram. Dalam diagram kolaborasi yang dituliskan adalah operasi atau metode yang dijalankan antara objek yang satu dan objek lainnya secara keseluruhan, oleh karena itu dapat diambil dari jalannya interaksi pada diagram komunikasi. Penomororan metode dapat dilakukan berdasarkan urutan dijalankannnya metode atau operasi diantara objek yang satu dengan objek lainnya atau objek itu sendiri.

    Sebenarnya, diagram kolaborasi adalah diagram komunikasi yang digabungkan. Diagram komunikasi adalah diagram kolaborasi tetapi dibuat untuk setiap sekuen, jadi merupakan diagram komunikasi itu penyederhanaan dari diagram kolaborasi. 

    Diagram kolaborasi adalah perluasan dari objek dan diagram (objek diagram menunjukkan objek-objek dan hubungannya satu dengan yang lain). Diagram kolaborasi menunjukkan message-message objek yang dikirim satu sama lain  dan juga menggambarkan interaksi antar objek seperti diagram sekuen, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message. Diagram kolaborasi juga menunjukkan informasi yang sama persis dengan diagram sekuen, tetapi dalam bentuk dan tujuan yang berbeda. Sebagaimana diagram sekuen, diagram kolaborasi digunakan untuk menampilkan aliran skenario tertentu di dalam Use Case. Jika diagram sekuen disusun berdasarkan urutan waktu, diagram kolaborsi lebih berkonsentrasi pada hubungan antar objek-objek. 

    Fungsi diagram kolaborasi digunakan untuk :

a. Pandangan dalam arti perilaku sistem, berfokus pada link-link diantara objek objek.

b. Illustrasi dari suatu diagram Use Case.

c. Menyatakan objek-objek yang diperlukan untuk merealisasikan suatu layanan.

d. Memeriksa jalur-jalur pengaksesan.


3. Simbol Diagram Komunikasi dan Kolaborasi

    Diagram komunikasi dan kolaborasi memiliki bentuk simbol yang sama yaitu :

4. Praktikum Studi Kasus Diagram Komunikasi

Deskripsi Kasus : Sistem Informasi Pengiriman Barang 

Studi kasus yang diambil oleh penulis berjudul Sistem Informasi Pengiriman Barang. Sistem informasi ini mengelola dan memanajemen informasi tentang pengiriman barang yang dilakukan oleh sebuah perusahaan distributor besar ke sebuah distributor kecil (seperti toko). Barang yang dimaksudkan pada studi kasus ini adalah barang pangan kebutuhan rumah tangga, yaitu terigu, kanji, gula halus dan lainnya. 

Sistem informasi ini dapat dikelola oleh seorang admin dan dapat dilihat oleh seorang kepala gudang untuk memeriksa dan menyetujui data-data mengenai pengiriman barang, serta dapat juga dilihat oleh distributornya. Jadi, disebuah perusahaan hanya terdapat seorang admin dan seorang kepala gudang, serta banyak distributor yang telah bekerja sama dengan perusahaan sehingga dapat masuk ke sistem tetapi tetap dikontrol oleh admin.

Admin memiliki hak akses penuh terhadap sistem informasi. Hak akses admin yaitu :

a. Mengelola data barang, yaitu untuk menampilkan, mencari, menambah, mengubah dan menghapus data barang.

b. Mengelola data pengiriman, yaitu untuk menampilkan, mencari, menambah, mengubah dan menghapus data pengiriman.

c. Mengelola data distributor, yaitu untuk menampilkan, mencari, menambah, mengubah dan menghapus data distributor.

d. Mengelola akun untuk admin, yaitu untuk menampilkan dan mengubah data untuk akun admin.

e. Mengelola kepala gudang, yaitu untuk menampilkan dan mengubah data untuk akun kepala gudang.

Kepala gudang memiliki hak akses terhadap sistem informasi. Hak akses kepala gudang yaitu :

a. Mengelola kepala gudang, yaitu untuk menampilkan dan mengubah data untuk akun kepala gudang.

b. Menampilkan dan mencari data barang.

c. Menampilkan dan mencari data pengiriman.

d. Menampilkan dan mencari data distributor.

Distributor juga memiliki hak akses terhadap sistem informasi. Distributor hanya dapat menampilkan dan mencari data pengiriman.

Untuk dapat menjalankan hak aksesnya, maka admin, kepala gudang dan distributor harus login terlebih dahulu ke sistem. Setelah login, saat ingin mengelola sistem maka akan dilakukan validasi untuk memeriksa hak akses dari penggunanya.  

A. Diagram Komunikasi Login

Penjelasan : 

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat melakukan validasi, berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formLogin() (proses nomor 2).

c. Dari class Antarmuka, setelah pengguna mengisi isi di formLogin maka akan berjalan ke class Validasi untuk pengecekan, dan berjalanlah proses login() (proses nomor 3).

d. Dari class Validasi maka akan berjalan ke KoneksiDB untuk membuka database dengan proses open() untuk melihat data-data dari pengguna yang berusaha login (proses nomor 4).

e. Dari class Validasi akan berjalan ke class Admin untuk pengecekan dan penyesuaian data saat login dengan data Admin, jadi digunakan perintah queryCekLogin() (proses nomor 5).

f. Dari class Admin akan berjalan ke KoneksiDB untuk menjalankan query yang ditujukan ke Admin, sehingga berjalan proses execute() (proses nomor 6). 

g. Kemudian, dari KoneksiDB akan memberikan hasil ke class Validasi dengan proses getResult() untuk menentukan hasil validasinya (proses nomor 7).

h. Setelah dapat hasilnya, maka dari class Validasi akan berjalan ke KoneksiDB lagi untuk menutup database dengan proses close() (proses nomor 8). 

B. Diagram Komunikasi Logout

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat melakukan validasi, berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka menuLogout() (proses nomor 2).

c. Dari class Antarmuka, setelah muncul menuLogout maka akan berjalan ke class Validasi untu keluar dari sistem, dan berjalanlah proses logout() (proses nomor 3).

C. Diagram Komunikasi Tampil Barang

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formBarang() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaBarang untuk menjalankan proses tampilBarang() agar dapat menampilkan barang (proses nomor 3).

d. Dari class KelolaBarang akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaBarang berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mengetahui isi data barang (proses nomor 5).

f. Dari class KelolaBarang berjalan memberikan perintah ke class Barang yaitu dengan queryTampilBarang() untuk menampilkan data barang (proses nomor 6).

g. Dari class Barang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Barang berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data barang (proses nomor 8).

i. Dari class KelolaBarang berjalan menampilkan (get) data-data dari barang ke class Barang, ada banyak data barang yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14, 15).

j. Dari class KelolaBarang berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 16).

D. Diagram Komunikasi Cari Barang

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formCariBarang() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaBarang untuk menjalankan proses cariBarang() agar dapat menampilkan barang (proses nomor 3).

d. Dari class KelolaBarang akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaBarang berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mencari data barang (proses nomor 5).

f. Dari class KelolaBarang berjalan memberikan perintah ke class Barang yaitu dengan queryCariBarang() untuk menampilkan data barang (proses nomor 6).

g. Dari class Barang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Barang berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data barang (proses nomor 8).

i. Dari class KelolaBarang berjalan menampilkan (get) data-data dari barang ke class Barang, ada banyak data barang yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14, 15).

j. Dari class KelolaBarang berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 16).

E. Diagram Komunikasi Tambah Barang

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formTambahBarang() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaBarang untuk menjalankan proses tambahBarang() agar dapat menambahkan data barang (proses nomor 3).

d. Dari class KelolaBarang akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaBarang berjalan ke class Barang untuk memasukkan atau menambahkan  data barang ke database. Beberapa data barang yang ditambahkan telah diubah dan telah diatur (set) ke class Barang (proses nomor 5, 6, 7, 8, 9, 10, 11). 

f. Dari class KelolaBarang berjalan ke KoneksiDB setelah membuat tambahan barang. Berjalan proses open() untuk membuka database agar dapat menambahkan data barang (proses nomor 12).

g. Dari class KelolaBarang berjalan memberikan perintah ke class Barang yaitu dengan queryTambahBarang() untuk menambah data barang (proses nomor 13).

h. Dari class Barang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 14).

i. Dari class KelolaBarang berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

F. Diagram Komunikasi Ubah Barang

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilBarang() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaBarang untuk menjalankan proses ubahBarang() agar dapat mengubah data barang (proses nomor 3).

d. Dari class KelolaBarang akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaBarang berjalan ke class Barang untuk mengubah dan menentukan isi dari data barang yang ada di database. Beberapa data barang di database yang telah diubah dan telah diatur (set) ke class Barang (proses nomor 5, 6, 7, 8, 9, 10, 11). 

f. Dari class KelolaBarang berjalan ke KoneksiDB setelah mengatur isi data. Berjalan proses open() untuk membuka database agar dapat mengubah data barang (proses nomor 12).

g. Dari class KelolaBarang berjalan memberikan perintah ke class Barang yaitu dengan queryUbahBarang() untuk mengubah data barang (proses nomor 13).

h. Dari class Barang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 14).

i. Dari class KelolaBarang berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

G. Diagram Komunikasi Hapus Barang

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilBarang() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaBarang untuk menjalankan proses hapusBarang() agar dapat menghapus data barang (proses nomor 3).

d. Dari class KelolaBarang akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaBarang berjalan ke KoneksiDB berjalan proses open() untuk membuka database agar dapat menghapus data barang (proses nomor 5).

f. Dari class KelolaBarang berjalan memberikan perintah ke class Barang yaitu dengan queryHapusBarang() untuk menghapus data barang (proses nomor 6).

g. Dari class Barang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class KelolaBarang berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 8).

H. Diagram Komunikasi Tampil Pengiriman

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formPengiriman() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaPengiriman untuk menjalankan proses tampilPengiriman() agar dapat menampilkan data pengiriman (proses nomor 3).

d. Dari class KelolaPengiriman akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaPengiriman berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mengetahui isi data pengiriman (proses nomor 5).

f. Dari class KelolaPengiriman berjalan memberikan perintah ke class Pengiriman yaitu dengan queryTampilPengiriman() untuk menamppilkan data pengiriman (proses nomor 6).

g. Dari class Pengiriman berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Pengiriman berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data pengiriman (proses nomor 8).

i. Dari class KelolaPengiriman berjalan menampilkan (get) data-data dari pengiriman ke class Pengiriman, ada banyak data pengiriman yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14, 15).

j. Dari class KelolaPengiriman berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 16).

I. Diagram Komunikasi Cari Pengiriman

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formCariPengiriman() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaPengiriman untuk menjalankan proses cariPengiriman() agar dapat menampilkan pengiriman (proses nomor 3).

d. Dari class KelolaPengiriman akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaPengiriman berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mencari data pengiriman (proses nomor 5).

f. Dari class KelolaPengiriman berjalan memberikan perintah ke class Pengiriman yaitu dengan queryCariPengiriman() untuk menampilkan data pengiriman (proses nomor 6).

g. Dari class Pengiriman berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Pengiriman berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data pengiriman (proses nomor 8).

i. Dari class KelolaPengiriman berjalan menampilkan (get) data-data dari barang ke class Pengiriman, ada banyak data pengiriman yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14, 15).

j. Dari class KelolaPengiriman berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 16).

J. Diagram Komunikasi Tambah Pengiriman

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formTambahPengiriman() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaPengiriman untuk menjalankan proses tambahPengiriman() agar dapat menambahkan data pengiriman (proses nomor 3).

d. Dari class KelolaPengiriman akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaPengiriman berjalan ke class Pengiriman untuk memasukkan atau menambahkan data pengiriman ke database. Beberapa data pengiriman yang ditambahkan telah diubah dan telah diatur (set) ke class Pengiriman (proses nomor 5, 6, 7, 8, 9, 10, 11). 

f. Dari class KelolaPengiriman berjalan ke KoneksiDB setelah membuat tambahan pengiriman. Berjalan proses open() untuk membuka database agar dapat menambahkan data pengiriman (proses nomor 12).

g. Dari class KelolaPengiriman berjalan memberikan perintah ke class Pengiriman yaitu dengan queryTambahPengiriman() untuk menambah data pengiriman (proses nomor 13).

h. Dari class Pengiriman berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 14).

i. Dari class KelolaPengiriman berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

K. Diagram Komunikasi Ubah Pengiriman

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilPengiriman() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaPengiriman untuk menjalankan proses ubahPengiriman() agar dapat mengubah data pengiriman (proses nomor 3).

d. Dari class KelolaPengiriman akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaPengiriman berjalan ke class Pengiriman untuk mengubah dan menentukan isi dari data pengiriman yang ada di database. Beberapa data pengiriman di database yang telah diubah dan telah diatur (set) ke class Pengiriman (proses nomor 5, 6, 7, 8, 9, 10, 11). 

f. Dari class KelolaPengiriman berjalan ke KoneksiDB setelah mengatur isi data. Berjalan proses open() untuk membuka database agar dapat mengubah data pengiriman (proses nomor 12).

g. Dari class KelolaPengiriman berjalan memberikan perintah ke class Pengiriman yaitu dengan queryUbahPengiriman() untuk mengubah data pengiriman (proses nomor 13).

h. Dari class Pengiriman berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 14).

i. Dari class KelolaPengiriman berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

L. Diagram Komunikasi Hapus Pengiriman

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilPengiriman() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaPengiriman untuk menjalankan proses hapusPengiriman() agar dapat menghapus data pengiriman (proses nomor 3).

d. Dari class KelolaPengiriman akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaPengiriman berjalan ke KoneksiDB berjalan proses open() untuk membuka database agar dapat menghapus data pengiriman (proses nomor 5).

f. Dari class KelolaPengiriman berjalan memberikan perintah ke class Pengiriman yaitu dengan queryHapusPengiriman() untuk menghapus data pengiriman (proses nomor 6).

g. Dari class Pengiriman berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class KelolaPengiriman berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 8).

M. Diagram Komunikasi Tampil Distributor

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDistributor() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaDistributor untuk menjalankan proses tampilDistributor() agar dapat menampilkan data distributor (proses nomor 3).

d. Dari class KelolaDistributor akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaDistributor berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mengetahui isi data pengiriman (proses nomor 5).

f. Dari class KelolaDistributor berjalan memberikan perintah ke class Distributor yaitu dengan queryTampilDistributor() untuk menampilkan data distributor (proses nomor 6).

g. Dari class Distributor berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Distributor berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data distributor (proses nomor 8).

i. Dari class KelolaDistributor berjalan menampilkan (get) data-data dari distributor ke class Distributor, ada banyak data distributor yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14).

j. Dari class KelolaDistributor berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

N. Diagram Komunikasi Cari Distributor

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formCariDistributor() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaDistributor untuk menjalankan proses cariDistributor() agar dapat menampilkan distributor (proses nomor 3).

d. Dari class KelolaDistributor akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaDistributor berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mencari data distributor (proses nomor 5).

f. Dari class KelolaDistributor berjalan memberikan perintah ke class Distributor yaitu dengan queryCariDistributor() untuk menampilkan data distributor (proses nomor 6).

g. Dari class Distributor berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Distributor berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data pengiriman (proses nomor 8).

i. Dari class KelolaPengiriman berjalan menampilkan (get) data-data dari barang ke class Pengiriman, ada banyak data pengiriman yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14, 15).

j. Dari class KelolaPengiriman berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 16).

O. Diagram Komunikasi Tambah Distributor

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formTambahDistributor() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaDistributor untuk menjalankan proses tambahDistributor() agar dapat menambahkan data distributor (proses nomor 3).

d. Dari class KelolaDistributor akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaDistributor berjalan ke class Distributor untuk memasukkan atau menambahkan data distributor ke database. Beberapa data distributor yang ditambahkan telah diubah dan telah diatur (set) ke class Distributor (proses nomor 5, 6, 7, 8, 9, 10). 

f. Dari class KelolaDistributor berjalan ke KoneksiDB setelah membuat tambahan distributor. Berjalan proses open() untuk membuka database agar dapat menambahkan data distributor (proses nomor 11).

g. Dari class KelolaDistributor berjalan memberikan perintah ke class Distributor yaitu dengan queryTambahDistributor() untuk menambah data distributor (proses nomor 12).

h. Dari class Distributor berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 13).

i. Dari class KelolaDistributor berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 14).

P. Diagram Komunikasi Ubah Distributor

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilDistributor() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaDistributor untuk menjalankan proses ubahDistributor() agar dapat mengubah data distributor (proses nomor 3).

d. Dari class KelolaDistributor akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaDistributor berjalan ke class Distributor untuk mengubah dan menentukan isi dari data distributor yang ada di database. Beberapa data distributor di database yang telah diubah dan telah diatur (set) ke class Distributor (proses nomor 5, 6, 7, 8, 9, 10, 11). 

f. Dari class KelolaDistributor berjalan ke KoneksiDB setelah mengatur isi data. Berjalan proses open() untuk membuka database agar dapat mengubah data distributor (proses nomor 12).

g. Dari class KelolaDistributor berjalan memberikan perintah ke class Distributor yaitu dengan queryUbahDistributor() untuk mengubah data distributor (proses nomor 13).

h. Dari class Distributor berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 14).

i. Dari class KelolaDistributor berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

Q. Diagram Komunikasi Hapus Distributor

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilDistributor() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaDistributor untuk menjalankan proses hapusDistributor() agar dapat menghapus data distributor (proses nomor 3).

d. Dari class KelolaDistributor akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaDistributor berjalan ke KoneksiDB berjalan proses open() untuk membuka database agar dapat menghapus data distributor (proses nomor 5).

f. Dari class KelolaDistributor berjalan memberikan perintah ke class Distributor yaitu dengan queryHapusDistributor() untuk menghapus data distributor (proses nomor 6).

g. Dari class Distributor berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class KelolaDistributor berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 8).

R. Diagram Komunikasi Tampil Akun

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formAkun() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaAkun untuk menjalankan proses tampilAkun() agar dapat menampilkan data akun admin (proses nomor 3).

d. Dari class KelolaAkun akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaAkun berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mengetahui isi data admin (proses nomor 5).

f. Dari class KelolaAkun berjalan memberikan perintah ke class Admin yaitu dengan queryTampilAkun() untuk menampilkan data admin (proses nomor 6).

g. Dari class Admin berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Admin berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data admin (proses nomor 8).

i. Dari class KelolaAkun berjalan menampilkan (get) data-data dari admin ke class Admin, ada banyak data distributor yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14).

j. Dari class KelolaAkun berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

S. Diagram Komunikasi Ubah Akun

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilAkun() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaAkun untuk menjalankan proses ubahAkun() agar dapat mengubah data akun admin (proses nomor 3).

d. Dari class KelolaAkun akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaAkun berjalan ke class Admin untuk mengubah dan menentukan isi dari data admin yang ada di database. Beberapa data admin di database yang telah diubah dan telah diatur (set) ke class Admin (proses nomor 5, 6, 7, 8, 9, 10). 

f. Dari class KelolaAkun berjalan ke KoneksiDB setelah mengatur isi data. Berjalan proses open() untuk membuka database agar dapat mengubah data admin (proses nomor 11).

g. Dari class KelolaAkun berjalan memberikan perintah ke class Admin yaitu dengan queryUbahAkun() untuk mengubah data admin (proses nomor 12).

h. Dari class Admin berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 13).

i. Dari class KelolaAkun berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 14).

T. Diagram Komunikasi Tampil Kepala

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat melakukan validasi, berinteraksi dengan sistem dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formKepala() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaKepala untuk menjalankan proses tampilAkun() agar dapat menampilkan data kepala gudang (proses nomor 3).

d. Dari class KelolaKepala akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaKepala berjalan ke KoneksiDB setelah proses validasi selesai. Berjalan proses open() untuk membuka database agar dapat mengetahui isi data kepala gudang (proses nomor 5).

f. Dari class KelolaKepala berjalan memberikan perintah ke class Kepala_Gudang yaitu dengan queryTampilKepala() untuk menampilkan data kepala gudang (proses nomor 6).

g. Dari class Kepala_Gudang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 7).

h. Dari class Kepala_Gudang berjalan ke KoneksiDB dengan proses getResult() untuk mendapatkan hasil berupa data kepala gudang (proses nomor 8).

i. Dari class KelolaKepala berjalan menampilkan (get) data-data dari kepala gudang ke class Kepala_Gudang, ada banyak data kepala gudang yang ditampilkan sesuai dengan isi dari database (proses nomor 9, 10, 11, 12, 13, 14, 15).

j. Dari class KelolaKepala berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 16).

U. Diagram Komunikasi Ubah Kepala

Penjelasan :

a. Seorang Admin Perusahaan sebagai salah satu pengguna yang dapat berinteraksi dengan sistem, dan akan berjalan class Main sebagai fungsi awal yang dieksekusi ketika sistem dijalankan (proses nomor 1). 

b. Dari class Main akan berjalan menuju class Antarmuka untuk membuka formDetilKepala() (proses nomor 2).

c. Dari class Antarmuka akan berjalan ke class KelolaKepala untuk menjalankan proses ubahKepala() agar dapat mengubah data kepala gudang (proses nomor 3).

d. Dari class KelolaKepala akan berjalan ke class Validasi untuk proses memeriksaStatusLogin() agar mengecek hak akses pengguna (proses nomor 4).

e. Dari class KelolaKepala berjalan ke class Kepala_Gudang untuk mengubah dan menentukan isi dari data kepala gudang yang ada di database. Beberapa data kepala gudang di database yang telah diubah dan telah diatur (set) ke class Kepala_Gudang (proses nomor 5, 6, 7, 8, 9, 10, 11). 

f. Dari class KelolaKepala berjalan ke KoneksiDB setelah mengatur isi data. Berjalan proses open() untuk membuka database agar dapat mengubah data kepala gudang (proses nomor 12).

g. Dari class KelolaKepala berjalan memberikan perintah ke class Kepala_Gudang yaitu dengan queryUbahKepala() untuk mengubah data kepala gudang (proses nomor 13).

h. Dari class Kepala_Gudang berjalan ke KoneksiDB dengan proses execute() untuk menjalankan query atau perintah yang sebelumnya diterima (proses nomor 14).

i. Dari class KelolaKepala berjalan proses close() ke KoneksiDB untuk menutup database (proses nomor 15).

5. Praktikum Studi Kasus Diagram Kolaborasi

A. Diagram Kolaborasi Validasi

Penjelasan :

a. Dari class Main ke class Antarmuka berisi banyak tampilan yang masing-masing memiliki kegunaannya. Ada banyak form yang digunakan untuk menampilkan data, mencari data, dan mengubah serta menghapus data, baik itu untuk data akun admin, kepala gudang, barang, pengiriman, dan distributor (proses nomor 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18).

b. Dari class Antarmuka ke class Validasi dapat berjalan proses untuk login dan logout dari sistem (proses nomor 19, 20). 

c. Dari class Validasi ke KoneksiDB dapat berjalan beberapa proses untuk mengakses database, seperti open untuk buka database, getResult untuk mendapatkan data dan close untuk menutup database (proses nomor 21, 22, 23).

d. Dari class Validasi ke class Admin berjalan proses queryCekLogin() untuk memeriksa atau mengecek pengguna yang masuk ke sistem beserta hak aksesnya (proses nomor 24).

e. Dari class Admin ke KoneksiDB berjalan proses execute untuk menjalankan perintah yang telah diberikan ke class Admin sebelumnya untuk melaksanakan perintah tersebut ke database (proses nomor 25). 

B. Diagram Kolaborasi Kelola Barang

Penjelasan :

a. Dari class Antarmuka ke class KelolaBarang dapat berjalan proses-proses untuk mengelola data barang, seperti menampilkan, mencari, manambah, mengubah dan menghapus data barang (proses nomor 1, 2, 3, 4, 5).

b. Dari class KelolaBarang ke class Barang ada banyak data barang (atribut) yang dapat ditampilkan (get) atau diatur (set), seperti IdBarang, NamaBarang, BeratBarang, SatuanBarang, HargaBarang, Kadaluwarsa, IdPengiriman. Selain itu, juga disertai query untuk menampilkan, mencari, menambah, mengubah, dan menghapus data (proses nomor 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24).  

c. Dari class KelolaBarang ke class Validasi berjalan proses memeriksaStatusLogin() untuk mengecek hak akses pengguna (proses nomor 25).

d. Dari class KelolaBarang ke KoneksiDB dapat berjalan proses open() dan close() untuk membuka dan menutup database (proses nomor 26, 27).

e. Dari class Barang ke class KoneksiDB akan berjalan proses execute() dan getResult() untuk menjalankan dan mendapatkan data dari perintah yang diberikan pada class Barang untuk ke database (proses nomor 28, 29).

C. Diagram Kolaborasi Kelola Pengiriman

Penjelasan :

a. Dari class Antarmuka ke class KelolaPengiriman dapat berjalan proses-proses untuk mengelola data pengiriman, seperti menampilkan, mencari, manambah, mengubah dan menghapus data pengiriman (proses nomor 1, 2, 3, 4, 5).

b. Dari class KelolaPengiriman ke class Pengiriman ada banyak data pengiriman (atribut) yang dapat ditampilkan (get) atau diatur (set), seperti IdPengiriman, TglPengiriman, Jumlah, Total, Id, IdDistributor, IdKepala. Selain itu, juga disertai query untuk menampilkan, mencari, menambah, mengubah, dan menghapus data (proses nomor 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24).  

c. Dari class KelolaPengiriman ke class Validasi berjalan proses memeriksaStatusLogin() untuk mengecek hak akses pengguna (proses nomor 25).

d. Dari class KelolaPengiriman ke KoneksiDB dapat berjalan proses open() dan close() untuk membuka dan menutup database (proses nomor 26, 27).

e. Dari class Pengiriman ke class KoneksiDB akan berjalan proses execute() dan getResult() untuk menjalankan dan mendapatkan data dari perintah yang diberikan pada class Pengiriman untuk ke database (proses nomor 28, 29).

D. Diagram Kolaborasi Kelola Distributor

Penjelasan :

a. Dari class Antarmuka ke class KelolaDistributor dapat berjalan proses-proses untuk mengelola data distributor, seperti menampilkan, mencari, manambah, mengubah dan menghapus data distributor (proses nomor 1, 2, 3, 4, 5).

b. Dari class KelolaDistributor ke class Distributor ada banyak data distributor (atribut) yang dapat ditampilkan (get) atau diatur (set), seperti IdDistributor, NamaDistributor, AlamatDistributor, HpDistributor, UsernameDistributor, PasswordDistributor.  Selain itu, juga disertai query untuk menampilkan, mencari, menambah, mengubah, dan menghapus data (proses nomor 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22).  

c. Dari class KelolaDistributor ke class Validasi berjalan proses memeriksaStatusLogin() untuk mengecek hak akses pengguna (proses nomor 23).

d. Dari class KelolaDistributor ke KoneksiDB dapat berjalan proses open() dan close() untuk membuka dan menutup database (proses nomor 24, 25).

e. Dari class Distributor ke class KoneksiDB akan berjalan proses execute() dan getResult() untuk menjalankan dan mendapatkan data dari perintah yang diberikan pada class Distributor untuk ke database (proses nomor 26, 27).

E. Diagram Kolaborasi Kelola Akun

Penjelasan :

a. Dari class Antarmuka ke class KelolaAkun dapat berjalan proses-proses untuk mengelola data akun, seperti menampilkan dan mengubah (proses nomor 1, 2).

b. Dari class KelolaAkun ke class Admin ada banyak data admin (atribut) yang dapat ditampilkan (get) atau diatur (set), seperti Id, Nama, Alamat, Hp, Username, Password.  Selain itu, juga disertai query untuk menampilkan dan mengubah data (proses nomor 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16).  

c. Dari class KelolaAkun ke class Validasi berjalan proses memeriksaStatusLogin() untuk mengecek hak akses pengguna (proses nomor 17).

d. Dari class KelolaAkun ke KoneksiDB dapat berjalan proses open() dan close() untuk membuka dan menutup database (proses nomor 18, 19).

e. Dari class Admin ke class KoneksiDB akan berjalan proses execute() dan getResult() untuk menjalankan dan mendapatkan data dari perintah yang diberikan pada class Admin untuk ke database (proses nomor 20, 21).

F. Diagram Kolaborasi Kelola Kepala

Penjelasan :

a. Dari class Antarmuka ke class KelolaKepala dapat berjalan proses-proses untuk mengelola data kepala gudang, seperti menampilkan dan mengubah (proses nomor 1, 2).

b. Dari class KelolaKepala ke class Kepala_Gudang ada banyak data kepala gudang (atribut) yang dapat ditampilkan (get) atau diatur (set), seperti IdKepala, NamaKepala, JkKepala, AlamatKepala, HpKepala, UsernameKepala, PasswordKepala.  Selain itu, juga disertai query untuk menampilkan dan mengubah data (proses nomor 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18).  

c. Dari class KelolaKepala ke class Validasi berjalan proses memeriksaStatusLogin() untuk mengecek hak akses pengguna (proses nomor 19).

d. Dari class KelolaKepala ke KoneksiDB dapat berjalan proses open() dan close() untuk membuka dan menutup database (proses nomor 20, 21).

e. Dari class Kepala_Gudang ke class KoneksiDB akan berjalan proses execute() dan getResult() untuk menjalankan dan mendapatkan data dari perintah yang diberikan pada class Kepala_Gudang untuk ke database (proses nomor 22, 23).


 

FTI UNISKA MABA 2023

  MABA FTI UNISKA JAYA 2023