PostgreSQL, sering disebut sebagai “Postgres” adalah perangkat lunak relational database management system (RDBMS) dengan lisensi open source yang telah menjadi salah satu pilihan utama bagi banyak organisasi untuk mengelola dan menyimpan data mereka.
PostgreSQL pertama kali dikembangkan pada tahun 1986 oleh tim yang dipimpin oleh Michael Stonebraker di University of California, Berkeley.
Sejak itu, proyek ini telah mengalami perkembangan yang signifikan dan telah menjadi salah satu open source RDBMS yang paling banyak digunakan.
Apa Itu PostgreSQL Database?
PostgreSQL Database adalah sistem manajemen basis data relasional (RDBMS) open-source yang dikenal karena keandalannya.
Database ini mendukung berbagai jenis data dan memiliki kemampuan untuk menangani query kompleks dengan efisien.
Sebagai database yang telah berkembang selama puluhan tahun, PostgreSQL menawarkan fitur-fitur canggih seperti transaksi ACID, dukungan JSON, dan extensibility yang tinggi.
Hal ini membuatnya cocok digunakan untuk berbagai kebutuhan, mulai dari aplikasi web hingga analisis data besar.
Install PostgreSQL
Menginstal PostgreSQL yang berasal dari default repository Ubuntu. Versi yang akan diinstal yaitu PostgreSQL v16.
sudo apt install postgresql postgresql-contrib -y
Jika ingin menginstal PostgreSQL versi lain atau yang terbaru, bisa mengunjungi repository dari PostgreSQL.
Mengecek apakah PostgreSQL sudah siap menerima koneksi dari client.
sudo pg_isready
Perintah di atas akan menampilkan pesan seperti berikut:
/var/run/postgresql:5432 - accepting connections
Mengelola Database
Saat instalasi, PostgreSQL membuat user di sistem dengan nama postgres yang merupakan akun administrator database.
Beralih ke user postgres dan login ke PostgreSQL dengan psql command.
sudo -i -u postgres psql
Contoh hasil perintah di atas menampilkan informasi versi PostgreSQL yaitu versi 16.13 di Ubuntu 24.04 dan juga menampilkan prompt postgres=#.
psql (16.13 (Ubuntu 16.13-0ubuntu0.24.04.1)) Type "help" for help.
Menampilkan semua database.
\l
Contoh hasilnya.

