Faza Tazakka

← Kembali ke karya

Jakarta Air Quality Analysis & Predictive Modeling (PySpark)

Proyek big data analytics dan machine learning terdistribusi untuk menganalisis tren polusi udara DKI Jakarta dan memprediksi kategori ISPU menggunakan PySpark SQL dan Spark MLlib.

PeranData & Machine Learning Engineer
StatusCompleted Academic Big Data Project
Periode2025
TimProyek Mandiri
StackPython · PySpark · Spark SQL · Spark MLlib · Pandas · Matplotlib · Machine Learning

Inisialisasi SparkSession dan pemuatan dataset ISPU DKI Jakarta pada Google Colab

1 / 3

Gambaran & Masalah

Tingkat polusi udara di DKI Jakarta merupakan isu lingkungan kritis yang berdampak langsung pada kesehatan publik. Data sensor pemantau kualitas udara dikumpulkan dari berbagai stasiun di seluruh wilayah Jakarta dengan volume ribuan baris data historis. Namun, data mentah tersebut memiliki tantangan berupa inkonsistensi tipe data, anomali pencatatan, dan kekosongan data (missing values) yang tinggi pada parameter partikulat halus ($PM_2.5$).

Pendekatan pengolahan data konvensional pada satu mesin (single-node processing) rentan mengalami kendala skalabilitas saat volume sensor bertambah besar. Di samping itu, penentuan kategori Indeks Standar Pencemar Udara (ISPU) memerlukan otomasi cerdas agar status kualitas udara harian dapat diprediksi secara instan berdasarkan parameter polutan yang terpantau.

Tantangan proyek ini adalah merancang pipeline pengolahan data terdistribusi menggunakan ekosistem PySpark untuk membersihkan dataset secara efisien, melakukan analisis eksploratif untuk menemukan tren polutan dominan, serta melatih model machine learning klasifikasi yang akurat untuk memprediksi kategori ISPU.

Fitur & Implementasi Teknis

  • Pemrosesan Data Terdistribusi (PySpark SQL): Menginisialisasi SparkSession untuk membaca dan memproses dataset historis ISPU DKI Jakarta (>5.000 baris). Menerapkan pembersihan data secara terstruktur: menangani missing values pada parameter $PM_2.5$, menyesuaikan tipe data numerik (pm10, so2, co, o3, no2), serta menyaring baris data yang valid untuk analisis lanjutan.
  • Analisis Eksploratif (EDA) & Polutan Dominan: Menganalisis sebaran kategori kualitas udara (Baik, Sedang, Tidak Sehat, Sangat Tidak Sehat, Berbahaya). Mengidentifikasi bahwa stasiun DKI2 (Kelapa Gading) dan DKI5 (Kebon Jeruk) mencatatkan rata-rata tingkat polusi tertinggi, dengan gas Ozon ($O_3$) dan partikulat $PM_2.5$ sebagai polutan dominan penyebab penurunan mutu udara.
  • Visualisasi Tren Historis Dekade (Matplotlib & Pandas): Mengonversi agregasi data tahunan dari PySpark DataFrame ke Pandas (toPandas()) untuk memetakan visualisasi grafik tren kualitas udara dari tahun 2010 hingga awal 2025 menggunakan pustaka Matplotlib.
  • Pipeline Rekayasa Fitur (PySpark MLlib): Membangun pipa transformasi fitur terintegrasi: menggunakan StringIndexer untuk mengonversi label kategori teks menjadi representasi indeks numerik, serta VectorAssembler untuk merangkum seluruh parameter polutan numerik ke dalam satu vektor fitur fitur pembelajaran mesin.
  • Pemodelan Prediktif & Evaluasi (Decision Tree Classifier): Melatih model klasifikasi menggunakan algoritma Decision Tree Classifier pada Spark MLlib untuk memprediksi kategori ISPU secara otomatis. Evaluasi model dilakukan menggunakan MulticlassClassificationEvaluator yang menghasilkan tingkat akurasi mencapai 89,3%.

Hasil & Status Proyek

Proyek ini membuktikan implementasi komputasi terdistribusi PySpark dalam menangani dataset lingkungan perkotaan secara efisien, menghasilkan wawasan polusi historis yang terperinci, serta menyediakan model klasifikasi prediktif dengan tingkat akurasi 89,3% untuk otomasi pemantauan ISPU.