October 21, 2026

5 Cara Menghubungkan Google Sheets ke PostgreSQL

by

Anggit Puguh

rumahweb.com

banner - 5 Metode Cara Menghubungkan Google Sheets ke PostgreSQL

Setiap Senin pagi Anda membuka database, menjalankan query penjualan, mengekspornya ke CSV, lalu menempelkan hasilnya satu per satu ke Google Sheets untuk dibaca tim. Prosesnya memakan waktu, rawan salah tempel, dan datanya sudah basi begitu ada transaksi baru. Jika pekerjaan seperti ini terasa familier, sudah saatnya Anda mempelajari cara menghubungkan Google Sheets ke PostgreSQL agar data mengalir tanpa campur tangan manual.

Kabar baiknya, ada beberapa jalur yang bisa dipilih sesuai kemampuan teknis dan kebutuhan Anda, mulai dari cara sederhana yang tidak butuh coding sampai skrip otomatis yang berjalan terjadwal. Di panduan ini, Anda akan mengenal lima metode beserta contoh kode, cara memilih yang paling cocok, daftar masalah yang sering muncul, dan langkah pengamanan yang sebaiknya Anda terapkan sejak awal.

Ringkasan

  • Google Sheets dan PostgreSQL dapat dihubungkan untuk mempermudah pemindahan, pengolahan, dan sinkronisasi data.
  • Ada lima metode yang bisa dipilih, yaitu ekspor-impor CSV, Google Apps Script dengan JDBC, add-on, tools ETL atau otomasi workflow, serta Python dengan Google Sheets API.
  • Pemilihan metode bergantung pada kebutuhan integrasi, kemampuan teknis, volume data, dan frekuensi sinkronisasi.
  • Pastikan konfigurasi koneksi, kredensial database, dan hak akses sudah diatur dengan benar agar data tetap aman.
  • Untuk kebutuhan otomasi yang berjalan berkala atau terus-menerus, Anda bisa mempertimbangkan penggunaan server sendiri agar proses integrasi lebih fleksibel.

Memahami Arah Koneksi Data

Sebelum memilih metode, tentukan dulu ke mana data akan bergerak karena arah koneksi memengaruhi pilihan alat dan tingkat risikonya.

Dari PostgreSQL ke Google Sheets

Arah ini paling sering dipakai untuk laporan dan dasbor ringan. Database tetap menjadi sumber kebenaran, sedangkan Sheets hanya menampilkan hasil query agar mudah dibaca, difilter, atau dibagikan kepada rekan kerja yang tidak memahami SQL.

Dari Google Sheets ke PostgreSQL

Arah sebaliknya dipakai ketika data awal dikumpulkan lewat spreadsheet, misalnya daftar produk, hasil survei, atau data migrasi dari sistem lama, lalu dimuat ke database untuk diolah lebih lanjut. Karena menulis ke database lebih berisiko daripada membaca, arah ini perlu validasi data yang lebih ketat.

Persiapan Sebelum Memulai

Siapkan alamat host, port PostgreSQL (bawaannya 5432), nama database, serta username dan password. Pastikan akun Google Anda punya akses ke spreadsheet yang akan dipakai. Periksa juga bahwa server database bisa dijangkau dari luar, artinya firewall, daftar IP yang diizinkan, dan berkas konfigurasi pg_hba.conf sudah mengizinkan koneksi dari sumber yang tepat. Untuk keperluan laporan, buat user database khusus dengan hak baca saja seperti contoh berikut.

CREATE ROLE laporan_ro LOGIN PASSWORD 'ganti_dengan_kata_sandi_kuat';
GRANT CONNECT ON DATABASE tokodb TO laporan_ro;
GRANT USAGE ON SCHEMA public TO laporan_ro;
GRANT SELECT ON TABLE pelanggan TO laporan_ro;

Lima Metode Menghubungkan Google Sheets ke PostgreSQL

Kelima metode berikut berurutan dari yang paling sederhana hingga yang paling fleksibel.

Metode 1: Ekspor dan Impor CSV

Cara ini cocok untuk pemindahan data sekali atau sesekali. Dari terminal psql, ekspor hasil query ke berkas CSV, lalu impor berkas tersebut lewat menu impor di Google Sheets.

\copy (SELECT id, nama, email FROM pelanggan) TO 'pelanggan.csv' CSV HEADER

Untuk arah sebaliknya, unduh sheet sebagai CSV, buat tabel tujuan dengan tipe data yang sesuai, lalu muat dengan perintah berikut.

\copy pelanggan FROM 'pelanggan.csv' CSV HEADER

Metode 2: Google Apps Script dengan JDBC

Apps Script memiliki layanan JDBC bawaan yang memungkinkan Sheets menjalankan query langsung ke database dan menjadwalkannya lewat trigger berbasis waktu. Metode ini gratis dan cocok untuk laporan terjadwal. Simpan URL, username, dan password di Script Properties, bukan di dalam kode. Format URL-nya adalah jdbc:postgresql diikuti alamat host, port, dan nama database.

