Google Sheets Bisa Tersambung ke PostgreSQL? Ini Caranya!

Google Sheets Bisa Tersambung ke PostgreSQL? Ini Caranya!

Waktu membaca menit

Kategori VPS

Diposting pada 12 Okt 2026

Google Sheets bisa terhubung ke PostgreSQL, baik untuk menampilkan laporan maupun mengirim data ke database. Ada beberapa cara yang bisa kamu pilih, mulai dari impor CSV, Google Apps Script, hingga integrasi otomatis. Artikel ini membahas langkah-langkahnya, kelebihan tiap metode, serta tips keamanan dan troubleshooting.

Apa Artinya Menghubungkan Google Sheets ke PostgreSQL?

Menghubungkan Google Sheets ke PostgreSQL berarti membuat kedua platform bisa bertukar data, baik melalui impor manual maupun koneksi yang berjalan otomatis. Dengan integrasi yang tepat, kamu bisa mengolah data PostgreSQL di spreadsheet tanpa harus mengekspor CSV berulang kali.

Dua Arah Koneksi yang Perlu Kamu Pahami

Secara umum, ada dua skenario integrasi:

  • PostgreSQL ke Google Sheets: mengambil data dari database untuk laporan, analisis, atau dashboard yang mudah dibaca tim nonteknis.
  • Google Sheets ke PostgreSQL: mengirim data spreadsheet ke database, misalnya untuk menyimpan input pengguna, menggabungkan data, atau memulai migrasi.

Kamu juga perlu membedakan migrasi dan sinkronisasi. Migrasi Google Sheets ke PostgreSQL berarti memindahkan data beserta proses pengelolaannya ke database baru. Sementara itu, sinkronisasi data Google Sheets ke Postgres menjaga data tetap diperbarui di kedua platform atau pada arah tertentu sesuai konfigurasi.

Pilihan ini penting karena kebutuhan laporan harian tentu berbeda dengan kebutuhan aplikasi yang menerima ribuan transaksi. Setelah menentukan arah dan frekuensi pertukaran data, kamu bisa memilih metode yang paling sesuai.

Baca Juga: 10 Trik Optimasi Query PostgreSQL Biar Ngebut Maksimal!

Yang Perlu Disiapkan Sebelum Mulai

Pastikan beberapa hal berikut sudah tersedia:

  • Host atau alamat server PostgreSQL.
  • Port database, biasanya 5432.
  • Nama database, username, dan password.
  • Akun Google dengan akses ke spreadsheet tujuan.
  • Akses jaringan yang sesuai, termasuk firewall, IP allowlist, dan konfigurasi pg_hba.conf jika diperlukan.

Untuk kebutuhan laporan, sebaiknya buat user database khusus dengan hak akses read-only. Dengan begitu, integrasi tidak memiliki izin untuk mengubah atau menghapus data produksi.

Jika database hanya berjalan di komputer lokal, layanan Google tidak otomatis bisa menjangkaunya. Kamu perlu menyiapkan jalur koneksi yang aman sebelum menjalankan integrasi.

Baca Juga: Scaling Server Cloud: Horizontal atau Vertical, Pilih Mana?

5 Metode Menghubungkan Google Sheets ke PostgreSQL

Metode 1: Ekspor dan Impor CSV

CSV cocok jika kamu hanya perlu memindahkan data sekali atau sesekali. Metode ini tidak membutuhkan integrasi tambahan.

#1. Dari PostgreSQL ke Google Sheets:

Jalankan perintah berikut melalui psql untuk mengekspor data pesanan selama 30 hari terakhir:

\copy (
  SELECT id, nama, total
  FROM public.pesanan
  WHERE tanggal >= CURRENT_DATE - 30
) TO 'pesanan.csv' CSV HEADER

Selanjutnya, buka Google Sheets, pilih File → Import → Upload, lalu unggah file CSV. Tentukan apakah data akan menggantikan isi sheet atau ditambahkan.

#2. Dari Google Sheets ke PostgreSQL:

  1. Pilih File → Download → Comma-separated values (.csv).
  2. Siapkan tabel tujuan dengan kolom yang sesuai.
  3. Impor CSV menggunakan \copy.

Contoh tabel tujuan:

CREATE TABLE pelanggan (
  id integer PRIMARY KEY,
  nama text,
  kota text,
  tanggal_daftar date
);

Setelah file tersedia di komputer yang menjalankan psql, jalankan:

\copy pelanggan FROM 'pelanggan.csv' CSV HEADER

