Kombinasi Autoregressive Integrated Moving Average (ARIMA) dan Standardized Precipitation Index (SPI) untuk Penentuan Indeks Kekeringan dengan Teknologi Android (Studi kasus : Wilayah Kabupaten Boyolali)
Artikel Ilmiah
Peneliti : Rosiana Kurniawan (672012213) Dr. Sri Yulianto Joko Prasetyo, S.Si., M.Kom
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Juni 2016
i
ii
iii
iv
1.
Pendahuluan
Kekeringan adalah kejadian klimatologis yang alami, ditandai dengan berkurangnya curah hujan dari kondisi normalnya dalam kurun waktu yang lama, bisa berbulan-bulan dan bahkan bertahun-tahun. Di bidang pertanian, kekeringan selalu menjadi hal yang ditakuti oleh para petani karena mengganggu sistem produksi yang kemudian mengakibatkan kerugian. Berbeda dengan fenomena banjir, kekeringan cukup sulit diukur dan diprediksi karena terjadi sangat lambat. Salah satu faktor yang berpengaruh terhadap kegagalan produksi pertanian di Indonesia adalah kejadian ekstrim El-Nino dan La-Nina. El-Nino Southern Oscillation (ENSO) adalah keadaan dimana musim kemarau menjadi panjang, dan musim hujan menjadi pendek. Hal ini berlangsung setiap dua sampai tujuh tahun. Sedangkan La-Nina adalah fenomena atmosfer yang mengakibatkan musim hujan semakin panjang.[1] Penentuan kekeringan selama ini dilakukan dengan pendekatan beberapa metode, salah satunya adalah metode Thronthwaite Matter yang digunakan Jauhari dalam penelitian Analisa Kekeringan di Daerah Aliran Sungai (DAS) Dodokan Kabupaten Lombok dengan hasil penelitian berupa peta sebaran indeks kekeringan menggunakan aplikasi ArcGIS [2]. Namun demikian di dalam prosesnya metode ini selain memerlukan data curah hujan juga memerlukan data sifat fisik tanah serta data karakteristik lahan, seperti temperatur udara, kandungan air dalam tanah (lengas tanah), penggunaan lahan, dan tekstur tanah. Berdasarkan kompleksitas metode tersebut maka diusulkan penelitian penggunaan metode Standardized Precipitation Index (SPI). SPI adalah salah satu cara dalam menganalisis indeks kekeringan pada suatu daerah dengan menggunakan data curah hujan. Penelitian menggunakan metode SPI pernah dilakukan oleh Muliawan dengan hasil pemetaan kekeringan menggunakan software ArcGIS dengan tools Kriging. [3] Pentingnya informasi mengenai indeks kekeringan di masa mendatang menjadi dasar dilakukannya peramalan curah hujan menggunakan metode Autoregressive Integrated Moving Average (ARIMA). ARIMA dipilih pada penelitian ini dikarenakan metode ARIMA memanfaatkan sepenuhnya data masa lalu dan sekarang dari variabel dependen untuk melakukan peramalan jangka pendek yang akurat.[12] Untuk mempermudah penentuan indeks kekeringan maka dikembangkan aplikasi penentuan indeks kekeringan menggunakan teknologi mobile berbasis Android. Sistem operasi yang dipilih adalah Android dengan pertimbangan keunggulan yang dimiliki, dimana platform Android bersifat terbuka, lengkap, dan bebas serta jumlah pengguna Android yang mendominasi pengguna smartphone di Indonesia.[4] Penelitian ini mengambil studi kasus Kabupaten Boyolali. Kabupaten Boyolali dipilih sebagai lokasi penelitian dengan alasan wilayah Kabupaten Boyolali pada tahun 2014 mendapatkan penghargaan Adikarya Pangan Nusantara (APN) tingkat nasional yang kemudian menjadikan Boyolali sebagai salah satu 1
daerah lumbung pangan nasional.[5] Iklim yang mengalami perubahan mengakibatkan curah hujan tidak menentu dan lahan-lahan pertanian rawan mengalami kekeringan.[6] Hasil pemetaan Pemerintah Kabupaten Boyolali di bulan September 2013 menyatakan bahwa terdapat 10 kecamatan dari 19 kecamatan di wilayah Kabupaten Boyolali yang masuk daerah rawan krisis air bersih.[7] Berdasarkan fakta-fakta yang ada dapat disimpulkan bahwa kondisi wilayah Kabupaten Boyolali sebagai wilayah pertanian tadah hujan memiliki resiko tinggi terkena dampak kekeringan terutama ketika musim kering tiba. Berlandaskan latar belakang tersebut, maka ditetapkan rumusan masalah pada penelitian ini adalah bagaimana menentukan indeks kekeringan dari data curah hujan menggunakan metode Standardized Precipitation Index (SPI) dan meramalkan curah hujan untuk masa mendatang menggunakan metode Autoregressive Integrated Moving Average (ARIMA), kemudian merancang suatu aplikasi mobile berbasis Android yang dapat digunakan oleh para Penyuluh Pertanian Lapangan (PPL) di Kabupaten Boyolali untuk menyediakan informasi hasil analisa dan peramalan kekeringan secara visual dan informatif. Fokus penelitian ini terdapat pada pengembangan aplikasi mobile yang dibangun.
2.
Kajian Pustaka
Analisis kekeringan pernah dilakukan oleh Nurjianto, menyatakan bahwa parameter yang dapat dijadikan untuk pengukuran tingkat kekeringan adalah indeks kekeringan. Analisa kekeringan yang dilakukan di Daerah Aliran Sungai (DAS) Amprong dikerjakan dengan metode Standardized Precipication Index (SPI). Hasil dari analisa kekeringan tersebut dapat dijadikan media monitoring dan peringatan dini akan ancaman bahaya kekeringan dengan menampilkannya dalam bentuk visual berupa peta isohyet surfer.[8] Penelitian sejenis dilakukan oleh Putra, untuk peramalan curah hujan dengan menggunakan metode Holt-Winters. Hasil perhitungan prediksi daerah kekeringan ditampilkan melalui perangkat smartphone Android. [9] Metode Autoregressive Integrated Moving Average (ARIMA) pernah digunakan oleh Mardiatma untuk prediksi spasial dan pemetaan curah hujan di wilayah Surakarta dengan bentuk luaran akhir berupa data visual spasial choropleth. Hasil penelitian menunjukkan bahwa dengan menggunakan peta choropleth dapat diketahui besaran prediksi curah hujan berdasarkan kewilayahannya dalam hal ini besaran curah hujan tingkat kecamatan di wilayah Laboratorium LPHP Surakarta.[10] Adapun perbedaan antara penelitian terdahulu dengan penelitian yang dilakukan sekarang adalah bahwa dengan metode ARIMA akan diramalkan curah hujan di tahun 2013 berdasarkan data curah hujan bulanan di Kabupaten Boyolali pada tahun 2001 – 2012, kemudian dianalisis indeks kekeringannya menggunakan metode SPI sehingga dapat membantu petani untuk berjaga-jaga dari fenomena kekeringan yang terjadi akibat adanya perubahan iklim. Hasil prediksi tersebut akan divisualisasikan menggunakan teknologi Android dalam bentuk aplikasi mobile 2
sehingga pengaksesan informasi kekeringan ini dapat terbantu dengan adanya teknologi-teknologi yang dimiliki Android, seperti pemetaan menggunakan layanan Google Maps dan penggunaan grafik. 2.1
Autoregressive Integrated Moving Average (ARIMA)
ARIMA merupakan salah satu model yang populer dalam peramalan dengan pendekatan time series. Model ini terdiri dari tiga bentuk utama yaitu model AR, MA, dan ARMA. ARIMA menggunakan informasi yang ada pada data time series itu sendiri untuk membuat peramalan periode selanjutnya. Model ARIMA yang dibuat bergantung pada autokorelasi yang dimiliki data. Metodologi dalam mengidentifikasi, fitting, dan pengecekan model ARIMA yang tepat dikembangkan oleh statistikus George. E. P. Box dan Gwilyam. M. Jenkins. Maka dari itu, pemodelan dan peramalan ARIMA sering disebut sebagai Metodologi Box-Jenkins. Metodologi ini terdiri dari empat tahapan yang iteratif dalam pembentukan model ARIMA pada suatu data runtun waktu, yaitu tahap identifikasi, estimasi, diagnostic check, dan peramalan. Gambar 2.1 adalah diagram yang menggambarkan tahap‐ tahap dalam prosedur Box‐Jenkins. Catatan-catatan peneliti terdahulu mengatakan bahwa metode ARIMA dapat menunjukkan suatu hasil yang cukup akurat dan persamaan peramalannya memberikan hasil yang optimal untuk series tertentu dalam hal kecocokan pola dan minimasi galat (error).[12]
Gambar 2.1 Prosedur Box‐Jenkins untuk pembentukan model ARIMA [12]
Dalam membangun model ARIMA dapat melalui tahap seperti pada gambar 2.1, tahap pertama adalah tahap identifikasi. Pada tahap identifikasi ini dilihat plot 3
Autocorrelation Function (ACF) dan Partial Autocorrelation Function (PACF) secara grafis untuk mengetahui data sudah stasioner atau belum. Stasioneritas berarti bahwa tidak terdapat pertumbuhan atau penurunan pada data. Data yang belum stasioner harus didiferensikan terlebih dahulu. Plot ACF dan PACF juga digunakan untuk menentukan model yang diperlukan, apakah Autoregressive (AR) atau Moving Average (MA) atau keduanya Autoregressive Moving Average (ARMA). Jika sampel data pada grafik ACF turun menuju nol secara bertahap (die out) dan sampel data pada grafik PACF turun secara langsung menuju nol (cut off) maka model yang teridentifikasi adalah model Autoregressive (AR). Jika sampel data pada grafik ACF turun menuju nol secara drastis (cut off) dan sampel data pada grafik PACF turun secara bertahap menuju nol (die out) maka model yang teridentifikasi adalah model Moving Average (MA). Jika kedua sampel ACF dan PACF mengalami penurunan menuju nol secara bertahap (die out), maka model yang teridentifikasi adalah model Autoregressive Moving Average (ARMA). Jika data aktual mengalami diferensiasi karena nonstasioner, maka model Autoregressive Integrated Moving Average (ARIMA) teridentifikasi (penambahan huruf “I” pada “ARIMA” adalah ketika data mengalami diferensiasi). Penentuan model pada tahap identifikasi masih dikatakan sementara, karena dalam pembacaan grafik ACF dan PACF seringkali terjadi ambiguitas akibat pola data yang tidak terduga. Penentuan tepat atau tidaknya analisis model yang sudah diidentifikasi dapat dilakukan di tahap dua dan tiga pada metode ini. Bentuk model umum Autoregressive Integrated Moving Average ARIMA(p,d,q) dengan p = order Autoregressive, q = order Moving Average, dan d = banyak diferensiasi data (bila data tidak stasioner). Contoh model ARIMA(p,1,q) dapat dituliskan dalam bentuk persamaan 1[12]. Yt = (1-) Yt-1 + (- ) Yt-2 + (- ) Yt-3 + … + (p- p-1) Yt-p - pYt-p-1 + εt – θ1εt-1 – θ2εt-2 – … – θqεt-q
Yt p Yt-1,Yt-2,Yt-3,Yt-p εt θ1,θ2,… ,θp
(1)
Dimana: = Hasil Prediksi Y saat waktu t = Koefisien autoregressive = Nilai data aktual saat waktu t-1, t-2, …, t-p = Nilai error saat waktu t = Koefisien Moving Average
Setelah diperoleh dugaan sementara, selanjutnya dilakukan tahap kedua yaitu estimasi parameter dari model sementara dengan menentukan koefisien autoregressive atau koefisien moving average. Tahap estimasi parameter didapatkan melalui pemanggilan fungsi di editor R. Jika sudah didapatkan nilai parameter, maka nilai hasil peramalan juga didapatkan. Tahap ketiga dilakukan diagnostic checking untuk menguji kesesuaian model tersebut. Diagnosis model dilakukan untuk mendeteksi adanya korelasi dan kenormalan antar residual. Dalam runtun waktu ada asumsi bahwa residual 4
mengikuti proses white noise yang berarti residual harus independen (tidak berkorelasi) dan berdistribusi normal dengan rata-rata mendekati nol (μ = 0) dan standar deviasi (σ) tertentu. Bila model teridentifikasi tidak tepat untuk digunakan pada data, maka tahap identifikasi diulang dan dapat menggunakan model alternatif untuk mencari model terbaik. Jika metode peramalan sudah ditetapkan, maka model ARIMA dapat diterapkan pada data, dan dapat dilakukan perkiraan pada data tersebut untuk beberapa periode ke depan.[12] Tahap-tahap ini dapat dilakukan dengan bantuan software aplikasi seperti R, EViews, Minitab, dan SPSS. Pada Aplikasi R, terdapat package ARIMA yang secara otomatis menentukan model terbaik untuk digunakan terhadap data yang tersedia. Standarized Precipitation Index (SPI) SPI dikembangkan oleh McKee pada tahun 1993 untuk menghitung indeks kekeringan. Kategori tingkat kekeringan dengan menggunakan metode SPI dapat diklasifikasikan dalam skala nilai seperti pada tabel 2.1. 2.2
Tabel 2.1 Tabel Klasifikasi Kategori Kekeringan Berdasar Indeks SPI Nilai SPI Kategori ≥ 2.00
Sangat Basah
1.50 ~ 1.99
Basah
1.00 ~ 1.49
Agak Basah
-0.99 ~ 0.99
Normal
-1.00 ~ -1.49
Agak Kering
-1.50 ~ -1.99
Kering
≤ -2.00
Sangat Kering
Indeks kekeringan dapat dihitung dengan menggunakan persamaan 2[9]. 𝑍𝑖𝑗 =
̅̅̅𝑗 𝑋𝑖𝑗 −𝑋
(2)
𝜎𝑗
Dimana : 𝑍𝑖𝑗 = Peubah Z tahun ke-i bulan ke-j. 𝑋𝑖𝑗 = Hujan bulanan tahun ke-i bulan ke-j. 𝑋𝑗 = Rata-rata hujan bulan j. 𝜎𝑗 = Simpangan baku bulan j. Dengan simpangan baku : ∑(𝑥−𝑥)2
𝜎=√
(3)
𝑛−1
Keterangan Persamaan 3: 𝑥 = Data curah hujan. 𝑥 = Jumlah rata-rata curah hujan. 5
𝑛
= Jumlah data.
2.3
Mpandroidchart Mpandroidchart adalah sebuah library yang sangat baik dan mudah digunakan dalam pembuatan suatu grafik di Android. Library Mpandroidchart dapat digunakan untuk API level 8 dan level-level di atasnya. Fitur yang dimiliki library mpandroidchart adalah seperti: delapan tipe chart (BarChart, BubbleChart, CandleStickChart, HorizontalBarChart, LineChart, PieChart, RadarChart, ScatterChart), pembesaran grafik (scaling) pada kedua sumbu, dragging/panning, sumbu yang terpisah, pengaturan sumbu yang fleksibel (customizable axes), efek highlight pada nilai, penyimpanan grafik di SD-card (sebagai file gambar atau .txt), keterangan grafik yang otomatis namun dapat diatur secara custom, animasi, zooming dan scrolling yang halus dapat diaplikasikan pada data hingga 30.000 data poin di grafik batang maupun grafik garis, serta gradle support sehingga dapat digunakan untuk Android.[13] 2.4
Google Maps Android API Penambahan peta di aplikasi Android menggunakan data peta Google Maps dapat dilakukan menggunakan Google Maps Android API. API secara otomatis mengatasi akses ke server Google Maps, mengunduh data, menampilkan peta, dan memberikan respon terhadap gerakan-gerakan yang dilakukan terhadap peta. Fitur yang dimiliki API juga memungkinkan untuk menambahkan penanda (marker), poligon, polylines, dan overlays pada peta dasar. Fitur yang lebih lanjut dapat ditambahkan pada peta dengan menggunakan Google Maps Android API Utility Library. Google Maps Android API Utility Library adalah sebuah open-source library yang terdiri dari kelas-kelas yang sangat bermanfaat untuk suatu aplikasi peta, di antaranya seperti penggunaan GeoJSON, objek KML, penggunaan heatmaps, kustomisasi marker, multiple marker, serta kalkulasi jarak dan luas. Heatmaps sangat berguna untuk merepresentasikan distribusi dan populasi dari suatu data poin pada sebuah peta. Google Maps Android API Utility Library memiliki heatmap utility, dimana heatmaps dapat diaplikasikan pada Google Maps yang dibangun dalam suatu aplikasi Android. Heatmaps digunakan sebagai alternatif pengganti marker, saat data yang digunakan pada peta sangat banyak. Penggunaan heatmaps pada data yang besar memiliki keunggulan, yaitu pendistribusian data yang lebih mudah dimengerti dengan penggunaan warna, dibandingkan dengan penggunaan marker di setiap lokasi pada peta. [14] 3.
Metode Perancangan
Metode yang digunakan dalam pembuatan aplikasi ini adalah metode perancangan sistem dengan menggunakan model Waterfall. Model Waterfall melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, pengkodean, pengujian, dan maintenance.[15] 6
Gambar 3.1 Model Waterfall [15]
Proses dari perancangan sistem dengan menggunakan model Waterfall dapat dijelaskan sebagai berikut: Requirements Analysis and Definition Analisa terhadap kebutuhan pengguna menyatakan bahwa pengguna membutuhkan kemudahan dalam pengaksesan informasi ramalan curah hujan dan prediksi akan tingkat kekeringan suatu daerah pada suatu waktu. Kebutuhan yang harus dilengkapi perancang dalam perancangan program untuk menjawab kebutuhan pengguna adalah pengumpulan data curah hujan bulanan di kabupaten Boyolali dan menyiapkan tools (SQL Server, editor R, Android Studio beserta SDK dan library yang dibutuhkan). Kebutuhan yang harus dilengkapi pengguna adalah berupa perangkat smartphone atau tablet dengan platform Android versi minimum Jelly Bean dan jaringan internet. 3.1
3.2
System and Software Design Desain arsitektur yang ditentukan adalah penggunaan bahasa R untuk melakukan proses analisa kekeringan dengan metode SPI dan peramalan jumlah curah hujan dengan metode ARIMA. Penggunaan server diperlukan untuk menempatkan data aktual dan data prediksi sehingga dapat diakses oleh perangkat Android bila terkoneksi dengan internet. Bila tidak terdapat koneksi internet, program didesain dengan fitur penyimpanan pada perangkat sehingga pemrosesan pemetaan kekeringan juga dapat dilakukan secara offline. Fitur program selain mengambil data dari server adalah proses pemetaan kekeringan menggunakan library Google Maps Android dan visualisasi hasil pemrosesan menggunakan widget-widget dan utility yang disediakan oleh Android, serta penggunaan library Mpandroidchart untuk menampilkan grafik.
7
3.3
Implementation and Unit Testing Proses analisa dan peramalan kekeringan yang dilakukan diimplementasikan menggunakan bahasa R. Proses akses data di server diimplementasikan menggunakan bahasa PHP. Aplikasi android dibangun menggunakan bahasa Java dan XML di editor Android Studio dengan menggunakan library-library yang sudah disiapkan. Pengujian terhadap hasil implementasi kode program dilakukan per tahap. 3.4
Integration and System Testing Unit-unit yang sudah tidak terdapat kesalahan disatukan dan dilakukan pengujian apakah sistem dapat menghasilkan keluaran dengan baik, jelas, dan benar. Operation and Maintenance Program yang sudah jadi dioperasikan oleh pengguna yang membutuhkan. Bila ada perubahan data akan dilakukan penyesuaian. 3.5
3.6
Perancangan Sistem
Gambar 3.2 Arsitektur Sistem Aplikasi Prediksi Kekeringan
Sistem aplikasi yang dibangun dijelaskan seperti pada gambar 3.2. Data curah hujan diproses di Server, dengan menjalankan script R yang memuat baris – baris kode berisi package ARIMA untuk proses peramalan curah hujan periode selanjutnya dan algoritma metode SPI untuk proses analisa kekeringan. Hasil analisa kekeringan dan peramalan curah hujan kemudian diakses oleh perangkat Android melalui kode PHP sehingga hasil keluaran proses dapat tersimpan di perangkat bila perangkat dalam keadaan offline. Data yang diproses untuk divisualisasikan di perangkat Android dapat berupa data yang sudah tersedia di 8
perangkat ataupun data baru (data yang tersimpan di server atau data pribadi pengguna) secara online. Visualisasi pada perangkat berupa tampilan informasi kekeringan per kecamatan di Kabupaten Boyolali, pemetaan kekeringan dengan layanan Google Maps dan teknologi Android heatmaps, serta visualisasi grafik curah hujan aktual dan peramalannya. Perancangan sistem menggunakan UML (Unified Modelling Language) dibuat ke dalam use case diagram dan activity diagram.
Melihat informasi tentang aplikasi
Melihat Panduan Penggunaan Aplikasi <<extend>> Melihat Data yang Terdapat di Server
<<extend>> Melihat Detail Informasi Kekeringan Aktual
<<extend>> <
>
Pengguna
<<extend>>
Melihat Data Siap Dipetakan Memproses Data untuk Dipetakan <<extend>>
Melihat Peta Kekeringan Aktual dan Prediksi
<<extend>> <>
<<extend>>
Melihat Grafik Curah Hujan Aktual dan Prediksi <<extend>>
Melihat Detail Informasi Kekeringan Prediksi
Melihat Data yang Terdapat di Perangkat <> <> Menyimpan (Mendownload) Data yang sudah diproses di perangkat Memasukkan Data Ke Perangkat
Memilih File Data untuk Diproses
Gambar 3.3 Use Case Aplikasi Kekeringan
Gambar 3.3 merupakan Use Case Diagram yang menggambarkan interaksi pengguna dengan sistem yang dirancang. Gambar 3.3 dapat dijelaskan sebagai berikut: Pengguna dapat melihat informasi cara penggunaan aplikasi yang menjelaskan jalannya semua fitur aplikasi. Pengguna dapat melihat data secara online maupun offline. Bila pengguna mengaktifkan internet dan terhubung ke server, maka data yang tersedia di server akan terlihat oleh pengguna dan dapat diproses untuk dipetakan. Saat pengguna melakukan pemrosesan data, pengunduhan data terjadi secara otomatis dan data tersimpan di perangkat. Jika perangkat dalam keadaan tidak terhubung dengan server, maka pengguna bisa melihat data yang sudah pernah diunduh atau pun memasukkan data baru untuk dipetakan. Proses yang dilakukan aplikasi saat pengguna memilih data akan memberikan hasil berupa pemetaan daerah kekeringan, kemudian pengguna bisa melihat detail kekeringan dari suatu kecamatan, serta dapat melihat grafik curah hujan.
9
Gambar 3.4 Activity Diagram pemrosesan data yang ada di Server
Gambar 3.4 merupakan Activity Diagram pemrosesan data yang berada di server, dimana diagram menggambarkan alur tindakan dalam sistem, percabangan yang mungkin terjadi, bagaimana alur sistem dari mulai hingga berakhir. Gambar 3.4 dapat dijelaskan sebagai berikut: Saat pengguna memulai aplikasi dan memilih menu navigasi "Data Server", maka sistem akan mengecek apakah perangkat sudah terhubung ke server atau belum. Jika tidak terhubung, maka muncul pemberitahuan bahwa perangkat tidak terhubung ke server dan sistem selesai. Jika perangkat terhubung, maka sistem melakukan pengecekan apakah tersedia data di server. Jika tidak tersedia data, maka akan ada peringatan bahwa tidak ada data di server, lalu sistem berhenti. Jika terdapat data, maka sistem akan menampilkan data yang ada. Saat pengguna memilih salah satu dari data yang ditampilkan, sistem secara otomatis akan melakukan proses pemetaan menggunakan layanan Google Maps dan Google Maps Heat Maps utility yang kemudian hasil akan tampil berupa peta beserta heat maps. Sistem akan menampilkan kategori kekeringan yang ada saat pengguna menyentuh button Info. Saat pengguna menyentuh button Detail, sistem akan menampilkan detail kekeringan dari kecamatan yang dipilih. Pada detail kekeringan yang ditampilkan sistem, terdapat button Lihat Grafik yang akan memunculkan grafik data curah 10
hujan dari tahun 2001 sampai tahun 2013 pada bulan yang diramalkan kekeringannya.
Gambar 3.5 Activity Diagram Pemrosesan Data Baru
Gambar 3.5 menjelaskan alur sistem saat terjadi pemrosesan data baru. Saat pengguna memilih menu navigasi “Data Baru”, maka sistem akan mengecek apakah perangkat dalam keadaan terhubung ke server atau tidak. Jika perangkat tidak terhubung, maka data baru tidak dapat diproses untuk dianalisa kekeringannya dan sistem menampilkan peringatan bahwa perangkat tidak terhubung ke server. Jika perangkat dalam keadaan terhubung, maka data baru dicek apakah sudah berekstensi .csv. Jika data tidak berekstensi .csv, maka sistem menampilkan peringatan. Data yang berekstensi .csv akan diunggah sistem ke server. Di bagian server, script PHP dan script R memproses data baru tersebut sehingga data hasil didapatkan. Sistem secara otomatis mengunduh data hasil yang siap dipetakan. Pengguna dapat mempetakan data baru dengan membuka navigasi “Data Perangkat” dan memilih file data baru yang sudah dimasukkan, kemudian sistem akan merespon dengan alur pemrosesan seperti dijelaskan pada gambar 3.4, namun tidak dilakukan pengecekan apakah terhubung ke server atau tidak, melainkan dilakukan pengecekan apakah terdapat data di perangkat atau tidak.
11
4.
Hasil dan Pembahasan
Hasil dari sistem yang dibangun adalah berupa aplikasi Android dengan fitur utama pemetaan kekeringan dan peramalan curah hujan di tahun 2013 yang didapatkan dari data curah hujan tahun 2001-2012.
Gambar 4.1 Tampilan Hasil Pemetaan Kekeringan
Gambar 4.2 Tampilan Legenda Pemetaan Kekeringan
Kode Program 1 Kode program Menampilkan Peta Boyolali dengan Layanan Google Maps 1 2 3 4 5 6 7 8 9 10 11
private void createMapView(GoogleMap googleMap) { LatLng Boyolali = new LatLng(-7.382324, 110.61245); googleMap.moveCamera( CameraUpdateFactory.newLatLngZoom(Boyolali, 10.5f) ); googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); googleMap.getUiSettings().setMapToolbarEnabled(false); googleMap.getUiSettings().setCompassEnabled(true); googleMap.getUiSettings().setRotateGesturesEnabled(false); googleMap.getUiSettings().setScrollGesturesEnabled(true); }
Pemetaan yang dilakukan pada aplikasi ini menggunakan layanan Google Maps. Kode Program 1 merupakan potongan kode untuk menampilkan peta dasar wilayah Boyolali. Objek ‘Boyolali’ pada baris kedua dibentuk untuk memanggil kelas LatLng dengan melempar parameter berupa garis lintang dan garis bujur wilayah Boyolali. 12
Hasil pemrosesan data dapat diakses secara online saat perangkat terhubung dengan server. Bila perangkat tidak terhubung dengan server, pengguna dapat mengakses data yang sebelumnya sudah terunduh dan tersimpan di perangkat. Menu lihat data di aplikasi disajikan dengan pilihan menu berupa navigasi bar, yaitu : Data Server, Data Perangkat, atau Data Baru. Tampilan data pada aplikasi dapat dilihat pada Gambar 4.3 dan Gambar 4.4.
Gambar 4.3 Tampilan Lihat Data yang Terdapat di Server
Gambar 4.4 Tampilan Lihat Data yang Terdapat di Perangkat
Saat terhubung dengan server, aplikasi akan mengecek apakah terdapat data di server. Pengecekan ini dilakukan dengan pemanggilan file PHP yang dapat dilihat pada Kode Program 2. File PHP ini menampilkan hasil scan direktori berupa data JSON yang memuat nama file dan tanggal file. Kode Program 2 Kode pengecekan ketersediaan data di Server 1 2 3 4 5 6 7 8 9 10 11 12 13
$dir = 'RData/DataHasil'; $files = scandir($dir); $count = 0; $response = array(); $tempResponse = array(); for($i = 2; $i < count($files); $i++){ $temp = array(); $temp['data'] = $files[$i]; $stat = stat($dir."/".$files[$i]); $time = $stat['ctime']; $temp['date'] = gmdate("Y-m-d", $time); $tempResponse[$count] = $temp; $count++; } $response['result'] = $tempResponse; echo json_encode($response);
13
Data hasil analisa kekeringan yang diambil dari server masih berupa nilai, oleh karena itu pada aplikasi dilakukan pengklasifikasian indeks kekeringan seperti pada Kode Program 3 berdasarkan pada kategori tingkat kekeringan pada tabel 1.1. Kode Program 3 Kode Program Pengkategorian Kekeringan Berdasar Indeks SPI 1 inputStream = new FileInputStream(new File(directory + "/" + source + "/prediksi" + source + ".csv")); 2 List result = read(); 3 if (resultHasil.get(resultHasil.size() - 1) <= -2.0) { 4 sangatKering2.add(new LatLng( 5 Double.parseDouble(temp[2]), 6 Double.parseDouble(temp[1]) 7 )); 8 } else if (resultHasil.get(resultHasil.size() - 1) <= -1.5 && resultHasil.get(resultHasil.size() - 1) > -2.0) { 9 kering2.add(new LatLng( 10 Double.parseDouble(temp[2]), 11 Double.parseDouble(temp[1]) 12 )); 13 }
Kode Program 3 merupakan potongan kode untuk memberikan kategori kekeringan pada titik-titik di dalam batas wilayah Boyolai berdasarkan nilai indeks kekeringan. Kategori kekeringan tersebut berupa: sangat kering, kering, agak kering, normal, agak basah, basah, dan sangat basah. Setiap kategori kekeringan memiliki masing-masing warna yang kemudian akan muncul saat terjadi proses pemetaan. Munculnya warna-warna tersebut dinamakan sebagai Heat Maps yang dapat dilakukan dengan menggunakan layanan Google Maps Android Utility Library. Penggunaan Heat Maps Utility dapat dilihat pada Kode Program 4. Kode Program 4 Kode Program Menampilkan Heat Maps 1 int radius = 65; 2 if (!data1.isEmpty()) { 3 int[] colors1 = { //sangat kering merah 4 Color.rgb(238, 7, 7), 5 Color.rgb(238, 7, 7) 6 }; 7 float[] startPoints1 = { 8 0.5f, 1f 9 }; 10 Gradient gradient1 = new Gradient(colors1, startPoints1); 11 HeatmapTileProvider mProvider1 = new HeatmapTileProvider.Builder() 12 .data(data1) 13 .gradient(gradient1) 14 .build(); 15 mProvider1.setRadius(radius); 16 mProvider1.setOpacity(0.5); 17 googleMap.addTileOverlay(new TileOverlayOptions().tileProvider(mProvider1));
Kode Program 4 merupakan potongan kode untuk memberikan warna pada titik-titik yang sudah dikategorikan kekeringannya. Pengguna dapat melihat detail kekeringan setiap kecamatan dengan menyentuh daerah kecamatan pada peta. Tampilan detail kekeringan akan tampak seperti pada Gambar 4.5. Pada tampilan 14
ini pengguna dapat melihat grafik curah hujan dari data kecamatan yang dipilih. Tampilan grafik seperti pada Gambar 4.6. Kode Program 5 merupakan potongan kode yang berfungsi untuk menampilkan grafik menggunakan Mpandroidchart library.
Gambar 4.5 Tampilan Lihat Detail Kekeringan
Gambar 4.6 Tampilan Grafik Curah Hujan
Kode Program 5 Kode Program Menampilkan Grafik 1 private void setLineComponent1() { 2 setComp1 = new LineDataSet(FragmentMapsGraph.valsComp1, "Data Hujan"); 3 setComp1.setAxisDependency(YAxis.AxisDependency.RIGHT); 4 setComp1.setColor(Color.RED); 5 setComp1.setCircleColor(Color.RED); 6 setComp1.setCircleSize(3); 7 setComp1.setCircleColorHole(Color.RED); 8 setComp1.setDrawValues(true); 9 setComp1.setDrawFilled(true); 10 setComp1.setHighlightEnabled(false); 11 }
Baris 2 adalah pemanggilan kelas LineDataSet dari library Mpandroidchart. Baris 2 melemparkan parameter list berisi data curah hujan yang akan ditampilkan pada grafik. Pengolahan data yang dibangun pada aplikasi ini terjadi di server, menggunakan script R dengan package ARIMA untuk peramalan dan SPI untuk 15
analisa kategori kekeringan. Kode penggunaan package ARIMA ditunjukkan oleh Kode Program 6. Kode Program 6 Potongan Kode R untuk Peramalan ARIMA 1
#INISIALISASI MODEL ARIMA arima <- auto.arima(temp) #AUTO-ARIMA FORECAST MODEL SEBANYAK n PERIODE 2 cons.forecast <- forecast(arima, h = period) 3 cons.forecast<-append(cons.forecast$fitted, cons.forecast$mean) 4 cons.forecast <- ts(cons.forecast, frequency = 12) 5 #AUTO-ARIMA ERROR FORECAST 6 cons.error.me <- mean(arima$residuals) 7 hasilPrediksi <- rbind(hasilPrediksi, cons.forecast)
Kode program 6 merupakan potongan kode R untuk peramalan curah hujan satu bulan dari data curah hujan terakhir. Auto.arima mengembalikan model ARIMA dan order terbaik berdasarkan nilai AIC, AICc, dan BIC. Fungsi auto.arima melakukan perintah untuk pencarian dari seluruh model yang memungkinkan untuk digunakan pada data time series yang ada. Package “forecast” adalah package yang memuat metode ARIMA di script R. Data inputan berupa data curah hujan yang diatur dalam bentuk file csv. Pada script R dilakukan pengubahan data menjadi bentuk time series dengan pola bulanan. Inisialisasi model ARIMA dilakukan dengan menggunakan fungsi "auto.arima(nama variabel penampung data series)". Peramalan dilakukan dengan fungsi "forecast(auto.arima(nama variabel penampung data series), h=1)", h bernilai satu karena akan meramalkan satu bulan ke depan. Pada penelitian ini penggunaan auto.arima ini terbukti lebih baik daripada penggunaan metode manual dengan menentukan model ARIMA. Hal ini dapat disimpulkan dari perbandingan nilai error dimana nilai error auto.arima lebih kecil daripada model yang disimpulkan sendiri dengan melihat grafik ACF dan PACF. Hasil peramalan menunjukkan nilai Mean Absolute Error (MAE) terkecil terdapat pada peramalan di kecamatan Juwangi, yaitu sebesar 57.92 pada bulan Februari. Untuk mendapatkan perbandingan apakah prediksi dengan metode ARIMA yang digunakan sudah menghasilkan peramalan yang baik maka dilakukan uji perbandingan hasil kesalahan ramalan menggunakan metode Holt Winters[9]. Tabel 4.1 Tabel Uji Perbandingan Akurasi Peramalan Kecamatan Juwangi. Metode
RMSE
MAE
Holt-Winters
141.4316
100.903
Arima
74.74883
57.92
Tabel 4.1 memuat besar galat RMSE (Root Mean Square Error) dan MAE (Mean Absolute Error) yang didapatkan dari proses peramalan curah hujan kecamatan Juwangi menggunakan editor R. Semakin kecil nilai galat maka semakin baik hasil peramalan yang dilakukan. Hasil galat yang tertera pada Tabel 4.1 menjelaskan bahwa penggunaan package ARIMA menghasilkan prediksi yang lebih baik dibandingkan package Holt-Winters karena nilai galat dengan metode ARIMA 16
lebih kecil dibandingkan dengan galat jika menggunakan metode Holt-Winters. Oleh karena itu dapat dinyatakan bahwa penggunaan metode ARIMA sebagai metode peramalan curah hujan pada penelitian ini adalah baik. Penggunaan metode Standardized Precipitation Index (SPI) dilakukan untuk menghitung indeks kekeringan dari hasil peramalan curah hujan pada tahun 2013. Tabel 4.2 merupakan tabel hasil pengujian peramalan curah hujan dibandingkan dengan curah hujan aktual dan pengujian hasil pengkategorian kekeringan berdasar nilai indeks kekeringan SPI untuk masing-masing kecamatan di Kabupaten Boyolali pada bulan Februari 2013. Tabel 4.2 Tabel Hasil Peramalan Curah Hujan Menggunakan Metode ARIMA dan Kategori Kekeringan Indeks Kekeringan SPI Kecamatan
Hujan Aktual (mm)
Hujan Prediksi (mm)
SPI Aktual Februari-2013
SPI Prediksi Februari-2013
Selo
411
411.32
Normal
Normal
Ampel
339
303.55
Normal
Normal
Cepogo
477
436.48
Normal
Normal
Musuk
402
322.70
Normal
Normal
Boyolali
330
347.58
Normal
Normal
Mojosongo
316
598.94
Normal
Basah
Teras
316
340.11
Normal
Agak Basah
Sawit
215
257.11
Normal
Normal
Banyudono
288
290.20
Normal
Normal
Sambi
391
425.95
Normal
Agak Basah
Ngemplak
350
233.20
Normal
Normal
Nogosari
316
323.21
Normal
Normal
Simo
354
261.75
Normal
Normal
Karanggede
367
262.08
Agak Basah
Normal
Klego
282
298.73
Normal
Normal
Andong
218
269.32
Normal
Normal
Kemusu
217
282.89
Normal
Normal
Wonosegoro
280
290.75
Normal
Normal
Juwangi
277
312.81
Normal
Agak Basah
Berdasarkan hasil peramalan menggunakan metode ARIMA didapati nilai ramalan curah hujan bulan Februari 2013 pada beberapa kecamatan di Kabupaten Boyolali memiliki nilai yang mendekati dengan data curah hujan aktualnya. Kategori indeks kekeringan yang didapatkan dari metode SPI juga dapat terprediksikan dengan baik dibuktikan dengan kecocokan nilai SPI prediksi dan nilai SPI aktualnya dimana pada bulan Februari 2013 keadaan iklim di beberapa kecamatan di Boyolali tidak mengalami kekeringan, namun beriklim normal. 17
Pengujian aplikasi dilakukan dengan pembagian kuesioner kepada 15 orang Penyuluh Pertanian Lapangan (PPL) untuk melihat tanggapan pengguna mengenai aplikasi. Perhitungan hasil kuesioner menggunakan metode skala Likert. Skala Likert digunakan untuk mengukur sikap, pendapat, dan persepsi seseorang atau sekelompok tentang kejadian atau gejala sosial.[16] Hasil pengujian ditampilkan pada tabel 4.3. Tabel 4.3 Tabel Pengujian Aplikasi Menggunakan Metode Skala Likert No
Pernyataan
S
N
TS
STS
2
10
3
0
0
0
7
5
3
0
2
Aplikasi perhitungan indeks bermanfaat Cara penggunaan aplikasi mudah
3
Aplikasi memenuhi kebutuhan PPL
0
9
6
0
0
4
Fitur pada aplikasi berfungsi dengan baik
0
11
4
0
0
5
Tampilan aplikasi mudah dipahami
1
9
5
0
0
1
kekeringan
SS
Hasil perhitungan dari skor pada tabel 4.2 menginterpretasikan pernyataan pertama mendapat skor total sebesar 78,67% yang berarti pengguna menyatakan aplikasi bermanfaat. Pernyataan kedua, walaupun masih terdapat 3 dari 15 pengguna yang menyatakan tidak setuju bahwa penggunaan aplikasi mudah karena belum terbiasa menggunakan smartphone Android, namun hasil perhitungan keseluruhan menyatakan nilai sebesar 65,30% yang berarti pengguna setuju bahwa penggunaan aplikasi mudah. Pernyataan ketiga mendapat total nilai sebesar 72% yang berarti pengguna setuju bahwa aplikasi memenuhi kebutuhan PPL. Pernyataan keempat mendapat total nilai sebesar 74,67% yang menyatakan pengguna setuju fitur-fitur aplikasi berfungsi dengan baik, dan pernyataan kelima memiliki nilai total sebesar 74,67% yang berarti pengguna setuju bahwa tampilan aplikasi mudah dipahami. 5.
Simpulan
Aplikasi Android Penentuan Indeks Kekeringan dapat digunakan untuk memvisualisasikan hasil analisa kekeringan dalam bentuk peta dengan heat maps menggunakan layanan Google Maps, teks, dan juga grafik menggunakan library Mpandroidchart. Aplikasi memungkinkan pengguna untuk mengakses data yang terdapat di server secara online atau mengakses data yang sudah terunduh dan tersimpan di memori perangkat Android secara offline. Penentuan indeks kekeringan dilakukan menggunakan metode Standardized Precipitation Index (SPI) yang mengkategorikan kekeringan berdasarkan nilai indeksnya. Pada penelitian ini dilakukan peramalan curah hujan untuk satu bulan berikutnya dari data yang diproses. Peramalan dihitung dengan menggunakan metode Autoregressive Integrated Moving Average (ARIMA). Komputasi indeks kekeringan SPI dan peramalan ARIMA dilakukan dengan menggunakan aplikasi R. Package Arima di R dapat disimpulkan sebagai metode yang lebih baik dibandingkan package Holt Winters di R. 18
6.
Pustaka
[1]
Hermawan, Juniarti, Trismidianto, Krismianto, dkk. 2010. Pengembangan ekspert sistem berbasis indeks ENSO
[2]
Jauhari, Harisuseno, Andawayanti. 2016. Penerapan Metode Thornthwaite Mather dalam Analisa Kekeringan di DAS Dodokan Kabupaten Lombok Tengah Nusa Tenggara Barat.
[3]
Muliawan, Harisuseno, Suhartanto. 2014. Analisa Indeks Kekeringan dengan Metode Standardized Precipitation Index (SPI) dan Sebaran Kekeringan Dengan Geographic Information System (GIS) pada DAS Ngrowo.
[4]
Gadi, Pical. 2015. Android Juara OS Smartphone di Asia Tenggara. http://www.kompasiana.com/picalgadi/android-juara-os-smartphone-di-asiatenggara_5630dd7bb693734c0b59d54f/. Diakses tanggal 15 Februari 2015.
[5]
Krjogja. 2014. Boyolali Jadi Lumbung Pangan Nasional. http://www.krjogja.com/web/news/read/242276/boyolali_jadi_lumbung_pangan_ nasional/. Diakses tanggal 15 Februari 2016.
[6]
Aisyah. 2016. Langka Turun Hujan, Lahan Padi Tadah Hujan Rawan Kekeringan. http://birohumas.jatengprov.go.id/content/langka-turun-hujan-lahanpadi-tadah-hujan-rawan-kekeringan/. Diakses tanggal 15 Februari 2016.
[7]
Nugroho, S. Aji. 2013. Dilanda kekeringan, pemerintah dropping 5.000 liter air. http://daerah.sindonews.com/read/786645/22/dilanda-kekeringan-pemerintahdropping-5-000-liter-air-1379996941/. Diakses tanggal 15 Februari 2016.
[8]
Nurjianto, T. Bayu. 2012. Analisa Kekeringan DAS Amprong – Malang dengan Metode SPI (Standardized Precipication Index)
[9]
Putra, D. A. W. S. 2015. Model Prediksi Kekeringan Menggunakan Metode HoltWinters (Studi Kasus : Wilayah Kabupaten Boyolali)
[10]
Mardiatma, B. Benny. 2012. Prediksi Spasial Curah Hujan di Wilayah Surakarta Menggunakan Metode ARIMA (Autoregressive Integrated Moving Average) untuk Menentukan Klasifikasi Zona Iklim.
[11]
Dharmawan, Putu, Jayanegara. 1996. Pemodelan dan Peramalan Angka Curah Hujan Bulanan Menggunakan Analisis Runtun Waktu.
[12]
Hanke E. John dan Dean W. Wichern. 2005. Business Forecasting (Eight Edition). Prentice Hall New Jersey: Pearson. Halaman 381-426.
[13]
Jahoda, Philip. 2016. MPAndroidChart Library. https://github.com/PhilJay/MPAndroidChart/. Diakses tanggal 18 April 2016.
[14]
Creative Commons Attribution 3.0 License. 2016. Introduction to the Google Maps Android API. https://developers.google.com/maps/documentation/androidapi/intro. Diakses tanggal 18 Mei 2016.
[15]
Pressman. 2012. Rekayasa Perangkat Lunak. jilid I. Yogyakarta: Penerbit Andi.
[16]
Riduwan. 2011. Dasar-Dasar Statistika. Bandung:Alfabeta. Halaman 38. 19