
Pembahasan Kode PSO : Optimalisasi Energi Penerangan Rumah Berdasarkan Perilaku Kolektif Burung saat Mencari Makanan
Setelah mempelajari bagaimana algoritma Particle Swarm Optimization (PSO) bekerja secara teknis dalam menemukan solusi efisiensi energi pencahayaan, kini saatnya kita membahas kode pemrograman dari seluruh logika tersebut. Dalam konteks audit energi penerangan rumah tangga, program Python menjadi kendaraan utama yang mengarahkan algoritma PSO untuk menemukan kombinasi pencahayaan terbaik di setiap ruangan. Mulai dari mendefinisikan data awal, menetapkan fungsi objektif, hingga menginterpretasi hasil optimasi, semua langkah teknis dirancang agar komputer bisa berpikir efisien layaknya seorang auditor energi profesional. Artikel ini akan membedah setiap bagian kode tersebut secara menyeluruh, agar pembaca pemula pun dapat memahami bagaimana algoritma bekerja.
Sedikit bercerita, program Python ini digunakan untuk menentukan ukuran daya lampu terbaik yang dapat dipasang di setiap ruangan rumah agar pencahayaan sesuai standar lux yang dibutuhkan namun tetap menekan daya listrik total serendah mungkin. Optimasi ini menggunakan metode Particle Swarm Optimization (PSO), yaitu algoritma yang meniru perilaku kawanan seperti burung atau ikan dalam mencari solusi terbaik secara kolektif.
1. Inisiasi Data Luas dan Standar Intensitas Cahaya Setiap Ruangan
Pada awal program, data ruangan didefinisikan dalam bentuk dictionary dengan nama rooms untuk mencatat dua informasi penting dari setiap ruangan yaitu luas ruangan dalam satuan meter persegi dan kebutuhan pencahayaan minimum dalam satuan lux. Misalnya, ruangan seperti ruang kerja membutuhkan 250 lux, sementara teras hanya butuh 60 lux karena aktivitasnya tidak memerlukan pencahayaan tinggi (sesuai dengan standar 03-6197-2000).
2. Inisiasi Variasi Daya dengan Intensitas Cahaya yang Dihasilkan Lampu
Setelah data ruangan, program menetapkan data tentang jenis-jenis lampu yang tersedia dalam dictionary bernama lamp_data. Dictionary ini menyimpan informasi tentang daya lampu dalam watt sebagai kunci dan jumlah cahaya yang dihasilkan dalam lumen. Misalnya, lampu 4 watt menghasilkan 800 lumen, sedangkan lampu 30 watt menghasilkan 3700 lumen. Untuk memudahkan proses optimasi menggunakan array, dua buah array NumPy kemudian dibentuk: lamp_power yang berisi daftar daya lampu, dan lamp_lumen yang berisi jumlah lumen masing-masing lampu. Kedua array ini akan digunakan dalam perhitungan lux dan total daya listrik nantinya.
3. Fungsi Objektif
Fungsi objektif bernama objective_function adalah bagian inti dari proses optimasi. Fungsi ini menerima masukan berupa array dua dimensi x yang merepresentasikan keputusan pemilihan jenis lampu untuk tiap ruangan oleh setiap partikel dalam PSO. Di dalam fungsi ini, dua array baru dibentuk yaitu total_power untuk mencatat total daya listrik dari semua lampu yang dipilih dan penalty untuk memberikan hukuman jika pencahayaan ruangan tidak sesuai standar. Fungsi kemudian melakukan iterasi untuk setiap ruangan. Pada setiap iterasi, data luas dan kebutuhan lux minimum ruangan diambil. Kemudian nilai dalam array x untuk ruangan tersebut dibulatkan agar menjadi indeks bulat, lalu dibatasi dengan fungsi clip agar tidak keluar dari rentang indeks lampu yang tersedia. Dari indeks tersebut diperoleh jenis lampu yang dipilih, sehingga diketahui nilai watt dan lumennya. Nilai lux kemudian dihitung dengan membagi lumen dengan luas ruangan. Jika lux yang dihasilkan kurang dari kebutuhan setiap ruangan (standar), maka penalty ditambahkan secara proporsional terhadap selisih kekurangannya dikalikan 100. Jika lux berlebihan lebih dari 20 persen, maka penalty juga ditambahkan tetapi dengan bobot 50 agar hasilnya nanti tidak mubazir atau tidak melebihi terlalu jauh dari standar. Tujuan pemberian penalty adalah agar algoritma tidak hanya mencari solusi yang hemat daya, tetapi juga tetap memenuhi/sesuai dengan standar pencahayaan. Setelah semua ruangan dihitung, total dari daya dan penalty dijumlahkan dan dikembalikan sebagai nilai yang akan dievaluasi oleh PSO/sebagai skor untuk 1 kombinasi.
4. Setup PSO
PSO kemudian dikonfigurasi dengan jumlah partikel sebanyak 1000. Setiap partikel mewakili solusi alternatif pemilihan jenis lampu untuk seluruh ruangan. Parameter c1 dan c2 masing-masing diatur ke 1.5, yang berarti partikel akan menyeimbangkan antara mengejar solusi terbaik dari dirinya sendiri dan dari seluruh kawanan. Parameter w atau bobot inersia diatur ke 0.5 agar partikel tidak terlalu agresif berpindah posisi. Ruang solusi dibatasi dengan nilai minimal nol dan nilai maksimal sebanyak jumlah jenis lampu dikurangi satu, sesuai jumlah indeks yang valid. Optimasi dijalankan dengan memanggil fungsi optimize selama 3000 iterasi. Pada setiap iterasi, partikel akan memperbarui posisinya berdasarkan informasi terbaik yang dimiliki diri sendiri maupun kawanan, dengan tujuan akhir mendapatkan konfigurasi lampu untuk seluruh ruangan yang menghasilkan total daya paling kecil tanpa mengorbankan kualitas pencahayaan.
5. Mencetak Hasil Optimalisasi
Setelah proses optimasi selesai, program mencetak hasil konfigurasi terbaik. Untuk setiap ruangan, indeks solusi terbaik dibulatkan lalu dikonversi ke jenis lampu berdasarkan lamp_power dan lamp_lumen. Nilai lux aktual kemudian dihitung kembali dengan rumus lumen dibagi luas. Hasil ini ditampilkan dalam bentuk teks yang menyebutkan nama ruangan, jenis lampu yang digunakan dalam watt dan lumen, serta nilai lux aktual yang dihasilkan. Semua daya lampu dijumlahkan untuk menghitung total daya optimal yang dibutuhkan oleh seluruh rumah berdasarkan konfigurasi terbaik yang ditemukan oleh PSO.
Contoh outputnya akan seperti ini;
Secara keseluruhan, program ini memperlihatkan bagaimana metode Particle Swarm Optimization (PSO) dapat digunakan untuk menyelesaikan masalah optimasi dalam kehidupan nyata, khususnya dalam manajemen energi di rumah tangga. Pendekatan ini menggabungkan data teknis seperti spesifikasi lampu dan standar pencahayaan, lalu mencari kombinasi terbaik dengan mempertimbangkan efisiensi dan standar SNI. Meskipun solusi ditemukan melalui metode stokastik berbasis populasi, hasil yang diperoleh tetap masuk akal secara praktis dan dapat diterapkan langsung dalam perencanaan dan optimalisasi sistem pencahayaan rumah yang hemat energi. Nah, setelah memahami bagaimana pendekatan PSO bekerja dalam konteks perencanaan pencahayaan, pada artikel selanjutnya kita akan membahas lebih dalam mengenai hasil dari proses optimasi tersebut dan sejauh mana penghematan energi dapat dicapai.