Pendahuluan

Object Cohesion adalah salah satu prinsip desain object-oriented programming (OOP).

Cohesion mengacu pada tingkat keterkaitan antara elemen-elemen dalam sebuah objek.

Sebuah objek dikatakan memiliki high cohesion jika elemen-elemen di dalamnya saling terkait erat dan memiliki tujuan yang sama.

Sebaliknya, sebuah objek dikatakan memiliki low cohesion jika elemen-elemen di dalamnya tidak saling terkait erat dan memiliki tujuan yang berbeda-beda.


Pengertiannya ?

Aslinya ini merupakan prinsip desain yang dapat didefinisikan sebagai berikut:

Cohesion adalah ukuran seberapa erat elemen-elemen dalam sebuah objek saling terkait dan memiliki tujuan yang sama.

Elemen-elemen dalam sebuah objek dapat berupa atribut, metode, atau keduanya.

Misalnya, sebuah objek Person dapat memiliki atribut :

  • name
  • age
  • address.

Atribut-atribut ini saling terkait erat karena semuanya berhubungan dengan satu orang.

Oleh karena itu, objek Person dikatakan memiliki high cohesion.

Sebaliknya, sebuah objek Book dapat memiliki metode :

  • open()
  • read()
  • close().

Metode-metode ini tidak saling terkait erat karena memiliki tujuan yang berbeda-beda.

Metode open() digunakan untuk membuka buku, metode read() digunakan untuk membaca buku, dan metode close() digunakan untuk menutup buku.

Oleh karena itu, objek Book dikatakan memiliki low cohesion.


Pentingnya Object Cohesion


Object cohesion penting karena dapat meningkatkan kualitas kode.

Kode dengan high cohesion memiliki beberapa keuntungan, antara lain:

  • Lebih mudah dipahami dan di maintainance.
  • Kode dengan high cohesion memiliki struktur yang lebih sederhana dan mudah dipahami. Hal ini memudahkan developer untuk memahami kode dan melakukan perubahan jika diperlukan.
  • Lebih mudah diuji. Kode dengan high cohesion lebih mudah diuji karena metode dan atributnya saling terkait erat. Hal ini memudahkan developer untuk menulis unit test yang efektif.
  • Lebih mudah diextends. Kode dengan high cohesion lebih mudah diperluas karena metode dan atributnya memiliki tujuan yang jelas. Hal ini memudahkan developer untuk menambahkan fitur baru tanpa merusak kode yang ada.

Cara Meningkatkan Object Cohesion


Ada beberapa cara untuk meningkatkan object cohesion, antara lain:

  • Fokus pada satu tujuan. Setiap objek harus memiliki satu tujuan yang jelas. Elemen-elemen dalam objek tersebut harus mendukung tujuan tersebut.
  • Kelompokkan elemen yang terkait. Elemen-elemen yang terkait erat harus dikelompokkan dalam satu objek. Hal ini akan membuat struktur kode lebih sederhana dan mudah dipahami.
  • Hindari menggabungkan bagian yang tidak terkait. Jangan menggabungkan tugas yang tidak terkait dalam satu objek. Hal ini akan membuat kode lebih kompleks dan sulit dipahami.

Kategori Object Cohesion


Cohesion dapat diklasifikasikan menjadi beberapa jenis, yaitu:

  • Data cohesion: Semua elemen dalam suatu kelas berhubungan dengan data yang sama.
  • Control cohesion: Semua elemen dalam suatu kelas berhubungan dengan kontrol aliran program.
  • Communication cohesion: Semua elemen dalam suatu kelas berhubungan dengan komunikasi dengan kelas atau objek lain.
  • Temporal cohesion: Semua elemen dalam suatu kelas berhubungan dengan waktu.
  • Logical cohesion: Semua elemen dalam suatu kelas berhubungan dengan logika yang sama.