## Implementasi Neural Network Multilayer Perceptron Dan Stemming Nazief & Adriani Pada Chatbot Faq Prakerja
Muhammad Padhilah 1 , Muliadi 2 , Dwi Kartini 3 , Dodon Turianto Nugrahadi 4 , Muhammad Itqan Mazdadi 5 1,2,3,4,5 Ilmu Komputer FMIPA, Universitas Lambung Mangkurat, Kalimantan Selatan,
Indonesia
email: padhilahm@gmail.com

## Abstract
The Prakerja Card Program is a job skills development and entrepreneurship program for job seekers.  The  Prakerja  Card  Program  has  a  list  of  frequently  asked  questions  or  called Frequently Asked Questions (FAQ), because FAQ is still a list of questions that approach what the  user  typed,  and  users  should  look  to  find  out  which  questions  match  the  questions. Therefore,  it  takes  a  way  to  respond  directly  to  users,  namely  with  a  chatbot.  Chatbot  is  a conversational  modeling  program  that  uses  human  natural  language  to  simulate  interactive conversations between machines and humans. The chatbot interprets messages from the user, processes  the  user's  words,  determines  what  the  chatbot  needs  to  do  based  on  the  user's instructions, executes them, and finally informs the user of the conclusions. This research used Neural Network Multilayer Perceptron algorithm and Nazief & Adriani stemming in creating a chatbot with the data used is FAQ data on the Prakerja website. The purpose of this study is to find  out  the  great  performance  accuracy  of  chatbot  responses  produced  by  Neural  Network Multilayer Perceptron and Nazief & Adriani on Prakerja FAQ chatbots. The results showed that the chatbot could answer 72 questions with a difference of 100 questions asked by respondents.
Keywords :  Program  Prakerja,  Chatbot,  Neural  Network  Multilayer  Perceptron,  Stemming Nazief & Adriani

## Abstrak
Program  Kartu  Prakerja  merupakan  program  pengembangan  keterampilan  kerja  dan kewirausahaan bagi pencari kerja. Program Kartu Prakerja  memilki daftar pertanyaan yang sering  diajukan  atau  disebut  dengan  Frequently  Asked  Questions  (FAQ),  karana  FAQ  masih berupa daftar pertanyaan yang mendekati apa  yang diketik pengguna, dan pengguna  harus mencari untuk mengetahui pertanyaan  mana yang cocok dengan pertanyaannya. Oleh karena itu,  dibutuhkan  cara  untuk  merespons langsung ke  pengguna  yaitu  dengan  chatbot.  Chatbot merupakan program pemodelan percakapan yang menggunakan bahasa alami manusia untuk mensimulasikan  percakapan interaktif antara mesin dan manusia. Chatbot menafsirkan pesan dari  pengguna,    memproses  kata-kata  pengguna,  menentukan    apa  yang  perlu  dilakukan chatbot  berdasarkan  instruksi  pengguna,  mengeksekusinya,  dan  akhirnya  memberi  tahu pengguna hasil kesimpulan. Penelitian ini menggunakan algoritma Neural Network Multilayer Perceptron  dan  stemming  Nazief  &  Adriani  dalam  membuat  chatbot  dengan  data  yang digunakan adalah data FAQ pada website Prakerja. Tujuan penelitian ini adalah mengetahui besar  performa  akurasi  respon  chatbot  yang  dihasilkan  oleh  Neural  Network  Multilayer Perceptron  dan  Nazief  &  Adriani  pada  chatbot    FAQ  Prakerja.  Hasil  penelitian  menunjukan chatbot dapat menjawab 72 pertanyaan dengan bernar dari total 100 pertanyaan yang yang diajukan oleh responden.
Kata  kunci :  Program  Prakerja,  Chatbot,  Neural  Network  Multilayer  Perceptron,  Stemming Nazief & Adriani
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti

## 1. PENDAHULUAN
Prakerja  merupakan  program  pengembangan  keterampilan  kerja  bagi pencari  kerja  dan  pekerja/buruh  yang  diberhentikan.  Program  Prakerja menyediakan  media  informasi  yang  dirancang  untuk  membantu  pengguna mempelajari  cara  menggunakan  program  kartu  prakerja  dan  layanan  yang diberikan.  Prakerja  mencakup  daftar  pertanyaan  yang  sering  diajukan  atau Frequently  Asked  Questions (FAQ)  dan    fitur  pencarian  yang    memudahkan pengguna  untuk  menemukan  pertanyaan  yang  sesuai  dengan  pertanyaan mereka.  Namun,  hasil  pencarian  mesin  pencari  ini  tetap  berupa  daftar pertanyaan  yang  mendekati  apa  yang  diketikan  pengguna,  dan  pengguna harus  mencari  untuk  mengetahui  pertanyaan    mana  yang  cocok  dengan pertanyaannya. Oleh  karena itu,  dibutuhkan cara  untuk merespon langsung ke pengguna yaitu menggunakan chatbots . Chatbots adalah  program  pemodelan percakapan yang menggunakan bahasa  alami  manusia  untuk  mensimulasikan    percakapan  interaktif  antara mesin dan  manusia. Chatbot menafsirkan pesan dari pengguna,  memproses kata-kata  pengguna,  menentukan    apa  yang  perlu  dilakukan chatbot berdasarkan  instruksi  pengguna,  mengeksekusinya,  dan  akhirnya  memberi tahu pengguna hasil kesimpulan [1].
Multilayer  perceptron (MLP),  juga  dikenal  sebagai  metode backpropagation yang  menggunakan  banyak layer ,  menggunakan output error untuk  mengubah  nilai  bobot  atau  disebut Backward [2].  Pada penelitian    Singh,  et  al.  (2018)  menjelaskan  bahwa chatbot dengan TensorFlow  menggunakan Neural  Network  Multilayer  Perceptron ,  dari  108 pertanyaan  pada  penelitan chatbot dapat  menjawab  74  pertanyaan  dengan benar  sehingga  menghasilkan  akurasi  68.51%  [3].  Penelitian  Mustaqim (2021)  menjelaskan  bahwa  dengan  metode Neural  Network  Multilayer Perceptron ,  pengujian  menggunakan  110  pertanyaan  yang  berbeda  dengan data  yang  dilatih  tetapi  mempunyai  kesamaan  maksud  dan  dari  pengujian model chatbot menghasilkan chatbot dengan akurasi yang baik yaitu sebesar 97,27%  dan  kesalahan  2,72%.  Dari  penelitian  tersebut  dapat  disimpulkan bahwa Multilayer perceptron dapat digunakan dalam membuat chatbot [4] .
Nazief & Adriani merupakan algoritma stemming yang termasuk dalam text preprocessing yang digunakan menemukan akar kata dengan menghapus awalan,  sisipan,  akhiran,  dan  semua  awalan  yang  sesuai  yang  terdiri  dari kombinasi    awalan  dan  akhiran.  Agastya  (2018)  menjelaskan  penelitian menggunakan stemming algoritma Nazief & Adriani , pada pengujian  dengan jumlah  data  500  diperoleh  hasil  pengujian  yang  sesuai  dengan  algoritma Nazief & Adriani yang mana stemming dapat meningkatkan akurasi [5].
Berdasarkan  uraian  diatas  maka  ditetapkan  metode  yang  peneliti gunakan  adalah Neural  Network  Multilayer  Perceptron sebagai  metode chatbot untuk training data  dan stemming Nazief  &  Adriani sebagai digunakan  pada  proses  pengembalian  kata  ke  kata  dasar  pada text preprocessing . Penelitian ini untuk menguji performa akurasi yang dihasilkan
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
metode Neural Network Multilayer Perceptron dan stemming Nazief & Adriani dalam chatbot FAQ prakerja.
2.  METODOLOGI PENELITIAN
Adapun prosedur penelitian dapat dilihat pada gambar 1.
Mulai Data Preprocessing Input pertanyaan oleh user Data Preprocessing pertanyaan dari user Training MLP Model MLP Prediksi Probabilitas Output jawaban Selesai Evaluasi Pengumpulan data FAQ prakerja Atur batas ambang kesalahan
Gambar 1. Prosedur penelitian
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti

## 1) Pengumpulan data FAQ prakerja
Data yang dipakai adalah data FAQ website prakerja. Data FAQ tersebut dikumpulkan dalam berkas JSON dengan format yaitu: { "intents": [ { "tag": "", "patterns": [""], "responses": [""] } } a) Tag merupakan  kategori  yang    digunakan  sebagai  acuan  dalam menentukan jawaban kepada user .
b) Pattern adalah  serangkaian  huruf  atau  berupa  pertanyaan  yang diharapkan sesuai dengan inputan user .
c) Responses merupakan  hasil  dari  jawaban  yang  dikembalikan berdasarkan tag dan pattern yang ditentukan oleh sistem.
2) Data preprocessing Data preprocessing adalah proses megolah teks yang dilakukan sebelum dipakai  untuk  proses Multilayer  Perceptron .  Adapun data  processing digunakan  pada  peneIitian  yaitu tokenizing,  case . folding,  stemming dan bag of word.
a) Tokenizing Tokenizing merupakan  proses  pemotongan string berdasarkan setiap kata yang membentuk string input . Untuk membagi kalimat menjadi  satu  kata,  memindai  kalimat  untuk  mencari  spasi  (spasi, tab, jeda baris), proses tokenizing dapat dilihat pada gambar 2 [6].
Cara mendaftar prakerja gimana Cara mendaftar prakerja gimana
Gambar 2 . tokenizing
b) Case Folding
Case folding adalah tahapan proses konversi semua karakter dalam teks  dokumen  menjadi  huruf  kecil  dan  menghilangkan  karakter non-az, proses case folding dapat dilihat pada gambar 3 [6].
Cara mendaftar
prakerja gimana
cara mendaftar prakerja gimana
Gambar 3 . Case folding
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
c) Stemming Stemming Proses menemukan akar  dari setiap token kata  dengan mengembalikan  kata  yang  dilampirkan  ke  bentuk  dasarnya. Metode stemming yang digunakan yaitu Nazief & Adriani dan untuk proses stemming dapat dilihat pada gambar 4 [6].
cara mendaftar prakerja
gimana cara daftar prakerja gimana
Gambar 4 . Stemming Nazief & Adriani
d) Bag of word
Bag  of  wor d  merupakan    model  yang  mempelajari    kosakata  dari semua  dokumen  dan  memodelkan  setiap  dokumen  dengan menghitung  jumlah  kemunculan  setiap  kata,  proses bag  of  word dapat dilihat pada Tabel 1 [7].
Tabel 1 . Bag of word Kalimat BoW Vector Cara 1 0 0 0 Daftar 0 1 0 0 prakerja 0 0 1 0 gimana 0 0 0 1

## 3) Training Multilayer Perceptron
Neural  Network  Multilayer  Perceptron (MLP)  adalah aritificial  neural network feedforward yang  terdiri  atas  sejumlah neuron dihubungkan dengan  bobot  penghubungnya.  MLP  digunakan  dalam  proses training data  untuk  mendapatkan  model  yang  akan  digunakan  untuk  prediksi dari  pertanyaan  pengguna.  Model  arsitektur  dari  MLP  merupakan network 3 layer dari node yang  terhubung,  yaitu layer input , layer tersembunyi,  dan layer output.  Pada  lapisan  MLP  memiliki activation function . Penelitian ini menggunakan 2 hidden layer dengan 2 percobaan yaitu hidden layer pertama  dan kedua  100,  50  dan 200,  100. Activation function meupakan fungsi untuk menentukan output neuron linier atau nonlinier . Activation function yang dipakai pada peneIitian yaitu:
a) Activation function ReLU ReLu atau Rectified  Linear  Unit merupakan activation  function yang memiliki  perhitungan  yang  sederhana.  Jika  ada  elemen  bernilai negatif, nilainya diubah menjadi 0 dan tidak ada operasi eksponensial,
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
perkalian,  atau  pembagian. Activation  function ReLu digunakan  pada penelitian  pada hidden  layer . Activation  function ReLu dapat dirumuskan pada persamaan 1 [4].
( )     { (1)
b) Activation function Softmax Activation  function  softmax adalah  fungsi  yang  dipakai  untuk perhitungan probabilitas dalam  menentukan  klasifikasi multiclass yang  kelas  keluarannya  memiliki  nilai  probabilitas  tertinggi.  Nilai probabilitas dari output yang  dihasilkan  oleh activation  function softmax adalah 0 hingga 1. Activation function softmax digunakan pada penelitian pada output layer . Activation function  softmax dirumuskan pada persamaan 2 [4].
(  ) (  ) ∑ (  ) , nilai i . = . 0, . 1, . 2, …, k (2)

## 4) Model Multilayer Perceptron
Proses selanjutnya  hasil training disimpan  kedalam  sebuah file dengan nama  dan  format  model_ChatBot.h5  menggunakan  fungsi  Tensorflow model.save(). Model yang disimpan berupa hasil training epoch 200, 400, 600,  800,  dan  1000 ,  batch  size 30 , optimasi RMSProp dan loss  function MSE .  Model  yang  digunakan  untuk  pengujian  adalah  hasil  dari training hidden layer pertama dan kedua 100 dan 50, 200 dan 100 yang dimana memiliki loss paling kecil dan accuracy paling besar.
5) Pengujian Chatbot Pengujian  pada chatbot adalah  berupa  pertanyaan  yang  dilakukan  oleh responden  pada  aplikasi chabot FAQ  prakerja  dengan  alur  prosesnya responden  mengajukan  pertanyaan  pada chatbot kemudian chatbot secara otomatis memberikan jawaban. Data pengujian pada penelitian ini berjumlah  100  pertanyaan  oleh  responden.  Tahap  pengujian  pada chatbot yaitu user mengajukan  pertanyaan  dimana  sebelumnya  diatur terlebih  dahulu  batas  ambang  kesalahan.  Kemudian  sebelum  masuk  ke prediksi  dengan probabilitas ,  pertanyaan  yang  diajukan  dilakukan  data preprocessing terlebih  dahulu.  Setelah  dilakukan  data preprocessing kemudian dilakukan prediksi, jika nilai prediksi probabilitas tag tertinggi dan  memenuhi  batas  ambang  kesalahan  yang  ditentukan  maka tag diambil sebagai acuan jawaban.
6) Evaluasi
Pengukuran  kinerja aplikasi chatbot yang  dilakukan pada  penelitian ini didasarkan pada hasil akurasi dari respon yang diberikan chatbot kepada responden  dengan  pertanyaan  dari  responden,  responden  memberikan kesimpulan berupa benar atau salah pada setiap respon dari pertanyaan yang  diajukan.  Untuk  mencari  akurasi  sama  dengan  jumlah  jawaban benar dibagi total pertanyaan dikali 100%.
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti

## 3. HASIL DAN PEMBAHASAN
Data yang dipakai pada penelitian adalah data pada FAQ prakerja yang diambil  pada  website  prakerja  dengan  jumlah  300  data pattern atau pertanyaan dengan dikelompokan menjadi 64 tag atau kategori. Untuk setiap tag atau  kategori  pada  data  masing-masing  berisi  3  sampai  5 pattern dan jumlah response 1. Dataset disimpan dalam berkas JSON.

## Gambar 5. Dataset JSON
Pada preprocessing, dataset pada  file  JSON  dimuat  terlebih  dahulu. Kemudian dilakukan proses preprocessing mulai dari tokenizing , case folding, stemming , dan bag of word . Dari proses preprocessing didapatkan hasil 209 token  dan  64 tag atau  kategori.  Dari  proses stemming, data  akan  diubah menjadi matriks bag of word . Data tersebut dibagi menjadi dua train x dan y. Dimana train x  berisi array  token dan train y  berisi array  tag .  Proses tokenizing dapat dilihat pada gambar 6, proses case folding pada gambar 7, proses stemming pada gambar 8, dan bag of word pada gambar 9.
Gambar 6. Hasil Tokenizing
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
Gambar 7. Hasil Case Folding
Gambar 8. Hasil stemming

## Gambar 9. Bag of word
Proses training  Neural  Network  Multilayer  Perceptron pada  penelitian ini  peneliti  menggunakan hidden  layer berjumlah  2,  dengan  percobaan hidden  layer 100 neuron dan  50 neuron, percobaan  menggunakan hidden layer 200 neuron dan 100 neuron . Untuk training menggunakan epoch 200,
400,  600,  800  dan  1000  pada  tiap  variasi neuron pada hidden  layer . Input layer pada  penelitian  berjumlah  209 neuron adalah  jumlah  kata  dari  hasil proses stemming dan output atau  target layer berjumlah  64 neuron adalah jumlah  dari tag . Hidden  layer menggunakan activation  function  ReLU dan pada output  layer menggunakan activation  function Softmax .  Pada training , input 209 neuron diproses Dense Layer pada hidden layer. Dense layer disini berfungsi  untuk Fully-Connected  Layer .  Optimasi  yang  digunakan  pada penelitian adalah optimasi RMSProp dan dan loss function menggunakan MSE . Proses training dilakukan dari jumlah epoch dan dengan batch size 30. Proses
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
compile pada  Python  Tensorflow  Keras  menggunakan metrics  =  'accuracy' yang  berfungsi  menghitung  seberapa  sering  prediksi  dengan tag .    Proses training MLP dapat  dilihat pada gambar 10 dan untuk  hasil training hidden layer 100 dan 50 dapat dilihat pada Tabel 2.
x1 x2 x3 x4 ... 1 2 3 4 5 6 7 ... 1 2 3 4 5 6 7 ... o1 o2 o3 04 ... x209 o64 Input layer Hidden layer 1 ReLU Output layer Softmax Hidden layer 2 ReLU b b b Gambar 10. Neural network multilayer perceptron
Tabel 2. Hasil Training Hidden Layer 100 dan 50 Epoch 100 dan 50 Loss Accuracy 200 0.0000000047199 1 400 0.0000000018525 1 600 0.0000000011730 1 800 0.00000000081147  1 1000 0.00000000064622  1
Pada  Tabel  2  dapat  dilihat  semakin  banyak epoch yang  dipakai  maka loss semakin kecil. Dan untuk hasil terbaik pada training yaitu berdasarkan nilai loss paling  kecil  pada  jumlah epoch 1000  dengan loss 0.00000000064622  dan accuracy 1.  Hasil training  hidden  layer 100  dan  50 epoch 100 dapat dilihat pada gambar 11 dan untuk hasil training hidden layer 200 dan 100 dapat dilihat pada Tabel 3.
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
Gambar 11. Hasil training hidden layer 100 dan 50 epoch 1000
Tabel 3. Hasil training hidden layer 200 dan 100 Epoch 200 dan 100 Loss Accuracy 200 0.0000000045273 1 400 0.0000000020078 1 600 0.0000000012838 1 800 0.00000000091275  1 1000 0.00000000071696  1
Pada  Tabel  3  dapat  dilihat  semakin  banyak epoch yang  dipakai  maka loss semakin kecil. Dan untuk hasil terbaik pada training yaitu berdasarkan nilai loss paling  kecil  pada  jumlah epoch 1000  dengan loss 0.00000000071696 dan accuracy 1. Hasil training hidden layer 200 dan 100 epoch 100 dapat dilihat pada gambar 12.
Gambar 12. Hasil training hidden layer 200 dan 100 epoch 1000
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
Model  yang  disimpan  berupa hidden  layer berjumlah  2,  dengan percobaan hidden layer 100 neuron dan 50 neuron, percobaan menggunakan hidden layer 200 neuron dan 100 neuron . Untuk epoch 200, 400, 600, 800 dan 1000 pada tiap variasi neuron pada hidden layer . Input layer berjumlah 209 neuron dan output atau  target layer berjumlah  64 neuron.  Hidden  layer menggunakan activation  function  ReLU dan output  layer menggunakan activation  function Softmax .  Optimasi  yang  digunakan  adalah  optimasi RMSProp dan loss  function menggunakan MSE .  Model  menggunakan batch size 30. Proses compile pada Python Tensorflow Keras menggunakan metrics =  'accuracy'. Untuk  mendapatkan  model  yang  bagus  peneliti  melakukan proses  pelatihan  data  secara  berulang  kali  secara  bertahap  sehingga didapatkan  hasil  nilai  kesalahan  yang  semakin  kecil  dan  nilai  akurasi  yang paling  besar.  Model  yang  digunakan  untuk  pengujian  adalah  hasil  dari training  hidden  layer pertama  dan  kedua  100  dan  50,  200  dan  100  yang dimana memiliki loss paling kecil dan accuracy paling besar. Sehingga model yang digunakan pada pengujian adalah pada hidden layer pertama dan kedua 100, 50 epoch 1000 dan 200, 100 epoch 1000. Pada  proses  pengujian chatbot, MLP  berfungsi  untuk  prediksi pertanyaan  dari  pengguna  kedalam tag dengan  nilai probabilitas tertinggi.
Sehingga  didapatkan  jawaban  yang  dipilih  berdasarkan tag  probalitas tertingginya.    Pada  pertanyaan  “Cara  daftar  prakerja”  menghasilkan  nilai probabilitas 0.99969995 dan diatas ambang kesalahan 0.1, 02, 03, 04, dan 0.5 maka tag daftar_akun_prakerja  diambil  sebagai  acuan  jawaban,  kemudian user melakukan validasi benar atau salah. Prediksi dengan nilai probabilitas dapat  dilihat  pada  gambar  13,  nilai  seluruh probabilitas  tag dapat  dilihat pada gambar 14 dan respon chatbot dapat dilihat pada gambar 15.
0 0 0 0 ... 1 2 3 4 5 6 7 ... 1 2 3 4 5 6 7 ... 1 2 3 4 5 0 ... Hidden layer 1 ReLU Output layer Softmax Hidden layer 2 ReLU b b b ('daftar_akun_prakerja', 0.99969995) ('mencek_status_pendaftaran', 0.00012317655) ('mengganti_data', 0.00010565563) ('yang_dapat_mendaftar_prakerja', 2.3842116e-05) ('tentang_prakerja', 1.2641505e-05) cara daftar prakerja 0 0 0 0 0
Gambar 13. Hitung probabilitas tag
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
Gambar 14. Hitung probabilitas seluruh tag
Gambar 15. Respon chatbot
Untuk  evaluasi,  pengkuran  performa chatbot berdasarkan  hasil kesimpulan  dari  respon  yang  diberikan chatbot kepada  responden.  Nilai ambang atau threshold pada uji coba yaitu menggunakan 0.1, 0.2, 0.3, 0.4, dan 0.5  dengan percobaan hidden layer 100, 50 dan 200, 100 yang dapat dilihat pada Tabel 4 dan Tabel 5. Untuk hasil pengujian dapat dilihat pada Tabel 6 dan hasil prediksi probabilitas MLP dapat dilihat pada Tabel 7.
Tabel 4 . Uji coba oleh reponden hidden layer 100 dan 50 epoch 1000 Threshold Jumlah Benar Jumlah Salah  Tidak Terjawab Akurasi 0.1 72 28 0 72% 0.2 72 27 1 72% 0.3 72 25 3 72% 0.4 71 24 5 71% 0.5 69 21 10 69%
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
Tabel 5. Uji coba oleh reponden hidden layer 200 dan 100 epoch 1000 Threshold Jumlah Benar Jumlah Salah  Tidak Terjawab Akurasi 0.1 70 30 0 70% 0.2 70 29 1 70% 0.3 70 27 3 70% 0.4 70 26 4 70% 0.5 70 19 11 70% Tabel 6. Hasil pengujian oleh reponden No  Pesan Kesimpulan 1  Prakerja adalah Benar 2  Tujuan prakerja Benar 3  Cara daftar prakerja Benar 4  Cara login Benar 5  Manfaat Salah Tabel 7 . Hasil Probabilitas MLP No  Pesan Kategori Probabilitas 1  Prakerja adalah tentang_prakerja 0.9992 2  Tujuan prakerja tujuan_prakerja 0.9994 3  Cara daftar prakerja  daftar_akun_prakerja 0.9997 4  Cara login login_akun 0.9999 5  Manfaat jumlah_kali_bantuan 0.192
Pembahasan  penelitian,  penelitian  ini  menggunakan  data  pada  FAQ situs  web  Prakerja.  Kemudian  data  tersebut  dikumpulkan  kedalam  sebuah file dengan  format  JSON.  Data  yang  berjumlah  300  data pattern atau pertanyaan dengan dikelompokan menjadi 64 tag atau kategori. Untuk setiap tag atau  kategori  pada  data  masing-masing  berisi  3  sampai  5 pattern dan jumlah response 1. Untuk contoh data dapat dilihat pada gambar 5. Pada  Tabel  2  hasil  terbaik  pada training yaitu  berdasarkan  nilai  loss paling  kecil  pada  jumlah  epoch  1000  dengan  loss 0.00000000064622  dan accuracy 1. Pada Tabel 3 hasil terbaik pada training yaitu berdasarkan nilai loss paling kecil pada jumlah epoch 1000 dengan loss 0.00000000071696 dan accuracy 1. Jadi didapatkan untuk hasil training terbaik  antara hidden layer pertama dan kedua 100, 50 dan 200, 100 yaitu pada hidden layer 100 dan 50 dengan  hasil training terbaik  dari loss yang  paling  kecil  yaitu 0.00000000064622 yang terdapat pada epoch 1000.
Pengujian  pada  penelitian  ini  adalah  proses  dibalik  layar  bagaimana chatbot melakukan  prediksi  untuk  menentukan  jawaban  yang  akan  dikirim sebagai respon kepada pengguna. Dalam melakukan prediksi, pada penelian ini  menggunakan  fungsi  dari library  Tensorflow  Keras  keras.models yaitu fungsi predict , fungsi ini berjalan dengan melakukan menghitung probabiltas setiap tag dari input pertanyaan  oleh  pengguna  dengan  data training yang
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
disimpan  sebelumnya.  Pada  pertanyaan  gambar  13  “Cara  daftar  prakerja gimana”  didapatkan  hasil probabilitas nilai  tertinggi  yaitu  0.99996555 dengan tag yang  didapat  adalah  daftar_akun_prakerja.  Maka  jawaban  yang diberikan chatbot kepada pengguna adalah response pada data JSON dengan acuan tag daftar_akun_prakerja.
Pada  Tabel  4  uji  coba chatbot oleh  responden  menggunakan hidden layer pertama dan kedua 100 dan 50 dengan epoch 1000, untuk threshold 0.1, 0.2,  dan  0.3  menghasilkan  akurasi  yang  sama  yaitu  72%  dengan  yang membedakan  pada  jumlah  salah  dan  tidak  terjawab.  Untuk  jumlah  benar, salah dan tidak terjawab dipengaruhi oleh threshold yang digunakan sebagai contoh  pada  Tabel  7  dengan threshold 0.2  terdapat  satu  pesan  yang  tidak terjawab,  hal  ini  dikarenakan  probabilitas  dari  prediksi  tidak  mencapai threshold 0.2  contohnya  dapat  dilihat  pada  Tabel  7  no  5  dengan  pesan “manfaat”  probalitas  yang  dihasilkan  adalah  0.192.  Pada  Tabel  5  uji  coba chatbot oleh responden menggunakan hidden layer pertama dan kedua 200 dan  100  dengan epoch 1000,  untuk threshold 0.1,  0.2,  0.3,  0.4  dan  0.5 menghasilkan  akurasi  yang  sama  yaitu  70%.  Oleh  karena  itu  didapatkan untuk hasil  akurasi  terbaik  antara hidden layer pertama  dan kedua 100, 50 dan  200,  100  yaitu  pada hidden  layer 100  dan  50  dengan  dengan  akurasi yang  didapatkan  adalah  72%  sedangkan  untuk hidden  layer pertama  dan kedua 200 dan 100 menghasilkan akurasi 70%.

## 4. SIMPULAN
Kesimpulan  pada  penelitian  ini  dengan  implementasi neural  network multilayer  perceptron dan stemming  Nazief dan Adriani pada chatbot menggunakan  data  FAQ  Prakerja  didapatkan  hasil  akurasi  uji  coba  terbaik antara hidden  layer pertama  dan  kedua  100,  50  dan  200,  100  yaitu  pada hidden layer 100 dan 50 dengan dengan akurasi yang didapatkan adalah 72% sedangkan untuk hidden layer pertama dan kedua 200 dan 100 menghasilkan akurasi 70%.

## DAFTAR PUSTAKA
[1]   B. A. Shawar and E. Atwell, "Chatbots: are they really useful?," LD-Forum: Zeitschrift  für  Computerlinguistik  und  Sprachtechnologie, vol.  22,  no.  1, pp. 29-49, 2007.
[2]   R. Damanik, M. Sirait, S. Yolanda, E. Ketaren, I. P. Sinaga dan M. Harahap , “Diagnosa  Penyakit  Kulit  pada  Anjing  dengan  Algoritma  Multilayer Perceptron,” Jurnal Mahajana Informasi, vol. 4, no. 2, pp. 50-56, 2019.
[3]   R.  Singh,  M.  Paste,  N.  Shinde,  H.  Patel  dan  N.  Mishra,  “Chatbot  using TensorFlow for small Businesses,” Proceedings  of the 2nd International Conference on Inventive Communication and Computational Technologies (ICICCT 2018), p. 1614–1619, 2018.
[4]   F.  Mustakim,  Fauziah  dan  N.  Hayati,  “Algoritma  Artificial  Neural
Jurnal Sains Komputer & Informatika (J-SAKTI) Volume 6 Nomor 2, September 2022, pp. 671-685 ISSN: 2548-9771/EISSN: 2549-7200 https://tunasbangsa.ac.id/ejurnal/index.php/jsakti
Network  pada  Text-based  Chatbot,” Jurnal  JTIK  (Jurnal  Teknologi Informasi dan Komunikasi), vol. 5, no. 4, pp. 438-446, 2021.
[5]   I.  M.  A.  Agastya,  “Pengaruh  Stemmer  Bahasa  Indonesia  Terhadap Performa  Analisi  Sentimen  Terjemahan  Ulasan  Film,” Jurnal TEKNOKOMPAK, vol. 12, no. 1, pp. 18-23, 2018.
[6]   M.  Mustaqhfiri,  Z.  Abidin  dan  R.  Kusumawati,  “Peringkasan  Teks Otomatis  Berita  Berbahasa  Indonesia  Menggunakan  Metode  Maximum Marginal Relevance,” MATICS, vol. 4, no. 4, pp. 134-147, 2011.
[7]   S.  Deepu,  R.  Pethuru  dan  S.  Rajaraajeswari,  “A  Framework  for  Text Analytics  using  the  Bag  of  Words  (BoW)  Model  for  Prediction,” International Journal of Advanced Networking & Applications (IJANA), vol. 2, no. 1, p. 320–323, 2016.
[8]   H.  Husamuddin,  D.  B.  Prasetyo  dan  H.  C.  Rustamadji,  “Otomatisasi Layanan  Frequently  Ask  Questions  Berbasis  Natural  Langugae Processing  Pada  Telegram  Bot,” TELEMATIKA, vol.  19,  no.  1,  p.  145  – 157, 2020.
[9]   C. Haryawan dan M. M. Sebatubun, “Implementasi Multilayer Perceptron untuk Prediksi,” JUTI: Jurnal Ilmiah Teknologi Informasi, vol. 18, no. 1, p. 125 – 134, 2020.
[10]  N.  A.  Purwitasari  dan  M.  Soleh,  “Implementasi  Algoritma  Artificial Neural Network dalam Pembuatan Chatbot,” Jurnal IPTEK, vol. 6, no. 1, pp. 14-21, 2022.