Skip to content
INOVATIF, PROFESIONAL, DAN BERKEPRIBADIAN
facebook
youtube
instagram
Pusat Pengelolaan Digitalisasi Penjaminan Mutu Universitas Medan Area
Call Support 0823-6994-9970
Email Support [email protected]
Location Jl. Kolam No. 1 Medan Estate
  • BERANDA
  • TENTANG
    • PROFIL
    • VISI DAN MISI
    • STRUKTUR ORGANISASI
  • BERITA KEGIATAN
  • KERJASAMA
  • LAYANAN & INFORMASI
    • APLIKASI
      • PERPUSTAKAAN UMA
      • ACADEMIC ONLINE CAMPUS (AOC)
      • REPOSITORI UMA
      • TRACER STUDY (ALUMNI)
      • JURNAL
      • E-LEARNING UMA
      • DIREKTORI MAHASISWA
    • ARSIP
      • PERUBAHAN DATA MAHASISWA DI PDDIKTI
      • Buku Pedoman Universitas Medan Area
      • KURIKULUM
        • Kurikulum Teknik
        • Kurikulum Pertanian
        • Kurikulum Ekonomi dan Bisnis
        • Kurikulum Hukum
        • Kurikulum Isipol
        • Kurikulum Psikologi
        • Kurikulum Saintek
        • Kurikulum Agama Islam
      • Kalender Akademik Universitas Medan Area
      • Artikel
    • Helpdesk P2DIK
  • id
    • en
    • id

Yuk Kenali Algoritma K-Means dan Penerapannya

Home > Artikel > Yuk Kenali Algoritma K-Means dan Penerapannya

Yuk Kenali Algoritma K-Means dan Penerapannya

Posted on 29 Oktober 202529 Oktober 2025 by Anisa Rahma Nasution
0

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:

  1. Tentukan jumlah cluster (K)
    Misalnya K = 3 (berarti kita ingin membagi data menjadi 3 kelompok).

  2. Inisialisasi centroid awal
    Centroid = titik pusat dari masing-masing cluster.
    Biasanya dipilih secara acak dari data.

  3. Hitung jarak setiap data ke setiap centroid
    Biasanya menggunakan Euclidean Distance.

  4. Tentukan cluster untuk tiap data
    Data dimasukkan ke cluster dengan centroid terdekat.

  5. Perbarui centroid
    Centroid tiap cluster dihitung ulang sebagai rata-rata semua titik di dalamnya.

  6. Ulangi langkah 3–5
    Hingga posisi centroid tidak banyak berubah (atau sampai batas iterasi tercapai).

Rumus Inti

Untuk menghitung jarak antara data xix_ixi​ dan centroid cjc_jcj​:

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}d(xi​,cj​)=(xi1​−cj1​)2+(xi2​−cj2​)2+⋯+(xin​−cjn​)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

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

2️⃣ Buat data contoh (sintetis)

Kita buat data dua dimensi dengan 3 kelompok menggunakan make_blobs.

# Membuat dataset contoh
X, y = make_blobs(
n_samples=300, # jumlah data
centers=3, # jumlah cluster asli
cluster_std=0.60, # sebaran data
random_state=0
)

# Visualisasi data awal
plt.scatter(X[:, 0], X[:, 1], s=30)
plt.title(“Data Awal (Belum Dikelompokkan)”)
plt.show()

3️⃣ Jalankan algoritma K-Means

# Membuat model K-Means dengan 3 cluster

kmeans = KMeans(n_clusters=3, random_state=0)

# Melatih model dengan data
kmeans.fit(X)

# Mendapatkan label cluster dan centroid
labels = kmeans.labels_
centroids = kmeans.cluster_centers_

4️⃣ Visualisasi hasil clustering

# Menampilkan hasil clustering
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', s=30)
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', marker='X', s=200, label='Centroid')
plt.title("Hasil Clustering dengan K-Means")
plt.legend()
plt.show()

5️⃣ (Opsional) Melihat hasil numerik

print("Centroid tiap cluster:")
print(centroids)

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:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

# 1. Membaca dataset
df = pd.read_csv(“Mall_Customers.csv”)

# 2. Mengambil dua fitur utama: Pendapatan & Spending Score
X = df[[‘Annual Income (k$)’, ‘Spending Score (1-100)’]]

# 3. Menentukan jumlah cluster optimal (Elbow Method)
wcss = []
for i in range(1, 11):
kmeans = KMeans(n_clusters=i, random_state=0)
kmeans.fit(X)
wcss.append(kmeans.inertia_) # inertia = total jarak dalam cluster

plt.plot(range(1, 11), wcss, marker=’o’)
plt.title(“Metode Elbow”)
plt.xlabel(“Jumlah Cluster (K)”)
plt.ylabel(“WCSS”)
plt.show()

Dari grafik Elbow, kita bisa melihat titik tekukan (biasanya di K=5).

