Cohesion pada Modularisasi
Setelah membahas mengenai coupling pada modularisasi, artikel ini akan membahas mengenai kohesi pada modularisasi. Kohesi adalah ukuran dari kekuatan internal sebuah modul, yang mengindikasikan seberapa dekat elemen-elemen dalam sebuah modul berasosiasi. Terdapat tujuh level kohesi:
Jenis kohesi yang paling baik adalah kohesi yang kuat, dimana hubungan antara elemen pada modul terkait erat satu sama lain, yaitu level functional. Seperti ilustasi pada sebuah kursi, kita dapat membayangkan bahwa kursi adalah sebuah modul yang memiliki beberapa elemen (4 kaki kursi, sandaran, alas duduk, dan pegangan tangan). Apabila kursi memiliki kohesi yang kuat, maka apabila kursi dipindahkan kegunaan kursi tetap sama (tetap kokoh). Lain halnya jika sebuah kursi memiliki kohesi yang lemah, ketika dipindahkan ke ruangan yang jauh atau melalui guncangan-guncangan yang keras, elemen-elemennya dapat terlepas dan kursi menjadi tidak berguna. Dibutuhkan usaha tambahan untuk merekatkan kembali elemen-elemen tersebut untuk dapat digunakan.
- Coincidental
Coincidental merupakan level kohesi yang paling rendah. Elemen-elemen dikelompokkan menjadi sebuah modul tanpa ada alasan khusus. Hubungan antara satu elemen dengan elemen tidak memiliki arti, kecuali dikelompokan dalam satu modul yang sama. Biasanya penamaan modul pun menjadi terlalu general yang kurang dapat dipahami fungsi utamanya. Data dan fungsi-fungsi yang disatukan pun beragam. Contoh kohesi level coincidental: - Logical
Kohesi logikal muncul ketika elemen-elemen dalam sebuah modul digabungkan berdasarkan logika atau aktifitas yang sama, namun memproses data yang berbeda. Contoh dibawah merupakan logika untuk membaca semua record pada sebuah file dan juga menghitung total record tersebut. Logika yang digunakan sama untuk semua jenis file yang dibaca. - Temporal
Temporal adalah jenis kohesi yang dikaitkan dengan waktu. Elemen-elemen dalam sebuah modul digabungkan karena dieksekusi pada waktu khusus pada proses eksekusi program. Contoh modul temporal adalah modul inisialisasi, modul exception catch, dan modul shutdown. - Procedural
Kohesi procedural adalah kohesi yang terjadi ketika elemen-elemen dalam sebuah modul dihubungkan berdasarkan prosedur tertentu. Biasanya terdapat beberapa tahapan secara sekuensial yang harus diikuti. Contoh dari kohesi procedural adalah module untuk mengecek permission untuk mengakses file, modul untuk menghitung student record dan rata-rata umurnya. - Communicational
Kohesi komunikasi adalah modul yang menggabungkan elemen-elemen yang terkait dengan data/record data yan g sama.
Contoh di atas adalah sebuah modul yang memvalidasi data-data dari product record. Terdapat beberapa fungsi yang dilakukan, namun hanya terkait pada data product record. - Sequential
Sesuai dengan namanya, kohesi level sekuensial muncul ketika elemen-elemen pada sebuah modul bergantung pada hasil pemrosesan elemen sebelumnya. Pada contoh di bawah ini, perhitungan sales_tax membutuhkan hasil perhitungan total_purchase pada iterasi sebelumnya. Begitu pula dengan perhitungan amount_due, membutuhkan hasil perhitungan dari sales_tax dan total_purchase. - Functional
Kohesi fungsional merupakan kohesi yang paling baik diterapkan dalam modularisasi. Kohesi fungsional dibuat berdasarkan sebuah tujuan/tugas yang spesifik sehingga akan mudah digunakan kembali (reuseable).