Posts

5. Part: App Script Bot-1 Telegram Saham Turun

/**************************************************** * RESET STATUS TURUN & NAIK SETIAP PAGI (Sheet1) ****************************************************/ function resetStatus() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const lastRow = sheet.getLastRow(); // Kolom J & K → Status Turun & Status Naik sheet.getRange(2, 10, lastRow - 1, 2).clearContent(); Logger.log("Status Turun & Status Naik telah direset."); } /**************************************************** * PASANG SEMUA TRIGGER OTOMATIS SEKALI KLIK ****************************************************/ function createTriggers() { // Hapus semua trigger lama dulu biar bersih deleteAllTriggers(); // Update harga tiap 1 menit ScriptApp.newTrigger("updateHarga") .timeBased() .everyMinutes(1) .create(); // Cek alert tiap 1 menit ScriptApp.newTrigger("checkStockAlerts") .timeBased() .everyM...

3. App Script Bot-1 Telegram Saham Turun - oneoff di spreadsheet belum otomatis

/************************************************************ * FUNGSI 1 — UPDATE HARGA DARI GOOGLE FINANCE (SHEET: Data) ************************************************************/ function updateHarga() { const ss = SpreadsheetApp.getActive(); const sheet = ss.getSheetByName("Data"); const status = (sheet.getRange("A1").getValue() || "").toString().toUpperCase(); if (status !== "ON") { Logger.log("Update harga dimatikan oleh user (A1 != ON)"); return; } const tickers = sheet.getRange("B2:B1061").getValues(); tickers.forEach((row, i) => { const kode = row[0]; if (!kode) return; const formula = `=GOOGLEFINANCE("${kode}","price")`; sheet.getRange(i + 2, 3).setFormula(formula); // kolom C = harga }); Logger.log("Update harga selesai."); } /************************************************************ * Script otomatis menulis ON/OFF ke Sheet...

1. App Script Bot-1 Telegram Saham Turun

function checkStockAlerts() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const data = sheet.getDataRange().getValues(); const TELEGRAM_TOKEN = "8050614158:AAGnHHBERuADp2bBFl3PHsaFSuctLol6yVM"; const TELEGRAM_CHAT_ID = "1243483408"; let alerts = []; for (let i = 1; i batasNaik && statusNaik !== "terkirim") { alerts.push(`🔺 ${kode} (${nama}) NAIK ke ${harga} (batas: ${batasNaik})`); sheet.getRange(i + 1, 7).setValue("terkirim"); // kolom H } } if (alerts.length > 0) { const message = "📢 ALERT SAHAM:\n" + alerts.join("\n"); const url = `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`; const payload = { method: "post", payload: { chat_id: TELEGRAM_CHAT_ID, text: message, }, }; const response = UrlFetchApp.fetch(url, payload); Logger.log("Telegram respon...

Proyek Scraping Python

Harga Saham Naik Walaupun Banyak yang Jual A. Pengantar Proyak Scraping Python Dengan Python dan pustaka scraping gratis, kamu bisa otomatis mengambil data dari situs tertentu (selama tidak melanggar syarat penggunaan situs tersebut). B. Contoh Proyek Python English Bahasa Indonesia Project Details Rincian Proyek I'm looking for a Python developer to create a script that converts CSV data into an Excel file and populates additional columns with information sourced from the internet. Saya mencari pengembang Python untuk...

Buat Database & Server Lokal (Localhost)

Harga Saham Naik Walaupun Banyak yang Jual A. Pengantar Database Server Lokal Database seperti MySQL dan PostgreSQL sangat umum dijalankan di server lokal (local server). Penggunaan server lokal banyak dipilih oleh pengembang dan administrator basis data untuk keperluan: Belajar atau mengembangkan lokal aplikasi agar lebih cepat dan hemat biaya sebelum dipublikasikan ke server online (seperti VPS, cloud hosting, dll). Melakukan pengujian (testing) Membuat prototipe Belajar administrasi basis data ✅ Penjelasan Singkat: Server lokal berarti komputer Anda sendiri bertindak sebagai server database. Anda dapat menginstal database engine seperti: MySQL Server PostgreSQL S...

API Spreadsheet & Drive - Google Cloud Console dengan Service Account

Petunjuk Membuat Service Account untuk Google API Mengakses Spreadsheet dengan Service Account Untuk mengakses Google Sheets menggunakan Service Account, buat terlebih dahulu Service Account dan siapkan kunci dalam format JSON , lalu simpan sebagai credentials.json . Alur Lengkap Pembuatan Service Account dan JSON Key Masuk ke Google Cloud Console lalu klik Select Project . Create Service Accounts . Aktifkan IAM API . Enable access to API . Nama proyek: Contoh: My Project 90684 , dengan Project ID: fabled-era-466003-m6 . Nama proyek bisa diubah di Settings (klik ikon pensil/edit lalu save). Project ID tidak bisa diubah. Klik Continue dan ikuti tautan seperti: Now that you are done, go to https://console.cloud.google.com . Buka APIs & Services untuk mengelola API dan OAuth credentials. Di halaman Service Accounts , isi data beri...

Fitur Bot Telegram & Google Sheets

Perbaikan Kode Python: Lakukan revisi menyeluruh pada fungsi send_text dan send_file agar lebih aman, rapi, terstruktur, dan mudah dilacak ketika terjadi error. Validasi Token dan Chat ID: Tambahkan pengecekan keberadaan token, chat ID, dan file sebelum mengirim permintaan ke Bot Telegram, supaya meminimalkan error yang tidak terduga. Format Output: Tampilkan hasil response API dalam format JSON yang terbaca rapi agar memudahkan proses debug dibanding hanya menggunakan res.text mentah. Penjelasan Fungsi: Sertakan docstring pada setiap fungsi untuk menjelaskan maksud, parameter, dan hasil yang diharapkan, sehingga lebih mudah dipahami atau dikembangkan ulang. Penanganan Error 403: Ketahui arti kode status HTTP 403: menandakan token valid tetapi chat ID salah atau bot belum diizinkan untuk berinteraksi. Keamanan Variabel Lingkungan: Hindari menyimpan token dan chat ID langsung di dalam file Python. Gunakan environment variable dengan file .env atau perint...