Lewati ke isi
Profil penulisSeri Buku GIS Kehutanan dan Pertanian/ PY

BAB 13: Belajar Mandiri: Mencari, Mencoba, Mengubah

Studi kasus: "Tidak ada contohnya di buku!" #

Seminggu kemudian, Kepala Seksi meminta sesuatu yang tidak ada di buku mana pun: "Tampilkan sistem koordinat sebuah layer." Analis Muda tidak menemukan skrip siap pakai. Di titik ini, pembaca yang hanya menyalin skrip akan berhenti. Pembaca yang paham pola belajar akan lanjut: mencari nama perintahnya, mencobanya satu baris, lalu menyusunnya. Bab ini memberi Anda perkakas untuk itu.

Konsep: siklus belajar dalam tiga kalimat #

Belajar menulis skrip bukan menghafal semua perintah, melainkan berputar dalam empat langkah: cari, coba, ubah, catat. Bayangkan Anda belajar jalan di kota baru: bertanya arah, melangkah satu blok, menyesuaikan, lalu mencatat jalan pintas. Setelah beberapa putaran, Anda tidak lagi butuh peta.

Ilustrasi 13.1: Siklus belajar mandiri
Skema empat langkah: cari nama fungsi dan contoh, coba satu baris di konsol, ubah satu hal dan amati akibatnya, catat yang berhasil di skrip Anda

Istilah baru di bagian ini:

  • Dokumentasi: halaman resmi yang menjelaskan tiap perintah.
  • dir(): perintah yang menampilkan daftar isi dan kemampuan sebuah objek.
  • help(): perintah yang menampilkan penjelasan sebuah fungsi.
  • type(): perintah yang menyebut jenis sebuah nilai.

Langkah 1: Tanya objeknya sendiri #

Python bisa menjelaskan dirinya. Tiga perintah ini adalah teman terbaik Anda.

PYTHONUnduh berkas
print(type(3.5).__name__, type("teks").__name__, type([1, 2]).__name__)
print([n for n in dir(str) if not n.startswith("_")][:6])
help(str.upper)

Penjelasannya:

  • type(x) menyebut jenis nilai. .__name__ mengambil namanya saja.
  • dir(str) menampilkan semua kemampuan sebuah teks. Daftar aslinya panjang dan penuh nama berawalan garis bawah. Perulangan di atas menyaring nama yang tidak berawalan _, lalu mengambil enam pertama.
  • help(str.upper) menampilkan penjelasan fungsi upper.
HASIL
float str list
['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith']
Help on method_descriptor:

upper(self, /) unbound builtins.str method
    Return a copy of the string converted to uppercase.

Penjelasan help bisa terlihat sedikit berbeda di komputer Anda, tergantung versi Python. Intinya sama.

Langkah 2: Tanya objek QGIS #

Cara yang sama berlaku untuk objek QGIS. Bayangkan Anda mencari perintah untuk menghitung jumlah fitur sebuah layer. Daftar kemampuan QgsVectorLayer panjang, jadi saring dengan kata kunci:

PYQGISUnduh berkas
from qgis.core import QgsVectorLayer

print([n for n in dir(QgsVectorLayer) if n.startswith("featureC")])
print(len([n for n in dir(QgsVectorLayer) if "feature" in n.lower()]) > 5)

Baris pertama mencari nama yang berawalan featureC. Baris kedua memeriksa bahwa ada lebih dari lima nama yang memuat kata "feature".

HASIL
['featureCount']
True

Nama featureCount ketemu. Anda sudah bertemu perintah itu di Bab 15 (petak.featureCount()), jadi Anda tahu cara kerjanya. Untuk perintah yang belum Anda kenal, lanjutkan ke dokumentasi resmi.

Langkah 3: Baca dokumentasi resmi #

Dokumentasi adalah sumber yang paling bisa dipercaya. Ada tiga yang perlu Anda simpan alamatnya:

UntukAlamatIsi
Semua kelas PyQGISqgis.org/pyqgisDokumentasi API, dikelompokkan per modul (core, gui, analysis, processing). Tersedia untuk versi master, 4.2, dan 3.44.
Cara-cara menggunakan PyQGISdocs.qgis.org/latest/en/docs/pyqgis_developer_cookbookBuku resep PyQGIS: membuka konsol, menjalankan skrip, memuat layer, dan lainnya.
Semua ArcPydoc.esri.com/en/arcgis-pro/latest/arcpy/main/arcgis-pro-arcpy-reference.htmlReferensi ArcPy: fungsi, kelas, dan modul seperti arcpy.mp, arcpy.da, arcpy.sa.

[terbukti: tiga halaman itu dibuka penulis pada 7 Oktober 2026. Alamat halaman bisa berubah.]

Cara mencari di dokumentasi API PyQGIS:

  1. Buka qgis.org/pyqgis. Pilih versi yang sesuai dengan QGIS Anda.
  2. Cari nama kelas, misalnya QgsVectorLayer.
  3. Di halaman kelas, cari nama kemampuan yang Anda temukan lewat dir(), misalnya featureCount.
  4. Baca satu kalimat penjelasannya, dan lihat jenis hasil yang dikembalikan.

Langkah 4: Coba satu baris, lalu ubah #

Jangan langsung menyusun skrip panjang. Cobalah satu baris di Konsol, lihat hasilnya, lalu ubah satu bagian.

Contoh urutan untuk soal "tampilkan sistem koordinat sebuah layer":

  1. Cari. Di dir(QgsVectorLayer), cari kata crs. Anda menemukan nama crs.
  2. Coba. Ketik petak.crs() di Konsol, lalu lihat jenis hasilnya dengan type(petak.crs()).
  3. Ubah. Cari kemampuan objek hasilnya dengan dir(petak.crs()). Anda menemukan nama yang berhubungan dengan authid dan description. Coba petak.crs().authid().
  4. Catat. Simpan baris yang berhasil ke skrip Anda, lengkap dengan komentar.

Anda menemukan jawabannya tanpa contoh siap pakai. Pada layer Petak dari paket-b2, hasilnya di komputer penulis:

HASIL
EPSG:32749
WGS 84 / UTM zone 49S

Baris pertama dari authid(), baris kedua dari description(). Jenis hasil petak.crs() adalah QgsCoordinateReferenceSystem. [terbukti: dijalankan di QGIS 4.0.2]

Langkah 5: Membaca kode orang lain dengan tenang #

Saat membuka skrip asing, jangan baca dari kiri atas ke kanan bawah dengan panik. Pakai urutan ini:

  1. Lihat baris import: perkakas apa yang dipakai (Bab 12).
  2. Cari kotak berhuruf besar di atas: alamat dan pengaturan yang perlu Anda ganti (Bab 8).
  3. Cari fungsi def: resep apa yang dibuat (Bab 7).
  4. Baca perulangan dan if: alur utamanya (Bab 6).
  5. Cari print: apa yang dihasilkan.
  6. Jalankan, lalu ubah satu angka dan lihat akibatnya.

Itulah cara pembaca Bagian B akan membaca skrip puluhan baris tanpa tersesat.

Skrip yang dibedah: satu baris, lalu jadi pola #

Bab ini tidak punya skrip tetap, karena skripnya adalah kebiasaan Anda. Tetapi berikut satu skrip kecil yang mempraktikkan keempat langkah di atas pada data tiruan.

Tujuan. Mengenali kemampuan sebuah objek lewat dir(), mencoba salah satunya, lalu mengubah isinya.

Bahan. Tidak ada. Skrip ini hanya memakai Python.

Skrip:

PYTHONUnduh berkas
nama = "KPH Alpha"
kemampuan = [n for n in dir(nama) if n.startswith("s")]
print(kemampuan[:4])
print(nama.split())
print(nama.lower())
print(nama.replace("Alpha", "Beta"))