Perlu diingat, COPY membaca file dari sisi server PostgreSQL, sedangkan \copy membaca file dari sisi klien psql. Untuk database remote, \copy biasanya lebih praktis.

Kekurangannya, data tidak diperbarui otomatis. Metode ini juga kurang ideal untuk spreadsheet yang sangat besar.

Metode 2: Google Apps Script + JDBC

Kalau kamu ingin proses gratis yang bisa dijadwalkan, Google Apps Script layak dipertimbangkan. Layanan JDBC-nya memungkinkan script mengakses PostgreSQL secara langsung, tanpa middleware tambahan.

Langkah 1: Siapkan koneksi database.

Gunakan format JDBC berikut:

jdbc:postgresql://HOST:5432/NAMA_DB

Format postgres:// yang digunakan beberapa layanan database bukan pengganti format JDBC tersebut.

Pastikan database bisa dijangkau dari jaringan Google Apps Script. Periksa firewall dan rentang IP yang diizinkan berdasarkan dokumentasi resmi Google.

Langkah 2: Buka editor Apps Script.

Dari Google Sheets, pilih Extensions → Apps Script. Simpan URL koneksi dan kredensial melalui Project Settings → Script Properties, bukan langsung di dalam kode.

Langkah 3: Tambahkan script untuk mengambil data.

Contoh sederhana berikut mengambil maksimal 500 pesanan dan menuliskannya ke sheet bernama Pesanan.

function importDariPostgres() {
  const url = PropertiesService
    .getScriptProperties()
    .getProperty('DB_URL');

  const conn = Jdbc.getConnection(url);
  try {
    const stmt = conn.createStatement();
    try {
      const rs = stmt.executeQuery(
        'SELECT id, nama, total ' +
        'FROM public.pesanan ORDER BY id LIMIT 500'
      );

      try {
        const meta = rs.getMetaData();
        const cols = meta.getColumnCount();
        const data = [[
          ...Array.from(
            { length: cols },
            (_, i) => meta.getColumnName(i + 1)
          )
        ]];

        while (rs.next()) {
          data.push(
            Array.from(
              { length: cols },
              (_, i) => rs.getString(i + 1)
            )
          );
        }

        const sheet = SpreadsheetApp
          .getActiveSpreadsheet()
          .getSheetByName('Pesanan');

        sheet.clearContents();
        sheet.getRange(1, 1, data.length, cols)
          .setValues(data);
      } finally {
        rs.close();
      }
    } finally {
      stmt.close();
    }
  } finally {
    conn.close();
  }
}

Pastikan sheet Pesanan sudah dibuat dan properti DB_URL sudah diisi dengan URL lengkap beserta parameter autentikasi yang diperlukan.

Langkah 4: Jalankan dan jadwalkan.

Klik Run, berikan izin yang diminta, lalu buka menu Triggers untuk menambahkan pemicu berbasis waktu, misalnya setiap jam.

Hasilnya, laporan dapat diperbarui secara berkala tanpa ekspor manual. Namun, Apps Script memiliki batas waktu eksekusi yang umumnya enam menit per eksekusi untuk akun konsumen. Gunakan filter tanggal atau LIMIT agar proses tidak terlalu berat.

Metode 3: Add-on No-Code

Tidak ingin menulis kode? Add-on bisa menjadi jalan pintas.

Langkah umumnya:

  1. Buka Extensions → Add-ons → Get add-ons.
  2. Cari dan instal add-on yang mendukung PostgreSQL.
  3. Masukkan parameter koneksi database.
  4. Tentukan tabel atau tulis query SQL.
  5. Pilih sheet tujuan dan jalankan impor.
  6. Atur jadwal refresh jika fitur tersebut tersedia.

Beberapa opsi yang bisa kamu evaluasi adalah Coefficient, Query Streams, dan ModelMonkey. Fitur, metode koneksi, serta harga setiap layanan dapat berbeda.

Sebagai contoh, pendekatan berbasis agent seperti Query Streams memungkinkan query dijalankan dekat dengan database, sementara hasilnya dikirim ke spreadsheet melalui koneksi terenkripsi. Pastikan kamu memeriksa dokumentasi keamanan dan konfigurasi terkini sebelum menggunakannya.

Ingat, kemudahan no-code bukan berarti tanpa risiko. Periksa izin akses, kebijakan penyimpanan kredensial, dan batas penggunaan sebelum memilih layanan.

Metode 4: ETL dan Otomatisasi Workflow

Untuk sinkronisasi rutin yang melibatkan banyak tabel, kamu bisa mempertimbangkan platform ETL atau otomasi seperti Hevo dan Zapier.

Alur dasarnya sebagai berikut:

  1. Buat pipeline atau workflow baru.
  2. Pilih PostgreSQL sebagai sumber data.
  3. Masukkan kredensial dan uji koneksi.
  4. Pilih tabel atau event yang ingin diproses.
  5. Hubungkan Google Sheets sebagai tujuan.
  6. Atur frekuensi sinkronisasi dan aktifkan workflow.

Metode ini membantu mengurangi pekerjaan manual, terutama ketika data harus diperbarui secara konsisten. Namun, biaya dapat meningkat mengikuti volume data dan jumlah tugas.

Beberapa layanan juga lebih cocok untuk alur sederhana daripada query SQL kompleks atau data berukuran besar.

Metode 5: Python + Google Sheets API

Python cocok untuk developer yang membutuhkan transformasi data lebih kompleks, misalnya membersihkan nilai kosong, menggabungkan tabel, atau menghitung ringkasan sebelum mengirim hasil ke spreadsheet.

Langkah 1: Aktifkan Google Sheets API melalui Google Cloud Console dan siapkan kredensial OAuth 2.0 atau service account sesuai kebutuhan.

Langkah 2: Bagikan spreadsheet kepada email service account dengan akses Editor.

Langkah 3: Instal library yang dibutuhkan:

pip install psycopg2-binary gspread

Langkah 4: Buat script untuk membaca data PostgreSQL dan mengirimkannya secara batch.

import psycopg2
import gspread

conn = psycopg2.connect(
    host="HOST",
    port=5432,
    dbname="NAMA_DB",
    user="USERNAME",
    password="PASSWORD"
)

try:
    with conn.cursor() as cur:
        cur.execute("""
            SELECT id, nama, total
            FROM public.pesanan
            LIMIT 500
        """)
        rows = cur.fetchall()
        header = [col[0] for col in cur.description]
finally:
    conn.close()

data = [header] + [
    ["" if value is None else str(value) for value in row]
    for row in rows
]

gc = gspread.service_account(
    filename="service-account.json"
)
ws = gc.open("Laporan Pesanan").worksheet("Pesanan")
ws.clear()
ws.update(range_name="A1", values=data)

Simpan kredensial di lokasi yang aman dan jangan masukkan file service account ke repositori publik. Kamu juga bisa menjadwalkan script melalui cron pada server.

Untuk dataset besar, kirim data dalam batch dan tangani respons pembatasan API dengan exponential backoff. Perhatikan pula kuota Google Sheets API yang berlaku pada proyekmu.

Bonus: Migrasi Google Sheets ke PostgreSQL

Jika targetmu adalah menjadikan PostgreSQL sebagai penyimpanan utama, rapikan data sebelum migrasi.

  • Ubah header menjadi nama kolom konsisten, misalnya tanggal_daftar.
  • Bersihkan simbol mata uang dan pemisah ribuan.
  • Seragamkan tanggal ke format YYYY-MM-DD.
  • Konversi nilai YES/NO menjadi boolean jika sesuai.
  • Tentukan apakah sel kosong harus menjadi NULL atau nilai kosong.

Petakan tipe data secara tepat: teks menjadi text, angka bulat menjadi integer atau bigint, nilai desimal menjadi numeric, tanggal menjadi date, dan nilai TRUE/FALSE menjadi boolean.

Untuk data besar, gunakan COPY atau \copy. Praktik yang cukup aman adalah memuat data ke tabel staging terlebih dahulu, memvalidasi formatnya, lalu memasukkannya ke tabel final. Dengan cara ini, kesalahan satu baris tidak langsung mengganggu struktur data utama.

Metode Mana yang Paling Cocok untukmu?

Pilih berdasarkan kebutuhan, bukan sekadar popularitas tool:

  • Transfer satu kali: CSV.
  • Gratis dan fleksibel: Apps Script + JDBC.
  • Tanpa coding: add-on no-code.
  • Sinkronisasi banyak sumber: ETL atau otomasi.
  • Transformasi kompleks: Python + Google Sheets API.

Kalau kebutuhanmu hanya menampilkan laporan penjualan setiap pagi, Apps Script mungkin sudah cukup. Namun, ketika aplikasi mulai memproses transaksi rutin, pendekatan integrasi yang lebih terstruktur akan lebih mudah dipelihara.

Manfaat Integrasi Google Sheets dan PostgreSQL untuk Developer

menghubungkan Google Sheets ke PostgreSQL

