PostgreSQL Database
PostgreSQL Database

Basis Data PostgreSQL: Panduan Lengkap untuk Pemula dan Profesional

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.

Menampilkan Semua Database di PostgreSQL
Menampilkan Semua Database di PostgreSQL

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.
pgAdmin Pengaturan Connection
pgAdmin Pengaturan Connection
  • 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
pgAdmin Pengaturan SSH Tunnel
pgAdmin Pengaturan SSH Tunnel

Jika koneksi ke database server berhasil, ditampilkan daftar database.

pgAdmin Menampilkan Database PostgreSQL
pgAdmin Menampilkan Database PostgreSQL