PEMBANGKITAN POLA FREKUENSI DATA SEKUENSIAL
UNTUK SIMULASI PREDIKSI BANJIR
Wiwin Suwarningsih, Endang Suryawati
Pusat Penelitian Teknik Informatika-LIPI
Jl. Cisitu No. 21/154 D ( Komplek LIPI) Cisitu Bandung email : wiwin|endang@informatika.lipi.go.id
Abstrak
Pada makalah ini akan dijelaskan cara membangkitkan pola sekuensial untuk melihat kemunculan atau frekuensi data klimatologi untuk membantu memprediksi kondisi banjir. Algoritma yang akan digunakan adalah algoritma SPADE yaitu sebuah algoritma baru untuk penemuan cepat pola Sekuensial. Solusi untuk masalah ini membuat database scan berulang, dan menggunakan struktur hash kompleks yang memiliki pengalokasian yang minim. Hasil akhir dari
penelitian ini adalah sebuah model urutan pertambangan (minning sequens) yang dapat digunakan untuk menentukan
prediksi banjir atau tidak. Model Ini juga memiliki skalabilitas linear pada jumlah sekuens input dan sejumlah parameter lainnya dari database klimatologi.
Kata Kunci : simulasi, banjir, mining frequent sequence, SPADE
1. PENDAHULUAN
Bandung merupakan kota dengan elevasi yang cukup tinggi yaitu rata-rata sekitar ±768 m di atas permukaan laut rata-rata (dpl) (mean sea level). Daerah utara Kota Bandung pada umumnya lebih tinggi daripada daerah selatan. Rata-rata ketinggian di sebelah utara adalah ±1050 dpl, sedangkan di bagian selatan adalah ±675 dpl. Bandung dikelilingi oleh pegunungan yang membuat Bandung menjadi semacam cekungan (Bandung Basin) [3].
Air akan cenderung mengalir bila morfologinya curam, dan mengalir pelan bila morfologinya landai. Dengan demikian kalau ada daerah landaian air akan cenderung menggenang. Ketika air sudah tidak mengalir dengan baik maka disitulah kemungkinan terjadi banjir.
Hujan deras yang mengguyur kota Bandung dan sekitarnya dapat menyebabkan wilayah Bandung selatan dilanda banjir. Akibatnya ratusan rumah terendam. Banjir disebabkan sungai Citarum tak mampu menampung air hujan hingga meluap. Akibatnya, ribuan rumah yang berada di sepanjang bantaran sungai terendam, dan ribuan warganya mengungsi.Pemerintah Kota Bandung sampai saat ini belum dapat menanggulangi bencana banjir yang sering terjadi di daerah Bandung Selatan. Berdasarkan permasalahan diatas maka penulis mencoba untuk menuangkan sedikit ide dengan menganalisa pola hujan yang terjadi dengan mensimulasikan kemungkinan terjadinya banjir atau tidak disuatu daerah. Dalam tulisan ini akan dibahas mengani pembangkitan pola dari data klimatologi dengan data bencana banjir untuk menghasilkan suatu pola baru untuk memprediksi banjir.
2. KAJIAN TEORI
Algoritma SPADE (Sequential Pattern Discovery using Equivalence classes = Penemuan pola sekuensial menggunakan kelas yang ekivalen) adalah ebuah algoritma baru untuk penemuan cepat pola Sekuensial[4]. Solusi untuk masalah ini membuat database scan berulang, dan menggunakan struktur hash kompleks yang memiliki pengalokasian yang minim.
Masalah pola pertambangan Sequential dapat dinyatakan sebagai berikut: I = {i1, i2, . . . , im} merupakan set item
yang terdiri dari alfabet. Sebuah kejadian (event) adalah kumpulan non empty unordered. Urutan adalah daftar kejadian. Sebuah kejadian (event) dinotasikan sebagai (i1,
i2, . . . , ik ), dimana ij adalah item. Sebuah α urutan
dinotasikan sebagai (α1 → α2 → · · · → αq), dimana α1
adalah sebuah kejadian. Sebuah urutan dengan k item (k =∑ j | α1 |) disebut k-sequence (k-sekuens). Conoh
(B→AC) adalah 3-sekuens.
Untuk sekuens α, Jika kejadian αi terjadi sebelum αj,
maka dinotasikan αi < αj . Kita sebut α adalah subsekuens
dari sekuens β, dinotasikan α ≤ β, Jika ada fungsi satu ke satu f dipetakan terhadap kejadian yang terdapat pada α dan β, maka :
1) αi f (α⊆ i )
2) Jika αi < αj maka f (αi ) < f (αj ).
Algoritma SPADE untuk menentukan komputasi frekuensi 1-sekuens dan 2-sekuens (lihat gambar 1), dengan dekomposisi ke dalam bentuk prefiks ekivalens kelas induk dan enumerasi semua frekuensi sekuens menggunakan metoda BFS(Breadth-First Search) atau DFS (Depth-First Search) di kelas masing-masing.
Gambar 1. Algoritma SPADE
Tahapan detail algoritma SPADE adalah sebagai berikut :
1.
Tentukan dan hitung frekuensi sekuens-1 dan sekuens-2Menghitung F1 : Definisikan basisdata daftar-id secara
vertikal, semua rangkaian yang umum dapat dihitung dalam sebuah analisis dari basisdata tunggal. Untuk setiap item dalam basisdata, kita membaca daftar-id dari disk ke memori. Kemudian menganalisis daftar-id, tambahkan nilai 1 untuk setiap SID baru yang ditemukan.
Menghitung F2: Didefinisikan bahwa N = | F1 | menjadi
jumlah elemen umum dan daftar-id ukuran rata-rata dalam byte. Implementasi yang naif untuk menghitung sekuens-2 memerlukan (N
2) penggabungan daftar-id untuk semua
pasangan elemen. Jumlah data A · N · (N - 1) / 2, yang sesuai dengan data yang dicari sebesar N/2.
2. Pencacahan Frekuensi kelas sekuens
Urutan yang lazim ditemukan pada tingkat atom ini adalah kelas untuk tingkat berikutnya. Proses rekursif diulang sampai semua sekuens telah dicatatkan. Dalam hal manajemen memori mudah untuk melihat bahwa kita memiliki memori untuk menyimpan daftar-id lebih dari dua tingkat berturut-turut. Pencarian DFS (lihat gambar 2) membutuhkan memori untuk dua kelas pada dua tingkat. Pencarian BFS memerlukan memori dari semua kelas di dua tingkat. Setelah menghasilkan semua sekuens untuk tingkat berikutnya, sekuens dapat dihapus pada tingkat ini.
Gambar 2. Algoritma BFS dan DFS
3.
Gabungkan daftar-id temporalTahap selanjtunya adalah bagaimana melakukan kombinasi dari daftar-id untuk dua sekuens. Pertimbangkan kelas ekivalen [B → A] dengan himpunan
atom {B → AB, B → AD, B → A →, B → A → D, B → F →}. Jika P untuk awalan B → A, maka kita dapat menulis ulang kelas untuk mendapatkan [P] = {PB, PD, P → A, P → D, P → F}. Dari sini dapat dilihat kelas memiliki dua jenis atom: atom event {PB, PD} dan sekuens atom {P → A, P → D, P → F}.
Untuk memperluas kelas cukup dengan menggabungkan daftar-id semua pasangan atom. Namun, tergantung pada pasangan atom yang bergabung, akan ada tiga kemungkinan urutan yang dihasilkan (ini adalah tiga kemungkinan minimal umum super-urutan) yaitu :
a. Event-atom dengan event-atom: Jika digabungkan PB dengan PD, maka hasilnya adalah event-atom baru yaitu P B D.
b. Event-atom dengan sekuens atom: Jika digabungkan PB dengan P → A, maka hasilnya adalah sequence atom baru yaitu P B → A.
c. Sekuens atom dengan sekuens atom: Jika digabungkan P → A dengan P → F, maka ada tiga hasil yang mungkin yaitu event-atom baru P → A F, dan dua sekuens atom baru yaitu P → A → F dan P → F → A. Suatu kasus khusus muncul ketika kita menggabungkan P → A dengan dirinya sendiri, yang hanya bisa menghasilkan sekuens atom baru P → A → A.
4. Pemangkasan Sekuens
Algoritma pemangkasan ini diilustrasikan pada Gambar 3. α1 adalah elemen pertama dari sekuens α. Sebelum
menghasilkan daftar-id untuk sekuens-k β, kita periksa apakah semua sub-urutan k-1 sering muncul. Jika semua sering muncul maka kita melakukan penggabungan daftar-id. Jika tidak β akan dihapus. Perhatikan bahwa semua sub-sekuens terakhir berada di kelas saat ini.
Gambar 3. Algoritma Pemangkasan Sekuens
Strategi Pemilihan Pola Pemangkasan Sekuens
Tiga langkah strategi pemangkasan untuk memilih pola yang sangat prediktif dari himpunan sekuens[1], yaitu:
1. Pola Pemangkasan Normatif : menghilangkan semua aturan normatif yang konsisten dengan latar belakang pengetahuan sesuai dengan operasi normal yaitu menghilangkan pola-pola yang tidak hanya terjadi dalam hal buruk, tetapi juga terjadi dalam rencana yang baik cukup sering, karena model ini tidak mungkin memprediksi peristiwa buruk.
tepat, artinya menghilangkan q pola yang diperoleh dengan meningkatkan suatu p model yang ada, q frekuensi yang sama sesuai intuisi adalah bahwa p juga prediksi q.
3. Pola pemangkasan dominan: menghilangkan
semua sekuens yang didominasi kurang prediktif daripada subsequences yang tepat, artinya menghilangkan pola yang diperoleh dengan meningkatkan q yang ada.
3. HASIL ANALISA
Basisdata sekuens yang terbentuk meliputi SID, EID, itemset pendukungnya dan frekuensi sekuens dari masing-masing item (lihat tabel 1). Data yang digunakan untuk membangun basisdata sekuens ini adalah data klimatologi BMKG periode tahun 2005 sampai dengan 2008[2].
Nilai SID adalah nilai sekuens data masukan, sedangkan nilai EID adalah nilai event ketika curah hujan diatas 35 mm yang dapat merupakan ukuran nilai dengan kategori hujan deras dalam rentang waktu 20-60 menit. Pada kolom item merupakan parameter cuaca yang menyebabkan nilai event (EID) terjadi.
Tabel 1. Basisdata sekuens
SID Time(EID) Items
1 44 {Suhu=23; kelembaban=96; kec.angin=7; arah angin=W}
1 41 {Suhu=22; kelembaban=92; kec.angin=8; arah angin=W}
1 37 {Suhu=22; kelembaban=94; kec.angin=7; arah angin=W}
1 46 {Suhu=23; kelembaban=94; kec.angin=5; arah angin=W}
1 81 {Suhu=22; kelembaban=94; kec.angin=8; arah angin=W}
1 36 {Suhu=23; kelembaban=95; kec.angin=6; arah angin=W}
1 48 {Suhu=22; kelembaban=93; kec.angin=4; arah angin=N}
1 51 {Suhu=22; kelembaban=94; kec.angin=2; arah angin=N}
1 53 {Suhu=24; kelembaban=95; kec.angin=3; arah angin=E}
1 80 {Suhu=23; kelembaban=98; kec.angin=3; arah angin=W}
1 56 {Suhu=22; kelembaban=96; kec.angin=3; arah angin=WNW}
1 42 {Suhu=22; kelembaban=96; kec.angin=4; arah angin=W}
1 45 {Suhu=22; kelembaban=94; kec.angin=5; arah angin=E}
1 39 {Suhu=22; kelembaban=96; kec.angin=4; arah angin=W}
1 59 {Suhu=24; kelembaban=91; kec.angin=5; arah angin=W}
2 37 {Suhu=22; kelembaban=94; kec.angin=7; arah angin=W} {Suhu=23; kelembaban=95; kec.angin=6; arah angin=W}
2 36 {Suhu=23; kelembaban=95; kec.angin=6; arah angin=W} {Suhu=23; kelembaban=95; kec.angin=4; arah angin=W}
2 53 {Suhu=24; kelembaban=95; kec.angin=3; arah angin=E} {Suhu=24; kelembaban=91; kec.angin=4; arah angin=E}
2 44 {Suhu=23; kelembaban=96; kec.angin=7; arah angin=W} {Suhu=24; kelembaban=93; kec.angin=4; arah angin=NE}
2 48 {Suhu=23; kelembaban=94; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=91; kec.angin=3; arah angin=W}
2 53 {Suhu=24; kelembaban=95; kec.angin=3; arah angin=E} {Suhu=21; kelembaban=96; kec.angin=5; arah angin=W}
2 59 {Suhu=24; kelembaban=91; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=95; kec.angin=5; arah angin=W}
3 53 {Suhu=24; kelembaban=95; kec.angin=3; arah angin=E} {Suhu=21; kelembaban=96; kec.angin=5; arah angin=W} {Suhu=23; kelembaban=96; kec.angin=5; arah angin=W}
3 37 {Suhu=22; kelembaban=94; kec.angin=7; arah angin=W}
{Suhu=23; kelembaban=95; kec.angin=6; arah angin=W} {Suhu=23; kelembaban=94; kec.angin=8; arah angin=W}
3 59 {Suhu=24; kelembaban=91; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=95; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=96; kec.angin=5; arah angin=W}
3 48 {Suhu=22; kelembaban=93; kec.angin=4; arah angin=N} {Suhu=23; kelembaban=94; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=91; kec.angin=3; arah angin=W}
4 53 {Suhu=24; kelembaban=95; kec.angin=3; arah angin=E} {Suhu=21; kelembaban=96; kec.angin=5; arah angin=W} {Suhu=23; kelembaban=96; kec.angin=5; arah angin=W} {Suhu=23; kelembaban=93; kec.angin=2; arah angin=SE}
4 59 {Suhu=24; kelembaban=91; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=95; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=96; kec.angin=5; arah angin=W} {Suhu=22; kelembaban=96; kec.angin=2; arah angin=W}
Berdasarkan tabel 1 diatas selanjutnya adalah menentukan pola sekuensnya. Pembentukan frekuensi sekuens
4 {Suhu=22} -> {kelembaban=94} -> {kec.angin=7} -> {arah angin=w}
Gambar 4. Penggabungan daftar-id
Berdasarkan gambar 4 yang merupakan penggabungan daftar-id secara temporal, maka kita dapat menentukan keterhubungan antar parameternya untuk menentukan sekuens baru hasil dari penggabungan daftar-id tersebut.
Sekuens baru yang terbentuk terdiri dari enam pola yaitu P→A→F, P→F→A, P→FA, P→A→D, P→D→A dan pola P→DA. Dari keenam pola sekuens ini selanjutnya dapat dilakukan pemangkasan pola sekuens untuk memilih pola yang sangat prediktif dari himpunan sekuens. Teknik yang digunakan untuk memilih pola yang sangat prediktif adalah ketiga tekni yang telah dijabarkan di dasar teori yaitu teknik pemangkasan pola secara normatif, pemangkasan pola yang redundan, dan teknik pemangkasan pola yang dominan.
Hasil dari pemangkasan dengan ketiga teknik diatas adalah sebagai berikut :
1.
pemangkasan pola secara normatif maka pola sekuens yang terpilih adalah P→A→F, P→F→A, P→FA, P→A→D, dan P→D→A.2. pemangkasan pola yang redundan maka pola sekuens yang terpilih adalah P→F→A, P→A→D, dan P→D→A.
3. pemangkasan pola yang dominan maka pola sekuens yang terpilih adalah P→D→A.
Pola yang prediktif dari himpunan sekuens adalah pola sekuens P→D→A dimana nilai SID =5 sangat dominan dengan nilai EID nya masing-masing 80 dan 75. Ini menunjukan bahwa Curah hujan yang terjadi sangat
tinggi yaitu dalam rentang 45-50 mm dengan dipengaruhi oleh suhu=22, kelembaban=94 dan arah angin cenderung ke arah barat (W=West).
Hasil pola sekuens P→D→A selanjutnya diuji untuk melakukan simulasi untuk prediksi banjir (hasil pengujian pola dapat dilihat pada tabel 3). Pengujian yang dilakukan terhadap pola sekuens ini dipadupadankan dengan data yang diperoleh penulis mengenai data bencana banjir pada tahun 2009 yang diakibatkan oleh curah hujan yang tinggi. Data yang digunakan untuk menguji pola ini adalah data klimatologi tahun 2009[2] yang diambil secara acak.
Tabel 3. Pengujian Pola Sekuens P→D→A
Berdasarkan tabel pengujian pola sekuens prediktif P→D→A diatas prosentase hasil uji yang mendekati kondisi nyata adalah 85% yaitu jika curah hujan dalam waktu dua sampai tiga hari berturut-turut mencapai rata-rata diatas 45 mm maka akan terjadi banjir.
4. KESIMPULAN
Hasil dari penelitian ini dapat disimpulkan bahwa algoritma SPADE sangat membantu dalam menentukan pola dari himpunan data sekuens untuk menghasilkan pola sekuens yang prediktif sehingga pola sekuens tersebut dapat digunaan untuk simulasi prediksi banjir yang didasarkan pada data histori banjir dengan data klimatologi.
DAFTAR PUSTAKA
[1] Agrawal, R. & Srikant, R. (1995). Mining sequential patterns. In 11th Intl. Conf. on Data Engineering, Taiwan
[2] Data Klimatologi Station Geofisika Kelas I
Bandung (BMKG Bandung), Garis Lintang : 06o
55' S, Garis Bujur : 107o
36'E, Tinggi DPL 791 M. Periode Tahun 2005 – 2009.
[3] Rovicky, (2010), Kenapa Bandung Banjir ?
Diakses dari : http://www.club-survivalindonesia . org/ index.php?kenapa-bandung-banjir
Diakses tanggal : 2 februari 2011
[4] Mohammed J. Zaki, (2001), SPADE: An