Analisis Spasial ArcGIS dengan VBA Script



oleh : Bayu Yanuargi


Seperti yang kita ketahui dalam ArcGIS disediakan sistem query yang cukup lengkap yang dapat digunakan dalam proses analisis spasial. Dalam kesempatan kali ini akan dibahas tentang proses query dan field calculate dengan menggunakan VBA Script yang paling sederhana dilengkapi dengan konsep-konsep dasarnya. Dibawah ini adalah contoh bagaimana kita melakukan analisis spasial untuk Arahan Fungsi Lahan dengan menggunakan VBA Script untuk proses Querynya, sehingga waktu yang dibutuhkan akan lebih cepat dan efektif. Silahkan download Shapefile yang ada pada bagian bawah sendiri sebagai contoh, saya upload di DropBox dan 4shared untuk lebih mudahnya.


Dalam proses analisis spasial kita biasanya akan menggunakan proses "Select By Attribute" untuk menentukan nilai suatu data dan membantu kita dalam melakukan calculation. Contohnya jika kita ingin melakukan kalkulasi pada kolom keterangan di bawah ini :

Table Kemiringan Lereng ArcGIS

Dari tabel di atas biasanya kita akan menggunakan select by attribute untuk mengisi kolom Keterangan satu persatu berdasarkan Kemiringan Lereng (%), dilihat pada tabel tersebut maka kita harus melakukan query sebanyak 5 kali dan melakukan kalkulasi sebanyak 5 kali juga.
  • Select : Lereng >= 0 and Lereng < 8, Calculate Keterangan : "Datar"
  • Select : Lereng >= 8 and Lereng < 15, Calculate Keterangan : "Landai"
  • Select : Lereng >= 15 and Lereng < 25, Calculate Keterangan : "Agak Curam"
  • Select : Lereng >= 25 and Lereng < 45, Calculate Keterangan : "Curam"
  • Select : Lereng >= 45 , Calculate Keterangan : "Sangat Curam"
Jika kriteria tersebut hanya sedikit dan hanya dilakukan sesekali, maka hal tersebut tidak menjadi masalah jika kita melakukan satu persatu. Untuk itu dalam bahasan kali ini kita akan membahasa VBA Script yang dapat digunakan untuk melakukan query dan kalkulasi dalam satu kali klik tanpa harus mengulang ulang.

Inti Penggunaan VBA script ini adalah pada logika If Then Else. Maksudnya adalah "IF" --> Jika Kelas lereng 0-8 -->"Then" --> Maka Keterangan adalah datar --> "Else" --> Selain itu Jika Kelas Lereng 8-15 --> "Then" --> Maka Keterangan adalah Landai --> dan seterusnya. Seperti pada contoh logika di bawah ini


Dim n
if [LERENG_]>=0 and [LERENG_]< 8 then
   n = "Datar"
elseif [LERENG_]>= 8 and [LERENG_] <15 then
   n = "Landai"
elseif [LERENG_]>= 15 and [LERENG_]<25 then
  n = "Agak Curam"
elseif [LERENG_]>= 25 and [LERENG_]<45 then
  n = " Curam"
elseif [LERENG_]>= 45 then
  n = " Sangat Curam"
end if

  • Dim n adalah kata kunci bahwa kita akan memberikan nilai pada "n", huruf n tersebut bisa diganti dengan huruf yang lain
  • Penggunaan IF adalah secara logika untuk mencari nilai lereng dengan kriteria tertentu seperti mencari nilai lebih besar dari 0 dan lebih kecil dari 8 ( 0 - 8 )
  • Penggunaan AND pada logika bertujuan untuk mencari nilai diantaranya (Range)
  • Penggunan ELSEIF adalah untuk mencari nilai lain selain nilai sebelumnya
  • Penggunan THEN adalah untuk memberikan nilai setelah kriteria dalam IF dan Elseif ditemukan, Jika nilai antara 0-8 ada MAKA keterangan akan diisi dengan "Datar"
  • Penggunaan "n" adalah untuk mewakili kolom "Keterangan"
  • Logika akan diakhiri dengan statement "END IF"
