Perjalanan panjang course ini ditutup di tempat yang dijanjikannya sejak awal: dokumentasi resmi. Chapter Apa itu PostgreSQL? menutup dengan pesan bahwa kebiasaan membaca dokumentasi resmi adalah kunci mengikuti perkembangan PostgreSQL — dan sekarang, dengan tiga puluh section materi di punggung kita, pesan itu bisa diterjemahkan menjadi keterampilan navigasi yang nyata. Manual resmi PostgreSQL memang besar: PDF resminya melebihi tiga ribu halaman. Ukuran itu bukan hambatan melainkan kekayaan, asalkan kita punya petanya. Chapter ini menyusun peta tersebut: struktur delapan bagian manual, pola URL halaman yang paling sering dibutuhkan, cara memastikan versi yang kita baca sama dengan versi yang kita jalankan, serta sumber komunitas yang mengelilingi manual itu.

Peta Besar: Delapan Bagian Manual #

Manual PostgreSQL disusun menjadi delapan part yang penomoran dan urutannya konsisten dari rilis ke rilis. Membaca peta ini sekali akan menghemat puluhan pencarian di kemudian hari, karena langkah pertama menemukan jawaban adalah menentukan wilayahnya: apakah masalah kita soal bahasa SQL, administrasi server, atau sekadar sintaks satu perintah.

BagianJudulIsi utamaKapan dibuka
ITutorialTurutan singkat: koneksi, SQL dasar, fitur lanjutanMengenalkan PostgreSQL ke rekan tim
IIThe SQL LanguageSintaks SQL, tipe data, fungsi, index, MVCC, tips performaMenjawab “bagaimana cara menulis X di SQL?”
IIIServer AdministrationKonfigurasi, autentikasi, maintenance, backup, replikasiMengelola dan merawat server
IVClient Interfaceslibpq, large object, information schemaMembangun aplikasi klien
VServer ProgrammingExtension, trigger, bahasa prosedural, logical decodingMenaruh logika di sisi server
VIReferenceSintaks penuh semua perintah SQL dan aplikasiMemeriksa parameter dan opsi persis
VIIInternalsSystem catalog, protokol klien-server, storage fisikMemahami mesin di balik layar
VIIIAppendixesKode error, kata kunci SQL, modul tambahan, glosariumRujukan tabel yang cepat dibuka

Sebagian besar perjalanan course ini bergerak di wilayah Bagian II dan III: Section Dasar SQL sampai Window Functions adalah pembahasan Bagian II, sementara Section Administrasi PostgreSQL, Backup dan Recovery, dan Replication mengikuti Bagian III. Section Stored Programs dan Trigger dan Event bersinggungan dengan Bagian V, dan Section Integrasi Aplikasi menyentuh Bagian IV. Bagian VI adalah yang paling sering Anda buka dalam pekerjaan sehari-hari: satu halaman per perintah, memuat sintaks lengkap beserta semua opsi dan catatan kompatibilitasnya.

Versi Dokumentasi Mengikuti Versi Server #

Setiap halaman manual hidup di URL yang memuat nomor versi besar — docs/17/ berisi PostgreSQL 17, docs/18/ berisi PostgreSQL 18, dan seterusnya. Nomor itu bukan hiasan: fitur baru masuk pada setiap rilis besar (perintah MERGE, misalnya, baru tersedia mulai PostgreSQL 15), dan perilaku serta nilai bawaan konfigurasi bisa berubah antar versi. Kalau server produksi kita masih menjalankan PostgreSQL 14 sementara kita membaca halaman /docs/17/sql-merge.html, contoh di halaman itu akan gagal dijalankan di server kita. Kebiasaan yang benar: pastikan dulu versi server, baru buka halaman dengan nomor yang sama. Berikut query yang membacanya langsung dari dalam database:

sql cek-versi.sql
-- Versi server menentukan dokumentasi mana yang harus dibaca:
-- bila hasilnya 17, buka https://www.postgresql.org/docs/17/, bukan /docs/current/.
SELECT current_setting('server_version')     AS versi_server,
       current_setting('server_version_num') AS nomor_versi;