function importDariPostgres() {
  const props = PropertiesService.getScriptProperties();
  const url = props.getProperty('DB_URL'); // contoh: jdbc:postgresql://203.0.113.10:5432/tokodb
  const user = props.getProperty('DB_USER');
  const pass = props.getProperty('DB_PASS');

  const conn = Jdbc.getConnection(url, user, pass);
  try {
    const stmt = conn.createStatement();
    const rs = stmt.executeQuery('SELECT id, nama, email FROM pelanggan LIMIT 500');
    const meta = rs.getMetaData();
    const jumlahKolom = meta.getColumnCount();

    const header = [];
    for (let i = 1; i <= jumlahKolom; i++) header.push(meta.getColumnName(i));
    const data = [header];

    while (rs.next()) {
      const baris = [];
      for (let i = 1; i <= jumlahKolom; i++) baris.push(rs.getString(i));
      data.push(baris);
    }
    rs.close();
    stmt.close();

    const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Pelanggan');
    sheet.clearContents();
    sheet.getRange(1, 1, data.length, jumlahKolom).setValues(data);
  } finally {
    conn.close();
  }
}

Ingat bahwa layanan JDBC Apps Script hanya bisa menjangkau port 1025 ke atas, dan server Anda perlu mengizinkan rentang IP Apps Script yang dipublikasikan Google. Batasi jumlah baris dengan LIMIT karena skrip memiliki batas waktu eksekusi.

Metode 3: Add-on Tanpa Coding

Jika Anda tidak ingin menulis skrip, beberapa add-on Google Sheets menyediakan antarmuka untuk memasukkan parameter koneksi, menulis query, memilih sheet tujuan, dan mengatur jadwal penyegaran data. Pastikan Anda mengecek izin yang diminta add-on dan memilih pengembang yang tepercaya, karena add-on akan memegang kredensial database Anda.

Metode 4: ETL atau Otomasi Alur Kerja

Untuk sinkronisasi rutin banyak tabel, platform ETL atau otomasi seperti Zapier atau Hevo bisa menjadi pilihan. Anda membuat pipeline, memilih PostgreSQL sebagai sumber, menguji koneksi, memilih tabel, menghubungkan Google Sheets sebagai tujuan, lalu menentukan seberapa sering data disinkronkan. Kelebihannya praktis, kekurangannya biasanya ada biaya langganan seiring volume data.

Metode 5: Python dan Google Sheets API

Metode ini paling fleksibel dan ideal ketika data perlu diolah lebih dulu sebelum masuk ke spreadsheet. Aktifkan Google Sheets API di Google Cloud, buat service account, lalu bagikan spreadsheet ke alamat email service account tersebut. Setelah itu, pasang pustaka yang dibutuhkan lewat perintah pip install psycopg2-binary gspread dan jalankan skrip berikut.

import os
import gspread
import psycopg2

conn = psycopg2.connect(
    host="203.0.113.10",
    port=5432,
    dbname="tokodb",
    user="laporan_ro",
    password=os.environ["DB_PASSWORD"],
)
with conn, conn.cursor() as cur:
    cur.execute("SELECT id, nama, email FROM pelanggan LIMIT 500")
    kolom = [d[0] for d in cur.description]
    baris = [[str(sel) for sel in r] for r in cur.fetchall()]
conn.close()

gc = gspread.service_account(filename="service-account.json")
ws = gc.open("Data Pelanggan").worksheet("Pelanggan")
ws.clear()
ws.update(values=[kolom] + baris, range_name="A1")

Skrip ini bisa dijalankan terjadwal memakai cron, sehingga data di Sheets selalu segar tanpa Anda sentuh.

Bonus: Migrasi Data Sheets ke PostgreSQL

Jika tujuan Anda memindahkan data spreadsheet ke database, rapikan dulu nama kolom, format tanggal, dan angka. Petakan tipe datanya, muat ke tabel staging terlebih dahulu, periksa hasilnya, baru pindahkan ke tabel final. Langkah antara ini mencegah data berantakan langsung mengotori tabel produksi.

BACA JUGA: Contoh Database Populer: Panduan Lengkap untuk Pemula

Memilih Metode yang Paling Tepat

Gunakan tabel berikut untuk menyesuaikan metode dengan situasi Anda.

MetodeTingkat KesulitanOtomatisCocok untuk
CSVMudahTidakPemindahan data sekali atau sesekali
Apps Script dan JDBCSedangYa, lewat triggerLaporan terjadwal tanpa biaya
Add-on tanpa codingMudahYaPengguna non-teknis
ETL atau otomasiSedangYaSinkronisasi rutin banyak tabel
Python dan Sheets APISulitYa, lewat cronTransformasi data yang kompleks

Masalah yang Sering Muncul dan Cara Mengatasinya

