Berlanjut dari artikel sebelumnya mengenai Pengertian Coupling Dan Cohesion, kali ini saya akan mencoba menjelaskan mengenai tipe - tipe Coupling. Tipe - tipe ini merupakan parameter tolak ukur apakah struktur sebuah program bersifat high coupling ataupun low coupling.
sumber gambar :
https://en.m.wikipedia.org/wiki/Coupling_(computer_programming)
Dari gambar di atas tipe coupling dibagi menjadi lima ( meskipun ada tipe lain yang nanti akan saya jelaskan disini ) yang memiliki tingkat derajat coupling berkurang dari kiri ke kanan. Berikut penjelasan masing - masing tipe :
- Content Coupling
Memiliki nama lain yaitu Pathological Coupling. Tipe coupling ini terjadi pada saat sebuah logic di dalam sebuah method bergantung pada variable internal yang ada di dalam method lain. Saya ambil contoh sederhana, Method A memiliki sebuah variabel lokal yang di gunakan hanya sebagai counter namun counter tersebut dijadikan sebagai salah satu nilai kembalian di Method A. Lalu Method B memanggil Method A dan menggunakan nilai kembalian tersebut (counter dari method A) sebagai salah satu elemen di dalam logic Method B.
Hal ini tentunya membuat tingkat ketergantungan Method B terhadap Method A semakin tinggi, karena setiap ada perubahan internal di Method A, Method B juga harus mengikuti meskipun perubahan internal tersebut tidak ada sangkut paut nya dengan Method B.
- Common Coupling
Common Coupling merupakan tipe coupling yang memiliki derajat High Coupling kedua setelah Content Coupling, memiliki nama lain Global Coupling. Coupling tipe ini berkaitan dengan penggunaan variable global. Penyebab terjadinya coupling ini yaitu, penggunaan variabel global oleh lebih dari satu method. Sehingga apabila terjadi perubahan pada variable global tersebut, maka kemungkinan perubahan juga harus dilakukan pada method yang menggunakan variabel tersebut.
- External Coupling
Coupling tipe ini melibatkan faktor eksternal (device, protocol, format data) yang di gunakan oleh lebih dari satu modul. saya ambil contoh, misalkan dalam sebuah aplikasi Point Of Sale (aplikasi kasir), aplikasi yang sedang berjalan menggunakan barcode scanner dan terdapat sepuluh method di dalam aplikasi yang menggunakan output dari barcode scanner tersebut. Lalu beberapa waktu kemudian seiring berkembang nya teknologi, pemilik toko ingin mengganti teknologi barcode scanner dengan teknologi terbaru, misal RF ID. Naah, dengan berganti nya device maka software yang digunakan pun harus di perbaharui untuk menyesuaikan dengan output dari RF ID, dalam kasus ini berarti programmer harus mengubah 10 method yang sebelum nya menggunakan Barcode Scanner menjadi menggunakan RF ID. Kebayang capek nya? gimana kalau ada ratusan method yang harus di ganti? cape deh ...
- Control Coupling
Secara pengertian control coupling merupakan coupling antar method dimana aksi yang dilakukan dalam satu method di tentukan oleh parameter output dari method lain nya.
- Stamp Coupling
Stamp Coupling atau Data Structured Coupling merupakan coupling yang terjadi pada proses passing parameter, dimana parameter yang di passing ke dalam method merupakan satu kesatuan record padahal data yang akan digunakan di dalam method tersebut hanya satu field saja dari record tersebut. Jadi pada saat ada perubahan pada field lain selain yang digunakan di method, maka method tersebut harus melakukan penyesuaian kembali perilaku bagaimana method membaca parameter record, meskipun field yang digunakan tidak di modifikasi.
- Data Coupling
Sama seperti Stamp Coupling, Namun parameter yang di passing bersifat elementer dan tingkat Coupling nya lebih rendah dibandingkan dengan Stamp Coupling.
- No Coupling
Seperti namanya, modul tidak memiliki keterikatan satu sama lain (Modul berjalan sendiri - sendiri)
Sekian penjelasan mengenai tipe - tipe Coupling dari sudut pandang saya. Semoga bermanfaat.
sumber : https://en.wikipedia.org/wiki/Coupling_(computer_programming)