SHOW server_version;

Output yang Dihasilkan:

text
          versi_server          | nomor_versi 
--------------------------------+-------------
 17.11 (Debian 17.11-0+deb13u1) | 170011
(1 row)

         server_version         
--------------------------------
 17.11 (Debian 17.11-0+deb13u1)
(1 row)

Mari kita telaah isi file di atas:

  1. Baris 3-4 (SELECT current_setting(...)): function current_setting() membaca nilai parameter server — server_version memuat versi lengkap termasuk rilis kecil dan paket distribusinya, server_version_num versi dalam bentuk angka murni (170011 berarti 17.11) yang enak dibandingkan secara programatik.
  2. Baris 6 (SHOW server_version;): perintah SHOW adalah jalur kedua menuju informasi yang sama — hasilnya identik dengan current_setting().

Angka besar di kolom versi_server — 17 pada contoh ini — adalah angka yang harus muncul di URL dokumentasi yang kita buka.

Bantuan Sintaks Tanpa Meninggalkan psql #

Sebelum membuka browser, ada jalan pintas yang sering terlupakan: psql membawa ringkasan sintaks seluruh perintah SQL di dalam dirinya. Meta-command \h diikuti nama perintah akan mencetak deskripsi, pola sintaks, dan — bagian paling berguna — URL halaman dokumentasi resmi untuk perintah itu:

-- psql menyimpan ringkasan sintaks setiap perintah SQL: ketik \h lalu nama perintah.
-- Baris terakhir selalu mencantumkan URL halaman dokumentasi resminya.
\h TRUNCATE

Output yang Dihasilkan:

text
Command:     TRUNCATE
Description: empty a table or set of tables
Syntax:
TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
    [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]

URL: https://www.postgresql.org/docs/17/sql-truncate.html

Keluarannya terdiri dari tiga bagian: baris Command: dan Description: menjelaskan peran perintah, blok Syntax: memuat pola lengkapnya, dan baris URL: menunjuk halaman Reference yang membahas perintah tersebut secara utuh — dalam contoh ini halaman sql-truncate.html, yang materi SQL-nya dibahas dalam Bahasa Indonesia di chapter TRUNCATE TABLE . Dua varian lain dari bantuan bawaan: \h tanpa argumen mencetak daftar semua perintah SQL yang dikenal, dan \? mencantumkan seluruh meta-command psql — keduanya dibahas di chapter Menggunakan psql .

Pola URL yang Paling Sering Dipakai #

Halaman-halaman manual mengikuti pola penamaan yang stabil antar rilis. Setelah polanya hafal, mencari halaman yang tepat menjadi urusan hitungan detik — bahkan tanpa mesin pencari:

KebutuhanPola halamanContoh
Sintaks satu perintah SQLsql-<perintah>.htmlsql-select.html, sql-createindex.html
Aplikasi klien atau serverapp-<nama>.htmlapp-psql.html, app-pgdump.html
Pengaturan serverruntime-config.html dan subhalamannyaruntime-config-logging.html
Arti sebuah kode errorerrcodes-appendix.html23505 berarti unique_violation
Modul tambahan bawaancontrib.htmldokumentasi pg_stat_statements
Definisi istilahglossary.htmlentri WAL, TOAST, base backup

Tiga kebiasaan pencarian yang menjaga hasil tetap tajam. Pertama, teks error persis adalah kata kunci terbaik — salin utuh pesan seperti could not serialize access due to concurrent update, tambahkan kata postgresql dan angka versi, dan biasanya halaman resmi atau arsip milis muncul di urutan atas. Kedua, mulai dari halaman resmi sebelum blog: manual ditulis dan direview oleh pengembang fiturnya. Ketiga, cantumkan versi dalam kata kunci pencarian supaya jawaban untuk versi lama tidak ikut membingungkan. Cara membedah struktur pesan error itu sendiri sudah kita latih di chapter Debugging SQL .

Membaca EXPLAIN dan Anatomi Error di Dokumentasi #

