Perbedaan Antara Kopling dan Kohesi

Kopling vs Kohesi

Kopling dan kohesi adalah dua konsep yang ditemukan di Jawa (dan semua bahasa berorientasi objek lainnya). Coupling mengukur seberapa besar masing-masing modul program bergantung pada modul program lainnya. Kohesi mengukur seberapa kuat masing-masing fungsi terkait dalam suatu modul. Sebenarnya, bahasa berorientasi objek apa pun (termasuk Jawa) memiliki dua tujuan utama untuk meningkatkan keterpaduan dan mengurangi penggandengan pada saat yang sama, untuk mengembangkan program yang paling efisien. Kedua metrik rekayasa perangkat lunak ini dikembangkan oleh Larry Constantine untuk mengurangi biaya modifikasi dan pemeliharaan perangkat lunak.

Apa itu Kohesi?

Kohesi mengukur seberapa kuat masing-masing fungsi terkait dalam modul program. Kelas yang terstruktur dengan baik menyebabkan program yang sangat kohesif. Jika kelas tertentu melakukan serangkaian fungsi yang sangat terkait, kelas itu dikatakan kohesif. Di sisi lain, jika sebuah kelas melakukan banyak fungsi yang sama sekali tidak terkait itu berarti kelas tersebut tidak kohesif sama sekali. Penting untuk dipahami bahwa tidak memiliki keterpaduan tidak berarti bahwa keseluruhan aplikasi tidak memiliki fungsionalitas yang diperlukan. Hanya saja tanpa kohesi, akan sangat sulit untuk mengatur fungsi karena mereka akan tersebar di banyak tempat yang salah karena kompleksitas aplikasi meningkat dari waktu ke waktu. Mempertahankan, memodifikasi, dan memperluas perilaku yang tersebar di seluruh kode sangat membosankan bahkan bagi kebanyakan programmer yang berpengalaman.

Apa itu Kopling?

Coupling mengukur seberapa besar masing-masing modul program bergantung pada modul program lainnya. Interaksi antara dua objek terjadi karena ada kopling. Program yang digabungkan secara longgar memiliki fleksibilitas dan ekstensibilitas yang tinggi. Kopling yang kuat tidak pernah baik karena satu objek dapat sangat bergantung pada beberapa objek lainnya. Ini adalah mimpi buruk ketika kode dimodifikasi, karena kopling tinggi berarti bahwa programmer perlu bekerja di beberapa tempat kode bahkan untuk modifikasi perilaku tunggal. Kopling yang kuat selalu mengarah ke program dengan fleksibilitas rendah dan skalabilitas / ekstensibilitas yang lebih rendah. Namun, dalam bahasa pemrograman seperti Java, sepenuhnya menghindari kopling tidak mungkin. Tetapi disarankan agar programmer memberikan upaya terbaik untuk mengurangi kopling sebanyak mungkin. Dimungkinkan juga untuk memiliki beberapa sambungan untuk membantu objek berinteraksi satu sama lain tanpa menghambat skalabilitas dan fleksibilitasnya.

Apa perbedaan antara Coupling dan Kohesi?

Meskipun kopling dan kohesi berhubungan dengan kualitas modul dalam rekayasa perangkat lunak, mereka sepenuhnya merupakan konsep yang berbeda. Kohesi berbicara tentang seberapa banyak fungsionalitas terkait satu sama lain dalam modul, sementara penggabungan berkaitan dengan seberapa banyak satu modul tergantung pada modul program lain dalam keseluruhan aplikasi. Untuk memiliki perangkat lunak dengan kualitas terbaik, kohesi dan penggandengan harus mencapai dua ujung yang berlawanan dari spektrum mereka. Dengan kata lain, kopling longgar dan kohesi yang kuat menyediakan perangkat lunak terbaik. Memiliki bidang pribadi, kelas non-publik, dan metode pribadi memberikan sambungan longgar, sementara membuat semua anggota terlihat di dalam kelas dan memiliki paket sebagai visibilitas default memberikan kohesi yang tinggi.