Sebelum masuk lebih dalam ke SQL dan PostgreSQL, ada beberapa skill dasar dan tools yang perlu kalian siapkan terlebih dahulu, mulai dari kemampuan mengoperasikan terminal, instalasi PostgreSQL server, hingga mengenal psql dan GUI client untuk mempermudah eksplorasi database.

Selamat datang di series Belajar SQL PostgreSQL! Series ini akan mengajak kalian menguasai bahasa SQL dan arsitektur database relasional dari nol hingga level siap produksi: mulai dari pre-requisites, sejarah konsep RDBMS, desain database dan normalisasi, DDL dan DML, joins, window functions, transaction dan ACID, indexing dan optimasi query, hingga security, partitioning, replication, dan studi kasus production-grade. Tapi seperti kata pepatah, "rumah yang kokoh berdiri di atas fondasi yang kuat". Sebelum menulis query SELECT pertama, ada beberapa skill dasar dan tools yang wajib kalian miliki dan siapkan terlebih dahulu.
Episode 0 ini akan menjadi peta jalan untuk memastikan kalian semua siap. Kita akan membahas dua skill fundamental, menyiapkan seluruh perangkat lunak yang dibutuhkan, lalu mengenal psql dan GUI client. Setelah episode ini selesai, kalian sudah benar-benar siap melangkah ke episode 1.
Kita mulai dari skill. Tanpa skill ini, setup tools secanggih apapun tidak akan berguna. Berikut dua pilar skill yang harus kalian kuasai setidaknya di level dasar.
PostgreSQL lahir dan tumbuh besar di ekosistem Linux/Unix. Mayoritas penggunaannya di dunia nyata — terutama di server production dan container — berjalan di atas Linux. Karena itu, kemampuan mengoperasikan terminal lewat CLI (Command Line Interface) adalah syarat mutlak.
Apa saja yang harus kalian kuasai?
1. Navigasi & manajemen file. Kalian harus nyaman berpindah direktori, melihat isi, membuat, menyalin, dan menghapus file. Ini kemampuan paling dasar yang akan kalian pakai setiap hari, termasuk saat membaca log PostgreSQL.
2. Menjalankan perintah dengan sudo. Instalasi paket di Linux umumnya membutuhkan sudo. Kalian harus paham konsep user privilege agar tidak kaget saat diminta password.
3. Environment variable. PostgreSQL memakai banyak environment variable seperti PGHOST, PGPORT, dan PGDATABASE. Kemampuan mengeset dan membaca variabel ini akan sangat membantu.
pwd # cetak direktori kerja saat ini
ls -la # lihat isi direktori (termasuk hidden file)
mkdir -p lab-sql # buat direktori project
history # lihat riwayat perintah yang sudah dijalankanTip
Jika kalian masih pemula di Linux, jangan khawatir — kalian tidak perlu jadi sysadmin pro untuk belajar SQL. Yang penting kalian nyaman menavigasi direktori dan menjalankan perintah dengan sudo bila diperlukan. Sisanya akan ikut terasah seiring perjalanan series ini.
Skill kedua bersifat konseptual. Sebelum belajar SQL, ada baiknya kalian paham secara intuitif:
Yang perlu kalian pahami sekarang: SQL (Structured Query Language) adalah bahasa untuk "berbicara" dengan database. Kalian tidak perlu paham cara kerja disk atau mekanisme penyimpanan internal dulu — cukup paham bahwa query yang kalian tulis akan dikirim ke server, diproses, dan hasilnya dikembalikan dalam bentuk baris dan kolom.
Setelah skill terpenuhi, sekarang saatnya menyiapkan perangkat. Berikut daftar lengkapnya:
| No | Tool | Type | Level | Keterangan |
|---|---|---|---|---|
| 1. | Laptop / PC / Mini PC | Hardware | Wajib | Mesin utama; spesifikasi standar sudah cukup untuk belajar |
| 2. | PostgreSQL Server | Software | Wajib | Database engine utama yang kita pelajari sepanjang series |
| 3. | psql | Software | Wajib | CLI resmi PostgreSQL untuk mengeksekusi query |
| 4. | Docker (opsional) | Software | Direkomendasikan | Cara paling cepat menjalankan PostgreSQL production-like |
| 5. | GUI Client | Software | Direkomendasikan | DBeaver, TablePlus, atau pgAdmin 4 untuk visualisasi |
| 6. | Text Editor | Software | Wajib | VS Code untuk menulis dan menyimpan file SQL |
Ada dua jalur utama instalasi: via Docker (paling direkomendasikan untuk belajar karena cepat dan tidak mengotori sistem) dan native installation. Kita mulai dari Docker.
docker run --name postgres \
-e POSTGRES_PASSWORD=secret \
-p 5432:5432 \
-d postgres:16-alpinePerintah di atas akan: memberi nama container postgres, mengeset password root secret, memetakan port 5432 dari container ke host, dan menjalankannya di background menggunakan image postgres:16-alpine.
docker ps
docker logs postgresUntuk pengguna Windows, opsi paling direkomendasikan bagi kalian yang belajar adalah menggunakan WSL2. Untuk pengguna Linux, kalian bisa install native lewat paket manager:
sudo apt update
sudo apt install postgresql postgresql-client
sudo systemctl status postgresqlNote
Di Ubuntu/Debian, cluster default PostgreSQL berjalan sebagai user sistem postgres. Kalian biasanya perlu masuk sebagai user tersebut dulu dengan sudo -u postgres psql atau membuat role sendiri. Kita akan bahas tuntas tentang role dan autentikasi di episode 16.
Setelah terinstall, verifikasi bahwa server dan client berfungsi. Pastikan psql bisa dijalankan dan server menerima koneksi.
psql --version
pg_isready -h localhost -p 5432Output yang diharapkan: psql (PostgreSQL) 16.x untuk versi client, dan localhost:5432 - accepting connections untuk status server. Jika keduanya sukses, environment kalian sudah siap.
psql adalah alat interaktif utama untuk berbicara dengan PostgreSQL. Ia memiliki dua jenis perintah: SQL statement biasa dan meta-command yang selalu diawali backslash (\). Berikut meta-command yang wajib kalian hafal sejak sekarang:
| Meta-command | Fungsi |
|---|---|
\l | Menampilkan daftar semua database |
\c <db> | Koneksi / pindah ke database tertentu |
\dt | Menampilkan daftar tabel di schema saat ini |
\d <table> | Menampilkan struktur detail sebuah tabel |
\q | Keluar dari psql |
Koneksi pertama kali ke server Docker:
psql -U postgres -h localhost -p 5432Setelah diminta password, masukkan secret (password yang tadi kita set). Jika berhasil, prompt berubah menjadi postgres=#. Sekarang coba meta-command pertama:
\lSELECT version();Tip
Prompt psql adalah indikator penting. postgres=# berarti kalian terhubung sebagai superuser, sedangkan postgres=> berarti user biasa tanpa privilege superuser. Jangan heran jika sebagian perintah admin hanya berjalan di prompt #.
CLI psql memang powerful, tapi terkadang kita butuh visualisasi untuk memahami struktur database. Ada tiga GUI client yang paling populer:
Semua client tersebut terhubung ke server yang sama dengan parameter yang sama: host localhost, port 5432, user postgres, dan password yang kita set saat instalasi. GUI client tidak menggantikan psql — keduanya saling melengkapi. CLI untuk script dan otomasi, GUI untuk eksplorasi visual.
host: localhost
port: 5432
database: postgres
username: postgres
password: secretBerdasarkan pengalaman, ini tiga kesalahan yang paling sering terjadi saat pertama kali bermain PostgreSQL:
| # | Kesalahan | Gejala | Solusi |
|---|---|---|---|
| 1 | Port 5432 sudah terpakai | Address already in use saat docker run | Ganti port host, misal -p 5433:5432 |
| 2 | Password salah / lupa | password authentication failed | Gunakan POSTGRES_PASSWORD yang sama saat docker run |
| 3 | Salah port | connection refused | Pastikan -p 5432:5432 sudah dijalankan dan pg_isready sukses |
Ada satu lagi yang sering menipu: mencoba connect tanpa container berjalan. docker logs postgres adalah teman terbaik kalian untuk melihat apakah server benar-benar hidup.
Di episode 0 ini kita sudah menyiapkan pijakan yang kokoh: menguasai dua skill fundamental (dasar terminal dan konsep penyimpanan data), menyiapkan perangkat dan tools yang dibutuhkan, menginstall PostgreSQL server via Docker maupun native, melakukan verifikasi instalasi, mengenal meta-command psql, serta mengenal GUI client untuk eksplorasi visual.
Inti yang harus dibawa pulang:
psql adalah senjata utama kalian — hafal meta-command \l, \c, \dt, \d, dan \q.Pastikan semua skill dan tools di atas sudah kalian siapkan, karena episode berikutnya akan membahas konsep secara lebih mendalam. Di episode 1 selanjutnya, kita akan membahas sejarah lahirnya model data relasional dari Edgar F. Codd, evolusi PostgreSQL dari proyek Ingres, dan alasan mengapa PostgreSQL menjadi pilihan database modern — mulai dari kepatuhan standar ANSI SQL hingga fitur-fitur advanced seperti JSONB dan MVCC. Pastikan tetap semangat, karena perjalanan belajar SQL baru saja dimulai!