Dua materi manual layak dibaca penuh minimal satu kali karena akan dipakai berulang seumur karier. Yang pertama adalah halaman Using EXPLAIN di Bagian I Tutorial: halaman ini menjelaskan cara membaca pohon rencana eksekusi, arti tiap node, dan — hal yang paling sering disalahpahami — satuan biaya. Angka cost= pada output EXPLAIN bukan milidetik; nilainya arbitrer, relatif terhadap biaya pembacaan sekuensial satu halaman. Perbedaan dua rencana dibandingkan lewat rasionya, bukan lewat angka absolutnya. Materi ini dibedah dalam Bahasa Indonesia di chapter Membaca Query Execution Plan dan EXPLAIN .

Yang kedua adalah halaman PostgreSQL Error Codes di Appendixes: tabel SQLSTATE lima karakter yang menjadi kode stabil bagi setiap jenis kegagalan — 23505 untuk pelanggaran unique, 23503 foreign key, 40001 kegagalan serialisasi. Kode-kode ini tidak berubah antar rilis dan menjadi pegangan saat menangani error secara programatik, sebagaimana dipraktikkan di chapter Exception Handling . Ditambah baris ERROR:, DETAIL:, HINT:, dan STATEMENT: yang dicetak server, sebuah pesan kegagalan biasanya sudah memuat penyebab dan obatnya sekaligus.

Format Manual dan Sumber Komunitas #

Manual tersedia dalam dua wujud: HTML daring per versi di situs PostgreSQL, dan PDF resmi dalam ukuran A4 dan US Letter untuk dibaca luring — keduanya gratis dan dirilis bersamaan dengan setiap versi besar. Di sekeliling manual ini hidup tiga sumber komunitas resmi. Wiki PostgreSQL menampung resep dan how-to yang ditulis komunitas: konfigurasi, daftar perkakas, catatan migrasi. Planet PostgreSQL mengagregasi blog para kontributor dan pengguna — tempat terbaik untuk mengikuti kabar rilis, studi kasus, dan tips internal sebelum sempat masuk ke dokumentasi. Milis resmi menampung tanya jawab: pgsql-general untuk pemakaian sehari-hari, pgsql-admin untuk administrasi, pgsql-bugs untuk laporan bug, dan pgsql-hackers untuk diskusi pengembangan inti.

Milis adalah tempat jawaban tercepat untuk masalah yang tidak terjawab di manual — asalkan etiketnya dijaga. Lima norma yang berlaku di sana:

  • Cari arsip milis terlebih dulu; sebagian besar pertanyaan dasar sudah pernah dijawab.
  • Tulis judul yang spesifik, misalnya “JOIN lambat pada tabel 50 juta baris”, bukan sekadar “butuh bantuan”.
  • Sertakan versi PostgreSQL, sistem operasi, dan contoh reproduksi minimal.
  • Kutip balasan di bagian bawah dan pangkas bagian yang tidak relevan (bottom-posting).
  • Kirim dalam teks polos; milis menolak lampiran dan format HTML.

Dokumentasi resmi adalah kompas yang akan menemani setiap pertanyaan berikutnya. Namun sebelum pertanyaan itu muncul, ada satu peralatan lagi yang layak disiapkan di meja: ringkasan perintah yang paling sering dipakai — materi chapter berikutnya, Referensi SQL.

Referensi #

Berkas Sumber

Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.

bantuan-sintaks.sql

Unduh berkas
sql
-- psql menyimpan ringkasan sintaks setiap perintah SQL: ketik \h lalu nama perintah.
-- Baris terakhir selalu mencantumkan URL halaman dokumentasi resminya.
\h TRUNCATE

cek-versi.sql

Unduh berkas
sql
-- Versi server menentukan dokumentasi mana yang harus dibaca:
-- bila hasilnya 17, buka https://www.postgresql.org/docs/17/, bukan /docs/current/.
SELECT current_setting('server_version')     AS versi_server,
       current_setting('server_version_num') AS nomor_versi;

SHOW server_version;