cara membuat bot discord dengan python

Cara Membuat Bot Discord dengan Python

Pada tutorial kali ini, kita akan belajar cara membuat bot discord dengan menggunakan bahasa pemrograman python.

Discord merupakan platform yang memudahkan kita dalam berkomunikasi dengan oranglain melalui voice calls, video calls, text messaging, serta dapat mengirim media dan file kepada oranglain.

Didalam discord kita dapat membuat servers yang merupakan chat rooms dan voice chat channels.

Dengan banyaknya pengguna yang masuk kedalam servers kita, membuat kita kesulitan dalam menjaga server tersebut supaya pengguna tidak ada yang melanggar rules servers yang telah kita buat.

Apalagi kita tidak mungkin online 24 jam untuk mengecek servers discord. Oleh karena itu, kita perlu membuat bot untuk membantu kita dalam menjaga server. Bot juga selalu online 24 jam sehingga jika ada pengguna yang melanggar rules langsung dikenai sanksi berupa kick atupun banned.

Di tutorial kali ini, kita akan membuat bot discord menggunakan python. Jadi, kalian harus paham dasar bahasa pemrograman python terlebih dahulu agar lebih mudah mengikuti tutorial membuat bot discord kali ini.

BACA JUGA: CARA BUAT BOT DISCORD TANPA CODING

Disini kita akan menggunakan Repl.it untuk menghost bot yang kita buat di cloud. Jadi, kita tidak perlu menginstall apapun di komputer.

Membuat akun Bot Discord

Langkah pertama yaitu kita harus membuat terlebih dahulu akun bot discord. Berikut langkah-langkah yang harus kalian ikuti.

Pastikan login terlebih dahulu di website discord

Masuk ke dalam application page

Klik tombol new application

membuat new application di discord

Beri nama aplikasi dan klik create

memberi nama akun bot discord

Pilih bagian bot dan klik add bot. Nanti muncul konfirmasi, lalu klik “Yes, do it!”

menambah akun bot discord

Selamat kita telah berhasil membuat bot discord. Selanjutnya, kita copy token terlebih dahulu. Token ini merupakan password bot kalian, jadi jangan sebarkan token tersebut ke siapapun.

Jika token telah tersebar ke oranglain, kalian bisa klik tombol regenerate.

Invite bot ke dalam Server Discord

Untuk memasukkan bot ke dalam server discord, kita perlu membuat invite url terlebih dahulu. Caranya dengan membuka bagian OAuth2. Kemudian centang bot dibagian scopes.

oauth2 bot discord

Kita akan memilih akses apa aja yang boleh digunakan oleh bot. Pastinya bot akan memerlukan akses untuk mengirimkan pesan. Kalian juga bisa menambah hak akses sesuai dengan bot kalian lakukan.

permission bot discord

Setelah memilih hak akses pada bot, klik bagian copy pada bagian scopes. URL yang dicopy tersebut digunakan untuk menambahkan bot ke dalam server discord.

Pastekan url tersebut ke dalam browser, pilih server discord yang ingin ditambahkan bot. Jika sudah klik continue, lalu klik authorize.

Selamat kita telah berhasil menambahkan bot ke dalam server discord. Untuk mengeceknya kita bisa membuka server discord yang dipilih tadi yang ingin ditambahkan bot.

Membuat bot discord dengan discord.py library

Kita akan menggunakan bantuan python library yaitu discord.py untuk menuliskan code bot. Dengan bantuan discord.py kita akan lebih mudah membuat bot discord di python.

Membuat Repl dan Install discord.py

Di tutorial kali ini, kita akan menggunakan Repl.it yang merupakan online IDE yang bisa dibuka lewat web browser.

Pertama buka Repl.it dan buat akun terlebih dahulu.

Setelah itu, create Repl baru dan pilih bahasa pemrograman python.

Untuk menggunakan discord.py library, tulis dibagian atas code import discord dan klik tombol run untuk menginstall dependency discord.py

import discord

Setup Awal Bot Discord

Kita akan membuat file .env di bagian secret, lalu masukkan key dengan “TOKEN” dan value nya merupakan token pada bot discord.

token bot discord di file .env

Setelah itu, di bagian bawah import discord kita perlu import os untuk mendapatkan token di .env

Selanjutnya kita buat instance client untuk menghubungkan ke dalam discord.

@client.event digunakan untuk mendaftarkan setiap event. @client.event adalah asynchronous library, jadi semuanya dilakukan dengan callback. Callback adalah fungsi yang dipanggil ketika sesuatu yang lain terjadi.

Dalam kode ini, event on_ready() dipanggil ketika bot siap untuk mulai digunakan. Kemudian, ketika bot menerima pesan, event on_message() dipanggil.Dalam kode ini, event on_ready() dipanggil ketika bot siap untuk mulai digunakan. Kemudian, ketika bot menerima pesan, event on_message() dipanggil.