Jika koneksi gagal atau timeout, periksa dulu apakah port terbuka dan firewall mengizinkan sumber koneksi Anda. Pada Apps Script, pastikan URL diawali jdbc:postgresql dan bukan postgres, karena format yang salah menyebabkan koneksi ditolak. Bila autentikasi gagal, cek ulang username, password, dan aturan di pg_hba.conf. Error terkait SSL biasanya muncul ketika mode SSL di klien tidak cocok dengan konfigurasi server.

Jika skrip berhenti di tengah jalan, kemungkinan besar query terlalu berat untuk batas waktu eksekusi, jadi persempit dengan filter tanggal atau LIMIT. Error 429 dari Sheets API menandakan permintaan terlalu sering, sehingga kirim data secara batch dan terapkan jeda bertahap. Terakhir, jika spreadsheet terasa lambat, ambil kolom yang benar-benar dibutuhkan, bukan seluruh isi tabel.

Tips Keamanan yang Tidak Boleh Dilewatkan

Berikan hak akses minimum pada user database dan batasi hanya pada tabel atau kolom yang perlu dibaca. Simpan kredensial di tempat yang aman, dan jangan pernah mengunggah berkas service account ke repositori publik. Gunakan koneksi terenkripsi, dan jangan membuka database produksi ke internet tanpa pembatasan IP.

Tinjau juga siapa saja yang punya akses edit ke spreadsheet dan proyek Apps Script, sebab password di Script Properties tetap bisa dilihat oleh editor proyek. Mengurangi data yang ditarik dengan filter atau agregasi juga membantu menekan risiko kebocoran.

Kendalikan Koneksi Anda dengan Server Sendiri

Menghubungkan Google Sheets ke PostgreSQL pada dasarnya soal memilih metode yang sesuai, menyiapkan akses yang aman, dan membatasi data yang dibagikan. Mulailah dari CSV atau add-on bila baru belajar, lalu beralih ke Apps Script atau Python ketika Anda butuh otomatisasi yang lebih rapi.

Semakin sering data Anda berpindah, semakin penting punya server yang bisa Anda atur sendiri. Dengan VPS Rumahweb, Anda dapat memasang PostgreSQL, mengatur firewall, membatasi IP yang boleh mengakses, mengaktifkan SSL, dan menjalankan skrip Python terjadwal lewat cron di satu tempat. Kontrol penuh seperti ini membuat pipeline data antara PostgreSQL dan Google Sheets lebih stabil, lebih aman, dan lebih mudah Anda kembangkan seiring pertumbuhan kebutuhan.

FAQ

1. Apakah Google Sheets bisa terhubung langsung ke PostgreSQL?

Bisa, lewat Apps Script JDBC, add-on, platform ETL, atau skrip Python dengan Sheets API.

2. Metode apa yang paling mudah untuk pemula?

Ekspor impor CSV atau add-on tanpa coding. Keduanya tidak memerlukan skrip dan cepat dicoba.

3. Apakah aman membuka PostgreSQL ke internet?

Hanya jika dibatasi dengan ketat, yaitu memakai user read-only, daftar IP yang diizinkan, dan koneksi terenkripsi SSL.

4. Kenapa skrip Apps Script berhenti sebelum selesai?

Apps Script punya batas waktu eksekusi. Persempit query dengan LIMIT atau filter tanggal agar prosesnya lebih singkat.

5. Bisakah data diperbarui otomatis?

Bisa. Gunakan trigger berbasis waktu di Apps Script atau jadwalkan skrip Python dengan cron.

Penutup

Menghubungkan Google Sheets ke PostgreSQL dapat membantu Anda mengelola data dengan lebih efisien, baik melalui proses impor manual maupun integrasi otomatis. Setiap metode memiliki kelebihan dan keterbatasan, sehingga pilihlah pendekatan yang sesuai dengan kebutuhan, volume data, serta kemampuan teknis Anda.

Jangan lupa memperhatikan keamanan koneksi, pengelolaan kredensial, dan hak akses database. Jika integrasi melibatkan data penting atau proses otomatis yang berjalan berkala, monitoring dan penanganan error juga perlu disiapkan agar alur kerja tetap andal.

Untuk kebutuhan integrasi yang lebih fleksibel, Anda dapat menjalankan script Python, scheduler, atau tools otomasi pada server sendiri. VPS Rumahweb bisa menjadi salah satu pilihan untuk mengelola proses tersebut sesuai kebutuhan. Dengan konfigurasi yang tepat, proses integrasi Google Sheets dan PostgreSQL dapat berjalan lebih terstruktur tanpa harus selalu dilakukan secara manual.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Anggit Puguh
Memiliki ketertarikan pada dunia server, jaringan, dan teknologi web, ia banyak mengeksplorasi berbagai solusi untuk kebutuhan hosting dan infrastruktur digital. Melalui tulisannya, Anggit berbagi panduan seputar Database, Hosting, hingga Tips & Trick dalam menggunakan layanan di Rumahweb Indonesia.

Related Post