Chapter 2: Membuat bot Telegram untuk auto postinglaporan ke group.
Tulisan ini merupakan lanjutan dari tulisan sebelumnya mengenai dasar-dasar bot Telegram dan cara membuatnya.
Bagi yang belum membacanya silahkan ikuti tautan berikut ini :
[Chapter 1: Cara Membuat Bot Telegram dari Dasar]
Sebelum melanjutkan, berikut ini daftar apa saja yang saya gunakan dalam panduan ini:
- Bot Telegram
- Group Telegram
- Web Server
- Framework PHP CodeIgniter
- Database MySQL/ MariaDB
Penjelasan singkatnya yaitu sebagai berikut.
1) Bot Telegram
Bot Telegram disini akan digunakan sebagai asisten alias si pelapor yang bertugas menyampaikan laporan ke Group. Inilah yang dimaksud: (auto posting).
2) Group Telegram
Group Telegram ini digunakan khusus untuk pelaporan, maksudnya semua laporan rutin akan kita posting ke groupini.
3) Web Server
Karena aplikasi yang akan dibangun berbasis web maka kita memerlukan web server untuk menjalankannya. Bisa apacheataupun NGINXjika dijalankan secara lokal. Jika menggunakan hostingan ya lebih bagus.
4) Framework PHP: CodeIgniter
Untuk memudahkan pekerjaan kita gunakan saja frameworkCodeIgniter, silahkan downloaddi situs resminya : CodeIgniter.
5) Database MySQL / MariaDB
Karena menggunakan PHP, maka kita pilih database ini untuk menyimpan data-data laporan yang akan kita input pada formyang akan kita buat.
Memasukkan Bot Telegram ke Group
Saya anggap anda sudah mempunyai bot Telegramkarena ketika anda membaca panduan ini, seharusnya anda sudah paham dasar-dasar bot Telegram yang pernah saya jelaskan pada panduan sebelumnya.
Untuk memasukkan bot telegram ke group, caranya yaitu klik detil informasi kontak bot Telegram dan pilih opsi Add to Group
.

