Asosiasi UML Vs. Agregasi Vs. Komposisi [CONTOH]
Relasi dalam diagram UML digunakan untuk merepresentasikan hubungan antara berbagai hal. Hubungan adalah hubungan antara hal-hal seperti struktur, perilaku, atau pengelompokan hal-hal dalam bahasa pemodelan terpadu.
Berikut ini adalah berbagai jenis hubungan standar dalam UML,
- Asosiasi
- Ketergantungan
- Generalisasi
- Realisasi
Selain ini, UML memungkinkan penggunaan agregasi dan hubungan komposisi.
Asosiasi UML
Ini adalah hubungan struktural yang menunjukkan bahwa objek dapat dihubungkan atau dikaitkan dengan objek lain di dalam sistem. Batasan berikut dapat diterapkan pada hubungan Asosiasi UML.
- {implisit} – Batasan implisit menentukan bahwa hubungan tersebut tidak nyata; itu didasarkan pada sebuah konsep.
- {dipesan} – Batasan terurut menentukan bahwa himpunan objek di salah satu ujung asosiasi berada dalam cara tertentu.
- {dapat diubah} – Batasan yang dapat diubah menetapkan bahwa koneksi antara berbagai objek dalam sistem dapat ditambahkan, dihapus, dan dimodifikasi sesuai kebutuhan.
- {tambahkan saja} – Ini menentukan bahwa koneksi baru dapat ditambahkan dari objek yang terletak di ujung lain sebuah asosiasi.
- {beku} – Ini menetapkan bahwa ketika sebuah tautan disisipkan di antara dua objek, maka tautan tersebut tidak dapat diubah selama batasan yang dibekukan aktif pada tautan atau koneksi tertentu.
Kita juga bisa membuat kelas yang memiliki properti Asosiasi UML; itu disebut sebagai kelas asosiasi.
Asosiasi Refleksif
Asosiasi refleksif adalah subtipe dari hubungan asosiasi di UML. Dalam asosiasi refleksif, instance dari kelas yang sama dapat dihubungkan satu sama lain. Sebuah instance dari suatu kelas juga dikatakan sebagai objek.
Asosiasi refleksif menyatakan bahwa tautan atau koneksi dapat ada di dalam objek kelas yang sama.
Example:
Mari kita perhatikan contoh buah kelas.
Kelas buah memiliki dua contoh, seperti mangga dan apel. Asosiasi refleksif menyatakan bahwa keterkaitan antara mangga dan apel dapat terjadi karena keduanya merupakan instance dari kelas yang sama, misalnya buah.
Asosiasi Sutradara
Seperti namanya, asosiasi terarah berkaitan dengan arah aliran dalam kelas asosiasi.
Dalam asosiasi terarah, alirannya terarah. Asosiasi dari satu kelas ke kelas lainnya mengalir dalam satu arah saja.
Hal ini dilambangkan dengan menggunakan garis padat dengan mata panah.
Contoh Asosiasi UML:
Anda dapat mengatakan bahwa ada hubungan asosiasi terarah antara server dan klien.
Server dapat memproses permintaan klien. Aliran ini bersifat searah, yaitu mengalir dari server ke klien saja. Oleh karena itu hubungan asosiasi terarah dapat hadir dalam server dan klien suatu sistem.
Komposisi UML
Ini bukan standar Hubungan UML, tapi masih digunakan di berbagai aplikasi.
Agregasi komposit merupakan subtipe relasi agregasi dengan karakteristik sebagai:
- Ini adalah hubungan dua arah antar objek.
- Ini adalah hubungan keseluruhan/sebagian.
- Jika komposit dihapus, semua bagian lain yang terkait dengannya akan dihapus.
Agregasi komposit digambarkan sebagai asosiasi biner yang dihiasi dengan berlian hitam terisi pada ujung agregat (keseluruhan).
Folder tersebut dapat berisi banyak file, sedangkan setiap File memiliki tepat satu induk Folder. Jika folder dihapus, semua file di dalamnya juga akan dihapus.
Dalam agregasi komposit, suatu objek hanya dapat menjadi bagian dari satu komposit dalam satu waktu.
Contoh Komposisi UML:
Misalnya, dalam sistem windowing, sebuah Frame hanya dimiliki oleh satu Window. Dalam agregasi komposit, keseluruhan sistem bertanggung jawab atas penempatan bagian-bagiannya, yang berarti bahwa komposit harus mengelola pembuatan dan penghancuran bagian-bagiannya.
Agregasi UML
Agregasi adalah subtipe dari hubungan asosiasi di UML. Agregasi dan komposisi keduanya merupakan jenis hubungan asosiasi dalam UML. Hubungan agregasi dapat digambarkan dengan kata sederhana sebagai “sebuah objek dari satu kelas dapat memiliki atau mengakses objek dari kelas lain.”
Dalam hubungan agregasi, objek dependen tetap berada dalam cakupan hubungan bahkan ketika objek sumber dimusnahkan.
Contoh Agregasi UML:
Mari kita perhatikan contoh mobil dan roda.
Mobil membutuhkan roda agar dapat berfungsi dengan baik, namun roda tidak selalu membutuhkan mobil. Bisa juga digunakan dengan sepeda, sepeda, atau kendaraan lainnya namun tidak dengan mobil tertentu. Di sini, objek roda tetap bermakna meski tanpa objek mobil. Jenis hubungan seperti ini disebut hubungan Agregasi UML.
Asosiasi Vs. Agregasi Vs. Komposisi
Asosiasi | Pengumpulan | Komposisi |
---|---|---|
Hubungan asosiasi dilambangkan dengan menggunakan tanda panah. | Hubungan agregasi dilambangkan dengan garis lurus dengan mata panah kosong di salah satu ujungnya. | Hubungan komposisi dilambangkan dengan garis lurus dengan mata panah terisi di salah satu ujungnya. |
Asosiasi bisa terjadi antara dua atau lebih kelas di UML. | Agregasi adalah bagian dari hubungan asosiasi. | Komposisi merupakan bagian dari hubungan asosiasi. |
Terdapat asosiasi satu-satu, satu-banyak, banyak-satu, dan banyak-banyak di antara kelas-kelas asosiasi. | Agregasi dianggap sebagai jenis asosiasi yang lemah. | Komposisi dianggap sebagai jenis asosiasi yang kuat. |
Dalam hubungan asosiasi, satu atau lebih objek dapat diasosiasikan satu sama lain. | Dalam hubungan agregasi, objek-objek yang terkait satu sama lain dapat tetap berada dalam lingkup suatu sistem tanpa satu sama lain. | Dalam hubungan komposisi, objek-objek yang berasosiasi satu sama lain tidak dapat tetap berada dalam ruang lingkup tanpa satu sama lain. |
Objek saling terhubung satu sama lain. | Objek yang ditautkan tidak bergantung pada objek lainnya. | Objek sangat bergantung satu sama lain. |
Dalam Asosiasi UML, menghapus satu elemen mungkin mempengaruhi atau tidak mempengaruhi elemen terkait lainnya. | Dalam Agregasi UML, menghapus satu elemen tidak mempengaruhi elemen terkait lainnya. | Dalam Komposisi UML, menghapus satu elemen akan mempengaruhi elemen terkait lainnya. |
Contoh: Seorang guru dikaitkan dengan banyak siswa. Or seorang guru memberikan instruksi kepada siswanya. |
Contoh: Sebuah mobil memerlukan sebuah roda, namun tidak selalu membutuhkan roda yang sama. Sebuah mobil juga dapat berfungsi secara memadai dengan roda lainnya. |
Contoh: Sebuah file ditempatkan di dalam folder. Jika seseorang menghapus folder tersebut, maka file yang terkait dengan folder tersebut juga akan terhapus. |
Kesimpulan
- Hubungan adalah hubungan antara berbagai hal.
- Asosiasi, ketergantungan, generalisasi, dan realisasi bermacam-macam hubungan yang disediakan oleh UML.
- Selain hubungan standar, komposisi dan agregasi digunakan di dalam UML.
- Agregasi dan komposisi keduanya merupakan jenis hubungan asosiasi dalam UML.
- Komposisi UML adalah hubungan dua arah yang disebut juga hubungan biner.
Lihat artikel kami tentang Alat UML Terbaik:- Klik disini