on_message() terpicu setiap kali pesan diterima, tetapi kita tidak ingin pesan itu melakukan apa pun jika pesan itu berasal dari diri kita sendiri. Jadi jika Message.author sama dengan Client.user maka tidak akan mengembalikan pesan apapun.

Selanjutnya, kita periksa apakah Message.content dimulai dengan ‘$hello’. Jika iya maka bot akan membalas dengan ‘Halo!’ ke saluran yang digunakan.

BACA JUGA: 8 BOT DISCORD TERBAIK UNTUK SERVER DISCORD 2021

Untuk dibagian akhir yaitu menjalankan bot dengan token login yang didapat dari file .env yang kita buat tadi.

import discord
import os

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')

client.run(os.getenv('TOKEN'))

Sekarang kita bisa menjalankan file main.py dengan klik tombol run. Setelah itu, dibagian console akan terdapat pesan jika berhasil masuk.

Kita bisa langsung mencoba dengan masuk ke dalam server discord yang telah ditambahkan bot, lalu pilih text channel dan ketikan “$hello” maka bot akan membalasnya dengan “Hello!”

Menambahkan Quotes ke dalam Bot Discord

Kita akan menambahkan quotes motivasi dengan bantuan API dari zenquotes.io. Sebelumnya, kita perlu import request dan json terlebih dahulu.

Setelah itu, kita buat function dengan nama add_quote() yang didalamnya kita request.get() api dari zenquotes.io, kemudian hasilnya dimasukkan ke dalam json. Terakhir kita return nilai dari setiap quote di dalam file json.

def get_quote():
  response = requests.get("https://zenquotes.io/api/random")
  json_data = json.loads(response.text)
  quote = json_data[0]['q'] + " -" + json_data[0]['a']
  return(quote)

Kita perlu membuat event pada on_message(). Jadi, setiap kali ada yang mengetikkan “$motivasi” maka bot akan mengirimkan pesan quote motivasi secara acak.

if message.content.startswith('$motivasi'):
        quote = get_quote()
        await message.channel.send(quote)

Setup Bot Discord agar Berjalan Terus

Jika kalian menjalankan bot kalian di repl.it dan kemudian menutup tab yang menjalankannya, bot kalian akan berhenti berjalan.

Kita bisa menggunakan bantuan web server. Repl.it akan terus menjalankan web server bahkan setelah tab ditutup. Tetapi bahkan server web hanya akan berjalan hingga satu jam tanpa penggunaan apa pun.

Agar bot terus berjalan, kita perlu menggunakan layanan gratis lainnya bernama Uptime Robot. Uptime Robot dapat diatur untuk melakukan ping ke server web bot di repl.it setiap 5 menit. Dengan ping konstan, bot tidak akan pernah memasuki tahap tidur dan hanya akan terus berjalan.

Jadi kita harus melakukan dua hal lagi agar bot kita terus berjalan:

  1. buat web server di repl.it
  2. mengatur Uptime Robot untuk terus melakukan ping ke server web

Membuat Web Server di Repl.it

Pertama, kita perlu membuat file keep_alive.py di dalam folder project. Kemudian copy code berikut ke dalam file.

from flask import Flask
from threading import Thread

app = Flask('')

@app.route('/')
def home():
    return "Hallo, saya masih aktif!"

def run():
  app.run(host='0.0.0.0',port=8080)

def keep_alive():
    t = Thread(target=run)
    t.start()

Dalam kode ini, kita menggunakan Flask untuk memulai web server. Server akan mengembalikan “Hello. Saya masih aktif!” kepada siapa saja yang mengunjunginya.

Di bagian main.py setelah import json, kita juga perlu import keep_alive yang barusan kita buat.

from keep_alive import keep_alive

Kemudian diatas client.run() taruh keep_alive(), lalu klik run dan akan muncul web server baru. Copy url pada web server untuk dimasukkan ke dalam uptime robot.

web server untuk bot discord

Setup Uptime Robot

Sekarang kita perlu mengatur Robot Uptime untuk melakukan ping ke server web setiap lima menit. Hal ini agar bot dapat terus berjalan.

Pertama buat akun terlebih dahulu di uptime robot

Setelah itu, masuk ke akun kalian, klik “Add New Monitor”.

Pilih “HTTP(s)” sebagai Type Monitor dan beri nama apa Bot Discord. Kemudian, paste web server url kalian dari repl.it. Terakhir, klik “Create Monitor”.

setup uptime robot untuk bot discord

Penutup

Selamat kita telah berhasil membuat bot terus berjalan sehingga orang dapat selalu berinteraksi dengan bot discord di Repl.it

Kita telah belajar bagaimana cara membuat bot disocrd dengan python dan juga membuat bot agar terus berjalan di cloud.

Jika masih terdapat kesulitan, kalian bisa komentar dibawah sini.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top