Setelah memasukkan bot Telegram ke group, langkah selanjutnya yaitu mengetahui chat_idgroup dengan menggunakan metode: getUpdates.
Silahkan copy pastealamat berikut dan sesuaikan bot TOKEN-nya:
https://api.telegram.org/bot12345678:ABCDEFGHIJKLMnoPQRS-tUwXYZ/getUpdates
Jika sudah benar, maka hasilnya akan seperti ini:
{"ok":true,"result":[{"update_id":670679264,"message":{"message_id":1004,"from":{"id":87654321,"is_bot":false,"first_name":"Diko","last_name":"Pian","username":"dikopian","language_code":"en"},"chat":{"id":-1001059123456,"title":"TEST BOTS","type":"supergroup"},"date":1564826072,"new_chat_participant":{"id":1234567890,"is_bot":true,"first_name":"dicoffeean \u2615","username":"dicoffeeanbot"}]}}]}Dari contoh di atas, sekarang kita sudah dapat ID Group yang dibutuhkan yaitu: -1001059123456dengan nama group: TEST BOTS.
Sampai disini, persiapan awal untuk membuat bot telegram laporan sudah selesai, waktunya kita main di backendatau aplikasinya.
Membuat Database MySQL untuk Pelaporan
Buat databasebaru dengan nama : laporan_botatau apapun bebas terserah anda.
Lalu copy paste scripttabel SQL laporan_harianberikut ini.
-- Host: localhostSETSQL_MODE ="NO_AUTO_VALUE_ON_ZERO"; SETtime_zone ="+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; ---- Database: `laporan_bot`---- ------------------------------------------------------------ Table structure for table `laporan_harian`--CREATETABLE`laporan_harian` ( `id` int(5) NOTNULL, `tanggal` varchar(30) NOTNULL, `nama` varchar(20) NOTNULL, `penjualan` int(5) NOTNULL) ENGINE =InnoDB DEFAULTCHARSET =utf8mb4; ---- Indexes for dumped tables------ Indexes for table `laporan_harian`--ALTERTABLE`laporan_harian` ADDPRIMARYKEY (`id`); ---- AUTO_INCREMENT for dumped tables------ AUTO_INCREMENT for table `laporan_harian`--ALTERTABLE`laporan_harian` MODIFY `id` int(5) NOTNULLAUTO_INCREMENT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;Skrip di atas akan membentuk tabel laporan_harian dengan 4 kolom antara lain:
- id
- tanggal
- nama
- penjualan
It’s time to coding . . .
Membuat Form Input untuk Pelaporan
Untuk contoh mengenai formbot telegram sebenarnya sudah ada yang membahasnya disini: Membuat form untuk mengirim pesan dengan Telegram bots.
Kali ini kita akan mengembangkannya dengan menggunakan frameworkCodeIgniter.
Untuk setupawal CodeIgniter saya tidak akan membahasnya disini, silahkan cari artikel terkait atau cukup ikuti dokumentasi pada situs resminya.
Membuat Controller dan Views CodeIgniter
Buat fileController dengan nama Report.php, lalu salin codedi bawah ini.
<?phpdefined('BASEPATH') OR exit('No direct script access allowed'); classReportextendsCI_Controller{ function__construct(){ parent::__construct(); } functionindex() { $this->load->view('views_laporan_harian'); } functionsubmit_report(){ $tanggal= date("Y-m-d H:i:s"); $nama= $this->input->post('nama'); $penjualan= $this->input->post('sales'); $report_data= array( 'tanggal'=> $tanggal, 'nama'=> $nama, 'penjualan'=> $penjualan); $this->db->insert('laporan_harian', $report_data); $this->load->view('views_laporan_harian_result'); } }Di dalam Controller Reportdi atas, bisa kita lihat ada 2 (dua) fileviewsyaitu:
views_laporan_harianviews_laporan_harian_result
Sekarang, saatnya kita buat ke-dua filetersebut.
Buat file pada folder : application/views/views_laporan_harian.phpdan salin skrip berikut.
<divclass="container"><divclass="small text-muted">Home » Report </div><hr/><divclass="col-md-6"><h4>Input Laporan Harian </h4><formaction="./submit_report"method="POST"><divclass="form-group"><labelfor="nama">Nama:</label><inputid="nama"class="form-control"name="nama"required=""type="nama"placeholder="Masukkan nama anda . . ."/></div><divclass="form-group"><labelfor="sales">Jumlah Penjualan:</label><inputid="sales"class="form-control"name="sales"required=""type="number"placeholder="Jumlah penjualan . . ."/></div><divclass="form-group form-check"></div><buttonclass="btn btn-primary"type="submit">Input </button></form></div></div>Satu lagi application/views/views_laporan_harian_result.php:
<divclass="container"><br/><divclass="small text-muted">Home » Results </div><hr/><divclass="col-md-12"><h5>Hasil Input Laporan Harian </h5><divclass="panel panel-body">Hi, data Anda berhasil diinput!<br/><br/><formid="telegramForm"method="POST"><inputid="telegram_id"class="form-control"name="chat_id"type="hidden"value="-1001059123456"/><inputclass="form-control"name="text"type="hidden"value='Waktu : <?phpechodate("Y-m-d H:i:s");?><?phpecho"\n";?>Nama : * <?phpecho$this->input->post('nama');?><?phpecho"\n";?>Jumlah Penjualan : *<?phpecho$this->input->post('sales');?><?phpecho"\n\n\n*>>>* _Laporan via bot Telegram_ *<<<*";?>'/><br/><buttonid="sendToGroup"class="btn btn-primary"type="submit">Posting ke Group </button></form></div></div></div><script>$(document).on('click', '#sendToGroup', function(e){ SwalTelegram(); e.preventDefault(); }); functionSwalTelegram(){ if($("#telegram_id").val()) { swal({ title: 'Posting ke group?', text: "Pastikan Laporan anda sudah benar", type: 'question', showCancelButton: true, confirmButtonColor: '#3FC3EE', cancelButtonColor: '#E91E63', confirmButtonText: 'Ya!', showLoaderOnConfirm: true, preConfirm: function() { returnnewPromise(function(resolve) { $.ajax({ url: 'https://api.telegram.org/bot12345678:ABCDEFGHIJKLMnoPQRS-tUwXYZ/sendMessage?parse_mode=Markdown', type: 'POST', data: $('#telegramForm').serialize(), dataType: 'html'}) .done(function(response){ swal({ title: "Sukses!", html: "Silahkan laporan berhasil dikirim", type: "success", allowOutsideClick: false, timer:5000, showConfirmButton: false, animation: false, customClass: 'animated jackInTheBox', }) }) .fail(function(){ swal('Oops...', 'Ada kesalahan ☹️', 'error'); }); }); }, allowOutsideClick: false}); } else{ swal({ title: "Warning!", html: "Ooops ada kesalahan system!", type: "warning", allowOutsideClick: false, timer:3000, showConfirmButton: false}); } } </script>Keterangan [PENTING] :
- Perhatikan
<input name='chat_id'>karena itu merupakan Chat ID Group yang tadi kita bahas di atas. - Jangan lupa ganti dengan TOKEN bot anda pada fungsi javascript
SwalTelegram().
[FINAL] Testing Bot Telegram Auto Posting ke Group
Jika tidak ada kesalahan, waktunya kita uji coba alias testing.
Buka alamat : https://localhost/Codeigniter/report/atau https://localhost/Codeigniter/index.php/report/

Kita akan coba input Nama: dicoffeean dan Jumlah Penjualan: 21.
Hasilnya yaitu seperti berikut ini.

Sekarang klik tombol “Posting ke Group”, jika berjalan lancar seharusnya muncul popupSweetAlert.

Jika sukses, tampilan SweetAlert akan berubah menjadi seperti di bawah ini.

Sekarang lihat di group, apakah ada pesan dari bot telegram?

Pesan berhasil terkirim otomatis ke groupyang dituju, dan jangan lupa cek di database-nya apakah sudah terinput seperti ini?

Kode dan fungsi PHP di atas hanyalah basic functionsaja. Untuk pengembangan lebih lanjut, silahkan disesuaikan dengan kebutuhan anda masing-masing.
Jika ada saran atau pertanyaan lainnya, silahkan diskusikan pada kolom komentar yang telah disediakan.
Baca juga:
Mau test Bot Telegram Laporan tinggal isi form dan 100% tanpa coding? Klik disini : Bot Telegram Builder Indonesia
Yang mau nonton versi videonya silahkan :
Jangan lupa SubscribeChannelnyaya, masukan-masukan yang ada di kolom komentar sedang admin garap versi videonya. Yuk jangan ketinggalan!

Mantullll. Informatif dan sangat membantu.
Terima kasih
Sama-sama om, makasih udah berkunjung
bang kalau buat bot autopost ke chanel tuh gimana ya? jadi semua pengguna yang kirim chat ke bot langsung kekirim ke chanel gtu
Ka boleh tanya ngga kalau untuk ngirim ke banyak akun telegram dari bot tersebut bagaimana?
Bisa pake perintah
foratau dibikinarraylistchat_idnyamantap jiwa mempesona.
ilmu yang bermanfaat, semoga berkah
Amin, terima kasih Kang!
Wah menarik sekali jadi ingin blajar mencoba bikin autoposting tapi msih blm bgitu paham.hehe mohon di maklum.luar biasa membantu sekali.
Sama-sama gan, senang bisa membantu
Saya masih pemula, saya kurang paham kalo cuma baca, bisa bikinin tutorial di yt ngga bang? Kalo di buatin ya Alhamdulillah, ngga ya udh, saya berusaha mengerti dan terus belajar
insyaAllah nanti sy buatkan jika ada waktu dan kesempatannya. Trims
Sudah tersedia di YouTube DICOFFEEAN CHANNEL
Jangan lupa di subscribe juga ya, trims
kereen x bang
Keren gan konek ke dB , Bahas bikin fungsi Form di dalam bot tele dong gan, jadi ketika kita bikin button Lapor , keyboardnya on ketika kita ketik Laporan hari ini send otomatis ke grup/chatid cuman web ini sama sebelah aja yg ngulas bot tele dengan bahasa yang aman buat newbie Kya saya hehe semangat terus
Makasih gan, next time kalo ada waktu buat nulis lagi Insha Allah saya bahas
Mau tanya klo bikin bot yg autoposting buat beriklan ke grup orang secara otomatis gmn caranya.atau klo beli jadi token nya brapa.mohon infonya
Nanti kalo udah jadi 100%, saya publish di dicoffeean, tks
knp pas saya buat kok ga bisa ya ? form nya udah bisa keisi tapi ga bisa masuk database sama ke kirim ke telegram
mohon bantuannya
Silahkan di teliti lagi step by stepnya, untuk postingan ini sebelum saya publish tentunya sudah saya test dan 100% worked, Tks
Mohon Pencerahannya,, knp pd saat ikutin langkah getUpdates diatas tidak muncul apa2, dan hnya muncul begini..
{
“ok”: true,
“result”: [
]
}
Kalo gak melakukan aktivitas apa-apa memang seperti itu, coba botnya dimasukkan terlebih dahulu ke Group, atau coba kirimi pesan botnya, lalu
getUpdateslagi secara berkala, harusnya ada updatenyabang masalhanya dmn yah kalau yang muncul ini
.fail(function(){
swal(‘Oops…’, ‘Ada kesalahan ☹️’, ‘error’);
});
Cek di console nya pak . klo ada keterangan Unauthorized , revoke bot tokennya ganti yang baru
Om saya ijin bikin tutorial Video dari materi Om yang bagus ini ya
Silahkan, jgn lupa sertakan link sumberya om
bang,berhasil…kalau untuk kirim seluruh data di tabel apa bisa menggunakan input text dalam form atau ada allternatif lain bang?trimakasih..
Bisa om, mau ditambahin input text juga tentu bisa
Bang kalo sebaliknya ada tutorialnya nya gk. jadi hasil outputnya yang di web inputnya di telegram.
Kalo ada waktu, insya Allah nanti saya buat tulisannya ya om
nah bagian ini, saya tunggu bang
kalo di cpanel gmna ka, langsung live web hosting ga localhost? karena ga ada codeigniter di cpanel.
makasih ka
Sebenernya tinggal di upload aja kok sama, next time saya buatkan video nya ya om. Yuk di subscribe 🙂
Bisa test Bot nya ini : wadagizigDEV
bang, kalo proses kirim ke telegramnya otomatis gimana ya ..
jadi misal kalo ada data baru yang berhasil di input/disimpan ke database, maka otomatis mengirimkan notif ke telegram tanpa harus ada / klik tombol posting ke group
Bisa pake schedjuler / crontab atau membuat suatu fungsi yang bisa deteksi perubahan database (CRUD) lalu send notif
hmm terlalu jauh gan …
yg di atas itu kan setelah form diisi dan klik input .. muncul halaman Hasil Input laporan harian trus dibawahnya ada tombol Posting ke Group … bah kalo tombol tersebut di klik baru proses send ke group
nah kalo maksud saya, begitu diisi dan klik input, maka selain menyimpan ke database langsung juga mengirim ke telegram tanpa perlu ada tombol posting ke grup lagi ..
tks
Owh maksudnya langsung 1 form aja? ya kalo itu lebih gampang gan, tinggal disesuaikan aja di formnya langsung ditambahkan ID group tujuan. Jadi ada 2 tugas yakni: POST insert to DB & kirim notif. Kalo ada waktu nanti sy tambahkan di postingannya. Trims
ilmu yang bermanfaat 🙂
di tunggu yah mas cara langsung mengirim ke telegram tanpa perlu ada tombol posting ke grup lagi.
Assalamu’alaykum.. sebelumnya terimakasii ni atas programnya mas. Ane mau tanya.. maksud dari “ganti dengan TOKEN bot anda pada fungsi javascript SwalTelegram().” gimana / ada di line berapa ya? maaf ane gagal paham
Silahkan lihat versi videonya ya gan biar lebih jelas
min anda membantu skripsi saya
Wah Alhamdulillah bermanfaat ya buat referensi
bang, kalo prosesnya dibalik, jadi dari telegram ke codeigniter apakah pernah buat tutorialnya ?