Clustering Konsumsi Energi Listrik menggunakan K-Means
Mengelompokkan pola konsumsi energi listrik pelanggan berdasarkan tingkat dan karakteristik pemakaian listrik menggunakan metode K-Means Clustering.
Mengidentifikasi kelompok pelanggan dengan konsumsi listrik rendah, sedang, dan tinggi secara objektif berdasarkan data historis pemakaian.
Menganalisis perbedaan karakteristik tiap cluster, sehingga dapat diketahui pola penggunaan energi listrik pada masing-masing kelompok.
Kenapa Menggunakan K-Means?
Metode K-Means sebaiknya digunakan dalam clustering konsumsi energi listrik karena metode ini sederhana, efisien, dan efektif untuk mengelompokkan data numerik dalam jumlah besar, seperti data pemakaian energi listrik yang umumnya berbentuk angka kontinu (kWh) per periode waktu. K-Means bekerja dengan meminimalkan jarak antar data dalam satu cluster dan memaksimalkan jarak antar cluster, sehingga mampu menghasilkan kelompok pelanggan dengan pola konsumsi yang relatif homogen. Hal ini sangat sesuai untuk mengidentifikasi perbedaan tingkat konsumsi listrik, misalnya rendah, sedang, dan tinggi, berdasarkan kesamaan pola penggunaan.
Selain itu, K-Means memiliki kompleksitas komputasi yang rendah, sehingga cocok digunakan pada dataset konsumsi listrik yang besar dan berdimensi banyak, seperti data bulanan atau tahunan. Proses iteratifnya cepat dan mudah diimplementasikan menggunakan berbagai perangkat lunak analisis data. Hasil clustering K-Means juga mudah diinterpretasikan, karena setiap cluster direpresentasikan oleh titik pusat (centroid) yang menggambarkan karakteristik rata-rata konsumsi energi listrik pada kelompok tersebut. Dengan demikian, metode ini sangat mendukung analisis lanjutan dan pengambilan keputusan dalam pengelolaan, perencanaan, serta efisiensi energi listrik.
Cara kerja algoritma K-Means Clustering adalah sebagai berikut:
• Tentukan nilai k, yaitu jumlah kelompok yang ingin dibentuk.
• Pilih k titik acak dari data sebagai pusat kelompok awal.
• Untuk setiap data, tentukan pusat kelompok terdekat dan tempatkan data tersebut ke dalam kelompok tersebut.
• Hitung ulang pusat kelompok dengan mengambil rata-rata dari seluruh data dalam kelompok.
• Ulangi langkah 3 dan 4 sampai tidak ada data lagi yang berubah kelompok atau telah mencapai batas iterasi yang ditentukan.
Algoritma ini mengoptimalkan objektif untuk meminimalkan jarak antara setiap data dengan pusat kelompok yang ditugaskan. Dengan demikian, kelompok yang dihasilkan akan memiliki varian minimal dan terpisah dengan kelompok lainnya.
1. Menyiapkan Data Awal dari Artikel
Pertama, saya memasukkan artikel referensi ke dalam ChatGPT. Artikel tersebut berisi pola, variabel, atau struktur data yang ingin saya tiru.
Setelah artikel dimasukkan, saya memberikan prompt berikut kepada AI:
“Buatkan saya data yang mirip dengan artikel ini untuk saya olah.”
Melalui prompt tersebut, ChatGPT menghasilkan data dalam format Excel, biasanya berupa ratusan ribu baris (lebih dari 200.000 data), sesuai dengan struktur yang terdapat dalam artikel.
2. Mengurangi atau Menyesuaikan Jumlah Data
Jika jumlah data yang digenerate terlalu besar untuk kebutuhan atau keterbatasan perangkat, saya memberikan prompt tambahan, misalnya:
“Modifikasi datanya menjadi 365 data saja.”
Dengan perintah tersebut, AI akan memperkecil dataset menjadi 365 baris tanpa mengubah pola atau karakteristik utama data yang berasal dari artikel.
3. Membuat Listing Program Matlab
Setelah data siap, saya meminta ChatGPT untuk membuatkan kode pemrosesan sesuai kebutuhan analisis. Langkah-langkahnya sebagai berikut:
-
Inputkan artikel ke ChatGPT sebagai dasar referensi konsep, metode, atau struktur data.
-
Memberikan prompt lanjutan:
“Buatkan saya coding Matlab K-Means yang sesuai dengan artikel di atas, dengan hasil yang mirip dan dapat membaca file Excel yang sudah dibuat sebelumnya.”
Melalui prompt tersebut, ChatGPT akan menghasilkan listing program Matlab lengkap yang:
-
Mengimpor data dari file Excel,
-
Melakukan proses clustering menggunakan metode K-Means, dan
-
Menampilkan output yang sesuai atau menyerupai hasil pada artikel referensi.
Ada 2 data yang saya gunakan dapat di download disini
Klik Disini Data A
Saya melakukan simulasi dengan kedua data
Data A (200rb)
Data B (365)
Prinsip Kerja Listing Program
- Baca data konsumsi energi dari Excel
- Normalisasi data
- Cari jumlah klaster terbaik dengan Elbow Method
- Jalankan K-Means (k=8)
- Validasi hasil dengan Silhouette & DBI
- Hitung centroid dalam kWh
- Visualisasi klaster
- Simpan hasil ke Excel
Program Matlab ini bekerja untuk melakukan analisis pengelompokan konsumsi energi listrik menggunakan metode K-Means. Langkah pertama dimulai dengan membaca data Excel yang berisi catatan konsumsi energi pelanggan. Data tersebut ditampilkan sebagian untuk memastikan bahwa proses impor berjalan dengan benar. Setelah data masuk, nilai konsumsi energi dinormalisasi menggunakan metode Z-Score agar setiap nilai berada pada skala yang sama, sehingga algoritma K-Means dapat bekerja lebih akurat tanpa dipengaruhi perbedaan besar kecilnya angka.
Tahap berikutnya adalah menentukan jumlah klaster terbaik menggunakan Elbow Method. Pada bagian ini, program menjalankan K-Means untuk jumlah klaster 1 hingga 12, lalu menghitung total jarak dalam klaster (WCSS). Nilai tersebut kemudian diplotkan menjadi sebuah grafik, dan dari bentuk grafik itulah dapat ditemukan titik "siku" yang menjadi indikasi jumlah klaster optimal. Setelah jumlah klaster ditetapkan—dalam contoh ini sebanyak 8 klaster sesuai acuan jurnal—program menjalankan K-Means secara penuh dengan beberapa pengulangan untuk memastikan hasil yang stabil. Setiap data kemudian diberi label klaster dan digabungkan kembali ke tabel utama.
Untuk mengevaluasi kualitas klaster yang terbentuk, program menggunakan dua metode validasi: Silhouette Score dan Davies–Bouldin Index. Silhouette Score memberikan gambaran mengenai seberapa baik data berada dalam kelompoknya masing-masing, sementara Davies–Bouldin Index menunjukkan seberapa besar pemisahan antar klaster. Nilai-nilai ini membantu memastikan bahwa pengelompokan yang dilakukan sudah cukup baik. Setelah itu, program menghitung kembali nilai centroid dalam satuan kWh asli dengan mengambil rata-rata konsumsi pada tiap klaster. Ini penting agar hasil clustering dapat dipahami dalam konteks dunia nyata, bukan hanya dalam skala Z-Score.
Sebagai tambahan, program juga menampilkan visualisasi distribusi klaster berdasarkan konsumsi energi dan bulan pencatatan. Visualisasi ini membantu melihat pola penggunaan energi sepanjang waktu. Pada akhir proses, semua hasil pengelompokan disimpan kembali ke file Excel baru sebagai output yang dapat digunakan untuk analisis lanjutan atau kebutuhan laporan. Dengan rangkaian langkah yang sistematis ini, program memberikan gambaran menyeluruh mengenai pola konsumsi energi dan pengelompokannya menggunakan K-Means.
Proses Filterisasi Data :
Mengapa data awal 300 ribu berubah menjadi sekitar 200 ribu?
Perubahan jumlah data ini terjadi bukan karena error, tetapi karena proses pembersihan data (data cleaning) yang memang wajib dilakukan agar analisis dan clustering tidak salah.
Di dalam file dijelaskan bahwa:
1. Menghapus akun tidak aktif (21.526 data dibuang)
Banyak pelanggan tidak memiliki konsumsi selama tahun 2023–2024.
Akun seperti ini dianggap tidak aktif / kosong, sehingga tidak mewakili perilaku konsumsi listrik.
2. Menghapus data konsumsi negatif (8.978 data dibuang)
Ada catatan yang nilai konsumsi bulanannya minus.
Ini biasanya terjadi karena:
-
kesalahan input,
-
kesalahan pencatatan meter,
-
re-billing / koreksi tagihan.
Data ini dianggap tidak valid, sehingga harus dibuang.
3. Menghapus pelanggan non-residensial (59.720 data dibuang)
Penelitian hanya fokus pada pelanggan rumah tangga (BTCRSD01).
Jadi semua pelanggan:
-
komersial,
-
industri,
-
fasilitas umum,
-
dan jenis tarif lain
dikeluarkan dari dataset, data dibuang sekitar 29%
Improvment yang saya lakukan :
Sebelumnya:
➡ Semua pelanggan dengan konsumsi 0 kWh sepanjang tahun langsung dihapus.
Sekarang (improvement):
➡ Jangan langsung hapus, tapi klasifikasikan menjadi beberapa kategori:
Kategori Pengguna 0 kWh
-
Inactive – benar-benar tidak digunakan (kosong).
-
Meter Error – meter rusak, pencatatan tidak masuk.
-
Late Input / Missing Record – data terlambat masuk.
-
Seasonal Zero – hanya beberapa bulan nol, bukan setahun.
Dengan cara ini:
-
Data tidak langsung hilang.
-
Bisa dianalisis dengan lebih akurat.
-
Bisa dipakai untuk prediksi migrasi pelanggan.
Contoh 5 data pertama:
Tanggal Konsumsi_kWh Lokasi
Tarif Cluster_asli
___________ ____________ ______
_____ ____________
01-Feb-2023 30.638 4 2 1
01-Dec-2024 16.819 2 2 1
01-Nov-2023 17.336 5 2 1
01-Mar-2023 13.969 1 2 1
01-Mar-2024 25.948 3 3
1
01-Feb-2024 6.3765 3 1 1
01-Jul-2024 31.383 4 3 1
01-May-2023 15.896 3 1 1
Rata-rata Silhouette: 0.72763
Davies–Bouldin Index: 0.54969
Centroid rata-rata konsumsi tiap klaster (kWh):
1.0e+03 *
0.0692
1.1510
4.9160
0.2019
3.3990
1.6587
0.4019
0.6964





Tidak ada komentar:
Posting Komentar