Menghubungkan kedua platform ini memberikan beberapa keuntungan praktis.

  • Data laporan lebih mutakhir. Kamu tidak perlu mengekspor CSV setiap kali membutuhkan angka terbaru. Dengan jadwal dan konfigurasi yang tepat, refresh data otomatis dapat mengurangi pekerjaan berulang.
  • Akses data lebih mudah untuk tim. Tim operasional dapat membaca hasil query melalui spreadsheet tanpa perlu mendapatkan akses langsung ke server database.
  • Otomatisasi workflow menjadi lebih sederhana. Laporan berkala, rekap pesanan, dan pemantauan metrik bisa berjalan dengan intervensi manual yang lebih sedikit.
  • Pembagian fungsi lebih jelas. Google Sheets dapat digunakan sebagai antarmuka input ringan, sedangkan PostgreSQL menangani penyimpanan, relasi, validasi, dan pengolahan data yang lebih terstruktur.

Troubleshooting: Error yang Sering Muncul

GejalaKemungkinan penyebabSolusi
Koneksi gagal atau timeoutFirewall atau port tertutupPeriksa port 5432, firewall, dan akses jaringan
Format URL salahMenggunakan postgres:// pada JDBCGunakan jdbc:postgresql://HOST:5432/NAMA_DB
Autentikasi ditolakKredensial atau pg_hba.conf tidak sesuaiPeriksa username, password, dan aturan akses
Error SSLMode SSL tidak cocokSesuaikan konfigurasi klien dengan sertifikat dan kebijakan server
Apps Script berhentiBatas waktu eksekusiBatasi hasil query dan proses data per bagian
Error 429 pada Sheets APIKuota permintaan terlampauiKurangi request, gunakan batch, dan terapkan exponential backoff
Spreadsheet lambatTerlalu banyak data atau formulaAmbil kolom penting, gunakan filter, dan kirim ringkasan
Database lokal tidak terbacaTidak memiliki endpoint yang bisa dijangkauGunakan tunnel aman untuk pengembangan, bukan membuka database produksi secara sembarangan

Google Sheets memiliki batas maksimum 10 juta sel per spreadsheet. Karena itu, jangan menarik seluruh isi database jika yang dibutuhkan hanya ringkasan atau data dalam periode tertentu.

Tips Keamanan Saat Menghubungkan PostgreSQL ke Google Sheets

Sebelum integrasi digunakan secara rutin, pastikan beberapa praktik berikut diterapkan:

  1. Gunakan user database khusus dengan hak akses minimum.
  2. Batasi tabel dan kolom yang dapat dibaca.
  3. Simpan kredensial di tempat yang sesuai dan batasi siapa yang bisa mengaksesnya.
  4. Gunakan koneksi terenkripsi dan hindari membuka database produksi ke internet tanpa kontrol akses.
  5. Terapkan filter tanggal, LIMIT, atau query agregasi untuk membatasi data yang dikirim.
  6. Tinjau akses kolaborator spreadsheet serta izin add-on yang digunakan.

Satu hal yang sering terlewat: password di Script Properties tidak otomatis aman dari semua editor proyek Apps Script. Jika banyak orang dapat mengedit proyek, pertimbangkan arsitektur koneksi dengan kontrol akses yang lebih ketat.

Kesimpulan

Menghubungkan Google Sheets ke PostgreSQL bisa dilakukan melalui CSV, Apps Script, add-on, ETL, maupun Python. Pilihan terbaik bergantung pada volume data, kebutuhan refresh data otomatis, tingkat keahlian tim, dan persyaratan keamanan.

Untuk kebutuhan sederhana, CSV atau Apps Script dapat menjadi titik awal. Namun, jika PostgreSQL digunakan untuk menopang aplikasi dan proses bisnis yang berjalan rutin, stabilitas server dan kontrol akses perlu menjadi perhatian sejak awal.

Di sinilah VPS Murah dari IDwebhost bisa menjadi opsi yang layak dipertimbangkan untuk menyiapkan lingkungan server PostgreSQL yang lebih terkontrol. Dengan konfigurasi yang sesuai, kamu dapat mengatur sumber daya, firewall, dan akses database berdasarkan kebutuhan aplikasi. Pastikan pula backup, pembaruan sistem, dan pemantauan server berjalan rutin agar database tetap andal.

Jadi, sebelum memilih metode integrasi, tentukan dulu peran Google Sheets dan PostgreSQL dalam workflow-mu. Dengan pembagian fungsi yang jelas, data lebih mudah dikelola, pekerjaan manual berkurang, dan pengembangan aplikasi bisa berjalan lebih terarah.