BAB 6: Mencari Lahan Terbaik: Kesesuaian Lahan Multi-Kriteria
#Studi kasus: "Di mana kita menanam jenis pohon yang baru?"
KPH Contoh akan mencoba satu jenis pohon baru. Kepala Seksi meminta daftar petak yang paling cocok. Lahan yang baik itu landai, tanahnya subur, hujannya cukup, dan dekat jalan. Tidak ada lahan yang unggul di semuanya. Anda harus menimbang empat hal sekaligus, dan menolak lahan yang memang tidak boleh ditanami.
#Konsep: tumpang tindih berbobot dalam tiga kalimat
Kesesuaian lahan multi-kriteria memberi tiap kriteria nilai (skor), mengalikannya dengan bobot kepentingan, lalu menjumlahkannya. Bayangkan menilai calon rumah: harga, jarak, dan keamanan masing-masing diberi angka, lalu dijumlah dengan bobot menurut selera Anda. Kendala adalah syarat mutlak, seperti "tidak boleh di tepi sungai", yang mencoret lokasi tanpa ditimbang.
Istilah baru:
- Skor: nilai 1 sampai 4 untuk tiap kelas kriteria (4 terbaik).
- Bobot: seberapa penting satu kriteria; jumlah semua bobot 1.
- AHP: cara menurunkan bobot dari perbandingan berpasangan antarkriteria.
- Kendala: syarat yang meniadakan lokasi, apa pun skornya.
- Analisis kepekaan: mencoba bobot lain untuk melihat apakah kesimpulan berubah.

Aturan skor yang dipakai di bab ini:
| Kriteria | Skor 4 | Skor 3 | Skor 2 | Skor 1 | Kendala |
|---|---|---|---|---|---|
| Lereng (%) | 0 sampai 8 | 8 sampai 15 | 15 sampai 25 | 25 sampai 40 | 40 atau lebih |
| Curah hujan (mm/th) | 2.800 atau lebih | 2.600 sampai 2.800 | 2.400 sampai 2.600 | kurang dari 2.400 | tidak ada |
| Tanah | Aluvial | Latosol | Podsolik | Regosol | tidak ada |
| Jarak ke jalan (m) | 0 sampai 100 | 100 sampai 250 | 250 sampai 500 | lebih dari 500 | tidak ada |
| Jarak ke sungai (m) | 30 atau kurang |
#Bagian A: QGIS
#Bagian A: Kesesuaian lahan di QGIS
Semua langkah ada di skrip m2_06a_kesesuaian.py. Prasyaratnya Sungai.gpkg (Bab 4) dan CH_tahunan.tif (Bab 5), keduanya sudah ada di hasil.
#A1. Menurunkan bobot dengan AHP
Bandingkan kriteria dua-dua memakai skala 1 sampai 9 (1 = sama penting, 3 = sedikit lebih penting, dan seterusnya). Pilihan penulis untuk latihan:
| Lereng | Tanah | Hujan | Jalan | |
|---|---|---|---|---|
| Lereng | 1 | 2 | 3 | 4 |
| Tanah | 1/2 | 1 | 2 | 3 |
| Hujan | 1/3 | 1/2 | 1 | 2 |
| Jalan | 1/4 | 1/3 | 1/2 | 1 |
Bobot adalah vektor eigen utama matriks ini, dinormalkan agar berjumlah 1. Hasil hitung skrip:
| Kriteria | Bobot |
|---|---|
| Lereng | 0,467 |
| Tanah | 0,277 |
| Curah hujan | 0,160 |
| Jarak jalan | 0,095 |
Pemeriksaan konsistensi: λ maksimum = 4,031, CI = 0,0103, CR = 0,0115. Batas kebiasaan CR adalah 0,1, jadi perbandingan ini cukup konsisten. (RI untuk empat kriteria = 0,90, dari tabel Saaty.)
#A2. Menyiapkan lima raster kriteria
Semua raster memakai grid yang sama: 200 x 200 sel berukuran 10 m.
- Lereng. Buka Raster ► Analysis ► Slope, pilih
DEM_10m, dan centang Express slope as percent instead of degrees. Hasil:Lereng_pct.tif. - Skor lereng. Buka Reclassify by table. Isi tabel: min 0, maks 8, nilai 4; 8, 15, 3; 15, 25, 2; 25, 40, 1. Pilih Range boundaries: min <= value < max. Pilih Use NoData when no range matches value dan isi Output NoData value dengan 0. Sel dengan lereng 40 atau lebih tidak cocok ke baris mana pun, jadi menjadi 0.
- Skor hujan. Reclassify
CH_tahunandengan tabel dalam bab ini (tipe keluaran Byte). - Skor tanah. Hitung kolom
skordarijenis_tanahdengan Field calculator:
CASE WHEN "jenis_tanah"='Aluvial' THEN 4 WHEN "jenis_tanah"='Latosol' THEN 3
WHEN "jenis_tanah"='Podsolik' THEN 2 ELSE 1 ENDLalu ubah ke raster dengan Rasterize (vector to raster): Field to use for a burn-in value: skor, lebar dan tinggi 200 sel, Output extent sama dengan DEM.
- Jarak ke jalan dan sungai. Rasterkan garis (burn-in 1), lalu jalankan Proximity (raster distance) dengan Distance units: Georeferenced coordinates. Reclassify jarak jalan menjadi skor. Jarak sungai dipakai untuk kendala.
Jaga agar ruas jalan yang ditutup tidak ikut (filter status<>'ditutup'). Jarak raster dihitung dari pusat sel ke sel garis terdekat, jadi ketelitiannya sekitar satu sel (10 m).
#A3. Kendala dan penjumlahan berbobot
Buka Raster calculator dari Processing ► GDAL, atau dari menu Raster ► Raster Calculator. Rumus kendala (A = skor lereng, B = jarak sungai):
logical_and(A>0, B>30)Rumus jumlah berbobot (A lereng, B tanah, C hujan, D jalan):
A*0.467 + B*0.277 + C*0.160 + D*0.095Rumus kelas akhir (A = skor, B = kendala; kelas 1 = S1, 2 = S2, 3 = S3, 4 = N, 0 = Terlarang):
(B==1)*(1*(A>=3.2) + 2*logical_and(A>=2.6, A<3.2) + 3*logical_and(A>=2.0, A<2.6) + 4*(A<2.0))#A4. Hasil
Hasil uji (1 sel = 0,01 ha):
| Kelas | Luas (ha) | Persen |
|---|---|---|
| Terlarang (kendala) | 53,21 | 13,3 |
| S1 sangat sesuai | 67,33 | 16,8 |
| S2 cukup sesuai | 123,45 | 30,9 |
| S3 sesuai marginal | 116,27 | 29,1 |
| N tidak sesuai | 39,74 | 9,9 |
| Jumlah | 400,00 | 100 |
Jumlahnya tepat 400 ha, tanpa sel NoData. Hasil kelas dari alat GDAL sama persis (100% sel) dengan hitungan NumPy murni.

