Cara Kerja PostgreSQL: Server, Client, psql, dan Cara Memasangnya
Memahami arsitektur client–server PostgreSQL, cara memasang di Windows, macOS, Linux, dan Docker, serta perintah psql (\dt, \d, \l, \c) untuk menjelajah database.
Analogi: PostgreSQL itu seperti restoran. Server adalah dapur yang bekerja terus di belakang, client (psql, DBeaver, aplikasimu) adalah pelayan yang membawa pesananmu, dan SQL adalah bahasa yang dipakai untuk memesan. Kamu tidak pernah masuk ke dapur; kamu cukup menulis pesanan dengan benar.
Dua pemain: server dan client
PostgreSQL memakai model client–server. Bayangkan sebuah restoran:
| Di restoran | Di PostgreSQL | Tugasnya |
|---|---|---|
| Dapur & gudang bahan | PostgreSQL Server (proses postgres) | Menyimpan data dan mengerjakan perintah. Berjalan terus di latar belakang. |
| Pelayan | Client (psql, pgAdmin, DBeaver, aplikasi webmu) | Mengirim "pesanan" (perintah SQL) dan membawa hasilnya. |
| Nomor meja | Port 5432 | Pintu masuk standar ke server PostgreSQL. |
Aplikasi web (Laravel, Node.js, Django, dll.) sebenarnya hanya client yang mengirim SQL ke server lewat jaringan.
Cara memasang PostgreSQL
| Sistem | Cara termudah |
|---|---|
| Windows | Unduh installer dari postgresql.org/download (sudah termasuk pgAdmin dan psql). Ikuti wizard, catat kata sandi untuk user postgres. |
| macOS | brew install postgresql@16 lalu brew services start postgresql@16, atau pakai Postgres.app. |
| Ubuntu/Debian | sudo apt install postgresql (server langsung berjalan). |
| Docker (semua OS) | docker run --name pg -e POSTGRES_PASSWORD=rahasia -p 5432:5432 -d postgres:16 |
Masuk ke psql
psql adalah terminal bawaan PostgreSQL. Contoh masuk lalu membuat database:
psql -U postgres -- masuk sebagai user postgres
CREATE DATABASE bukukita; -- membuat database baru
\c bukukita -- pindah ke database bukukita
Perintah meta psql (diawali garis miring terbalik)
Selain SQL, psql punya perintah pintas yang diawali \. Perintah ini bukan SQL (tidak perlu titik koma) tetapi sangat berguna:
| Perintah | Fungsinya |
|---|---|
\l | Daftar semua database |
\c nama_db | Pindah (connect) ke database lain |
\dt | Daftar tabel di database aktif |
\d nama_tabel | Struktur tabel: kolom, tipe, constraint |
\q | Keluar dari psql |
\? | Bantuan semua perintah meta |
Tip: kalau lupa nama tabel atau kolom, jangan menebak. Ketik \dt lalu \d nama_tabel. Ini kebiasaan profesional yang menghemat banyak waktu.
Memilih alat: psql, pgAdmin, atau DBeaver?
- psql: ringan, cepat, ada di semua server. Wajib dikenal karena sering menjadi satu-satunya alat di server produksi.
- pgAdmin: antarmuka grafis resmi, nyaman untuk melihat tabel dan menjalankan query.
- DBeaver / DataGrip: alat grafis serbaguna yang juga mendukung database lain.
Di course ini editor di bawah sudah meniru psql, termasuk \dt, \d nama_tabel, \l, dan \c.
Kasus nyata: terhubung ke server produksi
Seorang developer baru diminta mengecek data pelanggan di server perusahaan. Ia tidak membuka berkas apa pun, melainkan terhubung lewat client memakai alamat server, port, nama database, dan akun.
psql -h db.bukukita.id -p 5432 -U analis -d bukukita
bukukita=> \dt -- lihat daftar tabel
bukukita=> \d pelanggan -- lihat struktur tabel pelangganKebiasaan pertama setiap profesional: \dt dan \d dulu, baru menulis query. Jangan menebak nama kolom.
Kesalahan yang sering terjadi
- Lupa bahwa port standar PostgreSQL adalah 5432 (MySQL 3306). Salah port membuat koneksi "connection refused".
- Mengira
\dtadalah perintah SQL. Itu perintah khusus psql, tidak diakhiri titik koma dan tidak bisa dipakai di kode aplikasi. - Memakai akun
postgres(superuser) untuk semua pekerjaan. Di produksi, buat akun terpisah dengan hak terbatas (dibahas di bab Keamanan).