Cara Membuat Bot Telegram Sederhana untuk Info Cuaca Harian dengan Python

3 min read 24-08-2024
Cara Membuat Bot Telegram Sederhana untuk Info Cuaca Harian dengan Python

Pada artikel ini, kita akan membahas cara membuat bot Telegram sederhana yang dapat memberikan informasi cuaca harian menggunakan bahasa pemrograman Python. Dengan mengikuti langkah-langkah di bawah ini, Anda akan dapat mengembangkan bot yang responsif dan efektif untuk memberikan informasi cuaca kepada pengguna.

Prasyarat

Sebelum kita mulai, ada beberapa hal yang perlu Anda siapkan:

  1. Akun Telegram: Pastikan Anda memiliki akun Telegram.

  2. Python: Anda harus menginstal Python di komputer Anda. Jika belum, silakan unduh dan instal dari situs resmi Python.

  3. Library Python: Kita akan menggunakan beberapa library. Pastikan Anda menginstal library berikut dengan menjalankan perintah berikut di terminal:

    pip install python-telegram-bot requests
    
  4. API Cuaca: Kita juga akan menggunakan API untuk mendapatkan data cuaca. Anda bisa menggunakan OpenWeatherMap. Mendaftar di situs resmi OpenWeatherMap untuk mendapatkan API Key.

Langkah 1: Membuat Bot di Telegram

  1. Buka Telegram dan cari @BotFather.
  2. Mulai percakapan dengan @BotFather dan ketik /newbot.
  3. Ikuti instruksi untuk memberi nama dan nama pengguna (username) untuk bot Anda.
  4. Setelah selesai, Anda akan mendapatkan Token yang diperlukan untuk mengakses API bot Telegram. Simpan token ini, karena Anda akan membutuhkannya nanti.

Langkah 2: Mengambil Data Cuaca

Kita akan menggunakan API dari OpenWeatherMap untuk mengambil data cuaca. Berikut adalah contoh cara membuat permintaan untuk mendapatkan data cuaca berdasarkan nama kota:

import requests

def get_weather(city_name, api_key):
    base_url = "http://api.openweathermap.org/data/2.5/weather?"
    complete_url = f"{base_url}q={city_name}&appid={api_key}&units=metric"
    response = requests.get(complete_url)
    return response.json()

Dalam fungsi di atas, kita membuat URL lengkap dengan nama kota dan API key, lalu mengirimkan permintaan untuk mendapatkan data cuaca.

Langkah 3: Membuat Bot Telegram

Setelah berhasil mendapatkan data cuaca, langkah selanjutnya adalah mengimplementasikan bot Telegram. Berikut adalah struktur dasar bot dengan menggunakan python-telegram-bot.

from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext

API_KEY = 'YOUR_API_KEY'
TELEGRAM_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'

def start(update: Update, context: CallbackContext):
    update.message.reply_text('Selamat datang di Bot Cuaca! Gunakan /cuaca <nama_kota> untuk mendapatkan informasi cuaca harian.')

def weather(update: Update, context: CallbackContext):
    if context.args:
        city_name = ' '.join(context.args)
        weather_data = get_weather(city_name, API_KEY)

        if weather_data['cod'] != 200:
            update.message.reply_text('Kota tidak ditemukan. Silakan coba lagi!')
            return

        main = weather_data['main']
        wind = weather_data['wind']
        weather_description = weather_data['weather'][0]['description']

        response_message = (
            f"Cuaca di {city_name}:\n"
            f"Suhu: {main['temp']} °C\n"
            f"Terasa Seperti: {main['feels_like']} °C\n"
            f"Cuaca: {weather_description}\n"
            f"Kecepatan Angin: {wind['speed']} m/s\n"
        )
        update.message.reply_text(response_message)
    else:
        update.message.reply_text('Silakan masukkan nama kota setelah perintah /cuaca.')

def main():
    updater = Updater(TELEGRAM_TOKEN)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("cuaca", weather))

    updater.start_polling()
    updater.idle()

if __name__ == '__main__':
    main()

Penjelasan Kode

  1. Import Library: Kode ini mengimpor modul yang diperlukan dari python-telegram-bot untuk membuat bot.

  2. Variabel Konstanta: Menyimpan API key untuk OpenWeatherMap dan token untuk bot Telegram.

  3. Function start: Merupakan command handler untuk perintah /start, memberikan pesan sambutan kepada pengguna.

  4. Function weather: Mengambil nama kota dari argumen perintah dan memanggil fungsi get_weather. Jika kota ditemukan, bot akan mengirimkan informasi cuaca. Jika tidak, bot akan memberi tahu pengguna bahwa kota tidak ditemukan.

  5. Main Function: Menginisialisasi bot, menambahkan handler untuk perintah /start dan /cuaca, kemudian memulai polling bot.

Langkah 4: Menjalankan Bot

Setelah semua kode siap, Anda dapat menjalankan script Python Anda:

  1. Simpan kode di atas dalam file Python, misalnya bot_cuaca.py.

  2. Jalankan bot dengan perintah:

    python bot_cuaca.py
    
  3. Buka Telegram dan cari bot Anda dengan username yang telah Anda buat. Kirimkan perintah /start untuk melihat sambutan.

  4. Kirimkan perintah /cuaca <nama_kota> untuk mendapatkan informasi cuaca.

Kesimpulan

Anda telah berhasil membuat bot Telegram sederhana yang memberikan informasi cuaca harian menggunakan Python. Dengan memahami komponen dasar ini, Anda dapat mengembangkan bot Anda lebih lanjut dengan menambahkan fitur baru, seperti penyimpanan riwayat cuaca atau penggunaan lokasi pengguna secara otomatis.

Selamat mencoba!