Halo sobat Ngoprek Tech! Selamat datang di hari ke-10 dalam seri panduan teknologi finansial kita. Jika Anda sudah mengikuti tutorial kemarin, Anda pasti sudah paham betapa powerful-nya Google Apps Script (GAS) dalam mengekstrak data harga saham dari Google Sheets untuk dijadikan endpoint API mandiri.
Membangun alur logika, mengatur auto-setup database di Google Sheets, hingga mendeploy layanan berbasis web dengan GAS tentu sudah menjadi makanan sehari-hari bagi kita para penggiat IT. Memanfaatkan logika deployment dan integrasi yang persis sama, hari ini kita akan menaikkan levelnya.
Daripada kita yang harus repot-repot membuka spreadsheet atau mengecek aplikasi trading setiap saat, bagaimana jika kita menyuruh sebuah “robot” untuk mengirimkan laporan harga saham langsung ke aplikasi chat kita setiap pagi?
Mari kita ngoprek cara mengawinkan data Google Sheets dengan API Telegram!
Persiapan Pra-Instalasi (Syarat Wajib)
Sebelum kita mulai menulis kode, ada tiga hal yang harus Anda siapkan:
- Akun Telegram yang aktif.
- File Google Sheets Tracker Saham yang sudah kita buat di tutorial Hari ke-8. (Pastikan rumus
=GOOGLEFINANCEdi dalamnya sudah berjalan normal). - Secangkir kopi hangat agar fokus saat debugging.
Langkah 1: Menciptakan Bot Melalui BotFather
Di ekosistem Telegram, semua bot dilahirkan oleh satu bot induk yang bernama BotFather. Kita harus meminta izin darinya terlebih dahulu.
- Buka aplikasi Telegram di HP atau PC Anda.
- Di kolom pencarian, ketik
@BotFather(pastikan ada ikon centang biru resmi). - Klik tombol Start atau ketik
/start. - Ketik perintah
/newbotuntuk membuat bot baru. - BotFather akan meminta Anda memberikan Nama Bot (misalnya: Ngoprek Saham Tracker).
- Selanjutnya, Anda diminta membuat Username Bot. Username ini harus berakhiran kata “bot” (misalnya:
ngopreksaham_botatauTrackerSahamNgoprekBot). - Jika berhasil, BotFather akan memberikan sebuah pesan panjang yang berisi HTTP API Token (kumpulan huruf dan angka acak yang sangat panjang). ⚠️ PENTING: Simpan Token ini baik-baik dan jangan pernah bagikan ke publik (seperti mempostingnya tanpa sensor di GitHub), karena ini adalah “password root” untuk bot Anda.
Langkah 2: Mendapatkan Chat ID Telegram Anda
Bot Telegram membutuhkan “alamat tujuan” untuk mengirim pesan, yang disebut Chat ID.
- Di kolom pencarian Telegram, cari bot bernama
@userinfobot. - Klik Start.
- Bot tersebut akan langsung membalas dengan detail akun Anda, termasuk baris bertuliskan Id: 123456789.
- Catat angka tersebut. Itu adalah Chat ID pribadi Anda.
(Opsional: Jika Anda ingin bot mengirim pesan ke dalam sebuah Grup Telegram, masukkan bot buatan Anda ke dalam grup tersebut, lalu ketik pesan apapun. Anda bisa menggunakan API khusus atau bot ID checker lain untuk mendapatkan Chat ID grup yang biasanya diawali dengan tanda minus -).
Langkah 3: Menulis Kode di Google Apps Script
Sekarang, kembali ke file Google Sheets Tracker Saham Anda.
- Klik menu Extensions (Ekstensi) > Apps Script.
- Hapus semua kode yang ada di layar editor, lalu copy-paste blok kode JavaScript berikut ini:
JavaScript
// Konfigurasi Kredensial Telegram
const BOT_TOKEN = "MASUKKAN_TOKEN_BOT_ANDA_DI_SINI";
const CHAT_ID = "MASUKKAN_CHAT_ID_ANDA_DI_SINI";
function kirimNotifikasiSaham() {
// 1. Mengakses Database Google Sheets
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
// Asumsi: Kode Saham ada di sel A2, dan Harga Real-time ada di F2
var kodeSaham = sheet.getRange("A2").getValue();
var hargaSaatIni = sheet.getRange("F2").getValue();
// 2. Menyusun Format Pesan
var pesan = "📈 *Laporan Harga Saham Real-Time*\n\n";
pesan += "Kode: *" + kodeSaham + "*\n";
pesan += "Harga Saat Ini: Rp" + hargaSaatIni + "\n\n";
pesan += "Waktu: " + new Date().toLocaleString("id-ID", {timeZone: "Asia/Jakarta"});
// 3. Menyiapkan Payload untuk API Telegram
var url = "https://api.telegram.org/bot" + BOT_TOKEN + "/sendMessage";
var payload = {
"chat_id": CHAT_ID,
"text": pesan,
"parse_mode": "Markdown" // Agar kita bisa menggunakan efek tebal/miring
};
var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};
// 4. Mengeksekusi pengiriman data (HTTP Request)
try {
var response = UrlFetchApp.fetch(url, options);
Logger.log("Pesan berhasil dikirim: " + response.getContentText());
} catch (error) {
Logger.log("Gagal mengirim pesan: " + error.toString());
}
}
Penyesuaian Wajib:
- Ganti teks
MASUKKAN_TOKEN_BOT_ANDA_DI_SINIdengan Token dari BotFather. - Ganti teks
MASUKKAN_CHAT_ID_ANDA_DI_SINIdengan angka ID Anda. - Pastikan
getRange("A2")dangetRange("F2")sesuai dengan tata letak (layout) sel tempat data saham Anda berada di Google Sheets.
Langkah 4: Uji Coba Pengiriman Pesan (Debugging)
Mari kita tes apakah skrip ini berfungsi.
- Klik tombol Save (ikon disket).
- Pastikan fungsi yang terpilih di atas adalah
kirimNotifikasiSaham. - Klik Run (Jalankan).
- Google akan meminta otorisasi akun. Berikan izin dengan mengklik Review Permissions > Akun Google Anda > Advanced > Go to Untitled Project (unsafe) > Allow. (Ini karena skrip Anda mencoba mengakses layanan eksternal, yaitu server Telegram).
- Segera cek aplikasi Telegram Anda. Jika berhasil, bot Anda akan langsung mengirimkan pesan pop-up yang berisi laporan harga saham secara real-time!
Langkah 5: Membuat Jadwal Otomatis (Cron Job ala Google)
Skrip sudah berhasil, tapi kita masih harus mengkliknya secara manual. Agar bot ini bekerja layaknya cron job di Linux, kita akan menggunakan fitur Triggers di Apps Script.
- Di menu sebelah kiri editor Apps Script, klik ikon jam weker (Triggers).
- Klik tombol biru + Add Trigger di pojok kanan bawah.
- Atur konfigurasinya sebagai berikut:
- Choose which function to run:
kirimNotifikasiSaham - Choose which deployment should run:
Head - Select event source:
Time-driven - Select type of time based trigger:
Day timer(Jika ingin dikirim setiap hari). - Select time of day: Pilih waktu yang Anda inginkan, misalnya
09am to 10am(saat bursa baru buka) atau4pm to 5pm(saat bursa tutup).
- Choose which function to run:
- Klik Save.
Kesimpulan
Selesai! Anda kini memiliki sebuah Personal Assistant yang beroperasi 24/7 di server cloud Google, yang bertugas mengambil data array dari Sheets Anda dan melakukan POST request ke Telegram secara otomatis setiap harinya.
Dengan menggabungkan fundamental analisis saham dan fleksibilitas coding, proses berinvestasi tidak lagi menyita waktu produktif Anda. Anda bebas memodifikasi skrip di atas—misalnya menambahkan logika logika IF agar bot hanya mengirim pesan ketika harga saham menyentuh target Profit 10% atau rugi (Cut Loss) 5%.
Jika Anda mengalami error di bagian UrlFetchApp atau pesan tidak kunjung masuk ke Telegram, silakan copy baris error log-nya dan paste di kolom komentar di bawah. Mari kita diskusikan bersama!
