-->

Minggu, 01 April 2012

COUPLING

Coupling  adalah ketergantungan antar modul satu dengan modul lainnya. Jadi Coupling adalah sebuah ukuran untuk mengukur seberapa kuatnya sebuah element terhubung dengan element lain. Ukuran ini dipakai juga untuk mengetahui seberapa kuat informasi yang dimilikinya, atau ketergantungan ke element lain. Bayangkan jika anda mengubah 1 modul A tapi karena modul lain memiliki ketergantungan terhadap modul A, maka efek perubahan ini mungkin saja punya impact terhadap modul lain. Karena itu low coupling sangat penting dalam perancangan software.
Ada tiga kelompok besar coupling yaitu :
    1. Normal Coupling
    2. Common Coupling
    3. Content Coupling


Dalam konsep rancangan yang baik maka :
    - Normal Coupling adalah kopling yang baik dan dapat diterima
    - Common Coupling adalah kopling yang tidak dapat diterima
    - Content Coupling adalah kopling yang tidak boleh ada


Kopling yang termasuk di dalam kelompok Normal Coupling adalah :
    > Data Coupling
    > Stamp Coupling
    > Control Coupling


Dua modul dikatakan mempunyai Data Coupling bila saling berkomunikasi melalui parameter dan tiap parameternya adalah sebuah data elementer.
Dua modul dikatakan mempunyai Stamp Coupling bila saling berkomunikasi melalui  sekumpulan data yang terstruktur (record).
Dua modul dikatakan mempunyai Control Coupling bila sebuah modul mengirimkan informasi dengan tujuan mengontrol logika didalam modul yang lain.
Dua modul dikatakan mempunyai Common Coupling atau kadang disebut juga Global Coupling bila menggunakan struktur data yang ataupun elemen data yang berada pada sebuah area data global.
Dua modul dikatakan mempunyai Content Coupling atau kadang disebut juga Pathological Coupling bila dari dalam sebuah modul terdapat perintah yang langsung menunjuk kepada instruksi didalam modul lainnya.




Coupling dapat juga disebut dependency. Makna bebasnya adalah suatu ketergantungan yang dimiliki suatu class terhadap class yang lain. Batasan coupling dimulai dari "high coupling" hingga "low coupling". Disebut "no coupling" jika benar2 tidak ada ketergantungan antar class. Sebuah aplikasi dikatakan baik, jika modulnya bersifat low coupling.
Sebagai contoh , kita membuat class manusia. Lalu menciptakan variabel object dari class tangan, class badan, class kaki, dan class kepala. Setelah itu kita definisikan method tidur, makan, bicara, berjalan. Dapat terbayang untuk makan saja, kita harus mendeskripsikan aktivitas cuci tangan (yang dilakukan class tangan), proses makan (yang dilakukan class kepala), lalu kenyang (diekspresikan oleh class badan).
Hal diatas "high coupling", ketergantungan dengan class lain begitu tinggi. Dan sebaiknya, modul itu harus diubah menjadi "low coupling". Kenapa? salah satunya karena ini menyebabkan proses testing menjadi "tanggung", karena class manusia tergantung dengan class-class lain yang bisa saja isinya berubah. Ini menyebabkan class menjadi tidak reusable.
Bagaimana mengubahnya menjadi low coupling? Dengan membuat class-class anggota tubuh tadi menjadi interface, lalu biarkan class manusia mengimplementasi abstraksinya. Dengan demikian ini tidak akan mengganggu perubahan di masing2 sisi class.
Secara ga langsung class yang low coupling akan mengarahkan class berkarakter ‘high cohesion’. Vice versa.

Tidak ada komentar:

Posting Komentar