Skip to content

Latest commit

 

History

History
186 lines (142 loc) · 10.9 KB

README-Indonesian.md

File metadata and controls

186 lines (142 loc) · 10.9 KB

Rainfall-Prediction-App

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

1. PENDAHULUAN

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.

2. KEBUTUHAN PERANGKAT LUNAK & PERANGKAT KERAS

Perangkat keras yang diperlukan untuk mengoperasikan aplikasi ini adalah sebagai berikut:

  1. Laptop atau PC dengan resolusi display minimum 1280 * 720

Perangkat lunak yang diperlukan untuk mengoperasikan aplikasi ini adalah sebagai berikut:

  1. Windows OS 10/11 64-bit
  2. NetBeans IDE versi 14 ke atas
  3. Java Development Kit (JDK) versi 20 ke atas

3. MENGINSTAL PROYEK

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

4. MENJALANKAN APLIKASI

Berikut ini adalah langkah-langkah untuk menjalankan aplikasi:

  1. Jalankan NetBeans
  2. 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.

  1. Buka package gui dan pilih kelas Main.java
  2. Jalankan aplikasi

5. MENGGUNAKAN APLIKASI

Terdapat 2 kebutuhan fungsional pada sistem aplikasi:

Diagram Use Case Gambar 1. Diagram Use Case

5.1 Prediksi Curah Hujan dari Dataset

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:

Halaman Home Gambar 2. Halaman Home

Diagram Aktivitas 1 Gambar 3. Diagram Aktivitas

Sequence Diagram 1 Gambar 4. Diagram Sequence 1

5.2 Prediksi Curah Hujan dari Data Baru

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.

Halaman Manual Forecasting Gambar 5. Halaman Manual Forecasting

Diagram Aktivitas 2 Gambar 6. Diagram Aktivitas

Diagram Sequence 2 Gambar 7. Diagram Sequence

6. IMPLEMENTASI KELAS

6.1 GeneticAlgorithm.java

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.

6.2 FISTsukamoto.java

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.

6.3 Main.java

Kelas ini merepresentasikan GUI aplikasi yang terdiri dari halaman Home dan halaman Manual Forecasting.

Berikut adalah diagram kelas aplikasi:

Diagram Kelas Gambar 8. Diagram Kelas

7. TENTANG PENELITIAN

Jika Anda tertarik pada penelitian saya, Anda dapat membacanya pada pranala berikut.

8. TENTANG PENULIS

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.

9. BERIKAN DUKUNGAN

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.

10. CARA BERKONTRIBUSI

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.

11. LISENSI

Copyright © 2023 Muhammad Rafi Akbar
Proyek ini berada di bawah lisensi MIT.

12. PENGAKUAN

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.