Composition dan Aggregation dalam Bahasa C#

[B]anyak orang yang bingung dengan penerapan Composition dan Aggregation pada sebuah bahasa pemrograman, bagaimana menerjemahkan istilah yang panjang lebar dari Composition dan Aggregation tersebut kedalam baris-baris kode program. Kedua istilah ini biasanya pertama dijumpai pada saat belajar diagram kelas pada UML pada bagian hubungan/relasi antar kelas.

C#


Tulisan ini tidak akan membahas kembali masing-masing pengertian dari Composition dan Aggregation, juga tidak akan membahas contoh dari keduanya dalam dunia nyata seperti hubungan mesin dengan mobil dsb, silahkan cari sendiri di google jika ingin mengetahuinya. Tulisan ini akan langsung memberikan contoh kode program dalam bahasa C# untuk hubungan Composition dan juga Aggregation.

Composition

Aggregation

Spot the difference!

Dalam teorinya dikatakan bahwa Composition adalah hubungan yang jika parent mati maka child juga akan mati, artinya life cycle dari child sangat tergantung dari life cycle parent-nya. Dari kode di atas dapat dilihat bahwa yang bertindak sebagai child adalah AccountRepository dimana kelas ini di-instantiate di dalam kelas parent-nya yaitu AccountService yang menyebabkan jika life cycle dari kelas AccountService berakhir maka hal yang sama terjadi pada kelas AccountRepository.

Beda halnya dengan Aggregation. Hubungan ini menyatakan kalau antara parent dan child terdapat hubungan memiliki namun life cycle dari kedunya berdiri sendiri artinya life cycle kelas child tidak bergantung pada life cycle dari kelas parent. Lihat lagi kode di atas maka terlihat kelas child AccountRepository tidak di-instantiate di dalam kelas parent namun dimasukkan/di-inject dari luar melalui constructor kelas parent AccountService. Karena kelas AccountRepository di-instantiate di luar kelas parent maka otomatis dia memiliki life cycle-nya sendiri.

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

2 thoughts on “Composition dan Aggregation dalam Bahasa C#

  1. permisi mas. saya lagi nyari2 bahan tentang UML nih, khususnya composition dan aggregation. dan saya lihat penjelasan dari mas ini cukup jelas. ada referensi ahlinya gak mas? dari jurnal2 misalnya. soalnya dosen saya butuh bukti referensi nih. hhe

Leave a Reply

Your email address will not be published. Required fields are marked *