#A5. Menimbang: analisis kepekaan
Bagaimana bila Anda tidak percaya bobot AHP dan memakai bobot sama rata (0,25 untuk tiap kriteria)? Hasil uji:
| Skenario | Luas S1 |
|---|---|
| Bobot AHP | 67,33 ha |
| Bobot sama rata | 81,76 ha |
| Sel yang pindah kelas | 31,6% |
Hampir sepertiga wilayah pindah kelas. Pesannya: bobot adalah keputusan, bukan fakta. Tulis dasar penentuannya di laporan, dan tunjukkan kepekaannya kepada pengambil keputusan.
#A6. Angka per petak
Gunakan Zonal histogram dengan raster kelas dan layer Petak. Lima petak dengan S1 terluas:
| Petak | Jenis | S1 (ha) | S2 | S3 | N | Terlarang |
|---|---|---|---|---|---|---|
| P-05 | Jati | 11,95 | 5,36 | 0,36 | 0,01 | 1,47 |
| P-03 | Mahoni | 9,02 | 5,27 | 1,63 | 0,18 | 3,91 |
| P-08 | Jati | 4,46 | 5,46 | 2,96 | 0,00 | 2,95 |
| P-17 | Jati | 4,26 | 4,78 | 3,55 | 1,47 | 5,84 |
| P-06 | Akasia | 4,24 | 4,95 | 1,83 | 0,01 | 2,53 |
Jumlah S1 di 25 petak 67,33 ha, sama dengan luas S1 seluruh wilayah. Kepala Seksi mendapat jawabannya: P-05 dan P-03 paling layak dilihat lebih dulu.
Bila kelas diubah menjadi poligon (Polygonize lalu Dissolve menurut kelas) dan dimasukkan ke PostGIS sebagai kph.kesesuaian, luas tiap kelas dari poligon sama dengan hasil raster (misalnya S1 = 67,33 ha). Bab 7 memakainya.
#Bagian B: ArcGIS Pro
#Bagian B: ArcGIS Pro
Dokumentasi Esri menjelaskan alat Weighted Overlay (Spatial Analyst): raster masukan harus bertipe bilangan bulat, bobot pengaruh dalam persen dan berjumlah 100, tiap kelas diberi nilai pada skala evaluasi 1 sampai 9, dan alat ini memerlukan ekstensi Spatial Analyst.
- Slope pada DEM, keluaran dalam persen. [CEK]
- Reclassify lereng, hujan, dan jarak menjadi skor 1 sampai 4. Lereng 40 atau lebih diberi NODATA. [CEK]
- Euclidean Distance dari jalan dan sungai. Beri kendala sungai lewat Reclassify atau Con. [CEK]
- Untuk tanah, ubah poligon menjadi raster dengan Polygon to Raster memakai kolom skor. [CEK]
- Jalankan Weighted Overlay. Isi bobot dalam persen: 47, 28, 16, 9 (pembulatan dari bobot AHP, jumlah 100). Hasil Pro bisa sedikit berbeda dari QGIS karena pembulatan bobot dan skala evaluasi. [CEK]
- Pro juga menyediakan Weighted Sum (bobot desimal tanpa skala evaluasi). [CEK: parameter]
- Perhitungan AHP (vektor eigen dan CR) tidak ada sebagai alat bawaan yang penulis ketahui. Hitung di luar, lalu masukkan bobotnya. [CEK]
Pro juga memiliki antarmuka Suitability Modeler. Penulis belum membaca dokumentasinya. [CEK]
#Bagian C: ArcMap 10.8
#Bagian C: ArcMap 10.8
- Spatial Analyst Tools ► Surface ► Slope (keluaran Percent Rise). [CEK]
- Spatial Analyst Tools ► Reclass ► Reclassify. [CEK]
- Spatial Analyst Tools ► Distance ► Euclidean Distance. [CEK]
- Spatial Analyst Tools ► Overlay ► Weighted Overlay atau Weighted Sum. [CEK]
- Ekstensi Spatial Analyst harus aktif. [CEK]
#Cek paham
- Apa beda skor dan bobot?
- Mengapa lereng 40% atau lebih dijadikan kendala dan bukan skor 0?
- Pada hasil kelas muncul sel NoData yang seharusnya "Terlarang". Apa penyebab paling mungkin?
Jawaban:
- Skor menilai kelas di dalam satu kriteria (lereng landai skor 4). Bobot menilai kepentingan antarkriteria (lereng lebih penting daripada jarak jalan).
- Skor 0 tetap ikut dijumlahkan dengan kriteria lain, sehingga lokasi bisa lolos. Kendala mencoret lokasi apa pun skor lainnya.
- Salah satu raster masukan punya NoData di sel itu, dan kalkulator meneruskan NoData ke hasil. Perlakukan NoData sebagai nilai (
--hideNoData) atau isi dulu.
#Kesalahan umum
- Mengira bobot AHP sebagai kebenaran. Itu pendapat yang dirumuskan. Selalu uji kepekaan.
- Skor yang tidak sejajar. Pastikan 4 selalu berarti terbaik di semua kriteria.
- Grid raster berbeda-beda. Semua kriteria harus sama ukuran sel dan sama batasnya. Pakai Output extent dan jumlah sel yang sama.
- Memperlakukan kendala sebagai skor. Kendala harus mencoret, bukan hanya menurunkan nilai.
#Ringkasan dan latihan
Ringkasan: beri skor tiap kriteria, tentukan bobot (AHP), jumlahkan, coret lokasi yang terkena kendala, bagi menjadi kelas, hitung luas, dan uji kepekaan.
Latihan: ubah ambang kendala sungai dari 30 m menjadi 50 m. Hitung ulang luas S1 dan catat perubahannya. Jangan lupa memeriksa bahwa jumlah semua kelas tetap 400 ha.
#Tabel perbandingan: kesesuaian lahan
| Langkah | QGIS | ArcGIS Pro | ArcMap 10.8 |
|---|---|---|---|
| Lereng | Slope (persen) | Slope [CEK] | Slope [CEK] |
| Skor | Reclassify by table | Reclassify [CEK] | Reclassify [CEK] |
| Jarak | Proximity (raster distance) | Euclidean Distance [CEK] | Euclidean Distance [CEK] |
| Jumlah berbobot | Raster calculator | Weighted Overlay, Weighted Sum | Weighted Overlay [CEK] |
| Bobot AHP | dihitung lewat skrip | di luar alat [CEK] | di luar alat [CEK] |
| Luas per petak | Zonal histogram | Tabulate Area [CEK] | Tabulate Area [CEK] |