Computer Science

Lack of Cohesion in Methods

Updated Jul 26, 2026Computer Science/Software Architecture/Practical Knowledges/Modularity/Lack of Cohesion in Methods

Lack of Cohesion in Methods atau yang disingkat LCOM adalah salah satu metode pengukuran yang dikenalkan oleh Chidamber & Kemerer. LCOM mengukur structural cohesion dari sebuah modul.

Versi awal dari persamaannya seperti ini:

LCOM={PQ,jika P>Q0,lainnyaLCOM = \begin{cases} |P| - |Q|, & \text{jika } |P| > |Q| \\ 0, & \text{lainnya} \end{cases}

Dalam persamaan ini, variabel P nilainya bertambah 1 untuk setiap method yang tidak mengakses shared field tertentu, variabel Q nilainya berkurang 1 untuk setiap method yang memang berbagi shared field tertentu.

Untuk versi pertama memang kurang intuitif, sehingga diperbarui di tahun 1996 (diberi nama LCOM96B):

LCOM96b=1aj=1amμ(Aj)mLCOM96b = \frac{1}{a} \cdot \sum_{j=1}^{a} \frac{m - \mu(A_j)}{m}

Dasarnya, persamaan LCOM tersebut berusaha menunjukkan coupling yang tidak sengaja di sebuah class. Sehingga definisi untuk LCOM dapat dipahami sebagai jumlah pasang method-method yang tidak saling berbagi melalui sharing field.

Bayangkan sebuah class dengan private fields a dan b. Banyak method hanya mengakses field a, dan banyak juga method yang hanya mengkases field b. Jadi jumlah dari method-method yang tidak saling berbagi fields a dan b sangat tinggi sehingga fenomena ini menghasilkan nilai LCOM yang tinggi juga, mengindikasikan Lack of Cohesion in Methods yang signifikan.

LCOM berguna untuk Software Architect ketika sedang menganalisa codebase yang akan di-refactor (restructuring, migrating, atau hanya sekedar memahami codebase). Namun, LCOM juga bukan metrik yang sempurna. Dia hanya dapat membantu untuk menemukan structural lack of cohesion, dia tidak dapat membantu untuk menentukan apakah suatu bagian punya hubungan dengan bagian lain secara logika (logically). Kompromi ini perlu diperhatikan, dan hal ini membuat kita perlu kembali ke hukum kedua Software Architecture yaitu Why is more important than How.

Linked mentions