Home > design > Coupling vs Cohesion

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.

Categories: design
  1. if05041
    October 16, 2008 at 3:51 pm

    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 …

  2. yaniwid
    October 17, 2008 at 6:59 am

    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…

  3. October 17, 2008 at 2:39 pm

    kenapa CHANGE diantisipasi bukannya diakomodasi?

  4. yaniwid
    October 21, 2008 at 9:18 am

    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 ??

  5. dhian sandra dwi artanto
    November 10, 2009 at 9:14 pm

    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..

  6. November 11, 2009 at 9:45 am

    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).

  7. dhian sandra dwi artanto
    November 12, 2009 at 9:32 am

    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

  8. November 12, 2009 at 3:12 pm

    OK, saya kontak via email…

  9. fida
    April 24, 2011 at 4:39 pm

    mau nanya…
    ada contoh cohesion gak.. dalam bentuk spectrum.
    dan conto kerjanya di dalam modul.
    makasih

  10. fida
    April 24, 2011 at 4:41 pm

    mau nanya…
    ada contoh cohesion gak.. dalam bentuk spectrum.
    dan conto kerjanya di dalam modul.
    makasih

  11. April 29, 2011 at 11:14 am

    @fida:
    Contoh spektrum cohesion adalah seperti di komentar sebelumnya.
    Contoh implementasinya dalam modul misalnya: yang paling buruk adalah coincidental. Ini artinya kita membuat modul yang isinya bisa apa saja. Tidak berdasarkan apapun. Pokoknya kita bungkus jadi modul. Yang paling baik adalah functional. Ini artinya modul yang kita buat, fokus pada fungsi tertentu.
    Kenapa baik ? Karena kita akan mudah mencari modul, mudah memahami modul, mudah menggunakan modul, mudah memperbaiki modul…
    Mudah-mudahan cukup jelas…

  12. ibel
    October 21, 2012 at 11:03 pm

    Bu… saya minta juga referensinya ya… ke email feetbonike90@gmail.com

  13. January 5, 2014 at 5:11 pm

    mau tanya , contoh cohesion dan coupling yang dalam bentuk nyata yg bisa dipahami , dan definisi yang bisa dipahami dengan bahasa sehari hari .
    mohon bantuannya

  14. November 5, 2014 at 5:08 pm

    Bila anda ingin menerjemahkan teks software, contact kami di:

    https://www.facebook.com/pages/Indonesian-Language-Services/353757111453488?ref=hl

  15. Tio
    April 26, 2015 at 4:20 pm

    Bu, saya mau nanya
    apa hubunganya kebutuhan dengan cohesion dan coupling?
    saya pernah membaca mengenai dependency pada kebutuhan dan apa itu artinya tidak ada cohesion yang 100% ?

  16. naffsantosa
    May 5, 2015 at 4:33 pm

    membuat otak kita semakin terbakar

  1. October 21, 2011 at 6:42 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: