Daftar Isi
- Pendahuluan
1.1 Latar Belakang
1.2 Kelebihan Menggunakan CLI + Google Sheets - Persiapan Alat dan Lingkungan
2.1 Instalasi Python
2.2 Instalasi Library Python - Desain Fitur Contact Manager
3.1 Struktur Data Kontak
3.2 Fitur Utama - Setup Google Sheets dan Google Cloud API
4.1 Membuat Spreadsheet di Google Sheets
4.2 Membuat Project di Google Cloud
4.3 Mengaktifkan Google Sheets API
4.4 Membuat Service Account & Credentials
4.5 Memberi Akses Spreadsheet ke Service Account - Implementasi Kode Python
5.1 Struktur Kode Program
5.2 Penjelasan Fungsi-Fungsi
5.3 Kode Lengkap CLI Contact Manager - Pengujian dan Sinkronisasi
6.1 Menjalankan Program
6.2 Memastikan Data Tersinkron di Google Sheets - Tips Penggunaan untuk Tim Sales / Networking
7.1 Kolaborasi dengan Google Sheets
7.2 Penggunaan Filter dan Sortir Data
7.3 Integrasi dengan Dashboard - Pengembangan Lanjutan
8.1 Fitur Import/Export CSV
8.2 Kategori Kontak
8.3 Integrasi API dan Otomatisasi - Kesimpulan
1. Pendahuluan
Di era digital, manajemen data kontak menjadi hal yang sangat penting, khususnya bagi tim sales, marketing, atau siapa pun yang aktif melakukan networking. Kontak berisi informasi berharga seperti nama, nomor telepon, dan email yang bisa digunakan untuk menjalin komunikasi dengan klien, partner bisnis, atau prospek.
Banyak orang menggunakan aplikasi seperti Google Contacts atau Microsoft Outlook untuk menyimpan data kontak. Namun, ada kalanya kita membutuhkan solusi yang lebih custom, fleksibel, dan mudah diintegrasikan dengan sistem lain. Salah satu solusi yang bisa digunakan adalah CLI Contact Manager berbasis Python yang terhubung langsung ke Google Sheets.
Dengan metode ini, kita bisa:
- Mengelola kontak langsung dari Command Line Interface (CLI)
- Menyimpan semua data kontak secara real-time ke Google Sheets
- Berbagi data dengan tim secara online
- Menghindari risiko kehilangan data karena tersimpan di cloud
Kelebihan Menggunakan CLI + Google Sheets
- Sederhana – Tidak perlu antarmuka grafis, cukup terminal.
- Cloud-based – Semua data tersimpan di Google Sheets.
- Kolaboratif – Tim bisa mengakses dan memperbarui data secara bersamaan.
- Mudah diintegrasikan – Google Sheets bisa dihubungkan ke CRM, dashboard, atau automation tools.
2. Persiapan Alat dan Lingkungan
Sebelum memulai, pastikan kamu sudah menyiapkan semua kebutuhan berikut.
2.1 Instalasi Python
Pastikan Python 3.8+ sudah terpasang di komputer.
Cek dengan:
bash
python --version
atau
bash
python3 --version
Jika belum terpasang, unduh dari https://www.python.org/downloads/.
2.2 Instalasi Library Python
Kita akan menggunakan beberapa library:
gspread→ untuk berinteraksi dengan Google Sheetsoauth2client→ untuk autentikasi API Googletabulate→ untuk menampilkan data kontak di CLI dengan tabel
Instal semua library:
bash
pip install gspread oauth2client tabulate
3. Desain Fitur Contact Manager
Agar terstruktur, kita tentukan dulu fitur apa saja yang akan dibuat.
3.1 Struktur Data
Setiap kontak akan disimpan dalam format:
Nama, Nomor Telepon, Email
Di Python, bisa disimpan dalam bentuk list of dict:
python
{
"nama": "John Doe",
"telepon": "08123456789",
"email": "john@example.com"
}
3.2 Fitur Utama
- Tambah Kontak
- Lihat Semua Kontak
- Cari Kontak
- Edit Kontak
- Hapus Kontak
- Sinkronisasi ke Google Sheets
- Keluar Program
4. Setup Google Sheets dan Google Cloud API
Agar Python bisa terhubung ke Google Sheets, kita harus mengaktifkan Google Sheets API.
4.1 Buat Spreadsheet di Google Sheets
- Buka Google Sheets
- Buat spreadsheet baru bernama Kontak
- Isi baris pertama dengan kolom:
Nama,Telepon,Email
4.2 Membuat Project di Google Cloud
- Buka Google Cloud Console.
- Login dengan akun Google.
- Klik Select Project → New Project.
- Beri nama misalnya
ContactManager. - Klik Create.
4.3 Mengaktifkan Google Sheets API

- Di dalam project, buka APIs & Services → Library.
- Cari Google Sheets API → klik Enable.
- Juga aktifkan Google Drive API → klik Enable.
4.4 Membuat Service Account & Credentials
Masuk ke APIs & Services → Credentials.
Klik Create Credentials → Service Account.
Isi nama, misalnya contact-manager-service.

Klik Create and Continue → beri role Editor.

Klik Done.

Buka service account yang dibuat → Keys → Add Key → Create New Key → JSON.


Simpan file JSON ini, misalnya credentials.json.
4.5 Beri Akses Spreadsheet ke Service Account
- Buka file
credentials.json - Salin email service account (
...@....iam.gserviceaccount.com) - Buka spreadsheet Kontak
- Klik Share → masukkan email tersebut → set sebagai Editor → Send
5. Implementasi Kode Python

Masukkan File json nya ke dalam folder pythonnya
lalu di tambahkan file main.py untuk menaruh kode python
Berikut adalah kode Python lengkap untuk CLI Contact Manager.
python
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from tabulate import tabulate
# --- Konfigurasi Google Sheets ---
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scope)
client = gspread.authorize(creds)
# Buka Google Sheet (buat manual di Google Drive, beri nama "Kontak")
sheet = client.open("Kontak").sheet1
# Ambil data awal dari sheet
kontak_list = []
data = sheet.get_all_records()
for row in data:
kontak_list.append(row)
# --- Fungsi Program ---
def simpan_ke_sheets():
sheet.clear()
sheet.append_row(["Nama", "Telepon", "Email"])
for kontak in kontak_list:
sheet.append_row([kontak["Nama"], kontak["Telepon"], kontak["Email"]])
print("✅ Data berhasil disinkronkan ke Google Sheets.")
def tambah_kontak():
nama = input("Masukkan nama: ")
telepon = input("Masukkan nomor telepon: ")
email = input("Masukkan email: ")
kontak_list.append({"Nama": nama, "Telepon": telepon, "Email": email})
simpan_ke_sheets()
def lihat_kontak():
if not kontak_list:
print("📭 Tidak ada kontak.")
return
print(tabulate(kontak_list, headers="keys", tablefmt="grid"))
def cari_kontak():
keyword = input("Masukkan nama atau nomor telepon: ").lower()
hasil = [k for k in kontak_list if keyword in k["Nama"].lower() or keyword in k["Telepon"]]
if hasil:
print(tabulate(hasil, headers="keys", tablefmt="grid"))
else:
print("❌ Kontak tidak ditemukan.")
def edit_kontak():
lihat_kontak()
index = int(input("Masukkan nomor urut kontak yang ingin diedit (mulai dari 1): ")) - 1
if 0 <= index < len(kontak_list):
kontak_list[index]["Nama"] = input("Nama baru: ") or kontak_list[index]["Nama"]
kontak_list[index]["Telepon"] = input("Telepon baru: ") or kontak_list[index]["Telepon"]
kontak_list[index]["Email"] = input("Email baru: ") or kontak_list[index]["Email"]
simpan_ke_sheets()
else:
print("❌ Nomor urut tidak valid.")
def hapus_kontak():
lihat_kontak()
index = int(input("Masukkan nomor urut kontak yang ingin dihapus (mulai dari 1): ")) - 1
if 0 <= index < len(kontak_list):
del kontak_list[index]
simpan_ke_sheets()
print("🗑️ Kontak berhasil dihapus.")
else:
print("❌ Nomor urut tidak valid.")
# --- Menu CLI ---
def menu():
while True:
print("\n=== CLI Contact Manager ===")
print("1. Tambah Kontak")
print("2. Lihat Semua Kontak")
print("3. Cari Kontak")
print("4. Edit Kontak")
print("5. Hapus Kontak")
print("6. Sinkronisasi ke Google Sheets")
print("7. Keluar")
pilihan = input("Pilih menu: ")
if pilihan == "1":
tambah_kontak()
elif pilihan == "2":
lihat_kontak()
elif pilihan == "3":
cari_kontak()
elif pilihan == "4":
edit_kontak()
elif pilihan == "5":
hapus_kontak()
elif pilihan == "6":
simpan_ke_sheets()
elif pilihan == "7":
print("👋 Keluar program.")
break
else:
print("❌ Pilihan tidak valid.")
# Jalankan program
menu()
6. Pengujian dan Sinkronisasi
- Jalankan program:
bash
python contact_manager.py
- Tambahkan beberapa kontak.
- Lihat di Google Sheets → Data akan otomatis muncul.
- Coba edit dan hapus → Sinkron otomatis.
Hasilnya akan seperti ini :


7. Tips Penggunaan untuk Tim Sales / Networking
- Gunakan Google Sheets yang sama untuk seluruh tim agar semua update terlihat real-time.
- Tambahkan kolom tambahan di Google Sheets untuk status follow-up atau tanggal kontak terakhir.
- Gunakan filter dan sort di Google Sheets untuk mempermudah pencarian.
- Integrasikan Google Sheets dengan Google Data Studio untuk membuat dashboard interaktif.
8. Pengembangan Lanjutan
Fitur tambahan yang bisa dibuat:
- Import/Export CSV
- Pengelompokan Kontak berdasarkan Kategori
- Pengiriman Pesan WhatsApp Otomatis
- Integrasi API CRM
- Fitur Reminder Follow-up
9. Kesimpulan
Membuat CLI Contact Manager terhubung Google Sheets memberikan fleksibilitas tinggi dalam mengelola kontak. Dengan Python, kita bisa:
- Menginput data dengan cepat lewat terminal
- Menyimpan semua data secara cloud-based
- Berbagi data secara real-time dengan tim
- Mengembangkan fitur tambahan sesuai kebutuhan
Solusi ini cocok untuk tim sales, networking, atau siapa saja yang membutuhkan manajemen kontak sederhana tapi efektif.