Untuk melakukan hal tersebut di atas, kita harus melakukan di Table --> Field Calculator pada kolom keterangan dan skor. Jika belum ada Kolom "Keterangan" dan "SKOR" silahkan add field dengan type text untuk keterangan dan type double untuk Skor.


ArcGIS Menggunakan VB Script

Dan lalu silahkan ikuti gambar di bawah ini, jangan lupa untuk mencentang "VB Script" pada parse dan centang pada "Show Codeblock"

ArcGIS Menggunakan VB Script

  • Sekarang lakukan query dan calculation untuk Kolom keterangan dan Skor
  • Masukkan VBA Script di atas pada Kolom "Pre-Logic Script Code:"
  • Masukkan huruf kunci ("n") pada kolom di bawahnya (Keterangan) sehingga kolom keterangan akan terisi oleh keterangan lerengnya, lihat hasilnya di bawah ini :
ArcGIS Menggunakan VB Script
Lakukan hal tersebut di atas untuk Peta Curah Hujan, dan jangan lupa tambahkan (add field) untuk kolom keterangan dan keterangan menggunakan kriteria di bawah ini :

ArcGIS Menggunakan VB Script

Setelah proses curah hujan selesai, silahkan lakukan hal yang sama untuk Peta Jenis tanahnya. Tapi ada yang perbedaan logika untuk peta Jenis tananya karena peta jenis tanah bukanlah Range dalam bentuk angka, tetapi range dalam text, sehingga fungsi "And" tidak bisa dipakai karena fungsi "And" dalam Text berfungsi untuk menentukan syarat yang Ketat. Contoh "Jenis Tanah = 'Latosol' AND Jenis Tanah = 'Regosol' " maka system akan memilih data yang memiliki dua jenis tanah tersebut secara bersama-sama, tidak bisa jika hanya memiliki salah satu jenis tanah.

Sehingga agar sistem bisa me Query kan data yang hanya memiliki salah satu Jenis Tanah saja dari Latosol atau Regosol, maka digunakan fungsi "Or" seperti Contoh "Jenis Tanah = 'Latosol' OR Jenis Tanah = 'Regosol' ". Baik, dengan kriteria di tabel berikut, kita akan mengolah logika VB Scriptnya.

ArcGIS Menggunakan VB Script

Dengan kriteria di atas maka logika berpikirnya adalah :

  • Untuk Kolom keterangan = "Jika Jenis Tanah = Aluvial atau Tanah Glei atau planosol atau hidromof atau kelabu atau laterik tanah, Maka Keterangan = Tidak Peka."
  • Untuk Kolom Skor_Tanah = " Jika Keterangan = Tidak Peka, Maka Skor_Tanah = 15".
  • VB Script di bawah hanya sekedar contoh, silahkan diutak - atik

Dim n
if [Jenis_Tana] = "ALUVIAL" or [Jenis_Tana] ="LEMPUNG" or [Jenis_Tana] = "PLANOSOL" then
   n = "Tidak Peka"
elseif [Jenis_Tana] = "LATOSOL" then
   n = "Agak Peka"
elseif [Jenis_Tana] ="MEDITERAN" then
  n = "Peka"
elseif [Jenis_Tana] ="ANDOSOL" or [Jenis_Tana] = "PODSOLIK" then
  n = " Kurang Peka"
elseif [Jenis_Tana] ="REGOSOL" then
  n = " Sangat Peka"
end if

  • Hasilnya akan seperti ini :

ArcGIS Menggunakan VB Script

Jika semua peta telah selesai dilakukan skoring, sekarang saatnya untuk melakukan analisis spasial terakhir untuk penentuan arahan fungsi lahannya, lakukan overlay dengan metode intersect, lalu buka table hasil overlay dan lakukan proses Query dan Kalkulasi menggunakan kriteria di bawah ini :


