Aplikasi Pengolahan Data Hujan

Pengembangan tiga aplikasi web pengolahan data hujan menggunakan python

Diterbitkan

Selasa, 22 November 2022

Diperbarui

Jumat, 31 Maret 2023

Abstrak

Dalam analisis hidrologi, pengolahan data hujan merupakan proses yang penting. Dengan membesarnya penyimpanan data dan permintaan pengolahan data yang lebih cepat, diperlukan solusi teknologi yang dapat menjawab tantangan tersebut. Dikembangkan tiga aplikasi pengolahan data hujan berbasis web yang mampu mempersingkat proses pengerjaan pengolahan data hujan dan mengurangi kekeliruan yang terjadi. Aplikasi yang telah dikembangkan yaitu Rainfall Stations Explorer, Rainfall Data Explorer, dan Frequency Analysis.

Mengutip/Sitasi Artikel

Untuk mensitasi artikel ini dalam makalah formal, disarankan mengutip makalah “Pengembangan Aplikasi Pengolahan Data Hujan Berbasis Web” dari prosiding PIT HATHI ke-39 (Makalah di Jilid 5). Berikut contoh sitasi untuk makalahnya:

Megariansyah, T. S., Enung, Suryadi, C. (2022). Pengembangan Aplikasi Pengolahan Data Hujan Berbasis Web. Prosiding Pertemuan Ilmiah Tahunan (PIT) Himpunan Ahli Teknik Hidrolik Indonesia (HATHI) ke-39, Mataram, Indonesia: 28-29 Oktober 2022, jilid 5, hal. 2297-2308. https://hathi.id/download/155/?tmstv=1678886738

Jika ingin mengutip artikel/halaman ini secara spesifik, dapat menggunakan sitasi yang tersedia di akhir halaman (mensitasi halaman ini).

Perbedaan Artikel dengan Makalah PIT HATHI ke-39

Ketiga aplikasi ini telah dipresentasikan di kegiatan Pertemuan Ilmiah Tahunan (PIT) Himpunan Ahli Teknik Hidrolik Indonesia (HATHI) ke-39 yang diadakan pada tanggal 29 Oktober 2022 dalam bentuk makalah berjudul “Pengembangan Aplikasi Pengolahan Data Hujan Berbasis Web”.

Artikel ini ditujukan sebagai penjelasan teknis dengan penyampaian informal dan bukan sebagai pengganti makalah yang dipublikasikan di PIT HATHI ke-39. Harapannya, artikel ini memudahkan kontributor dan developer untuk berkontribusi maupun mengembangkan aplikasi yang serupa. Artikel ini bisa dianggap sebagai white paper.

Artikel ini juga dapat dikembangkan seiringnya waktu, sesuai perkembangan aplikasi ataupun teknologi yang digunakan. Artikel ini disiapkan oleh Taruma Sakti Megariansyah.

1 Aplikasi Pengolahan Data Hujan

Aplikasi Pengolahan Data Hujan merupakan tiga aplikasi web yang dapat membantu saat pengolahan data hujan berupa penyimpanan data hingga analisis frekuensi. Aplikasi ini menerapkan ilmu hidrologi yang digunakan di Indonesia1.

1.1 Rainfall Stations Explorer

Rainfall Stations Explorer atau fiako-stations adalah aplikasi web yang dapat digunakan untuk mengeksplorasi data hujan harian yang tersedia di database. Dari aplikasi ini dapat memperoleh informasi kelengkapan data dan akusisi data hujan harian dengan mudah dan cepat. “Demo” disini diartikan menggunakan dataset publik atau acak dan hanya berfungsi untuk mendemonstrasikan fungsi aplikasi. Demonstrasi aplikasi bisa dilihat pada Gambar 1.1 dengan tabel informasi di Tabel 1.1.

Gambar 1.1: Rainfall Stations Explorer
(fiako-stations)

Tabel 1.1: Tabel informasi fiako-stations
Judul Aplikasi Rainfall Stations Explorer
Kode Aplikasi fiako-stations
Versi Aplikasi v3.1.0 (15 November 2022)
Alamat Aplikasi demo-fiako-stations.herokuapp.com
Source Code fiakoenjiniring/demo-stations

1.2 Rainfall Data Explorer

Rainfall Data Explorer atau hidrokit-rainfall adalah aplikasi web yang dapat digunakan untuk menganalisis data hujan harian. Dari aplikasi ini dapat memperoleh informasi hujan maksimum, total hujan, hari hujan, hari kering, dan kejadian hujan maksimum setiap periode yang ditentukannya dengan presentasi menggunakan visualisasi data. Grafik kumulatif tahunan dan konsistensi (kurva massa ganda) juga ditambahkan sejak versi v1.1.x. Demonstrasi aplikasi bisa dilihat di Gambar 1.2 dengan tabel informasi di Tabel 1.2.

Gambar 1.2: Rainfall Data Explorer
(hidrokit-rainfall)

Tabel 1.2: Tabel informasi hidrokit-rainfall
Judul Aplikasi Rainfall Data Explorer
Kode Aplikasi hidrokit-rainfall
Versi Aplikasi v1.3.0 (15 November 2022)
Alamat Aplikasi hidrokit-rainfall.herokuapp.com
Source Code fiakoenjiniring/rainfall

1.3 Frequency Analysis

Frequency Analysis (sebelumnya dikenal Frequency Analysis in Hydrology) atau fiako-anfrek adalah aplikasi web yang dapat digunakan untuk menghitung parameter statistik, jenis sebarannya (distribusi), analisis frekuensi, dan uji kecocokan distribusi. Output aplikasi ini berupa visualisasi hasil perhitungan dan tabel/teks berupa .csv/.txt. Demonstrasi aplikasi bisa dilihat di Gambar 1.3 dengan tabel informasi di Tabel 1.3.

Gambar 1.3: Frequency Analysis
(fiako-anfrek)

Tabel 1.3: Tabel informasi fiako-anfrek
Judul Aplikasi Frequency Analysis
Kode Aplikasi fiako-anfrek
Versi Aplikasi v1.1.0 (15 November 2022)
Alamat Aplikasi fiako-anfrek.herokuapp.com
Source Code fiakoenjiniring/anfrek

2 Pengembangan Aplikasi

Pengembangan aplikasi ini tidak mengikuti template yang sudah tersedia sehingga penulisan kode ataupun strukturnya yang dihasilkan masih perlu dievaluasi kembali. Dalam bab ini, akan dibahas informasi mengenai development aplikasi sehingga memudahkan developer membaca source code atau mengembangkannya.

2.1 Dependencies

Pengembangan aplikasi ini dibangun menggunakan bahasa pemrograman python. Daftar package/library yang digunakan dalam pengembangan aplikasi disajikan dalam bentuk tabel di Tabel 2.1.

Tabel 2.1: Packages yang digunakan di aplikasi pengolahan data hujan
Package/Library fiako-stations hidrokit-rainfall fiako-anfrek
python==3.9.13 ✔️ ✔️ ✔️
pandas==1.5.1 ✔️ ✔️ ✔️
dash==2.7.0 ✔️ ✔️ ✔️
dash-bootstrap-components==1.2.1 ✔️ ✔️ ✔️
dash-bootstrap-templates==1.0.7 ✔️ ✔️ ✔️
python-box==6.1.0 ✔️ ✔️ ✔️
pyyaml==6.0 ✔️ ✔️ ✔️
dash-auth==1.4.12 ✔️
geopy==2.3.0 ✔️
pytables==3.7.0 ✔️
hidrokit==0.4.1 ✔️ ✔️
statmodels==0.13.5 ✔️
scipy==1.83 ✔️
environment.yml (conda) env env env
requirements.txt (venv) env env env

Pengembangan aplikasi ini menggunakan sistem operasi Windows 11 dan miniconda. Informasi environment untuk setiap aplikasi sudah tersedia di repository dengan nama file environment.yml (conda) atau requirements.txt (venv). Beberapa package/library tambahan dalam development antara lain black, flake8 untuk code-formatting atau linting. Untuk pengembangan visualisasinya menggunakan fitur notebook yang tersedia di VSCode. Alternatifnya menggunakan Google Colab, hanya perlu diperhatikan untuk versi setiap library yang digunakan4.

2.2 Struktur Aplikasi

Aplikasi ini terdiri beberapa file atau komponen yang saling berhubungan. Pada dasarnya aplikasi berpusat pada file app.py sebagai file utama menjalankannya aplikasi. Daftar file yang digunakan dalam aplikasi dapat dilihat di Tabel 2.2.

Tabel 2.2: Daftar file yang digunakan dalam menjalankan aplikasi
Filename Kegunaan Catatan
app_config.yml Konfigurasi aplikasi dalam bentuk .yml -
pyconfig.py Mengubah app_config.yml menjadi objek appConfig Hanya digunakan untuk membaca app_config.yml
pytemplate.py Konfigurasi template untuk interactive plot plotly -
pyfigure.py Membangkitkan objek figure grafik interaktif .
pylayoutfunc.py Kumpulan fungsi terkait tampilan/layout aplikasi .
pylayout.py File utama untuk menyimpan layout aplikasi .
pyfunc.py Kumpulan fungsi umum yang digunakan dalam aplikasi .
app.py File utama aplikasi Seluruh callback diatur dalam file ini

Hubungan antara file bisa dilihat pada Gambar 2.1. Struktur aplikasi tersebut tidak begitu ketat sehingga beberapa file/modul yang seharusnya tidak digunakan di app.py tetap dipanggil. Struktur ini hanya memudahkan developer untuk menyusun fitur ataupun menelusuri fungsi. Dengan struktur tersebut, harapannya memudahkan untuk developer atau kontributor untuk berkontribusi ataupun mengembangkan.

flowchart RL
    pylayout[pylayout.py]
    pylayoutfunc[pylayoutfunc.py]
    pyfigure[pyfigure.py]
    pytemplate[pytemplate.py]
    pyfunc[pyfunc.py]
    pyconfig[pyconfig.py]
    appconfig[app_config.yml]
    app[app.py]

    appconfig -.- pyconfig

    pyconfig -.-> pylayout
    pyconfig -.-> pyfigure
    pyconfig -.-> pytemplate
    pyconfig -.-> pyfunc
    
    pytemplate -.-> pyfigure
    pytemplate -.-> pylayoutfunc
    
    
    pylayoutfunc -.-> pylayout
    pyfigure -.-> pylayout
    
    pyconfig ====> app
    pylayout ====> app
    pyfunc ====> app

Gambar 2.1: Gambaran struktur aplikasi5.

Struktur diatas masih bisa diperbaiki atau dikembangkan lagi seperti memisahkan callback ke file tersendiri.

2.3 Pengujian

Aplikasi ini tidak memiliki pengujian seperti unit test. Hal ini dikarenakan untuk pengujian tersebut memakan waktu pengembangan aplikasi. Pada Dash versi v2.6, fitur unit tests sudah ditambahkan, sehingga memungkinkan pada pengembangan lanjutannya menyertakan unit test. Akan tetapi, aplikasi ini tetap melalui tahap pengujian, hanya saja dilakukan secara manual dan mandiri.

Aplikasi pengolahan data hujan hanya fokus pada visualisasi. Jadi, beberapa fitur analisis itu tergantung package/library yang digunakan pada aplikasinya. Untuk fiako-stations tidak ada proses analisis sehingga pengujian hanya sebatas visualisasi dan interaktif antar komponennya. Pada hidrokit-rainfall dan fiako-anfrek bergantung dengan paket hidrokit, sehingga untuk hasil analisis akan bergantung pengujian pada paket tersebut.

Pengujian dimulai dengan memeriksa interaksi komponen dengan melihat visualisasi dan outputnya sesuai ekspetasi. Jika tidak sesuai ekspetasi, kembali lagi ke tahap pengembangan, tapi jika sesuai ekspetasi bisa dilanjutkan ke tahap publikasi. Proses pengujian manual ini dapat diilustrasikan seperti Gambar 2.2.

flowchart LR
    pengujian(Mulai Pengujian)
    pengembangan[[Pengembangan]]
    publikasi[[Publikasi]]
    interaksi[Interaksi Komponen]
    intended{Interaksi Sesuai Ekspetasi?}
    visualisasi[Visualisasi]
    output["Output (CSV / TXT)"]

    intended == sesuai ekspetasi ==> publikasi
    pengujian ==> interaksi
    interaksi ==> intended
    interaksi -.- visualisasi
    interaksi -.- output
    pengembangan -.-> pengujian
    visualisasi -.-> intended
    output -.-> intended
    intended -. tidak sesuai ekspetasi .-> pengembangan

Gambar 2.2: Gambaran pengujian aplikasi secara manual.

2.4 Open-Source dan GitHub

Setelah hasil aplikasi memuaskan dan dapat digunakan, aplikasi dirilis dalam bentuk proyek open-source di GitHub. Ketiga aplikasi menggunakan lisensi MIT. Karena proyek akan diserahkan ke komunitas, maka menyusun struktur dan mengikuti tata cara penulisan kode perlu diperhatikan.

Sebelum dipublikasikan ke publik, ada tahap refactoring dengan harapannya memudahkan developer lain membaca kode aplikasi. Setelah dipublikasikan di github, aplikasi bisa didemonstrasikan melalui deployment ke server, dan pengelolaan. Akan tetapi, tahap tersebut merupakan opsional dan tergantung kebutuhan saja. Pada akhirnya, setelah dipublikasikan di github, dikembalikan ke tanggung jawab komunitas untuk mengembangkannya ketika repository tidak ada pengelolanya. Alur publikasi seperti pada gambaran Gambar 2.3.

flowchart TD
    publikasi(Mulai Publikasi)
    pengujian[[Pengujian]]
    refactor["Refactor & Dokumentasi"]
    publish["Publikasi dan Rilis di GitHub"]
    osdev["Open Source Software Development"]
    deploy["Deployment"]
    maintain["Pengelolaan / Maintenance"]

    publikasi ==> refactor
    refactor ==> publish
    refactor -.-> pengujian
    pengujian -.-> publikasi
    publish == "Tanggung Jawab Komunitas" ====> osdev
    publish -.-> deploy
    deploy -.-> maintain
    publish -.-> maintain
    maintain -.-> osdev

Gambar 2.3: Gambaran publikasi dan rilis aplikasi.

Sesuai ilustrasi diatas, aplikasi yang telah dipublikasikan diserahkan ke komunitas untuk mengembangkannya lebih lanjut. Dengan lisensi MIT, aplikasi juga bisa dimodifikasi dan dirilis dengan lisensi yang berbeda6. Pada tahap terakhir mengacu pada pengembangan dengan menggunakan Open Source Software Development.

3 Fitur Aplikasi

Tiga aplikasi yang telah dipublikasikan memiliki fitur-fitur yang dapat membantu pekerjaan analisis hidrologi dari penyimpanan/pengambilan data hujan hingga analisis frekuensi.

3.1 Rainfall Stations Explorer

Fitur aplikasi Rainfall Stations Explorer (fiako-stations) antara lain:

3.1.1 Eksplorasi stasiun hujan

Memudahkan eksplorasi stasiun hujan yang dimiliki. Demonstrasi fitur bisa dilihat pada Gambar 3.1 seperti navigasi dan interaksi di Gambar 3.1 (a).

(a) Navigasi dan interaksi peta.

Gambar 3.1: Memudahkan eksplorasi stasiun hujan yang dimiliki.

3.1.2 Informasi stasiun terdekat

Mengetahui informasi stasiun terdekat terhadap titik lokasi tinjauan. Demonstrasi fitur bisa dilihat pada Gambar 3.2 seperti pengisian koordinat titik tinjau di Gambar 3.2 (a) dan interaksi peta dan tabel di Gambar 3.2 (b).

(a) Pengisian koordinat titik tinjau.

(b) Interaksi peta dan tabel.

Gambar 3.2: Mengetahui informasi stasiun terdekat terhadap titik lokasi tinjauan.

3.1.3 Kelengkapan data

Melihat secara sekilas kelengkapan data dengan heatmap. Demonstrasi fitur bisa dilihat pada Gambar 3.3 seperti grafik heatmap di Gambar 3.3 (a) dan grafik bar plot di Gambar 3.3 (b).

(a) Navigasi dan interaksi heatmap.

(b) Navigasi dan interaksi bar plot.

Gambar 3.3: Melihat secara sekilas kelengkapan data dengan heatmap.

3.1.4 Memilih stasiun dan periode

Memilih stasiun dan periode yang akan digunakan untuk analisis. Demonstrasi fitur bisa dilihat pada Gambar 3.4 seperti navigasi saat memilih stasiun di Gambar 3.4 (a).

(a) Navigasi memilih stasiun.

Gambar 3.4: Memilih stasiun dan periode yang akan digunakan untuk analisis.

3.1.5 Visualisasi & download

Visualisasi & download data hujan harian dengan periode yang telah dipilih. Demonstrasi fitur bisa dilihat pada Gambar 3.5 seperti interaksi visualisasi di Gambar 3.5 (a), download data hujan harian di Gambar 3.5 (b), isi file CSV di Gambar 3.5 (c).

 

(a) Navigasi dan interaksi visualisasi.

 

(b) Download data hujan harian.

(c) Isi file CSV.

Gambar 3.5: Visualisasi & download data hujan harian dengan periode yang telah dipilih.

3.2 Rainfall Data Explorer

Fitur aplikasi Rainfall Data Explorer (hidrokit-rainfall) antara lain:

3.2.1 Eksplorasi data hujan

Eksplorasi data hujan dalam bentuk table. Termasuk melakukan modifikasi dan filter. Demonstrasi bisa dilihat pada Gambar 3.6 seperti interaksi tabel di Gambar 3.6 (a).

(a) Interaksi tabel data hujan.

Gambar 3.6: Eksplorasi data hujan dalam bentuk table. Termasuk melakukan modifikasi dan filter.

3.2.2 Visualisasi data hujan

Visualisasi data hujan untuk setiap stasiun dalam bentuk line atau bar (jika datasetnya kecil). Demonstrasi bisa dilihat pada Gambar 3.7 seperti visualisasi dalam bentuk garis / line di Gambar 3.7 (a) dan dalam bentuk bar di Gambar 3.7 (b).

(a) Visualisasi data hujan (line).

(b) Visualisasi data hujan (bar).

Gambar 3.7: Visualisasi data hujan untuk setiap stasiun dalam bentuk line atau bar (jika datasetnya kecil).

3.2.3 Analisis data hujan

Analisis data hujan yang mengeluarkan rekapitulasi/ringkasan untuk tiga periode yaitu biweekly, monthly, dan yearly.

(a) Hasil analisis (tabel).

(b) Download hasil analisis (CSV).

Gambar 3.8: Analisis data hujan yang mengeluarkan rekapitulasi/ringkasan untuk tiga periode yaitu biweekly, monthly, dan yearly.

3.2.4 Visualisai analisis data hujan

Mempresentasikan hasil analisis dalam bentuk visualisasi analisis data hujan berupa bar plot dan bubble chart. Demonstrasi fitur ini bisa dilihat pada Gambar 3.9. Visualisasi rekap bisa dilihat di Gambar 3.9 (a) atau lebih detailnya untuk maksimum dan jumlah hujan di Gambar 3.9 (b), jumlah hari kering dan basah di Gambar 3.9 (c), dan visualisasi kejadian hujan maksimum di Gambar 3.9 (d). Terdapat visualisasi baru sejak versi 1.1 yaitu kumulatif tahunan di Gambar 3.9 (e) dan konsistensi di Gambar 3.9 (f).

 

(a) Visualisasi analisis (rekap).

 

(b) Visualisasi Max + Sum.

(c) Visualisasi Dry + Rain.

 

(d) Visualisasi Kejadian Hujan Maksimum.

 

(e) Kumulatif Tahunan.

(f) Konsistensi (Kurva Massa Ganda).

Gambar 3.9: Mempresentasikan hasil analisis dalam bentuk visualisasi analisis data hujan berupa bar plot dan bubble chart.

3.3 Frequency Analysis

Fitur aplikasi Frequency Analysis (fiako-anfrek) antara lain:

3.3.1 Eksplorasi data deret waktu

Eksplorasi data deret waktu (time series) dengan visualisasi bar dan bubble. Demonstrasi fitur dapat dilihat pada Gambar 3.10 seperti interaksi tabel dan grafik di Gambar 3.10 (a).

(a) Interaksi tabel dan grafik.

Gambar 3.10: Eksplorasi data deret waktu (time series) dengan visualisasi bar dan bubble.

3.3.2 Parameter statistik dan outlier

Menghitung parameter statistik dan outlier beserta visualisasinya. Demonstrasi fitur dapat dilihat pada Gambar 3.11 seperti visualisasi statistik & outlier di Gambar 3.11 (a), visualisasi distribusi di Gambar 3.11 (b), dan download hasil perhitungan di Gambar 3.11 (c).

(a) Visualisasi statistik & outlier.

(b) Visualisasi distribusi.

(c) Download hasil perhitungan.

Gambar 3.11: Menghitung parameter statistik dan outlier beserta visualisasinya.

3.3.3 Analisis frekuensi

Menghitung analisis frekuensi setiap distribusi dengan periode ulang beserta visualisasinya. Demonstrasi fitur dapat dilihat pada Gambar 3.12 seperti interaksi input di Gambar 3.12 (a), interaksi grafik di Gambar 3.12 (b), dan download hasil analisis di Gambar 3.12 (c).

(a) Interaksi input.

(b) Interaksi grafik.

(c) Download hasil analisis.

Gambar 3.12: Menghitung analisis frekuensi setiap distribusi dengan periode ulang beserta visualisasinya.

3.3.4 Uji kecocokan distribusi

Melakukan uji kecocokan distribusi Chi-Square dan Kolmogorov-Smirnov beserta visualisasinya. Demonstrasi fitur ini dapat dilihat pada Gambar 3.13 seperti interaksinya di Gambar 3.13 (a), visualisasi uji kecocokdan distribusi di Gambar 3.13 (b), visualisasi hasil pengujian di Gambar 3.13 (c), dan bentuk download hasilnya di Gambar 3.13 (d).

 

(a) Interaksi input dan grafik.

 

(b) Visualisasi uji kecocokan distribusi.

(c) Visualisasi hasil pengujian.

 

(d) Download hasil pengujian.

 

Gambar 3.13: Melakukan uji kecocokan distribusi Chi-Square dan Kolmogorov-Smirnov beserta visualisasinya.

4 Penggunaan Aplikasi

Dalam penggunaan aplikasi pengolahan data hujan terdapat langkah yang harus dilakukan untuk aplikasi fiako-stations di Bab 4.1. Dan ketiga aplikasi ini pada akhirnya juga merupakan satu kesatuan yang dapat membantu pekerjaan analisis hidrologi seperti dijelaskan pada Bab 4.2.

4.1 Persiapan aplikasi fiako-stations

Berbeda dengan aplikasi lain yang cukup langsung digunakan dengan memberikan data ke aplikasi. Pada aplikasi fiako-stations, terdapat langkah-langkah yang harus dilakukan atau diperhatikan agar aplikasi bekerja sesuai dengan harapan pengguna. Berikut langkah-langkah yang harus dilakukan sebelum menggunakan aplikasi fiako-stations:

  1. Mengompilasi dataset (bisa berupa .xlsx / .csv) menjadi format HDF5 (.h5). Contoh kompilasi dataset hujan harian dari CSV ke format HDF5 bisa dilihat di notebook: Compile Rainfall Dataset to HDF5.
  2. Setelah memiliki dataset berbentuk HDF5, pengguna harus menjalankan dua python script yaitu run_completeness.py kemudian run_metadata.py. Untuk membangkitkan kelengkapan data dan metadata setiap stasiun yang ada di aplikasi.
  3. Aplikasi bisa dijalankan ketika kelengkapan data dan metadata terbaru (dengan dataset baru) sudah tersedia.

Proses tersebut bisa dilihat pada Gambar 4.1.

flowchart LR
    rawdata[Data Mentah]
    storedata[Dataset HDF5 di aplikasi]
    completescript[Menjalankan <code>run_completeness.py</code>]
    metadatascript[Menjalankan <code>run_metadata.py</code>]
    outcomplete[Completeness HDF5]
    outmetadata[Metadata CSV]
    aplikasi[["Aplikasi <code>fiako-stations</code>"]]
    runapp["Jalankan Aplikasi"]

    rawdata -- Kompilasi Dataset --> storedata
    completescript --> metadatascript
    metadatascript --> outmetadata
    storedata --> completescript
    completescript --> outcomplete

    storedata -.- runapp
    outcomplete -.- runapp
    outmetadata -.- runapp
    runapp --> aplikasi

Gambar 4.1: Gambaran persiapan aplikasi fiako-stations.

4.2 Alur kerja aplikasi

Ketiga aplikasi diatas dapat membantu proses analisis hidrologi dari menyimpan data hingga analisis frekuensi. Berikut proses analisis hidrologi menggunakan ketiga aplikasi:

  1. Setelah memperoleh koordinat lokasi yang ditinjau, masukkan titik koordinat tersebut di aplikasi fiako-stations.
  2. Dari aplikasi fiako-stations diperoleh hujan harian seluruh stasiun dengan format CSV.
  3. Hasil dari aplikasi fiako-stations dapat langsung digunakan sebagai input di aplikasi hidrokit-rainfall.
  4. Resample data hujan per periode yang dihasilkan dari aplikasi hidrokit-rainfall harus diolah kembali secara manual dan mandiri.
  5. Proses manual ini bisa termasuk menghitung hujan wilayahnya (poligon thiessen), merekap hujan tahunan maksimum, koreksi data hujan harian. Dari proses manual ini bisa juga dimasukkan kembali ke aplikasi hidrokit-rainfall.
  6. Setelah memperoleh hasil final dari aplikasi hidrokit-rainfall dan mengolahnya dalam bentuk ringkasan untuk analisis frekuensi, file CSV tersebut bisa digunakan sebagai input di aplikasi fiako-anfrek.
  7. Hasil dari fiako-anfrek berupa analisis frekuensi & uji kecocokan distribusi bisa dioleh menjadi laporan ataupun digunakan sebagai analisis berikutnya. Dan laporan tersebut bisa juga disampaikan ke engineer lain untuk diperiksa ataupun dievaluasi.

Proses tersebut dapat dilihat ilustrasinya dalam bentuk sequence diagram di Gambar 4.2.

%%{ init: { 'sequence': {'useMaxWidth': false, 'showSequenceNumbers': true }, 'theme': 'forest' } }%%
sequenceDiagram
    actor user as Engineer 1
    participant stations as FIAKO-STATIONS
    participant rainfall as HIDROKIT-RAINFALL
    participant anfrek as FIAKO-ANFREK
    actor super as Engineer 2

    user->>stations: Titik koordinat
    Note over user, stations: INPUT: latitude, longitude
    
    activate stations
    %% stations --> user: evaluasi dan pengambilan keputusan
    stations ->> rainfall: Hujan harian<br/>seluruh stasiun
    Note over stations, rainfall: OUTPUT: CSV
    deactivate stations

    activate rainfall
    %% rainfall --> user: evaluasi dan pengambilan keputusan
    rainfall ->> user: Resample data hujan per periode
    Note over rainfall, user: OUTPUT: CSV
    deactivate rainfall

    activate user
    Note right of user: Proses manual
    opt Evaluasi ulang/Koreksi
    user -->> rainfall: Hujan harian (wilayah / koreksi)
    Note over user, rainfall: INPUT: CSV
    deactivate user
    activate rainfall
    rainfall ->> user: Resample data hujan per periode
    Note over rainfall, user: OUTPUT: CSV
    deactivate rainfall
    activate user
    end
    user ->> anfrek: Hujan wilayah maksimum tahunan
    Note over user, anfrek: INPUT: CSV
    deactivate user

    activate anfrek
    %% anfrek --> user: evaluasi dan pengambilan keputusan
    anfrek ->> user: Analisis frekuensi &<br>Uji kecocokan distribusi
    Note over anfrek, user: OUTPUT: CSV
    deactivate anfrek

    activate user
    user ->> super: Laporan analisis data hujan
    Note over user, super: REPORT/DELEGATE
    deactivate user

Gambar 4.2: Contoh alur pekerjaan dengan menggunakan aplikasi pengolahan data hujan.

Dari diagram diatas dapat disimpulkan juga bahwa aplikasi pengolahan data hujan ini dapat membantu kinerja pengguna lebih cepat mengevaluasi, menganalisis, dan menghasilkan analisis data hujan sampai analisis frekuensi.

5 Kekurangan Aplikasi

Ketiga aplikasi ini jauh dari sempurna dan masih banyak yang bisa diperbaiki dan dikembangkan lagi. Berikut kekurangan atau batasan aplikasi pengolahan data hujan:

  1. Tidak adanya pengujian (unit test) untuk setiap fungsi yang tersedia di aplikasi.
  2. Mengevaluasi paket tambahan seperti hidrokit, karena paket hidrokit masih dalam tahap pengembangan dini.
  3. Layout aplikasi yang tidak konsisten antar aplikasi.

Selain hal tersebut, terdapat juga beberapa kekurangan/batasan yang diketahui untuk masing-masing aplikasi.

5.1 Rainfall Stations Explorer

  1. Penentuan data stasiun hujan terdekat masih berdasarkan radius dari titik tinjau. Seharusnya berdasarkan DAS dari titik tinjau/outlet.
  2. Proses pembuatan dataset/dataabse masih bersifat case-by-case.

5.2 Rainfall Data Explorer

  1. Perlu dilakukan koreksi ataupun analisis lebih lanjut sebelum digunakan di aplikasi fiako-anfrek. Seperti:
    1. Koreksi dari informasi kurva massa ganda.
    2. Menghitung hujan wilayah.
  2. Harus melakukan pengolahan tabel setelah menerima hasil analisis dalam bentuk CSV.

5.3 Frequency Analysis

  1. Penggunaan distribusi Log Pearson III harus dievaluasi kembali. Hal ini terkait perilaku pada fungsi pearson di scipy. Saat ini, aplikasi harus menggunakan scipy versi 1.8 untuk menghasilkan nilai yang diharapkan. Alternatif lainnya menggunakan sumber tabel di distribusi Log Pearson III.
  2. Dasar teori mengenai penentuan kelas dan parameter untuk uji Chi-Square harus dievaluasi kembali.

6 Kesimpulan

Aplikasi pengolahan data hujan yang terdiri dari: 1. Rainfall Stations Explorer (fiako-stations); 2. Rainfall Data Explorer (hidrokit-rainfall); 3. Frequency Analysis (fiako-anfrek), mampu membantu mempercepat proses analisis hidrologi.

Catatan Kaki

  1. Aplikasi ini bergantung pada paket hidrokit yang menerapkan ilmu hidrologi dalam bentuk python.↩︎

  2. dash-auth hanya digunakan untuk aplikasi fiako-stations internal.↩︎

  3. versi scipy harus menggunakan versi 1.8.x. Hal ini terkait fungsi distribusi pearson. Untuk lebih jelasnya bisa membaca isu hidrokit/hidrokit#228.↩︎

  4. Per tanggal 18 November 2022, Google Colab masih menggunakan python versi 3.7.↩︎

  5. Terdapat perbedaan antara artikel ini dengan makalah PIT HATHI ke-39. Gambar ini merupakan gambar terbaru yang telah dikoreksi.↩︎

  6. Harap membaca lisensi masing-masing aplikasi untuk lebih jelasnya.↩︎

Penggunaan Kembali

CC-BY-NC-SA 4.0

Sitasi

Sitasi BibTeX:
@misc{saktimegariansyah2022,
  author = {Taruma Sakti Megariansyah},
  title = {Aplikasi Pengolahan Data Hujan},
  date = {2022-11-22},
  url = {https://manual.fiako.engineering/hidrokit/webapps-rainfall.html},
  langid = {id},
  abstract = {Dalam analisis hidrologi, pengolahan data hujan merupakan
    proses yang penting. Dengan membesarnya penyimpanan data dan
    permintaan pengolahan data yang lebih cepat, diperlukan solusi
    teknologi yang dapat menjawab tantangan tersebut. Dikembangkan tiga
    aplikasi pengolahan data hujan berbasis web yang mampu mempersingkat
    proses pengerjaan pengolahan data hujan dan mengurangi kekeliruan
    yang terjadi. Aplikasi yang telah dikembangkan yaitu Rainfall
    Stations Explorer, Rainfall Data Explorer, dan Frequency Analysis.}
}
Untuk atribusi, harap kutip karya ini sebagai:
Taruma Sakti Megariansyah. 2022. “Aplikasi Pengolahan Data Hujan.” https://manual.fiako.engineering/hidrokit/webapps-rainfall.html.