Tabla de Contenidos
Agregasi adalah jenis asosiasi antar kelas yang dapat dilakukan dalam berbagai bahasa pemrograman berorientasi objek, seperti Java. Ini adalah proses yang memungkinkan kode untuk digunakan kembali dengan cepat dan efisien, membuat program lebih mudah untuk ditulis dan dijalankan dengan lebih efisien.
Secara umum, agregasi mereferensikan kelas di dalam kelas lain. Ini menciptakan apa yang disebut hubungan HAS-A antara kelas induk dan kelas induk. Hubungan ini dicirikan dengan searah, karena mereka menyiratkan bahwa salah satu kelas berisi yang lain; ini mencegah hal sebaliknya terjadi.
Misalnya, kita dapat mengatakan bahwa sebuah perusahaan, yang dapat dilihat dari sudut pandang pemrograman sebagai kelas objek, memiliki sekumpulan karyawan; ini, pada gilirannya, juga dapat dilihat sebagai objek dengan atributnya sendiri. Dalam hal ini kelas yang mengandung adalah perusahaan, sedangkan kelas yang mengandung adalah karyawan. Hubungan ini hanya masuk akal ke arah ini, yaitu dari perusahaan ke karyawan. Hubungan yang berlawanan arah tidak masuk akal, karena sama saja dengan mengatakan bahwa karyawan tersebut mengandung perusahaan. Fakta bahwa ini tidak masuk akal menunjukkan bahwa ini adalah hubungan satu arah.
Agregasi dalam diagram kelas
Dalam Unified Modeling Language (UML), yang merupakan jenis bahasa visual universal yang dibuat untuk merancang sistem perangkat lunak yang kompleks, diagram kelas digunakan untuk menggambarkan struktur dan karakteristik suatu sistem. Dalam diagram ini, setiap kelas dan hubungannya dengan yang lain direpresentasikan melalui bentuk geometris. Dalam kasus agregasi, hubungan ini diwakili oleh berlian berongga di sisi kelas yang memuatnya, yang dihubungkan melalui ruas garis lurus ke kelas yang memuatnya. Misalnya:
Ini adalah hubungan agregasi yang menunjukkan bahwa kelas Well berisi kelas Bebek.
Bagaimana agregasi diterapkan di Jawa?
Implementasi agregasi di Java relatif sederhana. Ini hanya masalah membuat dua kelas dan kemudian mereferensikan kelas pertama di dalam kelas kedua.
Selain membangun hubungan “memiliki” atau “harus”, agregasi Java dicirikan oleh hubungan yang lemah antara objek wadah dan konten. Ini berarti bahwa penghancuran yang satu tidak berarti penghancuran yang lain. Untuk memahami jenis hubungan ini, hubungan antara guru dan muridnya dapat diambil sebagai contoh. Dalam hal ini, hilangnya atau meninggalnya guru tidak mengakibatkan hilangnya atau meninggalnya murid-muridnya.
Kasus sebaliknya akan menjadi hubungan antara manusia dan hatinya. Tidak ada keraguan bahwa hati terkandung dalam manusia, tetapi hubungan ini berbeda dengan agregasi. Sebab, dalam hal ini keduanya saling bergantung satu sama lain. Kehancuran manusia juga menghancurkan jantung, karena untuk berfungsi ia membutuhkan nutrisi dan oksigenasi yang disediakan tubuh. Di sisi lain, penghancuran jantung juga menghancurkan manusia, karena tanpa jantung kita tidak dapat hidup (tidak termasuk kasus transplantasi atau metode pendukung kehidupan buatan lainnya).
Contoh Agregasi
Kode berikut mencontohkan penerapan agregasi sebagai bentuk asosiasi antara dua kelas menggunakan Java. Misalnya tentang program untuk melacak mana karyawan suatu perusahaan memiliki mobil sendiri dan mana yang tidak, serta mana yang memiliki sepeda dan mana yang tidak.
Karena kita ingin membangun hubungan yang menunjukkan bahwa karyawan tersebut “memiliki” sebuah mobil dan/atau bahwa karyawan tersebut “memiliki” sebuah sepeda, itu adalah hubungan agregasi antara kelas tempat karyawan tersebut berada (yang akan kita sebut sebagai Karyawan , untuk alasan yang jelas) dan dua kelas tambahan, satu untuk mobil dan satu lagi untuk sepeda.
Hal pertama yang harus dilakukan dalam kasus ini adalah membuat kelas masing-masing. Dalam hal ini, ada tiga kelas: satu untuk mobil, satu untuk sepeda, dan satu untuk karyawan. Gambar berikut menunjukkan kode untuk membuat kelas-kelas ini, yang diberi nama Mobil, Sepeda, dan Karyawan.
Dalam kode di atas Anda juga dapat melihat bahwa setiap kelas memiliki atribut tertentu yang terkait dengannya. Dalam hal mobil, ia memiliki atribut model, warna, dan pelat nomor, semuanya terkait dengan mobil. Hal yang sama terjadi pada sepeda, yang dikaitkan dengan nomor plat dan modelnya.
Saat kita melihat kelas Karyawan, kita melihat bahwa kelas ini memiliki atribut monbreemp , yang mewakili nama karyawan, dan empid, yang mewakili nomor identifikasi karyawan; itu kemudian mereferensikan kelas Mobil dan Sepeda, membuat asosiasi agregasi antara kelas-kelas ini. Akhirnya, rekor karyawan dibuat bersama dengan mobil dan sepedanya.
Perhatikan bahwa dalam contoh ini, mereferensikan kelas Mobil dan Sepeda di dalam kelas Karyawan memungkinkan untuk mengakses atribut sepeda dan mobil dari dalam kelas Karyawan.
Output dari program ini adalah:
________Detail Karyawan________
Nama Karyawan: Xavier
Nomor Induk Karyawan: 210921
________Detail mobil karyawan________
Model mobil: Corolla
Warna Mobil: Hijau
Plat nomor mobil: XFZ-043
________Detail sepeda karyawan________
Model Sepeda: MERIDA
Plat Sepeda: LAA-11B
Referensi
- Agregasi dalam Pemrograman Java . (2020). ICHI.PRO. https://ichi.pro/es/agregacion-en-programacion-java-144087060492693
- Barquinero, JMM (2019). Agregasi Vs Komposisi dalam diagram kelas. UML. | Blog LAUT . blog LAUT. https://www.seas.es/blog/informatica/agregacion-vs-composicion-en-diagramas-de-clases-uml/
- Mentoring perangkat lunak. (2019). OOP8 – Pemrograman Berorientasi Objek di Java – Diagram UML & OOP – Latihan [Video]. Youtube. https://www.youtube.com/watch?v=-Gy7Rf_wOeY