Yani’s Weblog

it’s all about software engineering…

Coupling vs Cohesion

Modularity adalah salah satu konsep dasar perancangan yang harus diusahakan. Membagi software menjadi modul-modul bukan sekedar memisahkan sekumpulan kode dari kumpulan lainnya. Kita harus pastikan bahwa modul yang dirancang memiliki coupling yang rendah dan cohesion yang tinggi.

Coupling adalah ketergantungan suatu modul terhadap modul lainnya. Kita harus pastikan bahwa suatu modul seminimal mungkin tergantung atau berpengaruh terhadap modul lainnya. Jadi, jika ada update secara internal di dalam suatu modul, modul-modul lainnya tidak akan terlalu kena pengaruh.

Cohesion adalah keterikatan fungsi-fungsi di dalam suatu modul. Modul yang baik adalah modul yang mengelompokkan fungsi-fungsi yang saling terkait. Jadi, cohesion-nya harus tinggi.

July 17, 2008 - Posted by yaniwid | design | | 8 Comments

8 Comments »

  1. karena kata CHANGE pada software pasti selalu ada …

    jadi software tersebut harus mampu beradaptasi terhadap perubahan itu … begitu ya bu … saya taunya dari head first design pattern …

    kalau yang cohesion itu di oo kaitannya dengan 1 class -> 1 resposibility ya bu .. fokus ke satu tanggung jawab saja .. atau ada yang lain ?

    karena belajar sendiri jadi mungkin ada yang saya salah mengerti .. mohon petunjuk nya ya bu …

    Comment by if05041 | October 16, 2008

  2. Hi Amir,
    Ya, CHANGE adalah hal yang natural terjadi terhadap software, karena itu harus diantisipasi.
    Ya, cohesion adalah fokus terhadap satu fungsionalitas tertentu. Tentu saja ukuran modul juga harus optimal. Jangan terlalu kecil juga…

    Comment by yaniwid | October 17, 2008

  3. kenapa CHANGE diantisipasi bukannya diakomodasi?

    Comment by pebbie | October 17, 2008

  4. He..he..he.. Maksud saya diantisipasi itu adalah dipersiapkan dengan baik, sehingga pada saat CHANGE tersebut terjadi, bisa ditangani dengan mudah. Salah satunya adalah dengan mendefinisikan modul yang baik. Salah istilahnya ya ??

    Comment by yaniwid | October 21, 2008

  5. maaf saya mau tanya, dalam coupling n cohesion apa saja yang perlu ditingkatkan dan dikurangi?mnt penjelasan tentang tipe coupling n cohesion untuk modifiability..terima kasih..

    Comment by dhian sandra dwi artanto | November 10, 2009

  6. Ini salah satu tingkatan derajat coupling dan cohesion:

    Derajat Cohesion (rendah ke tinggi; makin tinggi makin baik):
    Coincidental –> Utility –> Temporal –> Procedural –> Sequential –> Communicational –> Layer –> Functional

    Derajat Coupling (rendah ke tinggi; makin rendah makin baik):
    No direct coupling –> External coupling –> Inclusion or import coupling –> Type use coupling –> Routine call coupling –> Data coupling –> Stamp coupling –> Control coupling –> Common coupling –> Content coupling

    Intinya, saat kita merancang suatu modul, maksimalkan derajat cohesionnya, kalau bisa sampai derajat paling baik, yaitu satu modul fokus pada fungsi yang sama (functional). Dan minimalkan coupling-nya, idealnya tidak ada ketergantungan antar modul (no direct coupling).

    Comment by yaniwid | November 11, 2009

  7. maaf bu tanya lagi, apa ada suatu tools/metode untuk mengukur seberapa kuat cohesion dan coupling?(mungkin dengan ratio atau nilai yang bisa menunjukkannya)klo ada apa itu dan apakah saya bisa minta referensinya bu?
    terima kasih…
    kalau berkenan mohon dikirim ke email saya bu..yayansastro@yahoo.com terima kasih

    Comment by dhian sandra dwi artanto | November 12, 2009

  8. OK, saya kontak via email…

    Comment by yaniwid | November 12, 2009


Leave a comment