K-Means adalah salah satu algoritma clustering (pengelompokan) yang paling populer dalam unsupervised learning. Tujuannya adalah membagi sekumpulan data menjadi beberapa kelompok (cluster) berdasarkan kemiripan antar data. Dengan kata lain, K-Means berusaha:
“Mengelompokkan data sehingga data dalam satu kelompok saling mirip, dan berbeda dengan data di kelompok lain.”
Cara Kerja K-Means
Algoritma ini bekerja secara iteratif. Berikut langkah-langkah utamanya:
-
Tentukan jumlah cluster (K)
Misalnya K = 3 (berarti kita ingin membagi data menjadi 3 kelompok). -
Inisialisasi centroid awal
Centroid = titik pusat dari masing-masing cluster.
Biasanya dipilih secara acak dari data. -
Hitung jarak setiap data ke setiap centroid
Biasanya menggunakan Euclidean Distance. -
Tentukan cluster untuk tiap data
Data dimasukkan ke cluster dengan centroid terdekat. -
Perbarui centroid
Centroid tiap cluster dihitung ulang sebagai rata-rata semua titik di dalamnya. -
Ulangi langkah 3–5
Hingga posisi centroid tidak banyak berubah (atau sampai batas iterasi tercapai).
Rumus Inti
Untuk menghitung jarak antara data xix_i dan centroid cjc_j:
d(xi,cj)=(xi1−cj1)2+(xi2−cj2)2+⋯+(xin−cjn)2d(x_i, c_j) = \sqrt{(x_{i1}-c_{j1})^2 + (x_{i2}-c_{j2})^2 + \dots + (x_{in}-c_{jn})^2}
K-Means berusaha meminimalkan total jarak (atau variasi) dalam setiap cluster, dikenal sebagai Within-Cluster Sum of Squares (WCSS).
Contoh Sederhana
Misalkan kita memiliki data tinggi dan berat beberapa orang.
K-Means bisa membaginya menjadi, misalnya:
-
Cluster 1: Orang bertubuh kecil
-
Cluster 2: Orang bertubuh sedang
-
Cluster 3: Orang bertubuh besar
Kelebihan dan Kekurangan
Kelebihan:
-
Mudah dipahami dan diimplementasikan
-
Cepat untuk dataset besar
-
Hasil mudah diinterpretasi
Kekurangan:
-
Harus menentukan K di awal
-
Sensitif terhadap outlier
-
Hasil bisa berbeda tergantung inisialisasi centroid
-
Hanya cocok untuk data numerik (karena berbasis jarak)
Aplikasi Nyata
-
Segmentasi pelanggan (customer segmentation)
-
Kompresi citra (image compression)
-
Deteksi pola dalam data transaksi
-
Analisis perilaku pengguna
Contoh: K-Means dengan Python
1️⃣ Import library yang dibutuhkan
2️⃣ Buat data contoh (sintetis)
Kita buat data dua dimensi dengan 3 kelompok menggunakan make_blobs.
3️⃣ Jalankan algoritma K-Means
# Membuat model K-Means dengan 3 cluster
4️⃣ Visualisasi hasil clustering
5️⃣ (Opsional) Melihat hasil numerik
Penjelasan Singkat
-
make_blobs()→ Membuat data buatan dengan beberapa kelompok. -
KMeans(n_clusters=3)→ Menentukan jumlah cluster yang diinginkan. -
fit()→ Melatih model. -
labels_→ Menunjukkan ke cluster mana tiap data termasuk. -
cluster_centers_→ Menunjukkan koordinat pusat cluster.
Contoh Penerapan Nyata: Customer Segmentation
Tujuan:
Perusahaan ingin mengelompokkan pelanggan berdasarkan perilaku pembelian, misalnya dari:
-
Pendapatan tahunan (Annual Income)
-
Skor pengeluaran (Spending Score)
Hasil clustering ini bisa membantu bisnis memahami pelanggan seperti:
-
Pelanggan “hemat”
-
Pelanggan “boros”
-
Pelanggan “VIP”
-
Pelanggan “baru”
Dataset yang digunakan
Kita bisa menggunakan dataset contoh “Mall Customers” dari Kaggle (biasanya berisi kolom: CustomerID, Gender, Age, Annual Income, Spending Score).
Contoh kode Python-nya:
Dari grafik Elbow, kita bisa melihat titik tekukan (biasanya di K=5).
Lanjut: Jalankan K-Means dengan K=5
Interpretasi hasil (contoh)
Misalnya hasilnya menunjukkan:
| Cluster | Karakteristik | Segmentasi |
|---|---|---|
| 0 | Pendapatan tinggi, spending rendah | Hemat |
| 1 | Pendapatan rendah, spending tinggi | Impulsif |
| 2 | Pendapatan tinggi, spending tinggi | VIP |
| 3 | Pendapatan rendah, spending rendah | Tidak aktif |
| 4 | Pendapatan menengah, spending sedang | Rata-rata |
Manfaat Bisnis
-
Pemasaran terarah: Menyesuaikan promo untuk setiap segmen.
-
Loyalty program: Fokus pada pelanggan berpotensi tinggi.
-
Penghematan biaya: Tidak menargetkan semua pelanggan secara sama.

Penutup
Algoritma K-Means merupakan salah satu teknik unsupervised learning yang paling sederhana namun sangat efektif untuk mengelompokkan data berdasarkan kemiripan. Dengan prinsip kerja yang mudah dipahami — mencari pusat cluster (centroid) dan mengelompokkan data ke centroid terdekat — K-Means menjadi fondasi penting dalam analisis data modern.
Dalam praktiknya, algoritma ini banyak digunakan untuk:
-
Segmentasi pelanggan di dunia bisnis
-
Analisis pola perilaku pengguna di bidang pemasaran digital
-
Pengelompokan gambar atau teks di bidang kecerdasan buatan
-
Reduksi kompleksitas data dalam tahap pra-pemrosesan machine learning
Namun, K-Means juga memiliki keterbatasan seperti keharusan menentukan jumlah cluster di awal dan sensitivitas terhadap outlier. Oleh karena itu, penting untuk menggabungkannya dengan metode evaluasi seperti Elbow Method atau Silhouette Score agar hasil clustering lebih akurat.
