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.

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.
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 fungsiupper.
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:
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".
['featureCount']
TrueNama 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:
| Untuk | Alamat | Isi |
|---|---|---|
| Semua kelas PyQGIS | qgis.org/pyqgis | Dokumentasi API, dikelompokkan per modul (core, gui, analysis, processing). Tersedia untuk versi master, 4.2, dan 3.44. |
| Cara-cara menggunakan PyQGIS | docs.qgis.org/latest/en/docs/pyqgis_developer_cookbook | Buku resep PyQGIS: membuka konsol, menjalankan skrip, memuat layer, dan lainnya. |
| Semua ArcPy | doc.esri.com/en/arcgis-pro/latest/arcpy/main/arcgis-pro-arcpy-reference.html | Referensi 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:
- Buka qgis.org/pyqgis. Pilih versi yang sesuai dengan QGIS Anda.
- Cari nama kelas, misalnya
QgsVectorLayer. - Di halaman kelas, cari nama kemampuan yang Anda temukan lewat
dir(), misalnyafeatureCount. - 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":
- Cari. Di
dir(QgsVectorLayer), cari katacrs. Anda menemukan namacrs. - Coba. Ketik
petak.crs()di Konsol, lalu lihat jenis hasilnya dengantype(petak.crs()). - Ubah. Cari kemampuan objek hasilnya dengan
dir(petak.crs()). Anda menemukan nama yang berhubungan denganauthiddandescription. Cobapetak.crs().authid(). - 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:
EPSG:32749
WGS 84 / UTM zone 49SBaris 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:
- Lihat baris
import: perkakas apa yang dipakai (Bab 12). - Cari kotak berhuruf besar di atas: alamat dan pengaturan yang perlu Anda ganti (Bab 8).
- Cari fungsi
def: resep apa yang dibuat (Bab 7). - Baca perulangan dan
if: alur utamanya (Bab 6). - Cari
print: apa yang dihasilkan. - 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:
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.
| Baris | Tulisan | Artinya |
|---|---|---|
| 1 | nama = "KPH Alpha" | Siapkan sebuah teks sebagai bahan percobaan. |
| 2 | kemampuan = [n for n in dir(nama) if n.startswith("s")] | Cari. Kumpulkan semua kemampuan teks yang namanya berawalan huruf s. |
| 3 | print(kemampuan[:4]) | Lihat empat nama pertama. |
| 4 | print(nama.split()) | Coba. Pecah teks menjadi daftar kata. |
| 5 | print(nama.lower()) | Ubah semua huruf menjadi kecil. |
| 6 | print(nama.replace("Alpha", "Beta")) | Ubah. Ganti satu kata dengan kata lain. |
Hasil.
['split', 'splitlines', 'startswith', 'strip']
['KPH', 'Alpha']
kph alpha
KPH BetaDari 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 denganhelp(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.
nama = "KPH Alpha"
print(nama.count("a"))1Cek paham #
- Apa fungsi
dir()? - Mengapa dokumentasi harus sesuai dengan versi QGIS Anda?
- Mengapa sebaiknya mencoba satu baris lebih dulu, bukan langsung menulis skrip panjang?
Jawaban.
- Menampilkan daftar isi dan kemampuan sebuah objek.
- Karena nama dan cara kerja perintah bisa berubah antarversi.
- 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(), danhelp()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 #
| Pertanyaan | Alat | Contoh |
|---|---|---|
| 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? | Dokumentasi | qgis.org/pyqgis |