![]() |
Program AI Chatbot C++ |
Tetapi, kali ini kita akan membuat Chatbot AI dengan menggunakan Software eSpeak sebagai perantara suara yang akan dikeluarkan dan juga C++ sebagai bahasa pemrograman yang digunakan.
Silahkan kalian download terlebih dahulu Software eSpeaknya, kemudian install pada sistem komputer kalian. Proses instalasi eSpeak, sama dengan proses instalasi program lainnya. Jika selesai diinstall, file yang kita butuhkan hanya espeak.exe nya saja.
Kalian cukup copy kemudian paste eSpeak.exe kedalam folder yang sama dimana kalian akan mengerjakan project Chatbot AI kali ini. Hal ini untuk memudahkan proses pemanggilan eSpeak nantinya. Atau jika kalian tidak mau ribet, langsung saja kalian bikin project di tempat default eSpeak kalian.
MEMBUAT PROJECT CHATBOT AI DENGAN C++
Pada tutorial kali ini kita menggunakan IDE Dev-C++ 5.11 untuk membuatnya, kalian juga bisa membuatnya dengan IDE kesayangan kalian masing – masing. Ataupun jika tidak memiliki IDE gunakan saja Text Editor. Langsung saja kita mulai Tutorial membaut Chatbot AI menggunakan C++.
1. Pertama : Silahkan buat terlebih dahulu project di IDE kalian
![]() |
Project C++ dengan Dev-C++ |
2. Kedua : Kalian pilih empty project untuk tempat kita memulai membuat Chatbot AI dengan C++
![]() |
Empty Project Dev-C++ |
3. Ketiga: Save dengan nama folder yang kalian suka, untuk project ini saya menamainya bot. Dan file dengan nama bot.dev
![]() |
Folder baru Dev-C++ |
Setelah ketiga cara diatas kalian patuhi, maka kita akan beranjak untuk mulai membuat beberapa file dan kita kan siap untuk mulai menuliskan baris code.
};
Pada code yang sudah kita tuliskan diatas, code tersebut merupakan class yang berfungsi agar mesin atau program kita mengetahui teks maupun suara keluaran dari kalimat nantinya.
}
Fungsi yang kita buat diatas adalah untuk melakukan konversi atau perubahan pada kalimat yang akan diinput, ataupun yang tersimpan nantinya untuk diubah menjadi audio, atau suara.
Terlihat pada string perintah kita melakukan penggabungan kalimat disana, kemudian di line selanjutnya kita konversi kedalam karakter. Kemudian masih sama saat menggunakan Python, kita akan gunakan CMD untuk memanggil eSpeak. Di kode dapat kita lihat bahwa terdapat parameter
Selanjutnya tambahkan lembar kerja baru (CTRL+N, confirm YES) save dengan otak.h, lalu berikan code seperti berikut.
Pada code kali ini hanyalah sebagai request dan response nantinya. Disini kita membuat fungsi respon untuk mendapatkan text sekaligus menyimpan text yang diinput nantinya. Kemudian fungsi bicara untuk mengelurakan response dalam bentuk suara.
Nah,pada code yang sedikit panjang diatas kita membuat inti project kali ini, sebuah otak. Yap, disini kalimat yang diinput akan dicari pasangannya.
Terlihat pada fungsi otak kita akan membuka file bernama penyimpan.txt yang berada didalam folder bank. File ini akan kita buat nantinya. Kemudian isi file ini akan kita eksplor semuanya menggunakan while loop untuk mendapatkan output yang cocok.
Dalam menghandle pertanyaan yang tidak ada pada file memorynya atau dalam tutorial ini namanya adalah penyimpan.txt. ChatBot akan mengambil alih pertanyaan kamu dan mengulangi pertanyaan kamu. Kemudian jawaban yang kamu berikan selanjutnya akan otomatis tersimpan pada line terakhir pada file penyimpan.txt
main(){
}
MENULIS CODE UNTUK CHATBOT C++
Biasanya akan ada lembar kerja kosong (biasanya Untitled1) save dengan suara.h, kemudian kalian tuliskan code berikut ini. #ifndef _SUARA_H
#define _SUARA_H
#include <iostream>
using namespace
std; class
suara{ public
: void
bicara(string kalimat); };
#endif
Pada code yang sudah kita tuliskan diatas, code tersebut merupakan class yang berfungsi agar mesin atau program kita mengetahui teks maupun suara keluaran dari kalimat nantinya.
Baca Juga: Tips Sederhana Untuk Menjadi Programmer dan BloggerKemudian tambahkan lembar kerja baru (CTRL+N, confirm YES) save dengan suara.cpp, masukkan code dibawah ini.
#include "suara.h"
#include <iostream>
#include <windows.h>
using namespace
std;
void
suara::bicara
(string kalimat){ string perintah = "espeak -vid
\"
"
+kalimat+"
\"
"
;
const char*
perintahDikirim = perintah.c_str();cout
<<kalimat <<endl;system
(perintahDikirim); }
Fungsi yang kita buat diatas adalah untuk melakukan konversi atau perubahan pada kalimat yang akan diinput, ataupun yang tersimpan nantinya untuk diubah menjadi audio, atau suara.
Terlihat pada string perintah kita melakukan penggabungan kalimat disana, kemudian di line selanjutnya kita konversi kedalam karakter. Kemudian masih sama saat menggunakan Python, kita akan gunakan CMD untuk memanggil eSpeak. Di kode dapat kita lihat bahwa terdapat parameter
-vid
yang berguna untuk memberitahu eSpeak bahwa Chatbot AI kita menggunakan suara orang indonesia, ya meskipun gak selalu benar dalam pengucapan.Selanjutnya tambahkan lembar kerja baru (CTRL+N, confirm YES) save dengan otak.h, lalu berikan code seperti berikut.
#ifndef _OTAK_H
#define _OTAK_H
#include <iostream>
#include <fstream>
#include "suara.h"
using namespace
std; class
otak{ public
: void
respon(string kalimat); void
bicara(string kalimat); suara Suara;
};
#endif
Pada code kali ini hanyalah sebagai request dan response nantinya. Disini kita membuat fungsi respon untuk mendapatkan text sekaligus menyimpan text yang diinput nantinya. Kemudian fungsi bicara untuk mengelurakan response dalam bentuk suara.
Kemudian tambahkan lembar kerja baru (CTRL+N, confirm YES) save dengan otak.cpp, seperti biasa langsung coding dengan code berikut.
#include "otak.h"
#include <iostream>
#include <fstream>
using namespace
std; void
otak::respon
(string kalimat){ fstream ingatan;
ingatan.open
("bank/penyimpan.txt"
, ios::in);
while
(!ingatan.eof()){
string ingatanOtak;
getline(ingatan, ingatanOtak);
if
(ingatanOtak == kalimat){
string pesanDisampaikan;
getline(ingatan, pesanDisampaikan);
Suara.bicara
(pesanDisampaikan);
return
;
}
}
ingatan.close
();
ingatan.open
("bank/penyimpan.txt"
, ios::out | ios::app );
ingatan<<kalimat<<endl;
Suara.bicara
(kalimat);
string yangAkanDisimpan;
cout
<<"KAMU : "
;
getline(cin
, yangAkanDisimpan);
ingatan<<yangAkanDisimpan<<endl;
ingatan.close();
}
void
otak::bicara
(string kalimat){
this->Suara.bicara
(kalimat);
}
Nah,pada code yang sedikit panjang diatas kita membuat inti project kali ini, sebuah otak. Yap, disini kalimat yang diinput akan dicari pasangannya.
Terlihat pada fungsi otak kita akan membuka file bernama penyimpan.txt yang berada didalam folder bank. File ini akan kita buat nantinya. Kemudian isi file ini akan kita eksplor semuanya menggunakan while loop untuk mendapatkan output yang cocok.
Baca Juga: Unik ! Inilah Jadinya Bahasa Program adalah Senjata !Jika terdeteksi menemukan jawaban yang cocok maka jawaban akan keluar sebagai teks dan juga suara. Namun, bagimana jika pertanyaan yang kita masukkan belum ada pada memori si chatbot ?
Dalam menghandle pertanyaan yang tidak ada pada file memorynya atau dalam tutorial ini namanya adalah penyimpan.txt. ChatBot akan mengambil alih pertanyaan kamu dan mengulangi pertanyaan kamu. Kemudian jawaban yang kamu berikan selanjutnya akan otomatis tersimpan pada line terakhir pada file penyimpan.txt
Langkah terakhir kita tambahkan lembar kerja baru (CTRL+N, confirm YES) save dengan main.cpp, dilanjutkan memasukkan code berikut ini.
#include <iostream>
#include "otak.h"
using namespace
std; main(){
otak BOT;
for
(;;){ cout
<<"\nKAMU : "
; string kalimat;
getline(cin
, kalimat);
cout<<
"BOT : "
; BOT.respon
(kalimat);
}
}
Pada code diatas kita hanyalah membuat CLI nya atau Command Line Interfacenya yang nanti menampilkan kolom untuk kamu menuliskan kalimat dan kolom chatbot kamu untuk menjawabnya.
COMPILE FILE CHATBOT C++
Setelah semua tertulis, kemudian compile (F11), jika tidak ada error maka akan muncul nama exe sesuai dengan nama dev yang kalian simpan.
Setelah itu buat folder dengan nama yang kalian suka, disini saya menggunakan nama folder BOT
![]() |
Save file bot C++ |
Didalam folder BOT ada lagi folder dengan nama bank, yang didalamnya berisi file penyimpan.txt
![]() |
Folder bank C++ |
![]() |
File Penyimpan Memori C++ |
Kalian bisa menyimpan kalimat kalian ke file penyimpan.txt, sebagai contoh isi di dalam file adalah
![]() |
Isi Penyimpanan Memori bot C++ |
Silahkan kalian coba mengeksekusi bot.exe , maka akan tampil ChatBot kalian dalam bentuk CLI sebagai berikut
![]() |
Tampilan bot C++ |
Penutup
Nah, bagaimana tutorial kali ini, cukup melelahkan dan menguras pikiran bukan. Disitulah letak keseruannya. Coding adalah seni bukan ??
Jika kalian suka dengan tutorial C++ kali ini tentang Membuat AI Chatbot Bersuara Seperti Jarvis Menggunakan Bahasa C++ Silahkan kalian komen dibawah, silahkan juga tanyakan jika ada yang bingung tentang tutorial diatas.
34 komentar
komentarKeren dah .
ReplyNamnya saja Otak Keren mz :)
Replypunya saya botnya kok gak respon ya ? , awalnya kan ada error di file main.cpp pas di line
Replyfor(;;){
cout<<\nKAMU : "; ,
nah saya tambah jadi gini
for(;;){
cout<<:"\nKAMU : "; , sisanya udh sama persis
Ahhh, maaf - maaf ada kesalahan pengetikan itu
Replyseharusnya jadi
cout<<"\nKamu : ";
kurang di tanda (" "),
Terima Kasih yaa, udah diedit ...
keren gan
Replyjejak dulu prakteknya nanti
gan kenapa kok "failed to read voice 'idselamat pagi'?
Replyini gimna gan kok error ya?
ReplyC:\Users\Vildan\AppData\Local\Temp\cc8LzKJU.o main.cpp:(.text+0x74): undefined reference to `otak::respon(std::string)'
Gan klo failed to read voice 'id'. Tuh gimana cara ngatasinya
Replyfailed to read voice 'idhai'/'idselamatpagi'
ReplyMohon Solusinya Min
maf ni kok gc ada respon ya dah di printah tpi bot nya gc ngerespon padahal dah di kasi jawabanya
Replykok setelah di compile malah muncul ini ya
Reply# Project: Project9
# Makefile created by Dev-C++ 5.7.1
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = suara.o otak.o main.o
LINKOBJ = suara.o otak.o main.o
LIBS = -L"C:/Program Files/Dev-Cpp/MinGW64/lib32" -L"C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32" -static-libgcc -m32
INCS = -I"C:/Program Files/Dev-Cpp/MinGW64/include" -I"C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include"
CXXINCS = -I"C:/Program Files/Dev-Cpp/MinGW64/include" -I"C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include" -I"C:/Program Files/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++"
BIN = bot.exe
CXXFLAGS = $(CXXINCS) -m32
CFLAGS = $(INCS) -m32
RM = rm.exe -f
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
suara.o: suara.cpp
$(CPP) -c suara.cpp -o suara.o $(CXXFLAGS)
otak.o: otak.cpp
$(CPP) -c otak.cpp -o otak.o $(CXXFLAGS)
main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
dan di bagian ini eror
Reply$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
Assalamualaikum bang mau nanya, setelah mengikuti tutor di atas ada kendala pas waktu di compile yang muncul cuma Kamu:(kosong tdk ada chatnya) minta solusinya mas?
Replykak minta solusi dong aku udah berhasil cuman kok bot nya gk bales bales ya knp :( solusi dong kak
ReplyGan itu code yang mau di compile yang pas di bagian akhir disimpannya nama sama exensinya apaan
Replybh
Replymas punya saya ko error
Reply/tmp/cct05SBn.o: In function `main':
main.cpp:(.text+0x7f): undefined reference to `otak::respon(std::__cxx11::basic_string, std::allocator >)'
collect2: error: ld returned 1 exit status
gini mas, mohon bantuannya
Ini balesnya pake tulisan kaya simi simi ya gak pake suara kan kaya jarvis?
ReplySemua dah di lakuin , cuma error di BOT nya gk mau respon setelah kita inputkan kata dari kita
Replyjadi bagi yang errornya failed to read voice 'idhai'/'idselamatpagi' tambahkan di penyimpan.txt "" dan _ contohnya seperti ini ==> "selamat_pagi_ada_yang_bisa_saya_bantu?" di jamin work
Replyg++.exe -c suara.cpp -o suara.o -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
Replyg++.exe: error: Files: No such file or directory
g++.exe: error: (x86)/Dev-Cpp/MinGW64/include: No such file or directory
g++.exe: error: Files: No such file or directory
g++.exe: error: (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include: No such file or directory
g++.exe: error: Files: No such file or directory
g++.exe: error: (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include: No such file or directory
g++.exe: error: Files: No such file or directory
g++.exe: error: (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++: No such file or directory
F:\bot\Makefile.win:28: recipe for target 'suara.o' failed
mingw32-make.exe: *** [suara.o] Error 1
error saya di bagian sini mohon bantuan penyelesaianya ya admin atau user yg bisa
kalo gada repon nya gimana ya>>
Replybro,kok punya ku ada yang salah ya di script yang kedua,yang suara.YANG INI:
Reply#include "suara.h"
#include
#include
using namespace std;
void suara::bicara(string kalimat){
string perintah = "espeak -vid\""+kalimat+"\"";
const char* perintahDikirim = perintah.c_str();
cout <<kalimat <<endl;
system(perintahDikirim);
}
YANG PALING ATAS ITU #include "suara.h"
kenapa ya???????????????????????????????????????????????????
Hallo kakak,ada yang tau kenapa kok tidak ada suaranya pas saya compile&run,gimana ya??
ReplyHallo kakak,saya berhasil,cuma 1 masalahnya,kok tidak bersuara ya?padahal ada espeak nya loh
Replybang bagi file sumbernya aja repot nih eror trs mohon kerja samanya
Replymantab banget gan
Replypapan penjepit pcb
bot nya pas running dan sudah input
Replymisal
kamu : selamt pagi
bot : kosong gknada tulisan gk ada suara
Ka, Belajar C++ dimna yah?
Replypunya saya sudah ok.tapi setelah dijalankan tidak ada keluar suara BOTnya. mohon dibantu ?
ReplyVisitor baik, selalu tinggalkan jejak.
Silahkan komen yang relevan & tidak berlebihan, tidak berbau SARA & Pornografi, tidak mengandung promosi.
^ _ ^ Happy Blogging !