Membuat database
CREATE DATABASE NAMA_DATABASE;
Di PostgreSQL, terdapat istilah owner (pemilik). Pengguna yang membuat database secara default menjadi owner database.
Owner database dapat diubah dengan menggunakan perintah ALTER DATABASE.
Mengubah Pemilik Database
ALTER DATABASE NAMA_DATABASE OWNER TO NAMA_PEMILIK;
Menghapus Database
DROP DATABASE NAMA_DATABASE;
Mengelola User
Menampilkan Semua User
SELECT usename, usesuper, usecreatedb, valuntil FROM pg_user;
Membuat User Baru
Membuat user baru yang dapat bertindak sebagai superuser.
CREATE USER NAMA_USER WITH SUPERUSER PASSWORD 'KATA_SANDI';
Mengubah Password User
ALTER USER NAMA_USER WITH PASSWORD 'KATA_SANDI_BARU';
Memberikan Hak Akses ke User
GRANT ALL PRIVILEGES ON DATABASE NAMA_DATABASE TO NAMA_USER;
Melepas Semua Hak Akses User ke Database Tertentu
REVOKE ALL PRIVILEGES ON DATABASE NAMA_DATABASE FROM NAMA_USER;
Menghapus User
DROP USER NAMA_USER;
Configuration Authentication
Secara default PostgreSQL mengijinkan local user (misal postgres) dapat melakukan authentication tanpa harus memasukkan password. Konfigurasi authentication tersebut berada di dalam file pg_hba.conf.
sudo nano /etc/postgresql/16/main/pg_hba.conf
Output
local all postgres peer local all all peer
Jika menginginkan user harus memasukkan password, ubah metode authentication dari peer menjadi scram-sha-256.
local all postgres scram-sha-256 local all all scram-sha-256
Keluar dari text editor nano, lalu restart service PostgreSQL.
sudo systemctl restart postgresql
Menguji coba perubahan konfigurasi dengan login melalui psql.
psql -U NAMA_USER -d NAMA_DATABASE
Memindahkan Direktori Data
Sama seperti pada MariaDB, kita juga dapat memindahkan atau mengubah konfigurasi direktori data pada PostgreSQL.
Berikut ini langka-langkah yang perlu dilakukan dalam memindahkan direktori data PostgreSQL:
Login ke PostgreSQL
sudo -i -u postgres psql
Menampilkan direktori data saat ini
SHOW data_directory;
Contoh hasil yang ditampilkan
data_directory ----------------------------- /var/lib/postgresql/16/main
Direktori data saat ini berada di /var/lib/postgresql/16/main. Direktori ini yang akan dipindahkan ke lokasi yang baru, setelah mengetahui lokasinya. Keluar dari psql
\q
Selanjutnya menghentikan service PostgreSQL dan memeriksa statusnya untuk memastikan service sudah berhenti.
sudo systemctl stop postgresql sudo systemctl status postgresql
Status service PostgreSQL
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: inactive (dead) since Tue 2026-04-28 01:01:08 CST; 2min 53s ago
Duration: 21min 39.318s
Process: 309341 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 309341 (code=exited, status=0/SUCCESS)
CPU: 3ms
Membuat direktori baru, misalnya di /data-postgresql
sudo mkdir /data-postgresql
Lalu, sinkronisasi direktori PostgreSQL ke direktori yang baru dibuat.
sudo rsync -av /var/lib/postgresql /data-postgresql
Setelah sinkronisasi selesai, kita mengubah nama direktori sumber
sudo mv /var/lib/postgresql/16/main /var/lib/postgresql/16/main.old
Mengubah baris konfigurasi data_directory dengan mengisi nilainya dengan lokasi direktori yang baru
sudo nano /etc/postgresql/16/main/postgresql.conf
data_directory = '/data-postgresql/postgresql/16/main'
Menjalankan kembali service PostgreSQL dan memeriksa statusnya apakah active atau failed.
sudo systemctl start postgresql sudo systemctl status postgresql
Status service PostgreSQL
Status service PostgreSQL
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Tue 2026-04-28 01:16:40 CST; 9s ago
Process: 318605 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 318605 (code=exited, status=0/SUCCESS)
CPU: 2ms
Login kembali ke PostgreSQL.
sudo -i -u postgres psql
Menampilkan direktori data untuk memverifikasi apakah lokasinya sudah berubah.
SHOW data_directory;
Hasil yang ditampilkan harus sesuai dengan konfigurasi yang telah diubah.
data_directory ------------------------------------- /data-postgresql/postgresql/16/main
Remote Access PostgreSQL
Konfigurasi remote access yang akan dilakukan yaitu dengan menggunakan metode open port dan SSH tunneling, sama seperti pada konfigurasi remote access MariaDB.
Remote Access via SSH Tunnel
Remote access database PostgreSQL dengan menggunakan metode SSH tunnel.
Metode SSH tunnel ini seringkali diterapkan oleh software developer untuk kebutuhan pengembangan aplikasi, mengakses database PostgreSQL yang berada di server langsung dari komputernya.
SSH Tunnel untuk PostgreSQL di Windows
pgAdmin adalah perangkat lunak database administration yang dirancang khusus untuk database PostgreSQL. pgAdmin tersedia untuk sistem operasi Windows, Linux, dan macOS.
SSH Tunnel PostgreSQL dengan pgAdmin
- Downlad pgAdmin versi Windows di pgadmin.org, lalu install.
- Setelah menginstal, jalankan pgAdmin, lalu klik Add New Server untuk membuat koneksi baru ke database server.
- Pada tab General, kolom Name, masukkan nama koneksinya, misal Database PostgreSQL.
- Klik tab Connection, pada Host name/address, masukkan 127.0.0.1.

- Pada Username, masukkan username database, bisa menggunakan superuser postgres.
- Pada Password, masukkan password login username postgres.
- Klik tab SSH Tunnel, aktifkan Use SSH tunneling.
- Pada Tunnel host, masukkan IP server.
- Pada Tunnel port, masukkan port SSH.
- Pada Username, masukkan username login SSH.
- Pada Authentication, pilih Identity file untuk memilih private key OpenSSH.
- Klik Save untuk menguji koneksi sekaligus menyimpan konfigurasinya

Jika koneksi ke database server berhasil, ditampilkan daftar database.