Lanjut: Jalankan K-Means dengan K=5

# 4. Terapkan K-Means dengan 5 cluster
kmeans = KMeans(n_clusters=5, random_state=0)
df[‘Cluster’] = kmeans.fit_predict(X)

# 5. Visualisasikan hasilnya
plt.figure(figsize=(8,6))
plt.scatter(X.iloc[:, 0], X.iloc[:, 1], c=df[‘Cluster’], cmap=’viridis’, s=50)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],
s=200, c=’red’, marker=’X’, label=’Centroid’)
plt.title(‘Segmentasi Pelanggan dengan K-Means’)
plt.xlabel(‘Pendapatan Tahunan (k$)’)
plt.ylabel(‘Skor Pengeluaran (1-100)’)
plt.legend()
plt.show()

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.

Post Views: 391

p2dpm_uma

Jalan Kolam Nomor 1 Medan Estate

#PRESTASIDOSENUMA Selamat & Sukses Kepada 23 Dosen #PRESTASIDOSENUMA
Selamat & Sukses Kepada 23 Dosen Universitas Medan Area atas Penandatanganan Kontrak Program Penelitian & Pengabdian Kepada Masyarakat DPPM KEMDIKTISAINTEK Tahun Anggaran 2026
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #REKORMURI Rektor U Get @reshare_app • @umabestari #REKORMURI
Rektor Universitas Medan Area Menjadi Salah Satu Pemateri Dalam Pemecahan Rekor MURI dalam Seminar 10 Pohon Ilmu dan Peserta Terbanyak yang di selenggarakan oleh Kantor LLDIKTI Wilayah I Sumut
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #PTSterbaik
#UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #KUNJUNGAN Kunjunga Get @reshare_app • @umabestari #KUNJUNGAN
Kunjungan Dr. dr. Delyuzar, M.Ked.(PA), Sp.PA(K), Ketua Umum Pengurus Wilayah (PW) Asosiasi Masjid Kampus
Indonesia (AMKI) Sumatera Utara ke Universitas Medan Area Dalam rangka melihat Pelaksanaan Pemotongan Hewan Qurban.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #PTSterbaik
#UMAkampusJuara #KampusUnggul
Selamat Hari Raya Idul Adha 1447 H Selamat Hari Raya Idul Adha 1447 H
Yuk, buruan daftar sekarang! Yuk, buruan daftar sekarang!
Get @reshare_app • @umabestari #SOSIALISASI Dinas Get @reshare_app • @umabestari #SOSIALISASI
Dinas Pariwisata Medan dan Universitas Medan Area  berkolaborasi melaksanakan Sosialisasi Kompetisi Desain Logo HUT Kota Medan ke-436 Tahun 2026.
#PMBUMA2026 Yuk.. Join di Kampus Unggul Universi #PMBUMA2026 

Yuk.. Join di Kampus Unggul Universitas Medan Area. Dapatkan Beragam Fasilitas Pendidikan dan Beasiswa Hingga 100%. . 

Informasi dan Pendaftaran Mahasiswa Baru : 

➖➖➖➖➖➖➖
 https://pmb.uma.ac.id 
➖➖➖➖➖➖➖ 

Call Center UMA : 
☎️0811 6013 888 

#ptssehat #ptsterbaik #UMAkampusJuara
Get @reshare_app • @umabestari #JADWALUTSUMA Selam Get @reshare_app • @umabestari #JADWALUTSUMA
Selamat Melaksanakan Ujian Tengah Semester (UTS) Semester Genap Tahun Akademik 2025/2026 yang dilaksanakan tanggal 11 Mei s.d. 25 Mei 2026
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Follow on Instagram

Lokasi P2DPM

url url url url url url url url url url url url

Kategori

  • Berita Terbaru
  • Pengumuman
  • Berita Kegiatan
  • Artikel

POSTINGAN TERPOPULER

  • Memahami Perbedaan Waktu: AM/PM, Zona Waktu, dan Sistem Jam
  • Cara Melihat IP Address di Semua Jenis Perangkat dan Jenis-Jenisnya
  • Dasar-Dasar Desain Grafis: Prinsip yang Harus Diketahui Pemula
  • Manfaat Pengelolaan Sumber Daya Alam Berkelanjutan Untuk Kehidupan
  • Pengertian Gelombang Longitudinal dan Contohnya dalam Kehidupan Sehari-Hari
KAMPUS 1
Jalan Kolam Nomor 1 Medan Estate / Jalan Gedung PBSI, Medan 20223
(061) 7360168, Call Canter : 0811-6013-888
[email protected]
KAMPUS 2
Jalan Sei Serayu Nomor 70 A / Jalan Setia Budi Nomor 79 B, Medan 20122
(061) 42402994, HP : 0811 607 259
[email protected]
© 2026 P2A2I - Universitas Medan Area