Apa itu PyQGIS? Otomatisasi QGIS dengan atau tanpa kode
Diterbitkan
PyQGIS adalah cara mengontrol QGIS dengan kode Python. Apa pun yang bisa Anda klik di QGIS bisa juga ditulis sebagai beberapa baris Python: memuat layer, menjalankan tool, mengubah simbologi, mengekspor peta. Dengan begitu, pekerjaan yang sama bisa diulang untuk seratus file tanpa seratus kali klik. PyQGIS sudah ada di setiap instalasi QGIS, jadi tidak ada yang perlu ditambahkan.

PyQGIS Developer Cookbook menyebut tool Python-nya “hampir identik” dengan tool yang dipakai untuk membangun QGIS sendiri, sehingga hampir semua hal bisa dilakukan. Sebagian besar plugin QGIS, termasuk plugin kami, ditulis dengan PyQGIS.
Anda tidak harus menulis kodenya sendiri lagi. Chatbot bisa membuat draf kodenya, dan agent bisa melewati kode sama sekali. Kami membuat satu agent, AI Agent, dan di bagian bawah saya menguji keduanya dengan enam tugas yang sama.
Tempat menjalankan PyQGIS
Ada empat tempat, dan masing-masing cocok untuk pekerjaan yang berbeda.
| Tempat | Cara membukanya | Gunakan untuk |
|---|---|---|
| Python console | Plugins > Python Console (Ctrl+Alt+P) | Perbaikan cepat pada proyek yang sedang terbuka |
| Processing script | Processing Toolbox > Scripts > Create New Script from Template | Tool yang bisa dipakai ulang dengan input sendiri, seperti tool lain di toolbox |
| Plugin | Sebuah folder di profil QGIS Anda | Tool dengan tombol sendiri, untuk dibagikan ke orang lain |
| Skrip mandiri | Python biasa, atau perintah qgis_process | Pekerjaan tanpa jendela QGIS, misalnya di server |
Console memberi Anda iface, objek yang mengontrol jendela QGIS. Di luar QGIS objek ini tidak ada, itulah sebabnya NameError: name 'iface' is not defined menjadi salah satu pertanyaan PyQGIS yang paling sering muncul di GIS Stack Exchange.
Processing script dimulai dari templat yang diisi QGIS untuk Anda. Anda mengubah input dan beberapa baris yang mengerjakan tugasnya, lalu skrip tampil di toolbox seperti tool bawaan.

Skrip PyQGIS pertama Anda
Buka Python console, klik Show Editor, pilih layer bangunan di panel Layers, lalu tempel kode ini. Kode ini menghitung bangunan menurut jenisnya:
from collections import Counter
layer = iface.activeLayer() # the layer selected in the Layers panel
counts = Counter(f["building"] for f in layer.getFeatures())
for kind, n in counts.most_common(5):
print(kind, n)
print("Total:", layer.featureCount(), "features in", layer.crs().authid())
Tiga objek mengerjakan sebagian besar tugasnya: QgsProject.instance() adalah proyek Anda, QgsVectorLayer dan QgsRasterLayer adalah layer di dalamnya, dan iface adalah jendelanya. Referensi API mendaftar semua class.
Menjalankan tool QGIS dari Python
Setiap tool di Processing Toolbox bisa dijalankan dengan satu baris Python, processing.run(), dengan pengaturan yang sama seperti di jendelanya:
import processing
result = processing.run("native:buffer", {
"INPUT": "buildings.gpkg",
"DISTANCE": 50,
"OUTPUT": "buffered.gpkg",
})
Anda tidak perlu menebak nama pengaturannya. Isi jendela tool sekali, lalu buka Advanced > Copy as Python Command di bagian bawah. QGIS memberi Anda baris persis yang tinggal ditempel ke skrip.

