Wednesday, January 3, 2018

Tipe Coupling Pada Pemrograman

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)
Share:

Tuesday, January 2, 2018

Pengertian Coupling Dan Cohesion

Berawal dari ketertarikan mengenai design pattern, saya perhatikan banyak istilah yang sering muncul saat saya membaca berbagai referensi. Istilah tersebut yaitu 'Coupling'. Karena penasaran saya coba cari tau tentang istilah tersebut. Coupling ternyata tidak hadir sendiri, ia memiliki pasangan yang bernama 'Cohesion'. berikut penjelasan mengenai dua sejoli ini.

Coupling Dan Cohesion, diartikan kedalam bahasa indonesia sebagai Kopel dan Kohesi. Lucu juga arti bahasa indonesia nya, saya tidak tahu makna kedua kata tersebut, harus di Cek di KBBI sepertinya. Coupling dan Cohesion merupakan istilah yang sudah lama di gunakan di dunia pemrograman. Istilah tersebut digunakan untuk mengukur tingkat kebergantungan antara modul/ method di dalam program. Tingkat kebergantungan ini bisa dikatakan dapat di jadikan ukuran bagus atau tidak nya struktur sebuah program, karena tingkat ketergantungan antar modul ini memiliki impact pada maintainability sebuah program. Yang dimaksud dengan maintainability disini yaitu secara simple nya : perubahan pada bagian program tertentu dapat dilakukan dengan mudah tanpa berdampak pada bagian program lain nya. Saya ambil contoh, seorang programmer menambahkan fitur pada sebuah aplikasi, modul-modul di dalam aplikasi tersebut memiliki tingkat ketergantungan yang sangat tinggi antara satu modul dengan modul lainnya. Sehingga satu saja perubahan di salah satu modul, maka modul - modul lain nya juga harus ikut berubah. Tentunya Hal tersebut merupakan pekerjaan yang melelahkan bukan.

Naah dari sanalah ukuran ketergantungan antar modul lahir. istilah tersebut yaitu Coupling Dan Cohesion. istilah tersebut sebenarnya bertolak belakang. Istilah untuk modul yang memiliki ketergantungan tinggi yaitu High Coupling atau dapat di sebut Low Cohesion. Untuk istilah modul yang memiliki ketergantungan rendah disebut Low Coupling atau High Cohesion. Dapet intinya? jadi coupling ini adalah kebalikan nya cohesion.

sumber gambar: 
http://www.writeopinions.com/coupling-computer-science

Semakin tinggi tingkat Cohesion atau semakin rendah tingkat Coupling maka dapat dikatakan program semakin bagus karena semakin mudah di maintain, begitupun sebaliknya semakin rendah tingkat Cohesion atau semakin tinggi tingkat Coupling maka program cenderung lebih sulit untuk di maintain.

Kurang lebih begitu mungkin pengertian Coupling Dan Cohesion dari sudut pandang saya, semoga bermanfaat.

sumber: https://en.m.wikipedia.org/wiki/Coupling_(computer_programming)
Share: