Aplikasi ini dikembangkan untuk mendukung kegiatan penelitian penulis:
Optimasi FIS Tsukamoto dalam Memprediksi Curah Hujan di Kabupaten Banyuasin Menggunakan Algoritma Genetika
Pilih Bahasa
Daftar Isi
Rainfall Prediction App adalah aplikasi berbasis desktop yang dikembangkan untuk memprediksi curah hujan di Kabupaten Banyuasin, Sumatera Selatan, Indonesia. Pengembangan aplikasi ini merupakan syarat wajib untuk mendapatkan gelar Sarjana Komputer dari Jurusan Informatika, Universitas Sriwijaya. Model prediksi pada aplikasi ini menggunakan Fuzzy Inference System (FIS) Tsukamoto yang dioptimasi dengan Algoritma Genetika (GA). Berdasarkan penelitian yang telah dilakukan, nilai MAPE terendah yang didapat dari prediksi curah hujan menggunakan model ini adalah 27.8%. Data yang digunakan pada penelitian ini adalah data iklim bulanan Kabupaten Banyuasin dari Januari 2018 hingga Desember 2022. Data iklim terdiri dari atribut suhu, kelembapan, tekanan udara, kecepatan angin, dan curah hujan.
Perangkat keras yang diperlukan untuk mengoperasikan aplikasi ini adalah sebagai berikut:
- Laptop atau PC dengan resolusi display minimum 1280 * 720
Perangkat lunak yang diperlukan untuk mengoperasikan aplikasi ini adalah sebagai berikut:
- Windows OS 10/11 64-bit
- NetBeans IDE versi 14 ke atas
- Java Development Kit (JDK) versi 20 ke atas
Cara menginstal aplikasi via CLI Git Bash:
- Buka aplikasi Git Bash
- Pilih folder lokasi unduhan. Misalnya:
cd d://downloads
- Ketik
git clone https://github.com/murafba/Rainfall-Prediction-App.git
- Cek folder unduhan lalu buka proyek
Berikut ini adalah langkah-langkah untuk menjalankan aplikasi:
- Jalankan NetBeans
- Buka proyek yang telah diunduh
Important
Jika JDK default yang digunakan di bawah versi 20, maka harus diubah terlebih dahulu. Berikut langkah-langkahnya: (a) Klik kanan pada proyek; (b) Pilih properties; (c) Klik menu Libraries; (d) Pada menu dropdown Java Platform, pilihi versi JDK 20 ke atas.
- Buka package gui dan pilih kelas
Main.java
- Jalankan aplikasi
Terdapat 2 kebutuhan fungsional pada sistem aplikasi:
Use case 1 terimplementasi pada halaman Home. Halaman ini digunakan untuk melakukan penelitian terhadap prediksi curah hujan untuk mencari nilai MAPE terendah dengan menggunakan parameter-parameter algoritma genetika: generation size, population size, crossover rate, dan mutation rate. Setelah itu, klik tombol untuk menjalankan program.
Caution
Nilai input untuk parameter crossover rate dan mutation rate harus bernilai dari 0 hingga 1! Jika tidak, program akan menampilkan pesan eror. Selain itu, setiap parameter hanya dapat menerima input data numerik.
Di bawah ini merupakan tampilan halaman Home, diagram aktivitas dan sequence:
Use case 2 terimplementasi dalam halaman Manual Forecasting. Halaman ini digunakan untuk memprediksi nilai curah hujan dari data baru. Batasan fungsi keanggotaan fuzzy yang digunakan diambil dari kromosom yang memiliki nilai MAPE terendah berdasarkan penelitian yang dilakukan yakni 27.8%. Setelah menginput nilai-nilai atribut suhu, kelembapan udara, tekanan udara, dan kecepatan angin, lalu klik tombol. Tampilan halaman ditunjukkan pada gambar berikut.
Gambar 5. Halaman Manual Forecasting
Kelas ini merupakan superclass abstrak yang digunakan untuk menerima data input dari kelas Main.java
lalu memulai proses pencarian kromosom yang dapat membangkitkan batasan fungsi keanggotaan dengan nilai fitness terbaik. Tahapan dimulai dari menginisialisasikan populasi awal hingga perhitungan nilai fitness.
Kelas ini merupakan subclass dari kelas GeneticAlgorithm.java
yang digunakan untuk menghitung nilai curah hujan menggunakan metode FIS Tsukamoto, dari halaman Home dan halaman Manual Forecasting. Kelas ini juga menghitung nilai Absolute Percentage Error (APE) dan Mean Absolute Percentage Error (MAPE), lalu mengembalikan nilai ke superclass-nya. Proses diawali dengan fuzzification, implikasi basis aturan fuzzy, deffuzzification, hingga evaluasi nilai MAPE.
Kelas ini merepresentasikan GUI aplikasi yang terdiri dari halaman Home dan halaman Manual Forecasting.
Berikut adalah diagram kelas aplikasi:
Jika Anda tertarik pada penelitian saya, Anda dapat membacanya pada pranala berikut.
Hai! Nama saya Muhammad Rafi Akbar. Anda dapat memanggil saya Rafi. Saya adalah seorang sarjana komputer dari Universitas Sriwijaya, jurusan Informatika. Saya memiliki ketertarikan di bidang fuzzy logic (logika samar) dan kriptografi. Anda dapat menghubungi saya melalui akun-akun berikut.
Apabila menurut Anda proyek saya cukup bermanfaat, Anda dapat memberikan dukungan dengan cara memberikan atribusi pada proyek ini dan memberikan bintang pada repositori ini. Selain itu, Anda juga dapat memberikan dukungan secara materi melalui pranala berikut.
Pull requests tidak tersedia. Saya akan menyediakan repositori khusus terkait penelitian saya dan Anda dapat melakukan pull requests pada halaman tersebut. Jika Anda memiliki pertanyaan atau rekomendasi, jangan ragu untuk mengirimnya pada bagian Issues.
Copyright © 2023 Muhammad Rafi Akbar
Proyek ini berada di bawah lisensi MIT.
Saya selaku pengembang menyadari bahwa aplikasi yang dikembangkan masih terdapat kekurangan. Oleh karena itu, kritik dan saran yang membangun dari rekan-rekan sekalian sangat diperlukan.