ArcGIS Menggunakan VB Script


Untuk bisa menerapkan tabel di atas, yang perlu kita lakukan adalah menambahkan satu kolom lagi dengan type Double dengan nama "Skor_Total" dan satu kolom lagi dengan nama "Fungsi_Kawasan" (Text). Untuk logika script nya sangat sederhana sekali dengan logika seperti di bawah ini :

  • Kolom Fungsi_Kawasan : "Jika Skor_Total >= 175 maka Fungsi_Kawasan = "Kawasan Lindung", Selain itu Jika Skor_Total < 175 dan >= 125 maka Fungsi_Kawasan = "Kawasan Penyangga".....dst "
  • Khusus untuk kawasan budidaya Tanaman ada tambahan kriteria berupa Lereng, sehingga logikanya akan ada penambahan kemiringan lereng : Kolong Fungsi_Kawasan : "Jika Skor_Total < 125 dan Lereng > 8% maka Fungsi_Kawasan = "Kawasan Budidaya Tanaman Tahunan" selain itu Jika Skor_Total < 125 dan Lereng <= 8% maka Fungsi_Kawasan = "Kawasan Budidaya Tanaman Semusim"


Dim n
if [Skor_Total] >= 175 then
   n = "Kawasan Lindung"
elseif [Skor_Total] >= 125 and [Skor_Total] < 175 then
   n = "Kawasan Penyangga"
elseif [Skor_Total] < 125 and [Lereng_] > 8 then
  n = "Kawasan Budidaya Tanaman Tahunan"
elseif [Skor_Total] < 125 and [Lereng_] <= 8 then
  n = "Kawasan Budidaya Tanaman Semusim"
end if


Akhirnya kita selesai juga dalam melakukan analisis spasial sederhana menggunakan VB Script, jika ada error muncul, silahkan check pada baris programnya, bisa jadi ada kesalahan penulisan, over spasi, kurang spasi, dsb. Lihat contoh berikut :

Contoh Error pertama yang mengindikasikan baris data, itu menunjukkan bahwa error tersebut disebabkan data yang ada dalam baris tersebut belum ditentukan nilainya. Jika melihat error di bawah ini, terlihat bahwa error disebabkan oleh data dengan Object_ID = 11, yaitu Jenis Tanah Mediteran. Kita harus check di script kita, apakah Jenis Tanah Mediteran sudah ditentukan nilainya.

ArcGIS Menggunakan VB Script


Berdasarkan error di atas, kita check lagi scipt kita dan kita dapat lihat bahwa penulisan Mediteran pada script kita adalah salah atau malahan belum tertulis, seperti contoh di bawah :

ArcGIS Menggunakan VB Script


Contoh error kedua adalah "There Was a Failure during processing......." adalah mengindikasikan bahwa penulisan script ada yang salah, bisa jadi salah statement atau kurang/lebih spasi, salah ketik, dan sebagainya. 

ArcGIS Menggunakan VB Script

Error di atas adalah karena kesalahan script, mari kita lihat script kita di bawah ini.

ArcGIS Menggunakan VB Script

Berdasarkan script di atas, kita bisa melihat bahwa adala kelebihan spasi dalam kata "else if" yang harusnya ditulis tanpa spasi "elseif"

Demikian cara sederhana penggunaan VB Script dalam analisis spasial, silahkan download shapefile yang akan digunakan untuk latihan. Dalam bahasan selanjutnya akan kami ulas tentang "MODEL BUILDER" dalam analisis Spasial.

Download Shapefile :

Dropbox



3 comments:

  1. Replies
    1. Halo, Hasil Null bisa dikarena memang hasilnya tidak ada (Null) atau kurang kriterianya, misalnya kita punya jenis tanah Lain-Lain, tapi script kita tidak menyebutkan Lain-Lain itu, maka skor untuk jenis tanah "Lain-Lain" akan menjadi "NULL"

      Delete