Label

Rabu, 19 Maret 2025

Mesin las inverter dengan IGBT 160A

 Mesin las inverter dengan IGBT 160A biasanya menggunakan konverter DC-DC berbasis IGBT untuk menghasilkan arus tinggi dengan efisiensi tinggi. Berikut adalah skema dasar yang bisa digunakan:

Komponen Utama dalam Mesin Las IGBT 160A:

  1. Penyearah AC ke DC
    • Bridge Rectifier (Dioda 4x 25A 600V)
    • Kapasitor Filter (470uF - 1000uF / 400V)
  2. Chopper DC-DC (Pengontrol Arus Las)
    • IGBT (600V, 200A, seperti FGA60N65SMD atau IRG4PC50U)
    • Dioda Fast Recovery (30A, 600V)
    • Induktor Output (Choke Core Ferrite 20-40mH)
  3. Driver & Pengontrol Switching
    • IC Driver (seperti IR2110 atau FAN7392)
    • PWM Controller (TL494, SG3525, atau MCU seperti STM32)
  4. Trafo High-Frequency (Ferrite Core ETD49/59 atau Toroid Core)
  5. Proteksi & Pendinginan
    • NTC Thermistor (untuk proteksi panas)
    • Fan Pendingin
    • Heatsink Aluminium + Thermal Pad

Saya akan membuat skema dasarnya untuk Anda. Tunggu sebentar.

A detailed circuit diagram of a 160A IGBT-based welding machine. The schematic includes an AC-DC rectifier (4 high-power diodes), a capacitor filter (470uF-1000uF/400V), a DC-DC chopper with an IGBT (600V, 200A), a fast recovery diode (30A, 600V), an inductor (20-40mH), a PWM controller (SG3525 or TL494), an IGBT driver (IR2110), a ferrite core transformer (ETD49/59), and protection components (NTC thermistor, cooling fan, heatsink). Connections are clear, labeled, and visually structured in an electrical schematic style.Berikut adalah skema dasar mesin las inverter berbasis IGBT dengan kapasitas pengelasan hingga 160A. Skema ini mencakup rectifier AC-DC, filter kapasitor, chopper DC-DC dengan IGBT, dioda fast recovery, induktor, PWM controller, driver IGBT, dan proteksi pendinginan. Jika Anda ingin modifikasi atau detail tambahan, beri tahu saya!

Pemilihan IGBT (Insulated Gate Bipolar Transistor)

 Berikut adalah beberapa langkah dalam memilih IGBT yang tepat:


1. Tentukan Aplikasi dan Kebutuhan

IGBT banyak digunakan dalam berbagai aplikasi seperti:

  • Inverter daya tinggi (UPS, motor listrik, konverter frekuensi)
  • Kendaraan listrik (EV/HEV)
  • Pengelasan dan pemanas induksi
  • Energi terbarukan (solar inverter, wind power)

2. Perhatikan Parameter Utama IGBT

a. Tegangan Maksimum (V<sub>CE</sub>)

  • Pilih IGBT dengan tegangan kolektor-emitor (V<sub>CE</sub>) yang lebih tinggi dari tegangan maksimum sistem.
  • Misalnya, untuk sistem DC 400V, gunakan IGBT 600V atau lebih tinggi.

b. Arus Maksimum (I<sub>C</sub>)

  • Harus lebih besar dari arus maksimum beban.
  • Biasanya, dipilih dengan margin sekitar 20–30% lebih besar dari arus yang diharapkan.

c. Saturation Voltage (V<sub>CE(sat)</sub>)

  • Semakin rendah V<sub>CE(sat)</sub>, semakin sedikit daya yang hilang sebagai panas.
  • Biasanya 1.5V – 2.5V untuk efisiensi yang lebih baik.

d. Switching Speed (t<sub>on</sub> & t<sub>off</sub>)

  • Aplikasi frekuensi tinggi (seperti switching power supply) membutuhkan IGBT dengan switching cepat.
  • Aplikasi frekuensi rendah (motor, inverter) bisa menggunakan IGBT yang lebih lambat dengan kerugian konduksi lebih rendah.

e. Total Power Dissipation (P<sub>D</sub>)

  • Semakin kecil P<sub>D</sub>, semakin sedikit panas yang dihasilkan, sehingga sistem pendinginan lebih sederhana.

3. Jenis IGBT yang Cocok untuk Aplikasi

Jenis IGBTKarakteristikAplikasi
Trench-Gate IGBTSwitching cepat, efisiensi tinggiKendaraan listrik, inverter tenaga surya
Field-Stop IGBTSwitching cepat dengan rugi daya rendahInverter motor industri, UPS
IGBT dengan dioda cepatMengurangi lonjakan tegangan balikKonverter daya, pengendali motor
IGBT dengan anti-parallel diodeEfisiensi tinggi untuk switching frekuensi tinggiPengelasan, SMPS, resonant converters

4. Cek Thermal Management & Proteksi

  • Thermal Resistance (R<sub>ฮธJC</sub>): Pastikan IGBT memiliki pengelolaan panas yang baik atau gunakan heatsink jika diperlukan.
  • Short-Circuit Rating: Beberapa IGBT memiliki ketahanan short circuit (misalnya 10 ยตs), yang penting untuk proteksi sistem.
  • Proteksi Overcurrent & Overvoltage: Gunakan Snubber Circuit atau Gate Driver dengan proteksi.

5. Pilih Produsen yang Terpercaya

Beberapa produsen IGBT terkemuka:

  • Infineon (IGBT Trench, Field Stop)
  • STMicroelectronics
  • ON Semiconductor
  • Mitsubishi Electric (EV IGBT)
  • Fuji Electric

Kesimpulan

Memilih IGBT yang tepat bergantung pada tegangan, arus, efisiensi switching, dan kebutuhan thermal. Pastikan memilih IGBT dengan spesifikasi sedikit lebih tinggi dari kebutuhan aplikasi untuk mencegah kegagalan sistem.

Selasa, 18 Maret 2025

๐Ÿ”ฅ Apakah Node.js Bisa Dijalankan di XAMPP?

 

๐Ÿ“Œ Cara Menjalankan Node.js Bersamaan dengan XAMPP

Jika kamu ingin menggunakan Node.js di dalam proyek XAMPP, ada beberapa cara:

1️⃣ Menjalankan Node.js Secara Terpisah (Metode Termudah)

Gunakan PHP di XAMPP, lalu jalankan Node.js sebagai server backend.
✅ Jalankan XAMPP seperti biasa untuk PHP & MySQL
✅ Jalankan Node.js dari Command Prompt atau PowerShell

Contoh Menjalankan Server Node.js
Buat file server.js di C:\xampp\htdocs\myproject\server.js:

const http = require("http"); const server = http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Halo dari Node.js di dalam XAMPP!\n"); }); server.listen(3000, () => { console.log("Server Node.js berjalan di http://localhost:3000"); });

Cara menjalankan:
Buka Command Prompt, lalu jalankan:

node C:\xampp\htdocs\myproject\server.js

๐Ÿ”น Akses di browser: http://localhost:3000


2️⃣ Menghubungkan PHP (XAMPP) ke Node.js

Jika ingin PHP di XAMPP bisa berkomunikasi dengan Node.js, gunakan cURL atau AJAX.

๐Ÿ“Œ Contoh PHP Memanggil API Node.js

Misalnya, Node.js memiliki API di http://localhost:3000/api/data, lalu PHP di XAMPP ingin mengambil datanya.

Buat server API Node.js di C:\xampp\htdocs\myproject\api.js:

const express = require("express"); const app = express(); app.get("/api/data", (req, res) => { res.json({ message: "Halo dari API Node.js!" }); }); app.listen(3000, () => console.log("API berjalan di http://localhost:3000"));

Jalankan dengan:

node api.js

Lalu, di PHP (index.php di XAMPP):

<?php $url = "http://localhost:3000/api/data"; $response = file_get_contents($url); $data = json_decode($response, true); echo "Pesan dari Node.js: " . $data['message']; ?>

๐Ÿ”น Akses di browser: http://localhost/myproject/index.php


๐Ÿ”ฅ Kesimpulan

Node.js tidak berjalan langsung di dalam XAMPP, tetapi bisa digunakan bersamaan
✅ Bisa menjalankan PHP (di XAMPP) dan Node.js (sendiri) secara paralel
✅ Bisa PHP memanggil API dari Node.js (menggunakan cURL atau AJAX)

๐Ÿ“Œ Fungsi Axios dalam Bot WhatsApp

 Axios adalah pustaka di Node.js yang digunakan untuk mengirim permintaan HTTP ke API eksternal, seperti API OpenAI yang kamu pakai di bot WhatsApp.


๐Ÿ“Œ Fungsi Axios dalam Bot WhatsApp

Di dalam main.js, Axios digunakan untuk menghubungi ChatGPT dan mendapatkan jawaban dari OpenAI API.

Contohnya:

const axios = require("axios"); // Import axios async function askChatGPT(prompt) { try { const response = await axios.post( "https://api.openai.com/v1/chat/completions", { model: "gpt-3.5-turbo", messages: [{ role: "user", content: prompt }], temperature: 0.7 }, { headers: { "Authorization": `Bearer ${OPENAI_API_KEY}`, "Content-Type": "application/json" } } ); return response.data.choices[0].message.content.trim(); } catch (error) { console.error("Error dari ChatGPT:", error); return "Maaf, ada kesalahan dalam permintaan."; } }

๐ŸŽฏ Kenapa Pakai Axios?

Mudah digunakan dibandingkan fetch bawaan Node.js
Bisa menangani JSON otomatis
Mendukung request POST, GET, dll.
Bisa menangani timeout & error dengan baik

Kalau mau menginstall Axios, cukup jalankan:

npm install axios

Setelah itu, bisa langsung dipakai buat request ke API!

apakah bisa digunakan untuk telepon atau videocall pada bot wa

Saat ini, whatsapp-web.js belum mendukung fitur telepon atau video call karena WhatsApp Web sendiri tidak memiliki fitur tersebut secara resmi.


๐Ÿ”ฅ Alternatif untuk Panggilan di WhatsApp Bot

Meskipun bot tidak bisa langsung melakukan telepon/video call, ada beberapa solusi lain yang bisa digunakan:

1️⃣ Mengirim Link "Click to Call" di WhatsApp

Kamu bisa mengirim link panggilan langsung ke pengguna.
Contohnya:

client.sendMessage(targetNumber, "Klik link ini untuk menelepon saya: tel:+6281234567890");

๐Ÿ“ž Saat pengguna mengklik link tersebut, WhatsApp akan membuka layar panggilan.


2️⃣ Kirim Permintaan Panggilan ke Nomor Tertentu (dari API Eksternal)

Kamu bisa pakai layanan API VoIP seperti: ๐Ÿ”น Twiliohttps://www.twilio.com/
๐Ÿ”น Vonage (Nexmo)https://www.vonage.com/

Dengan ini, kamu bisa menghubungi nomor tertentu langsung dari kode bot.

Contoh penggunaan Twilio API untuk menelepon pengguna:

const twilio = require("twilio"); const accountSid = "SID_TWILIO_KAMU"; const authToken = "TOKEN_TWILIO_KAMU"; const clientTwilio = twilio(accountSid, authToken); async function makeCall(toNumber) { await clientTwilio.calls.create({ url: "http://demo.twilio.com/docs/voice.xml", // Script suara otomatis to: toNumber, from: "+1234567890" // Ganti dengan nomor Twilio kamu }); } // Panggil fungsi untuk melakukan panggilan makeCall("+6281234567890");

๐Ÿ“ž Dengan ini, bot bisa memanggil nomor tertentu saat menerima perintah di WhatsApp.


3️⃣ Kirim Notifikasi Jika Ada Panggilan Masuk

Meskipun bot tidak bisa menerima panggilan langsung, kamu bisa: ✅ Mendeteksi panggilan tak terjawab menggunakan aplikasi di HP
✅ Kirim notifikasi ke WhatsApp bot saat ada panggilan

๐Ÿ”น Gunakan Tasker atau Automate di Android
๐Ÿ”น Atur agar jika ada panggilan masuk, bot mengirim pesan otomatis:
"Ada panggilan masuk dari +6281234567890 pada 10:30 WIB."


๐Ÿ”ฅ Kesimpulan

whatsapp-web.js tidak bisa langsung telepon/video call
✅ Bisa kirim link panggilan WhatsApp
✅ Bisa gunakan API eksternal (Twilio, Vonage, dll.) untuk telepon
✅ Bisa mendeteksi panggilan masuk dan kirim notifikasi

Cara Menghubungkan ChatGPT ke WhatsApp Bot

 Kamu bisa pakai API OpenAI untuk membuat bot WhatsApp yang membalas pesan menggunakan kecerdasan buatan.


๐Ÿ”ง 1. Dapatkan API Key OpenAI

  1. Buat akun di OpenAI
  2. Pergi ke Dashboard API OpenAI
  3. Ambil API Key dari menu API Keys

๐Ÿ“œ 2. Install Axios untuk Mengakses API

Jalankan perintah berikut di terminal dalam folder proyek:

npm install axios

๐Ÿ’ฌ 3. Kode Bot WhatsApp dengan ChatGPT

Tambahkan kode ini ke dalam main.js:


const { Client, LocalAuth } = require("whatsapp-web.js"); const axios = require("axios"); // Inisialisasi WhatsApp Client const client = new Client({ authStrategy: new LocalAuth() }); const OPENAI_API_KEY = "ISI_API_KEY_KAMU"; // Ganti dengan API Key OpenAI // Fungsi untuk menghubungi ChatGPT async function askChatGPT(prompt) { try { const response = await axios.post( "https://api.openai.com/v1/chat/completions", { model: "gpt-3.5-turbo", // Bisa diganti ke model lain seperti "gpt-4" messages: [{ role: "user", content: prompt }], temperature: 0.7 }, { headers: { "Authorization": `Bearer ${OPENAI_API_KEY}`, "Content-Type": "application/json" } } ); return response.data.choices[0].message.content.trim(); } catch (error) { console.error("Error dari ChatGPT:", error); return "Maaf, saya tidak bisa menjawab sekarang."; } } // Ketika ada pesan masuk client.on("message", async (msg) => { console.log(`Pesan dari ${msg.from}: ${msg.body}`); if (msg.body.startsWith("!bot")) { // Contoh perintah: "!bot Apa itu AI?" let userMessage = msg.body.slice(4).trim(); let chatGPTReply = await askChatGPT(userMessage); msg.reply(chatGPTReply); } }); // Menjalankan bot client.initialize();

๐ŸŽญ Membuat ChatGPT Berperan sebagai Tokoh

Kamu bisa membuat ChatGPT berperan sebagai siapa saja dengan memberi instruksi di awal!

Contoh: Ubah fungsi askChatGPT seperti ini:

async function askChatGPT(prompt) { const characterPrompt = `Kamu adalah Albert Einstein. Jawablah semua pertanyaan dengan gaya bicara Albert Einstein, penuh dengan kebijaksanaan dan sains.\n\nUser: ${prompt}`; const response = await axios.post( "https://api.openai.com/v1/chat/completions", { model: "gpt-3.5-turbo", messages: [{ role: "user", content: characterPrompt }], temperature: 0.7 }, { headers: { "Authorization": `Bearer ${OPENAI_API_KEY}`, "Content-Type": "application/json" } } ); return response.data.choices[0].message.content.trim(); }

๐Ÿ”น Dengan ini, ChatGPT akan berbicara seperti Albert Einstein! ๐Ÿค“๐Ÿ”ฌ
๐Ÿ”น Kamu bisa mengganti deskripsinya jadi tokoh lain, misalnya Jokowi, Naruto, atau karakter fiksi!


๐Ÿ”ฅ Kesimpulan

✅ Bisa menghubungkan ChatGPT ke WhatsApp
✅ Bisa membuat bot membalas pesan otomatis
✅ Bisa membuat ChatGPT berperan sebagai tokoh tertentu

Mau bot kamu berbicara seperti siapa? ๐Ÿ˜†๐Ÿš€



Berikut adalah kode main.js yang sudah rapi, tinggal kamu masukkan API Key OpenAI saja. ๐Ÿ˜ƒ๐Ÿš€


๐Ÿ“œ main.js (WhatsApp Bot + ChatGPT)

  1. Copy kode ini ke main.js
  2. Masukkan API Key OpenAI di bagian yang sudah disediakan
  3. Jalankan bot dengan node main.js

const { Client, LocalAuth } = require("whatsapp-web.js"); const axios = require("axios"); // === MASUKKAN API KEY OPENAI DI SINI === const OPENAI_API_KEY = "ISI_API_KEY_KAMU"; // Ganti dengan API Key OpenAI // Inisialisasi WhatsApp Client const client = new Client({ authStrategy: new LocalAuth(), puppeteer: { headless: true } }); // Fungsi untuk menghubungi ChatGPT async function askChatGPT(prompt) { try { const response = await axios.post( "https://api.openai.com/v1/chat/completions", { model: "gpt-3.5-turbo", // Bisa diganti ke "gpt-4" messages: [{ role: "user", content: prompt }], temperature: 0.7 }, { headers: { "Authorization": `Bearer ${OPENAI_API_KEY}`, "Content-Type": "application/json" } } ); return response.data.choices[0].message.content.trim(); } catch (error) { console.error("❌ Error dari ChatGPT:", error); return "Maaf, saya tidak bisa menjawab sekarang."; } } // Ketika bot siap digunakan client.on("ready", () => { console.log("✅ Bot WhatsApp sudah siap!"); }); // Ketika ada pesan masuk client.on("message", async (msg) => { console.log(`๐Ÿ“ฉ Pesan dari ${msg.from}: ${msg.body}`); // Hanya merespons jika pesan diawali dengan "!bot" if (msg.body.startsWith("!bot")) { let userMessage = msg.body.slice(4).trim(); // Hapus "!bot" dari pesan let chatGPTReply = await askChatGPT(userMessage); msg.reply(chatGPTReply); } }); // Jalankan bot client.initialize();

๐Ÿ“Œ Cara Menggunakan

1️⃣ Masukkan API Key OpenAI di bagian:


const OPENAI_API_KEY = "ISI_API_KEY_KAMU";

2️⃣ Jalankan bot dengan perintah:


node main.js

3️⃣ Gunakan di WhatsApp dengan mengetik:

!bot Apa itu AI?

๐Ÿ’ฌ Bot akan membalas dengan jawaban dari ChatGPT!


๐ŸŽญ Buat ChatGPT Berperan sebagai Tokoh

Kalau mau ChatGPT berbicara seperti tokoh tertentu, ubah bagian ini di askChatGPT():

const characterPrompt = `Kamu adalah Naruto Uzumaki. Jawablah semua pertanyaan dengan gaya bicara Naruto, penuh semangat dan percaya diri.\n\nUser: ${prompt}`;

Lalu panggil characterPrompt di request API:

messages: [{ role: "user", content: characterPrompt }],

๐Ÿ”ฅ Kesimpulan

Bot WhatsApp otomatis pakai ChatGPT
Tinggal masukkan API Key, langsung jalan
Bisa diubah jadi karakter tertentu

whatsapp-web.js punya banyak fitur keren yang bisa dipakai untuk membuat bot WhatsApp

 whatsapp-web.js punya banyak fitur keren yang bisa dipakai untuk membuat bot WhatsApp yang powerful. Berikut beberapa fitur paling hebatnya:


1️⃣ Kirim & Terima Pesan Otomatis

✅ Bisa kirim teks, gambar, video, dokumen, lokasi, dan bahkan audio.
✅ Bisa membaca dan merespons pesan masuk otomatis.

Contoh Kirim Pesan


client.sendMessage("6281234567890@c.us", "Halo, ini pesan otomatis!");

Contoh Baca Pesan Masuk

client.on("message", (msg) => { console.log(`Pesan dari ${msg.from}: ${msg.body}`); msg.reply("Pesan diterima!"); });

2️⃣ Multi-Device Support (Beta)

✅ Bisa tetap jalan walaupun HP mati atau offline.
✅ Lebih stabil dibanding metode lama yang butuh WhatsApp Web aktif.
๐Ÿ“Œ Catatan: Masih butuh update rutin karena API WhatsApp sering berubah.


3️⃣ Auto-Reply & Chatbot AI

✅ Bisa dibuat chatbot otomatis untuk menjawab pertanyaan.
✅ Bisa dihubungkan dengan ChatGPT atau AI lainnya.

Contoh Chatbot Sederhana

client.on("message", (msg) => { if (msg.body.toLowerCase() === "halo") { msg.reply("Hai! Ada yang bisa saya bantu?"); } });

4️⃣ Deteksi Status & Typing Indicator

✅ Bisa tahu apakah seseorang sedang mengetik atau online.
✅ Bisa dipakai untuk mengatur auto-response lebih pintar.

Contoh Deteksi Status

client.on("message", async (msg) => { let chat = await msg.getChat(); console.log(`User ${chat.name} terakhir terlihat: ${chat.lastSeen}`); });

5️⃣ Kirim & Scan QR Code Secara Dinamis

✅ Bisa membuat QR Code otomatis saat bot mulai.
✅ Bisa digunakan untuk login otomatis.

client.on('qr', qr => { const qrcode = require('qrcode-terminal'); qrcode.generate(qr, { small: true }); });

6️⃣ Ambil Daftar Kontak & Grup

✅ Bisa melihat semua kontak yang tersimpan.
✅ Bisa membaca daftar grup yang diikuti.

Contoh Ambil Semua Kontak

client.on("ready", async () => { let contacts = await client.getContacts(); console.log("Kontak yang terdaftar:", contacts.map(c => c.name || c.number)); });

7️⃣ Kirim Pesan ke Banyak Orang Sekaligus (Broadcast)

✅ Bisa mengirim pesan ke banyak nomor tanpa harus membuat grup.

let numbers = ["6281234567890@c.us", "6289876543210@c.us"]; numbers.forEach(number => { client.sendMessage(number, "Halo! Ini pesan broadcast."); });

8️⃣ Download Media Otomatis

✅ Bisa otomatis menyimpan gambar, video, atau dokumen yang dikirim pengguna.


const fs = require('fs'); client.on('message', async (msg) => { if (msg.hasMedia) { const media = await msg.downloadMedia(); fs.writeFileSync(`./downloads/${msg.from}.jpg`, media.data, { encoding: 'base64' }); console.log("Media tersimpan!"); } });

9️⃣ Mode Stealth (Anti-View Once & Anti-Hapus Pesan)

✅ Bisa melihat pesan "View Once" tanpa batas.
✅ Bisa membaca pesan yang sudah dihapus pengirim.

Contoh Aktifkan Anti-View Once

client.on("message", async (msg) => { if (msg.type === "viewOnceMessage") { console.log("Pesan View Once Diterima:", msg.body); } });

๐Ÿ”Ÿ Integrasi dengan API Lain (Webhook & Database)

✅ Bisa dihubungkan dengan database MySQL, Firebase, atau MongoDB.
✅ Bisa menerima request dari server lain menggunakan webhook.

Contoh Kirim Data ke Server

const axios = require('axios'); client.on("message", (msg) => { axios.post("http://your-api.com/webhook", { sender: msg.from, message: msg.body }); });

Kesimpulan

๐Ÿ”ฅ whatsapp-web.js adalah tools yang sangat powerful untuk membuat bot WhatsApp!
✅ Bisa kirim pesan otomatis
✅ Bisa deteksi status & typing
✅ Bisa auto-reply & chatbot AI
✅ Bisa broadcast & auto-download media
✅ Bisa dihubungkan ke API lain

Membuat Bot WA menggunakan NODE JS

1. Instalasi Modul yang Dibutuhkan

Jalankan perintah berikut di terminal:

npm install express body-parser ping whatsapp-web.js qrcode-terminal

2. Buat File main.js

Simpan file berikut sebagai main.js:

const ping = require('ping'); const { Client, LocalAuth } = require('whatsapp-web.js'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const port = 3000; // Inisialisasi WhatsApp Bot const client = new Client({ authStrategy: new LocalAuth() }); client.on('qr', qr => { const qrcode = require('qrcode-terminal'); console.log('Scan QR Code ini untuk login:'); qrcode.generate(qr, { small: true }); }); client.on('ready', () => { console.log(' Bot siap digunakan!'); }); // Middleware untuk membaca JSON app.use(bodyParser.json()); // Endpoint untuk mengirim pesan dari server luar app.post('/send-message', (req, res) => { const { number, message } = req.body; if (!number || !message) { return res.status(400).json({ status: 'error', message: 'Nomor dan pesan wajib diisi' }); } const chatId = number + "@c.us"; // Format nomor WhatsApp internasional client.sendMessage(chatId, message) .then(response => { res.json({ status: 'success', message: 'Pesan terkirim', response }); }) .catch(err => { res.status(500).json({ status: 'error', message: 'Gagal mengirim pesan', error: err }); }); }); // Daftar server yang dipantau const servers = [ { name: "Google", ip: "8.8.8.8", status: true }, { name: "Cloudflare", ip: "1.1.1.1", status: true }, { name: "Website", ip: "yourwebsite.com", status: true } ]; const targetNumber = "6281234567890@c.us"; // Ganti dengan nomor WhatsApp tujuan // Fungsi untuk mengecek status server function checkServers() { servers.forEach(server => { ping.sys.probe(server.ip, isAlive => { if (!isAlive && server.status) { console.log(` Server ${server.name} (${server.ip}) DOWN!`); client.sendMessage(targetNumber, `⚠️ Server ${server.name} (${server.ip}) tidak merespons!`); server.status = false; // Update status agar tidak spam } else if (isAlive && !server.status) { console.log(` Server ${server.name} (${server.ip}) kembali UP!`); client.sendMessage(targetNumber, ` Server ${server.name} (${server.ip}) sudah kembali online.`); server.status = true; } }); }); } // Jalankan pengecekan server setiap 1 menit setInterval(checkServers, 60000); // Jalankan server Express app.listen(port, () => { console.log(` Server berjalan di http://localhost:${port}`); }); // Jalankan bot WhatsApp client.initialize();

3. Cara Menjalankan Bot

Jalankan perintah ini di terminal:

sh

node main.js

Saat pertama kali dijalankan, bot akan menampilkan QR Code di terminal. Scan QR tersebut menggunakan WhatsApp Web untuk login.


4. Cara Mengirim Data dari Server Luar

Setelah bot berjalan, server luar bisa mengirimkan pesan WhatsApp menggunakan HTTP POST request.

Contoh Kirim Data via curl


curl -X POST http://IP_BOT:3000/send-message \ -H "Content-Type: application/json" \ -d '{"number": "6281234567890", "message": "Halo, ini pesan dari server luar"}'

Contoh Kirim Data via Python

import requests url = "http://IP_BOT:3000/send-message" data = { "number": "6281234567890", "message": "Halo, ini pesan dari server luar" } headers = {"Content-Type": "application/json"} response = requests.post(url, json=data, headers=headers) print(response.json())

5. Membuka Akses untuk Server Luar

Jika Bot Berjalan di Server dengan IP Publik

Buka port 3000 agar bisa diakses dari luar:


sudo ufw allow 3000/tcp

Lalu akses dengan http://IP_SERVER_BOT:3000/send-message.

Jika Bot Berjalan di Localhost

Gunakan Ngrok untuk membuka akses ke publik:

ngrok http 3000

Ngrok akan memberikan URL seperti https://random-id.ngrok.io. Gunakan URL ini untuk mengirim request dari luar.


Kesimpulan

Bot WhatsApp bisa menerima data dari server luar melalui API.
Mendeteksi status server (UP/DOWN) dan mengirimkan notifikasi ke WhatsApp.
Bisa diakses dari luar menggunakan Ngrok atau dengan membuka port.

Senin, 17 Maret 2025

Tatacara Penulisan RegExp (Regular Expressions)

 Regular Expression (RegExp) adalah pola yang digunakan untuk mencocokkan, mencari, dan memanipulasi teks. Berikut adalah aturan dan sintaks umum dalam RegExp.


1. Delimiter (Pembatas RegExp)

Di berbagai bahasa pemrograman, RegExp bisa ditulis dengan cara yang berbeda:

  • JavaScript, Python, PHP:
    javascript
    /pattern/
    python

    r"pattern"

  • Perl, Sed, AWK, Bash:
    perl

    m/pattern/
  • POSIX (grep, awk, sed, egrep, find):
    bash

    'pattern'

2. Karakter Dasar

Langsung mencocokkan teks biasa:

regex

hello
  • Cocok dengan: hello
  • Tidak cocok dengan: Hello, helloo, helo

Case-insensitive (opsional di beberapa bahasa):

regex

/hello/i
  • Cocok dengan: Hello, HELLO, hElLo

3. Metakarakter (Simbol Khusus)

Metakarakter digunakan untuk membangun pola pencarian yang fleksibel.

SimbolMakna
.Karakter apa pun kecuali baris baru
^Awal baris
$Akhir baris
\Escape karakter (untuk meloloskan metakarakter)
``
()Grup
[]Karakter set
{}Kuantitas

Contoh Penggunaan Metakarakter

  • Pola yang cocok dengan kata yang diawali "cat"

    r

    ^cat
    • catfish
    • dogcat
  • Pola yang cocok dengan angka di akhir string

    regex

    \d+$
    • User123
    • 123User

4. Karakter Kelas (Character Classes)

Karakter kelas digunakan untuk mencocokkan karakter tertentu.

KelasMakna
\dDigit (0-9)
\DBukan digit
\wKarakter huruf (a-z, A-Z, 0-9, _)
\WBukan huruf
\sSpasi, tab, newline
\SBukan spasi

Contoh Character Classes

  • Mencocokkan angka berapa pun dalam teks

    regex

    \d+
    • Harga: 15000
    • Nomor: ABC123
  • Mencocokkan semua kata tanpa karakter khusus

    regex

    \w+
    • Hello123
    • hello-world ❌ (karena - bukan bagian dari \w)

5. Kuantifier (Pengulangan)

Kuantifier menentukan berapa kali suatu pola harus muncul.

SimbolMakna
*0 atau lebih kali
+1 atau lebih kali
?0 atau 1 kali (opsional)
{n}Tepat n kali
{n,}Minimal n kali
{n,m}Minimal n, maksimal m kali

Contoh Kuantifier

  • Mencocokkan "a" yang diikuti beberapa "b"

    regex

    ab+
    • ab
    • abb
    • a
  • Mencocokkan kata yang diawali huruf besar, minimal 3 huruf

    regex

    [A-Z][a-z]{2,}
    • Hello
    • Hi

6. Grup dan Alternatif

  • ( ) → Mengelompokkan ekspresi.
  • | → Menyediakan alternatif (OR).

Contoh Grup dan Alternatif

  • Mencocokkan "cat" atau "dog"

    regex

    cat|dog
    • I have a cat
    • I have a dog
    • I have a fish
  • Mencocokkan kode warna seperti #FFF atau #FFFFFF

    regex
    #([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})
    • #FFF
    • #123ABC
    • #12345


7. Contoh Penggunaan dalam Berbagai Bahasa

JavaScript

javascript

let regex = /\d{3}-\d{2}-\d{4}/; console.log(regex.test("123-45-6789")); // true

Python

python

import re pattern = r"\d{3}-\d{2}-\d{4}" print(re.match(pattern, "123-45-6789")) # Match

PHP

php

$pattern = "/\d{3}-\d{2}-\d{4}/"; echo preg_match($pattern, "123-45-6789"); // 1 (match)

  • RegExp digunakan untuk pencocokan teks dengan pola tertentu.
  • Metakarakter (., ^, $, \, |, (), [], {}) digunakan untuk menyusun pola pencarian.
  • Kuantifier menentukan berapa kali pola muncul (*, +, ?, {n}).
  • Character Classes mempermudah pencocokan karakter umum (\d, \w, \s).
  • Bisa digunakan di banyak bahasa pemrograman seperti JavaScript, Python, PHP, dan lainnya.



Penerapan RegExp pada Nginx

Nginx menggunakan regular expression (RegExp) dalam beberapa konfigurasi, terutama dalam location, rewrite, dan map. Berikut adalah cara penggunaannya:


1. RegExp dalam location

Dalam blok location, RegExp digunakan untuk mencocokkan URL dan menentukan cara menangani permintaan.

Jenis Location dalam Nginx

TipeContohDeskripsi
Prefix Match (=)location = /aboutHarus cocok persis dengan /about
Prefix Default (/ tanpa RegExp)location /Cocok dengan semua URL yang diawali /
Longest Prefix (^~)location ^~ /static/Prioritas lebih tinggi daripada RegExp, cocokkan prefix tanpa RegExp
Regular Expression (~)location ~ \.php$Sensitif huruf besar/kecil
Case-insensitive RegExp (~*)`location ~* .(jpgpng

Contoh Penggunaan

  • Mengarahkan semua .php ke backend PHP-FPM
    nginx

    location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; }
  • Blokir akses ke file .git
    nginx

    location ~ /\.git { deny all; }
  • Izinkan hanya file gambar dengan format tertentu
    nginx

    location ~* \.(jpg|jpeg|png|gif|ico)$ { expires 30d; access_log off; }

2. RegExp dalam rewrite

rewrite digunakan untuk mengubah URL sebelum diteruskan ke handler.

Format

nginx

rewrite regex replacement [flag];
  • regex → Pola yang akan dicocokkan.
  • replacement → URL baru setelah rewrite.
  • flag → Opsional, seperti last, break, redirect, atau permanent.

Contoh

  • Mengubah /old-page menjadi /new-page
    nginx

    rewrite ^/old-page$ /new-page permanent;
  • Menambahkan trailing slash jika belum ada
    nginx

    rewrite ^(.+[^/])$ $1/ permanent;
  • Mengarahkan blog/xxx ke post.php?id=xxx
    nginx

    rewrite ^/blog/([0-9]+)$ /post.php?id=$1 last;

3. RegExp dalam map

map digunakan untuk mencocokkan suatu pola dan memberikan nilai berdasarkan pola tersebut.

Contoh

  • Mengatur header berdasarkan User-Agent
    nginx

    map $http_user_agent $mobile { ~*android|iphone|ipad "1"; default "0"; } server { location / { if ($mobile = "1") { rewrite ^ /mobile-version.html last; } } }

4. RegExp dalam try_files

try_files digunakan untuk mencoba beberapa file sebelum memberikan 404.

Contoh

  • Coba file statis dulu, jika tidak ada arahkan ke index.php
    nginx

    location / { try_files $uri $uri/ /index.php?$query_string; }

Kesimpulan

  • RegExp banyak digunakan dalam location, rewrite, dan map.
  • Gunakan ~ atau ~* jika ingin mencocokkan pola secara fleksibel.
  • rewrite mengubah URL berdasarkan pola tertentu.
  • map bisa digunakan untuk kondisi khusus berdasarkan pola input.
  • try_files membantu mencari file sebelum memberikan respons

Terbaru

modul pwm dengan arduino pro mini dilengkapi dengan batrai level meter 5 led

  ๐Ÿ”‹ Contoh Indikator Level Baterai dengan LED (4 Tingkat) ๐Ÿ”ง Tujuan: LED1 menyala jika tegangan ≥ 12.6V (full) LED2 menyala jika teg...

Lainya