Tool yang sama bisa dijalankan tanpa membuka QGIS, dari terminal, dengan qgis_process run native:buffer. Itulah cara untuk pekerjaan terjadwal di server.
Apa yang berubah di QGIS 4 untuk PyQGIS
QGIS 4.0, dirilis pada 6 Maret 2026, pindah ke Qt versi yang lebih baru, toolkit di balik jendela dan tombolnya. Fungsi QGIS sendiri hampir tidak berubah. Yang rusak adalah kode yang menyentuh Qt secara langsung, dan tiga perubahan menyebabkan sebagian besar masalahnya:
| QGIS 3 | QGIS 4 |
|---|---|
Nama pendek seperti Qt.AlignLeft | Nama lengkap, seperti Qt.AlignmentFlag.AlignLeft |
QRegExp | QRegularExpression |
exec_() pada dialog | exec() |
QGIS menyediakan skrip pyqt5_to_pyqt6.py yang menulis ulang sebagian besar perubahan ini, dan pyqgis4-checker menemukan sisanya. Skrip yang hanya memakai tool QGIS dan processing.run() biasanya berjalan tanpa perubahan.
Bisakah ChatGPT atau Claude menulis PyQGIS untuk Anda?
Sebagian besar bisa, asalkan Anda menjelaskan proyek Anda. Saya menguji Claude Sonnet, chatbot seperti ChatGPT, dan skripnya berjalan tanpa error di keenam tugas. Ketika saya menjelaskan layer, field, dan path file, keenam hasilnya benar. Ketika saya hanya memberi nama layer, satu dari enam salah secara diam-diam: skrip berjalan, tidak menampilkan peringatan apa pun, dan mengisi 396 dari 936 piksel peta elevasi dengan tinggi palsu 0 m.
| Berjalan tanpa error | Hasil benar | |
|---|---|---|
| Chatbot, proyek dijelaskan di prompt | 6 dari 6 | 6 dari 6 |
| Chatbot, hanya nama layer | 6 dari 6 | 5 dari 6 |
| AI agent di dalam QGIS, hanya kalimat tugas | 6 dari 6 | 6 dari 6 |
Pelajarannya sederhana. Chatbot tidak bisa melihat proyek Anda, jadi mutu kodenya bergantung pada seberapa baik Anda menjelaskannya, dan hasil yang salah bisa tampak persis seperti hasil yang benar. Ada juga masalah di QGIS 4: kedua skrip print layout dari chatbot memakai nama Qt pendek dari tabel di atas, dan akan berhenti di tengah jalan di QGIS 4.
Cara kami mengukurnya. Pada 26 September 2026, di QGIS 3.44.7, dengan data peta pusat kota Denpasar, Bali: enam tugas sehari-hari, dari menghitung bangunan sampai mengekspor print layout, satu percobaan untuk tiap tugas. Hasil dianggap benar hanya jika skrip pemeriksa terpisah, yang ditulis sebelum pengujian, lulus. Enam tugas adalah sampel yang kecil.
Atau lewati kodenya: agent yang menjalankan langkah-langkahnya
Kami membuat AI Agent, jadi bagian ini membahas plugin kami sendiri. Plugin ini adalah panel chat di dalam QGIS: Anda mengetik tugasnya, lalu AI Agent membaca proyek Anda, menjalankan tool, dan memeriksa hasilnya. Tidak ada kode untuk ditempel dan tidak ada proyek yang perlu dijelaskan.
Saya memberinya enam kalimat tugas yang sama, tanpa deskripsi proyek. Hasilnya benar di keenamnya, dengan waktu 6,4 sampai 42,8 detik per tugas, dan 148,8 detik untuk keenamnya. AI Agent berhenti dua kali untuk bertanya sebelum menulis file, dan saya mengklik Allow. Pada tugas elevasi yang menjebak chatbot, AI Agent membaca layer lebih dulu dan mengatur piksel kosong dengan benar.

Jalur gratis tetap pilihan yang bagus: console, Copy as Python Command, dan chatbot sudah membawa Anda jauh, selama Anda memeriksa hasilnya. Kalau Anda lebih suka menjelaskan tugasnya lalu langsung mendapat layer, agent mengerjakan langkah-langkahnya untuk Anda.
Coba AI Agent gratis di QGIS, tanpa kartu kredit
Di mana orang sering tersangkut
Kami menghitung pertanyaan di bawah tutorial QGIS di YouTube: dari 1.692 tutorial yang punya komentar, ada 391 komentar di 245 tutorial yang meminta bantuan soal Python atau otomatisasi. Tiga masalah yang sama terus muncul:
- Layer not found.
mapLayersByName("roads")tidak menemukan apa pun kalau namanya berbeda satu huruf atau satu spasi. - Jarak dalam derajat. Buffer 50 m pada layer dengan
EPSG:4326menjadi buffer 50 derajat, karena sistem itu menghitung dalam derajat. Lakukan reproyeksi lebih dulu, seperti dijelaskan di apa itu CRS. ifacedi luar QGIS. Skrip yang dijalankan di luar jendela QGIS tidak punyaiface. GunakanQgsProjectdanprocessing.run().
Yang perlu diingat
PyQGIS adalah antarmuka Python untuk QGIS. PyQGIS berjalan di Python console, di Processing script, di plugin, dan di luar QGIS dengan qgis_process.
processing.run() menjalankan tool QGIS apa pun dari kode, dan Copy as Python Command memberi Anda baris persisnya dari jendela tool.
QGIS 4 mengganti nama beberapa objek Qt, seperti Qt.AlignLeft. Kode yang membangun jendelanya sendiri mungkin perlu perbaikan kecil.
Dalam uji enam tugas kami, kode dari chatbot selalu berjalan, tetapi satu kali hasilnya salah ketika proyek tidak dijelaskan. Agent di dalam QGIS, seperti AI Agent, benar di keenamnya hanya dari kalimat tugas.
Pertanyaan umum
PyQGIS digunakan untuk apa?
Untuk mengotomatiskan QGIS dengan Python: memuat dan mengedit layer, menjalankan tool pada banyak file, mengatur simbologi peta, membuat print layout, serta menulis plugin atau skrip yang bisa dipakai orang lain. PyQGIS juga berjalan di luar jendela QGIS untuk pekerjaan di server.
Apakah PyQGIS sama dengan Python?
PyQGIS adalah kumpulan tool QGIS yang Anda pakai dari Python. Anda menulis Python biasa, dan PyQGIS menambahkan hal seperti QgsVectorLayer dan processing.run(). PyQGIS sudah ada di QGIS dan memakai Python yang diinstal QGIS.
Bagaimana cara membuka Python console di QGIS?
Buka Plugins > Python Console, atau tekan Ctrl+Alt+P. Klik Show Editor untuk menulis skrip yang lebih panjang, simpan sebagai file .py, lalu jalankan dengan panah hijau.
Apakah skrip PyQGIS saya masih berjalan di QGIS 4?
Skrip yang hanya memakai tool QGIS dan processing.run() biasanya masih berjalan. Skrip yang membangun jendelanya sendiri sering perlu perubahan kecil, misalnya Qt.AlignmentFlag.AlignLeft sebagai pengganti Qt.AlignLeft. Skrip resmi pyqt5_to_pyqt6.py memperbaiki sebagian besar perubahan ini.
Bisakah saya mengotomatiskan QGIS tanpa Python?
Bisa. Graphical Modeler merangkai tool secara visual, dan batch mode menjalankan satu tool pada banyak file. Plugin AI agent melangkah lebih jauh: Anda mengetik tugas dengan kata-kata biasa dan plugin menjalankan tool di proyek Anda. AI Agent dari kami punya paket gratis.
Untuk melangkah lebih jauh, apa itu AI agent di QGIS menjelaskan cara kerja agent dan cara memilihnya, dan AI Agent adalah milik kami yang bisa dicoba gratis. Apa itu CRS membahas reproyeksi yang hampir selalu diperlukan skrip lebih dulu, dan apa itu QGIS MCP menunjukkan jalur untuk pengguna Claude Code dan Cursor.


