Skip to main content

PostgreSQL

'PostgreSQL' adalah sistem manajemen basis data relasional (RDBMS) bersifat open-source yang menggunakan dan memperluas bahasa SQL. PostgreSQL dikenal karena kestabilannya, keamanannya, dan kepatuhannya terhadap standar SQL.

Fitur Utama PostgreSQL

  • Mendukung ACID compliance (Atomicity, Consistency, Isolation, Durability)
  • Mendukung JSON, XML, dan array
  • Extensible – dapat membuat tipe data, fungsi, dan operator sendiri
  • Multi-version Concurrency Control (MVCC) untuk performa tinggi
  • Dukungan replication, backup, dan restore
  • Kompatibel di berbagai platform: Linux, Windows, macOS, serta container (Docker)

Setup PostgreSQL di VM (Linux)

Instalasi PostgreSQL

1. Setup PostgreSQL di VM (Linux)

Gunakan perintah berikut pada distribusi Linux berbasis Debian/Ubuntu:

sudo apt update
sudo apt install postgresql postgresql-contrib -y

Untuk distribusi berbasis Red Hat (CentOS/Rocky/Alma):

sudo dnf install postgresql-server postgresql-contrib -y
sudo postgresql-setup --initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql

Cek Status Service

sudo systemctl status postgresql

Masuk ke PostgreSQL Shell

sudo -i -u postgres
psql

Membuat User dan Database Baru

CREATE USER vendor_ampkis WITH PASSWORD 'Bjbs2025!';
CREATE DATABASE ampkis_dev OWNER vendor_ampkis;
GRANT ALL PRIVILEGES ON DATABASE ampkis_dev TO vendor_ampkis;

Mengizinkan Akses Remote (Opsional) Edit file postgresql.conf dan pg_hba.conf:

sudo nano /etc/postgresql/14/main/postgresql.conf

Ubah:

listen_addresses = '*'

Kemudian di pg_hba.conf:

host    all             all             0.0.0.0/0               md5

Restart service:

sudo systemctl restart postgresql

2. Setup PostgreSQL di Docker

Jalankan PostgreSQL dengan Docker CLI

docker run -d   --name postgres-db   -e POSTGRES_USER=vendor_ampkis   -e POSTGRES_PASSWORD=contohpass   -e POSTGRES_DB=ampkis_dev   -p 5432:5432   postgres:17

Menggunakan Docker Compose Buat file docker-compose.yml:

version: '3.8'
services:
postgres:
image: postgres:17
container_name: postgres-db
restart: always
environment:
POSTGRES_USER: vendor_ampkis
POSTGRES_PASSWORD: contohpass
POSTGRES_DB: ampkis_dev
ports:
- "5432:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data

Jalankan:

docker-compose up -d

Masuk ke PostgreSQL di Dalam Container

docker exec -it postgres-db psql -U vendor_ampkis -d ampkis_dev

Perintah Dasar PostgreSQL

PerintahKeterangan
\lMelihat daftar database
\c nama_databasePindah ke database tertentu
\dtMelihat daftar tabel
\duMelihat daftar user
\qKeluar dari psql
CREATE DATABASE nama_db;Membuat database baru
DROP DATABASE nama_db;Menghapus database
CREATE TABLE nama_tabel (...);Membuat tabel baru
SELECT * FROM nama_tabel;Menampilkan isi tabel
\i path/file.sqlMenjalankan file SQL
\copy tabel FROM 'file.csv' CSV HEADER;Import data dari CSV
pg_dump -U user -d db > backup.sqlBackup database
psql -U user -d db < backup.sqlRestore database

Tips & Praktik Baik

  • Gunakan versi PostgreSQL terbaru untuk keamanan dan performa.
  • Gunakan volume di Docker agar data tidak hilang saat container dihapus.
  • Selalu gunakan user selain postgres untuk aplikasi produksi.
  • Lakukan backup rutin menggunakan pg_dump atau pg_basebackup.
  • Gunakan pgAdmin atau DBeaver untuk antarmuka GUI.