Penjelasan baris demi baris. Nomor baris dihitung dari skrip di atas.

BarisTulisanArtinya
1nama = "KPH Alpha"Siapkan sebuah teks sebagai bahan percobaan.
2kemampuan = [n for n in dir(nama) if n.startswith("s")]Cari. Kumpulkan semua kemampuan teks yang namanya berawalan huruf s.
3print(kemampuan[:4])Lihat empat nama pertama.
4print(nama.split())Coba. Pecah teks menjadi daftar kata.
5print(nama.lower())Ubah semua huruf menjadi kecil.
6print(nama.replace("Alpha", "Beta"))Ubah. Ganti satu kata dengan kata lain.

Hasil.

HASIL
['split', 'splitlines', 'startswith', 'strip']
['KPH', 'Alpha']
kph alpha
KPH Beta

Dari daftar kemampuan yang berawalan s, Anda mencoba split, lalu mencoba dua kemampuan lain yang Anda ketahui. Itulah gerak cari, coba, ubah.

Bagian yang boleh diubah.

  • Huruf awal di startswith("s") (baris 2): ganti dengan huruf lain untuk melihat daftar lain.
  • Angka di [:4] (baris 3): ganti untuk melihat lebih banyak nama.
  • Isi nama (baris 1): ganti dengan teks lain.

Jebakan.

  • Tidak membaca help. Nama kemampuan saja tidak cukup. Baca penjelasannya dengan help(nama.split).
  • Mengira semua nama berguna. dir() menampilkan banyak nama yang jarang Anda butuhkan. Saring dengan kata kunci.
  • Mengabaikan versi. Hasil dir() pada objek QGIS bisa berbeda antarversi.

Latihan variasi. Cari satu kemampuan teks yang menghitung berapa kali sebuah huruf muncul. Petunjuk: lihat daftar dir(str) dan cari nama yang diawali c.

Contoh jawaban: kemampuan itu bernama count.

PYTHON
nama = "KPH Alpha"
print(nama.count("a"))
HASIL
1

Cek paham #

  1. Apa fungsi dir()?
  2. Mengapa dokumentasi harus sesuai dengan versi QGIS Anda?
  3. Mengapa sebaiknya mencoba satu baris lebih dulu, bukan langsung menulis skrip panjang?

Jawaban.

  1. Menampilkan daftar isi dan kemampuan sebuah objek.
  2. Karena nama dan cara kerja perintah bisa berubah antarversi.
  3. Karena galat lebih mudah dilacak pada satu baris. Skrip panjang membuat penyebab galat sulit ditemukan.

Kesalahan umum #

  • Mencari contoh siap pakai, lalu menyerah bila tidak ada. Perbaikan: pakai siklus cari, coba, ubah, catat.
  • Menyalin dari internet tanpa membaca. Perbaikan: jalankan baris demi baris di Konsol sebelum menempelkannya ke skrip.
  • Tidak mencatat yang berhasil. Perbaikan: simpan setiap baris yang berhasil, lengkap dengan komentar mengapa ia dipakai.

Ringkasan dan latihan #

  • Belajar mandiri adalah siklus cari, coba, ubah, catat.
  • type(), dir(), dan help() membuat Python menjelaskan dirinya sendiri.
  • Dokumentasi resmi PyQGIS dan ArcPy adalah sumber paling dipercaya. Samakan versinya.

Latihan. Pilih satu kemampuan objek str yang belum Anda kenal, misalnya title atau center. Cari tahu fungsinya dengan help(), coba di Konsol, lalu tulis satu kalimat tentang apa yang ia lakukan.

Tabel perbandingan: tempat mencari jawaban #

PertanyaanAlatContoh
Apa jenis nilai ini?type(x)type(3.5)
Apa kemampuan objek ini?dir(x)dir(petak)
Apa fungsi perintah ini?help(x)help(str.upper)
Bagaimana cara resmi memakainya?Dokumentasiqgis.org/pyqgis