## BLTSM untuk analisis sentimen berbasis aspek pada aplikasi belanja online dengan cicilan
Edy Subowo 1 , Fenilinas Adi Artanto 2 , Isna Putri 3 , Wahyu Umaedi 4
1,2,3,4 1Informatika Fakultas Teknik dan Ilmu Komputer Universitas Muhammadiyah Pekajangan Pekalongan
1 edysubowo@umpp.ac.id*, 2 f.artanto@umpp.ac.id , 3 isna@gmail.com, 4 wumaedi45@gmail.com

## Abstract
This study aims to analyze the aspect-based sentiment in the application review. Sales of goods in installments to find out the advantages and disadvantages from time to time according to the user so that it can be used as an evaluation material for quality improvement. The combination of the Bidirectional Long Short Term Memory approach and aspect classification using the  Support  Vector  Machine  is  applied  to  analyze  sentiment  on  online  companies  that  provide  Shopping  Services  with Installments such as Kredivo, Akulaku, Indodana, and BRI Ceria. The number of reviews is 1000 reviews on the google play store with the aspects used are customer service, application display and products offered. BiLTSM is used because it is able to process forward input and backward input, besides that the aspect classification is able to explain the classification of the proposed sentiment. Corpus Text is used for autolabelling so that sentiment accuracy is 81% and aspect accuracy is 78%. The results of quarterly trend visualization on aspects that must be improved for each application are also presented in this study.
Keywords: BiLSTM, SVM, Trend Visualization, Corpus Text

## Abstrak
Penelitian  ini  bertujuan  untuk  menganalisis  sentimen  berbasis  aspek  dalam  review  aplikasi.  Penjualan  barang  dengan  cara mencicil untuk mengetahui kelebihan dan kekurangan dari waktu ke waktu menurut pemakai sehingga dapat dijadikan sebagai bahan evaluasi peningkatan kualitas. Kombinasi pendekatan Bidirectional Long Short Term Memory dan klasifikasi aspek menggunakan Support Vector Machine diterapkan untuk menganalisis sentimen pada perusahaan online yang menyediakan Layanan Belanja dengan Cicilan seperti Kredivo, Akulaku, Indodana, dan BRI Ceria. Jumlah review 1000 review di google play store dengan aspek yang digunakan adalah customer service, tampilan aplikasi dan produk yang ditawarkan. BiLTSM digunakan  karena  mampu  memproses input  forward dan input  Backward, selain  itu  klasifikasi  aspek  mampu  menjelaskan klasifikasi sentimen yang diajukan. Corpus Text digunakan untuk autolabelling sehingga akurasi sentimen 81% dan akurasi aspek 78%. Hasil visualisasi tren triwulanan pada aspek yang harus ditingkatkan untuk setiap aplikasi juga disajikan dalam penelitian ini.
Kata kunci: BiLSTM, SVM, Trend Visualization, Corpus Text
©This work is licensed under a Creative Commons Attribution - ShareAlike 4.0 International License

## 1. Pendahuluan
Munculnya teknologi baru yang dapat digunakan oleh setiap  orang  membuat  konsumen  semakin  sering berkomunikasi  dengan  penyedia  layanan  atau  sebuah produk hingga membuat tingginya penggunaan layanan yang  dapat  digunakan  secara  online  pada  kegiatan sehari  -  hari  [1].  Pembelian  secara  online  dengan menggunakan sebuah layanan, kualitas layanan sendiri menjadi  hal  yang  akan  dipertimbangkan  oleh konsumen.  Konsumen  berharap  bahwa  layanan  dari sebuah  produk  aplikasi  dapat  memberikan  kualitas yang baik dan kepuasan. Hal ini pun berkaitan dengan produk  aplikasi  penjualan  dengan  cicilan  yang merupakan  tempat  antara  konsumen  dan  perusahan aplikasi  penjualan  dengan  cicilan  untuk  melakukan komunikasi  transaksi.  Ketika  transaksi  terjadi  pada perusahaan,  maka  evaluasi  terhadap  pengalaman konsumen dalam menggunakan layanan akan rasa puas dan membangunkan rasa kepercayaan, komitmen dan loyalitas  kosumen  pada  aspek  –  aspek  yang  dinilai berdasarkan  ulasan  dari  konsumen  perlu  untuk dilakukan[2].
Pada  beberapa  kasus,  keputusan  yang  kita  buat  di pengaruhi oleh opini atau pendapat dari orang lain yang sering dinamakan dengan analsis sentimen [3]. Analisis Sentimen  merupakan  cara  untuk  mengekstraksi pemikiran publik berdasarkan pada data dalam domain penelitian  untuk  menganalisis  sudut  pandang  emosi, pikiran pendapat penulis tentang berbagai masalah[4]. aplikasi  penjualan  dengan  cicilan  masih  memiliki banyak  kritik  dari  masyarakat  karena  teknologi  ini masih  baru,  sehingga  improvement  sangat  perlu dilakukan.  Hal  ini  juga  didukung  dengan  penilaian rating  pada  beberapa  aplikasi  aplikasi  penjualan dengan  cicilan  seperti  Kredivo,  Akulaku,  Indodana, dan  BRI  Ceria  yang  masih  bervariasi  dan  tidak semuanya  menerima  rating  5  bintang.  Dalam penyelesaian  masalah  ini  akan  dilakukan  beberapa proses  seperti  pengumpulan  data  konsumen  aplikasi penjualan  dengan  cicilan  yang  akan  diproses  terlebih dahulu  agar  dapat  diprediksi  dengan  baik  dengan menggunakan  metode  deep  learning  Bidirectional Long Short Term Memory (BiLTSM). Hasil Prediksi dari  metode  deep  learning  digunakan  sebagai  bahan analisis  sentimen  berdasarkan  aspek  yang  ditenukan
untuk kita analisis adalah bagian dari analisis sentimen berbasis aspek.
Analisis Sentimen Berbasis Aspek adalah mengklasifikasikan polaritas sentimen yang dihubungkan dengan serangkaian aspek[5]. Tujuan dari Analisis Sentimen Berbasis Aspek dapat memperoleh informasi yang lebih akurat dan terperinci dari ulasan pengguna  seperti  ulasan  dari  sebuah  game,  pemain sering mengevaluasi berbagai karakteristik dan atribut game dari berbagai perspektif dan aspek game, seperti desain  game,  plot,  gambar,  efek  suara,  pengalaman konsumen,  dan  tingkat  teknis  [4].  Penelitian  ini menggunakan analisis sentimen berbasis aspek dengan BiLTSM  agar  dapat  melakukan  analisis  sentimen secara  lebih  detail  dari  suatu  teks  ulasan  dengan membagi  tiap  topik  (aspek),  sehingga  dapat memberikan  informasi  keluhan  dan  kepuasan  untuk dijadikan evaluasi agar bisa meningkatkan kualitas dari topic (aspek) yang banyak dibicarakan.
BiLSTM merupakan salah satu pengembangan neural network yang dapat digunakan untuk pemodelan data time series [6]. BiLSTM juga dapat diartikan sebagai jaringan  saraf  dengan  arsitektur  yang  mudah beradaptasi,  sehingga  bentuknya  dapat  disesuaikan, tergantung pada aplikasi yang di buat. Pada BiLSTM terdapat beberapa steps, yaitu define network, compile network,  fit  network,  evaluate  network,  dan  make prediction. Dengan menggunakan BiLSTM yang dapat melakukan penentuan terhadap suatu nilai yang dimana akan dijadikan sebagai keluaran yang relevan terhadap masukan yang diberikan.

## 2. Metode Penelitian
Kami  menggunakan  tensorflow  dalam  paket pemrograman python untuk melatih dan mengevaluasi model  setelah    pra-pemrosesan  untuk  kumpulan  data kami.  Gambar  1  menunjukkan  alur  proses  penelitian. Alur  penelitian  terdiri  dari  pengumpulan  data  untuk dilakukan  pra-pemrosesan  yang  didalamnya  terdapat pelabelan kalimat secara maual. Kelas sentimen yang digunakan  yaitu  positif,  netral,  dan  negatif.  Dalam memberikan suatu kelas sentimen dilihat berdasarkan dari  score  (rating)  yaitu  rating  4    dan  5  untuk  kelas positif, rating 3 untuk kelas netral, dan rating 1 dan 2 untuk  kelas  negatif.  Pelabelan  dilakukan  untuk mengetahui  banyaknya  sentimen  yang  terdapat  pada aplikasi produk  aplikasi penjualan dengan cicilan yang diberikan  oleh  pengguna  dari  ulasan  tersebut.  Data hasil pra-pemrosesan merupakan rangkaian kata baku dalam  kalimat  sehingga  dapat  dilakukan  pencocokan dengan  klasifikasi  aspek  dan  klasifikasi  sentimen. Setelah  itu  dilakukan  interpretasi  dan  rekomendasi sebagai kesimpulan.
2.1. Sumber Data
Data  yang  digunakan  pada  penelitian  ini  adalah  data sekunder berupa data ulasan yang berasal dari aplikasi e-commerce  produk  aplikasi  Kredivo,  Akulaku,
Indodana, dan BRI Ceria.  Dalam melakukan crawling, kami menggunakan library google-play-scraper dengan parameter periode 29 Desember 2021 sampai 15 Juni 2022 sehingga total data sebanyak 1000 kalimat. Data ulasan  yang  diperoleh  berbahasa  Indonesia  dan berlokasi  di  Indonesia.  Setelah  itu  data  yang  kami dapatkan  kami  gabungkan  dengan  komposisi  yang seimbang antara label negatif, netral dan positif. Data disimpan  dalam  bentuk  Comma  Separated  Value (CSV).  Adapun  contoh  implementasinya  ditunjukkan pada Tabel 1.
Gambar 1. Alur Proses Penelitian
Tabel 1. Contoh data ulasan dari google play store
Aplikasi Ulasan Binta ng Kredivo Pembayaran tepat waktu, tidak ada yang terlambat.  Disaat  mau  pinjam  lagi  tidak bisa dengan alasan harus upgrade ke akun premium,  disaat  upgrade  ke  akun premium suruh tunggu lgi sampai tanggal sekian.  Aplikasinya  semakin  lama  ga beres, semakin berantakan. Perbaiki donk jgan  dibiarkan  terus  menerus,  percuma banyak  iklan  kalau  aplikasinya  saja belum  benar.  Kalau  seperti  ini  terus semakin  banyak  pengguna  yang  pindah ke aplikasi lain 1
Akulaku Kecewa  aja  sama  apk  ini,  padahal  udah beberapa kali pinjem disini dan ga pernah telat  bayar,  ga  pernah  melebihi  tanggal jatuh  tempo,  tapi  akhir"  ini  setelah pembayaran,  limit  tidak  pernah  naik malah terus menerus turun, dan coba buat pengajuan tapi gagal, gimana ini! Padahal juga  bukan  pengguna  baru.  SANGAT
SANGAT MENGECEWAKAN!!! 1 Indodana Saya  pengguna  baru  menggunakan aplikasi  Indodana.  Terima  kasih  pernah dibantu.  Dan  skrg  sdg  berjalan pembayaran cicilan. Bulan pertama sudah dibayarkan 3 hari Sebelum Jatuh Tempo. Akan tetapi baru kali ini jg, ada aplikasi mengingatkan via whatsapp, dan bahasanya  spt  ditujukan  kpd  org  yg terlambat  bayar.  Kata  tgl  brp  akan dibayar?  Yg  pantasnya  buat  yg  sdh terlambat  bayar.  Bahkan  ada  lg  yg  tlp sampai  3  x.  Saya  bukan  nasabah terlambat  bayar.  Bayar  tdk  telat  saja diperlakukan spt org telat
4
BRI Ceria App  kredit  yg  bagus,  simple,  praktis  ga perlu repot2 mikir deadline bayar cicilan. 2
Suku  bunga  nya  juga  termasuk  rendah, tenor  bervariasi  sesuai  kemampuan  kita. Sayang dari semua keunggulan itu, limit kredit  anda  tidak  bisa  dinaikkan, meskipun  anda  sering  bertransaksi  dan tergolong  lancar  dalam  pembayaran kembali.  Masukkan  aja,  mestinya  kasi dong...

## 2.2. Pra-Pemrosesan Kalimat
Data  yang  diperoleh  dilakukan  analisis  dengan memberikan  label  pada  setiap  ulasan  dengan  cara manual. Kelas sentimen yang digunakan yaitu positif, netral,  dan  negatif.  Dalam  memberikan  suatu  kelas sentimen  dilihat  berdasarkan  dari  score  (rating)  yaitu rating 4  dan 5 untuk kelas positif, rating 3 untuk kelas netral, dan rating 1 dan 2 untuk kelas negatif. Pelabelan dilakukan untuk mengetahui banyaknya sentimen yang terdapat  pada  aplikasi  produk    aplikasi  penjualan dengan  cicilan  yang  diberikan  oleh  pengguna  dari ulasan tersebut. Setelah melakukan pelabelan sentimen, tahap selanjutnya adalah dengan melakukan pelabelan aspek.  Aspek  yang  digunakan  adalah  layanan, tampilan,  dan  produk.  Suatu  ulasan  yang  termasuk dalam  aspek  layanan  apabila  ulasan  berisi  tentang kecepatan  respon  saat  terjadi  kendala.  Ulasan  yang termasuk  dalam  aspek  tampilan  apabila  ulasan  berisi kendala dalam tampilan aplikasi. Ulasan yang termasuk dalam  aspek  produk  apabila  ulasan  berisi  tentang kualitas  suatu  produk.  Ketiga  aspek  ini  ditentukan secara manual oleh penulis dengan topic modeling.
Dalam  Natural  Language  Processing  (NLP),  topic modeling  adalah  model  generatif,  yang  menyediakan kerangka  kerja  probabilistik  [7].  Topic  modeling menemukan  kata  topik  tersembunyi  di  seluruh dokumen. Topic modeling seperti soft clustering yaitu dimana suatu dokumen dimasukkan ke dalam beberapa cluster  (topik)  sekaligus.  Penamaan  cluster  (topik)  di interpretasi  dari  kata-kata  yang  ada  di  dalamnya. Dalam  topic  modeling  yang  sering  digunakan  yaitu Latent  Dirichlet  Allocation  (LDA).  Latent  Dirichllet Allocation (LDA) adalah teknik topic modeling yang secara  otomatis  menemukan  topik  dalam  dokumen teks. Tujuan LDA adalah memetakan semua dokumen ke  topic  sedemikian  rupa,  sehingga  kata-kata  dalam setiap dokumen sebagian besar terkait topic tersebut.
Pada  tahap  preprocessing  ini,  data  ulasan  yang  telah diberi pelabelan sentimen dan pelabelan aspek secara manual selanjutnya akan dimasukkan untuk melewati beberapa proses yang akan menghasilkan sebuah data bersih  untuk  diolah  ke  proses  selanjutnya  agar  hasil yang  didapat  lebih  optimal.  Preprocessing  yang dilakukan  pada  penelitian  ini  adalah  dengan  case folding,  hapus  simbol  dan  angka,  lemmatization, stopword, dan tokenizer.
Pada  tahapan  case  folding,  seluruh  teks  pada  dataset diubah  menjadi  huruf  kecil  (lowercase)  untuk mempermudah proses pengolahan selanjutnya. Hapus
simbol dan angka adalah pembersihan data dari tanda baca  seperti  (!”#$%&’*+,_.-;: ?@[\]^~`{?})  yang akan  diganti  dengan  spasi,  dilakukan  karena  pada proses pelatihan tanda baca dihiraukan sehingga proses pelatihan akan menjadi lebih sederhana. Lemmatization  untuk  menemukan  bentuk  dasar  dari sebuah  kata.  Stopword  removal  adalah  menghapus kata-kata  yang  tidak  ada  kaitannya  terhadap  nilai sentimen.  Kata-kata tersebut antara lain misalnya kata sambung “dan”, “atau”, “karena”, “oleh”, “itu”, “di”, “dalam”,  “sudah”,  dan  lain  sebagainya.  Terakhir Tokenizer bertujuan untuk mengubah kalimat menjadi beberapa bagian yang dibentuk dalam kata-kata. Tabel 2  menunjukkan  kalimat  yang  sudah  melalui  pra- pemrosesan. Selanjutnya data tersebut dibagi menjadi data latih (80%) dan dan data uji (20%).
Word Embedding digunakan untuk mempresentasikan vektor kata dimensi dari kumpulan teks. Setelah data dilakukan  preprocessing  akan  menghasilkan  ulasan dalam  list  kata  yang  sudah  di  tokenisasi,  langkah selanjutnya diberikan index pada setiap kata di dataset. Diperlukan  parameter  num_words  untuk  mengatur ukuran  vocabulary  yang  ingin  digunakan.  Pada penelitian  ini  num_words  berjumlah  5000  kata.  Dari hasil tersebut akan memberikan index pada dataset.

## Tabel 2. Kalimat hasil pre-processing
Aplikasi Ulasan Kredivo bayar  tepat  waktu  tidak  ada  terlambat  mau pinjam  lagi  tidak  bisa  dengan  alasan  harus upgrade akun premium upgrade akun premium suruh  tunggu  sampai  tanggal  sekian  aplikasi semakin  lama  beres  semakin  berantakan perbaiki biar terus percuma banyak iklan kalau aplikasi saja belum benar kalau seperti ini terus semakin banyak pengguna pindah aplikasi lain Akulaku kecewa  sama  ini  padahal  sudah  berapa  kali pinjam  sini  ga  pernah  telat  bayar  ga  pernah melebihi  tanggal  jatuh  tempo  tapi  akhir  ini setelah bayar limit tidak pernah naik malah terus turun coba buat ajuan gagal gimana ini padahal juga bukan pengguna baru sangat sangat kecewa Indodana saya  pengguna  baru  guna  aplikasi  indodana terima  kasih  pernah  bantu  dan  skrg  sdg  jalan bayar cicilan bulan pertama sudah bayar 3 hari sebelum jatuh tempo tetapi baru kali ini jg ada aplikasi ingat via whatsapp bahasa spt tuju kpd org yg lambat bayar kata tgl brp akan bayar yg pantas buat yg sdh lambat bayar bahkan ada lg yg  tlp  sampai  3  x  saya  bukan  nasabah  lambat bayar bayar tdk telat saja perlakuan spt org yg telat byr BRI Ceria app kredit bagus simple praktis ga perlu repot2 mikir  deadline  bayar  cicilan  suku  bunga  juga masuk  rendah  tenor  variasi  sesuai  mampu  kita sayang semua unggul itu limit kredit anda tidak bisa naik meski anda sering transaksi tergolong lancar  bayar  kembali  masukkan  aja  mesti  kasi dong naik limit tahap buat nasabah bri yg sering transaksi  miliki  record  tagihan  lancar terimakasih
Selanjutnya  diberikan  parameter  input_lenght  untuk mengatur  panjang  urutan  vektor.  Pada  setiap  ulasan memiliki jumlah kata yang panjang nya berbeda, maka agar  mengisi  vektor  semua  sama  panjang  digunakan
pad_sequences yang terdapat
pada keras.preprocessing.sequences  untuk  mengisi  urutan kata  dengan  angka  0  secara  otomatis.  Sehingga  akan terdapat  banyak  angka  0  jika  terdapat  kalimat  yang pendek.  Pada  penelitian  ini  menggunakan  jumlah input_lenght  sebanyak  200.  Sehingga  didapatkan vektor pad sequences.
Lalu  tahap  selanjutnya  masuk  pada  lapisan  pertama untuk  model  yang  akan  dibangun  yaitu  lapisan  word embedding  atau  layer  embedding.  Pada  lapisan  ini dimasukkan  beberapa  parameter  yang  sudah  didapat sebelumnya  yaitu  input_dim.  Input_dim  adalah num_words  yang  berjumlah  5000.  Parameter  lainnya adalah  embedding_dim  adalah  jumlah  neuron  yang diujikan pada penelitian ini dengan jumlah 16, 32, 64, dan  128.  Pada  penelitian  ini  embedding_dim  yang dipakai  yaitu  16.  Parameter  terakhir  yang  digunakan yaitu input_lenght yang berjumlah 200. Sehingga pada penelitian  ini  didapatkan  vektor  embedding  menjadi 3D  dengan  ukuran  (5000,  16,  200)  yang  akan dimasukkan  ke  lapisan  BiLSTM  untuk  melakukan training terhadap dataset ulasan. Hasil embedding layer didapatkan dapat dilihat pada Tabel 3.

## Tabel 3. Hasil Embedding Layer

## Embedding Layer
array(([[-0.03469117, -0.01010349, -0.00245303, -0.01387329, - 0.0329741  ,  0.01432553,  -0.04344554,    0.01817461, 0.01070751,    0.04730859,  0.00588275,    0.03211061,  - 0.02386565,    0.0240513  ,    0.04754401,  -0.03626477, 1.35642551e-02, -2.54903566e-02, -1.61117315e-02,
1.29088014e-03,  3.74705680e-02,……dtype=float32
2.2.  Bidirectional  Long  Short  Term  Memory
(BiLSTM)
Bidirectional  Long  Short  Term  Memory  adalah perkembangan  dari  model  LSTM  dimana  terdapat  2 lapisan yang saling berkebalikan arah [8]. Pada lapisan bagian  bawah  bergerak  maju  (forward  layer)  yaitu memproses  kata  pertama  menuju  ke  kata  terakhir, sedangkan  pada  lapisan  atas  bergerak  mundur (backward  layer)  yaitu  memproses  kata  terakhir menuju ke kata pertama. Keluaran dari dua arah hidden hidden layer   dan   adalah Arsitektur BiLSTM dapat dilihat  pada  Gambar  2.  Long  Short  Term  Memory (LSTM) adalah salah satu jenis dari Recurrent Neural Network  (RNN)  digunakan  di  bidang  Deep  Learning yang biasanya dirancang untuk data deret waktu atau urutan [4].

## Gambar 2. Arsitektur BiLSTM [1]
LSTM  juga  dapat  menangani  masalah  vanishing gradient  (bernilai  nol)  yang  terdapat  pada  RNN  saat memproses  data  sekuensial  yang  panjang  dengan menggunakan  satu  cell  state  untuk  mengontrol informasi yang masuk ke memori[9]. Cell State adalah jalur  bagian  atas  sebagai  tempat  untuk  menyimpan informasi yang diberikan dari satu langkah ke langkah waktu berikutnya. Arsitektur umum LSTM ditunjukkan pada Gambar 3 terdiri dari cell state, forget gate, input gate dan output gate. Input gate adalah gate yang digunakan untuk mengontrol nilai baru yang akan berjalan ke dalam cell state untuk diperbaharui. Forget gate adalah gate untuk mengontrol nilai tetap di dalam cell  state.  Output  gate  untuk  mengontrol  nilai  dalam cell digunakan untuk menghitung aktivasi keluaran unit LSTM.

## Gambar 3. Arsitektur LSTM [10]
Langkah  pertama  dalam  LSTM  yaitu memutuskan informasi apakah masukan 𝑥 ! pada waktu ( 𝑡 )  dan  keluaran ℎ !"# pada  waktu  ( 𝑡 − 1 )  akan diteruskan atau dibuang ke cell state yang dibuat oleh lapisan sigmoid yang disebut dengan forget gate, dan akan  menghasilkan  angka  antara  0  dan  1. cell  state menerima  keluaran  ( output ) ℎ !"# pada  waktu  ( 𝑡 − 1 ) dan  masukan  ( input ) 𝑥 ! pada  waktu  ( 𝑡 )  dan menggabungkannya  dalam  vektor  [ ℎ !"# , 𝑥 ! ]  melalui transformasi 𝜎 menjadi:
𝑓 ! =  𝜎+𝑊 $% . 𝑥 ! + 𝑊 &% . ℎ !"# + 𝑏 % 0, (1)
dengan   menyatakan forget gate,    fungsi sigmoid, nilai  weight  untuk  forget  gate,      nilai  keluaran  pada
waktu ke  ,   nilai masukan pada waktu ke  ,   nilai bias pada forget gate.
Langkah  selanjutnya  adalah  memasukkan  nilai informasi  yang  akan  diarahkan  cell  state.  Input  gate memiliki dua fungsi aktivasi yaitu lapisan sigmoid dan lapisan  tanh.  Lapisan  sigmoid  dipilih  untuk menemukan cell state yang harus diperbarui dan nilai yang  akan  diperbarui.  Sedangkan  lapisan  tanh  untuk mengontrol berapa banyak informasi baru ditambahkan. Berikut persamaan (2) dan (3) untuk nilai yang akan diperbarui:
𝑖 ! =  𝜎(𝑊 $' . 𝑥 ! + 𝑊ℎ ' . ℎ !"# + 𝑏 ' ) ,  (2)
𝐶 ! 5 = 𝑡𝑎𝑛ℎ(𝑊𝑥 ( . 𝑥 ! + 𝑊 &( . ℎ !"# + 𝑏 ) ), (3)
Contoh  sederhana,  misal  diberikan  kalimat  ulasan “pinjam sini bunga rendah”. Setiap kata menggunakan one-hot encoding untuk mengubah data kategorik/data text menjadi data numerik diberikan sebagai berikut
pinjam = [1 0 0 0], sini = [0 1 0 0], bunga = [0 0 1 0], rendah = [0 0 0 1].
Dari kalimat ulasan tersebut akan memprediksi aspek yang  sudah  ditentukan.  Untuk  aspek  juga menggunakan  one-hot  encoding  ditentukan  sebagai berikut:  Lainnya  =  [1  0  0  0],  Layanan  =  [0  1  0  0], Produk  =  [0  0  1  0],  Tampilan  =  [0  0  0  1].  Untuk memulai model pada LSTM ditentukan nilai awal dari ℎ * , 𝑐 * dan  bobot 𝑊 pada  masing-masing  gerbang LSTM secara acak. Misal ℎ * = 0, 𝑐 * = 0 , bobot 𝑊 dan bias 𝑏 sebagai berikut:
𝑊 $% =   : 0,1 0,2 0,3 0,4 > , 𝑊 &% = 0,8, 𝑏 % = 0
𝑊 $' =   : 0,5 0,6 0,7 0,8 > , 𝑊 &' = 0,15, 𝑏 ' = 0,25
𝑊 $( =   : 0,9 1,2 1,3 1,4 > , 𝑊 &( = 0,17, 𝑏 ( = 0,32
𝑊 $+ =   : 0,9
0,95 0,85
0,25 > , 𝑊 &+ = 0,9, 𝑏 + = 0,45
Pada  Gambar  4  dapat  dilihat  model  BiLSTM  yang sudah dihitung berdasarkan kalimat ulasan “pinjam sini bunga rendah”.

## Gambar 4. Contoh Model BiLSTM
Terdapat 2 lapisan forward layer yaitu memproses kata pertama menuju ke kata terakhir, backward layer yaitu memproses kata terakhir menuju ke kata pertama. Akan dilakukan  proses  BiLSTM  dengan  langkah-langkah berikut:
a. ! 1 0 0 0 $ , 0, 0 Untuk  lapisan forward  laye r  pada  unit
LSTM  pertama  akan  dihitung  nilai 𝑓 ! , 𝑖 ! , 𝐶 ! ), 𝐶 ! , 𝑜 ! dan ℎ ! dengan input ( 𝑥 ! , ℎ " , 𝑐 " ) = (          )
𝑓 ! =  𝜎([0,1 0,2 0,3 0,4] ! 1
0 0 0 $ + [0,8][0] + 0) = 0,525
𝑖 ! =  𝜎([0,5 0,6 0,7 0,8] ! 1 0 0
0 $ + [0,15][0] + 0,25) =
0,679 𝑐 ! > = 𝑡𝑎𝑛ℎ([0,9 1,2 1,3 1,4] ! 1 0 0
0 $ + [0,17][0] +
0,32) = 0,839 𝑜 ! =  𝜎([0,9 0,95 0,85 0,25] ! 1 0 0 0 $ + [0,9][0] + 0,45) = 0,749 𝑐 ! = [0,525][0] + [0,679][0,839] = 0,569
ℎ ! = 0,794 𝑥  tanh(0,569) = 0,408
Untuk forward  layer unit  LSTM  kedua  juga  dihitung  nilai 𝑓 # , 𝑖 # , 𝐶 # ), 𝐶 # , 𝑜 # dan ℎ # dilakukan  dengan  cara  yang  sama dengan  input  ( 𝑥 # , ℎ ! , 𝑐 ! )  =  ( ! 0
1 0 0 $ , 0.408, 0.569 ).  Ulangi
sampai  pada  unit  LSTM  keempat  dengan  cara  yang  sama mengganti 𝑥 sesuai  embedding  kata  dan ℎ, 𝑐 yang  sudah diperbarui dari unit LSTM sebelumnya.
b.
Untuk  lapisan backward  laye r  pada  unit  LSTM pertama  juga  dilakukan  serupa  pada  lapisan forward  layer akan  dihitung  nilai 𝑓 ! , 𝑖 ! , 𝐶 ! ), 𝐶 ! , 𝑜 ! dan ℎ ! dengan  input
( 𝑥 $ , ℎ " , 𝑐 " ) = ( ! 0 0 0 1 $ , 0, 0 )
𝑓 ! =  𝜎([0,1 0,2 0,3 0,4] !
0 0 0
1
$ + [0,8][0] + 0) = 0,599
𝑖 ! =  𝜎([0,5 0,6 0,7 0,8] ! 0 0 0
1
$ + [0,15][0] + 0,25) =
0,741
𝑐 ! > = 𝑡𝑎𝑛ℎ([0,9 1,2 1,3 1,4] ! 0 0 0 1 $ + [0,17][0] +
0,32) = 0,938 𝑜 ! =  𝜎([0,9 0,95 0,85 0,25] !
0 0 0
1 $ + [0,9][0] +
0,45) = 0,668 𝑐 ! = [0,599][0] + [0,741][0,938] = 0,695
ℎ ! = 0,668 𝑥  tanh(0,695) = 0,402
Untuk backward layer unit LSTM kedua juga dihitung nilai 𝑓 # , 𝑖 # , 𝐶 # ), 𝐶 # , 𝑜 # dan ℎ # dilakukan  dengan  cara  yang  sama dengan  input  ( 𝑥 % , ℎ ! , 𝑐 ! )  =  ( ! 0 0 1 0 $ , 0.402, 0.695 ).  Ulangi
sampai  pada  unit  LSTM  keempat  dengan  cara  yang  sama mengganti 𝑥 sesuai  embedding  kata  dan ℎ, 𝑐 yang  sudah diperbarui dari unit LSTM sebelumnya
c. Kemudian diperoleh nilai prediksi 𝑦 & sebagai berikut: 𝑦 & = 𝑊 ' ℎI⃗ + 𝑊 ' ℎ⃖I 𝑦 ! = [0,55][0,408] + [0,55][0,767] = 0,646
𝑦 # = [0,55][0,655] + [0,55][0,788] = 0,794 𝑦 % = [0,55][0,768] + [0,55][0,684] = 0,799
Didapatkan nilai prediksi 𝑦 = [0,646  0,794  0,799  0,636]. Setelah mendapatkan nilai prediksi, dicari nilai yang paling besar  untuk  diubah  lagi  menjadi one-hot  encoding. Nilai terbesar  didapatkan  pada 𝑦 , dengan  nilai  0,799.  Maka setelah diubah menjadi one-hot encoding didapatkan vektor [0 0 1 0] yang berarti termasuk kedalam aspek produk

## 3.   Hasil dan Pembahasan
Gambar  5  menunjukkan  hasil  pelabelan  data  pada kalimat hasil pra pemrosesan. Kategori pada sentimen di  tiap  aspek  tidak  seimbang,  namun  demikian  pada penelitian  ini  diasumsikan  tidak  ada  prioritas  pada
setiap  aspek  yang  ada  sehingga  tidak  dilakukan imbalance learning.

## Gambar 5. Hasil Labelling
Selanjutnya  setiap  kelas  dari  label  pada  data  ulasan divisualisasikan  dengan  wordcloud  dan  Wordlink menggunakan voyant tools. Tujuan visualisasi adalah untuk  melihat  kata  yang  sering  muncul  pada  setiap kelas.  Untuk  hasil  visualisasi  label  sentimen  dilihat pada Gambar 6 dan Gambar 7.
Jumlah Aspek pada Ulasan Jumlah Sentimen pada Aspek
138
Gambar 6. Hasil WordCloud

## Gambar 6. Hasil WordLink
Pada penelitian ini, hasil klasifikasi dibagi menjadi 2 yaitu  klasifikasi  sentimen  dan  klasifikasi  aspek.  Pada klasifikasi  sentimen  dan  klasifikasi  aspek  melakukan model  selection  dengan  10-cross  validation.  Dalam model  selection  ada  metode  Decision  Tree  (DT), Random Forest (RF), k-NN, Support Vector Machine (SVM),  Neural  Network  (NN),  dan  BidirectionaL LSTM  (BiLSTM).  Pada  model  Hasil  dari  kedua klasifikasi adalah sebagai berikut:

## 3.1 Analisis Sentimen
Dari  hasil  klasifikasi  sentimen,  peneliti  melakukan model selection. Berikut model selection pada Gambar 7.
Gambar 7. Boxplot Klasifikasi Sentimen Menggunakan Metode DT,

## RF, KNN, SVM, NN, BiLSTM dengan 10 cross validation
Pada  Gambar  7  terlihat  bahwa  BiLSTM  memiliki nilai  tengah  (median)  dan  juga  hasil  akurasi tertinggi  dari  metode  yang  lain.  Oleh  karena  itu, untuk  klasifikasi  sentimen  peneliti  menggunakan BiLSTM. Pada lapisan BiLSTM ini menggunakan pengujian  dengan  jumlah  neuron  yaitu  16, kemudian  semua  jaringan  dihubungkan  ke  setiap neuron  dengan  lapisan Fully  Connected dengan jumlah  unit  4.  Selain  itu,  pada  penelitian  ini  juga menggunakan  fungsi  aktivasi Restricted  Linear Unit (ReLu)  dan softmax .  Selanjutnya,  setelah semua  model  dibangun  dikonfigurasi  dahulu dengan  menggunakan  optimasi  Adam  dan sparce categorical  crossentropy untuk  mengetahui  nilai loss  dari  model  yang  sudah  terbentuk.  Parameter lainnya  yang  membantu  dalam  proses  training adalah epoch sebanyak 10.
Tabel 4. Total Parameter Jumlah Neuron 16 Layer (type) Output Shape Param # embedding (Embedding) (None, 200, 16) 80000 Bidirectional (Bidirectional) (None, 32) 4224 dense (Dense) (None, 16) 528 dense_1 (Dense) (None, 4) 68 Total params: 84,820
Kemudian  dari  total  parameter  Tabel  4  ditraining dengan 10 epoch, sehingga menghasilkan nilai akurasi dan  nilai  loss  pada  data  training  dan  data  validasi. Berikut  hasil  training  dengan  10  epoch  untuk membandingkan model dapat dilihat pada Gambar 8.
Berdasarkan  Gambar  8  terlihat  pada  epoch  keenam didapatkan  nilai  loss  terendah  pada  data  validasi sebesar 0,5920 dan nilai loss pada data training sebesar 0,5180.  Selain  itu,  pada  penelitian  ini  menghasilkan nilai akurasi pada data training sebesar 81% dan nilai akurasi  pada  validasi  sebesar  78,80%  seperti  yang dapat dilihat pada Tabel 5.
Ulasan Positif Ulasan Netral Ulasan Positif Ulasan Netral Ulasan Negatif Ulasan Negatif
Author : Edy Subowo 1 , Fenilinas Adi Artanto 2 , Isna Putri 3 , Wahyu Umaedi 4
Gambar 8. (a) Nilai Akurasi dan (b) Nilai Loss pada data Training
dan Validasi Jumlah Neuron 16 Tabel 4. Total Parameter Jumlah Neuron 16 Sentimen Presisi Recall F1-Score Negatif 0,78 0,80 0,79 Netral 0,74 0,90 0,81 Positif 0,24 0,09 0,13
Dari  perbandingan  diatas  terlihat  bahwa  model sudah  cukup  baik  dengan  menunjukkan  hasil akurasi  data  training  dengan  hasil  akurasi  data validasi  tidak  jauh  berbeda,  sehingga  tidak mengalami  overfitting  yang  dapat  mengurangi akurasi  pada  saat  melakukan  data  testing. Selanjutnya model akan diuji kepercayaan dengan melakukan  pengujian  terhadap  data  testing. Dilakukan perhitungan tingkat kepercayaan model dengan melihat akurasi, presisi, recall, dan F1-score dan  didapatkan  akurasi    pada  data  testing  sebesar 81%

## 3.2. Klasifikasi Aspek
Pada  pembentukan  model  aspek  model  SVM dilakukan cross  validation menggunakan Grid Search  CV dengan 10-cross  validation untuk menguji  performa machine dalam  membentuk klasifikasi.  Kernel  yang  dipakai  yaitu  sigmoid dengan visualisasi uji dapat dilihat pada Gambar 9 dan didapatkan akurasi 78%.

## Gambar 9. Visualisasi Uji Kernel Sigmoid

## 3.3. Aplikasi
Aplikasi yang digunakan sebagai User Interface adalah Web dengan PHP dan MySQl seperti yang ditunjukkan pada  Gambar  10  untuk  pemrosesan  hasil  ulasan  dan Gambar 11 sebagai hasil ulasan.
Gambar 10. Tampilan Antar Muka Pra Pemrosesan Ulasan
Gambar 11. Tampilan Antar Muka Pemrosesan Ulasan

## 4.   Kesimpulan
Berdasarkan  hasil  penelitian,  untuk  klasifikasi sentimen  menggunakan  hyperparameter  dilakukan pengujian  dan  model  dapat  memprediksi  ulasan aplikasi dengan menggunakan model BiLSTM dengan menggunakan  hyperparameter  neuron  16  dan  epoch keenam dan menghasilkan akurasi sebesar 81%. Pada klasifikasi  aspek  menggunakan  model  SVM  dengan 10-cross validation kernel sigmoid, parameter c dengan nilai 100, gamma dengan nilai 0,01 dan menghasilkan akurasi sebesar 78%. Pada aplikasi pembelian barang dengan cicilan, kelebihan untuk aspek layanan adalah banyak  respon  cepat  dan  mudah  dalam  ajuan  kredit,
aspek produk adalah bunga rendah dan limit kredit serta tenor bayar, aspek tampilan adalah pada UI yang baik.

## Daftar Rujukan
[1]  A. A. Rizal and S. Hartati, “Prediksi Kunjungan Wisatawan di Pulau Lombok dengan Menerapkan Recurrent Neural Network dengan  Algoritma  Training  Extended  Kalman  Filter.,”  J.  Ilm. ILMU Komput., vol. X, no. 1, pp. 7–18, 2017.
[2]  E.  Subowo,  I.  Rosyadi,  and  H.  H.  Kusumawardhani,  “Twitter Data  as  Decision  Tree  Parameter  for  Analysis  of  Tourism Potential  Policies,”  vol.  436,  pp.  474–478,  2020,  doi: 10.2991/assehr.k.200529.099.
[3]  E. Subowo, E. Sediyono, and Farikhin, “Ant Colony Algorithm for  Determining  Dynamic  Travel  Routes  Based  on  Traffic Information from Twitter,” E3S Web Conf., vol. 125, no. 201 9, 2019, doi: 10.1051/e3sconf/201912523012.
[4]  J.  Song,  “Aspect-Based  Sentiment  Analysis  on  Mobile  Game Reviews  Using  Deep  Learning,”  Grad.  Sch.  Comput.  Inf.  Sci. Hosei Univ., 2020.
[5]  Y.  Ma,  H.  Peng,  and  E.  Cambria,  “Targeted  aspect-based sentiment analysis via embedding commonsense knowledge into an attentive LSTM,” 32nd AAAI Conf. Artif. Intell. AAAI 2018, pp. 5876–5883, 2018.
[6]  Y. Achmad, R. C. Wihandika, and C. Dewi, “Klasifikasi emosi berdasarkan  ciri  wajah  wenggunakan  convolutional  neural network,” J. Pengemb. Teknol. Inf. dan Ilmu Komput., vol. 3, no. 11, pp. 10595–10604, 2019.
[7]  E. Subowo, T. R. Soeprobowati, and A. P. Widodo, “Prediction Meaning  of  Words  with  Word2Vec  on  Whatsapp  Data  for Disaster Topic,” E3S Web Conf., vol. 317, p. 05020, 2021, doi: 10.1051/e3sconf/202131705020.
[8]  A. S. Balantimuhe, S. H. Pramono, and H. Suyono, “Konsolidasi Beban  Kerja  Kluster  Web  server  Dinamis  dengan  Pendekatan Backpropagation  Neural  Network,”  Eeccis,  vol.  12,  no.  2,  pp. 72–77, 2018.
[9]  H. F. Fadli and A. F. Hidayatullah, “Identifikasi Cyberbullying Pada  Media  Sosial  Twitter  Menggunakan  Metode  Klasifikasi Random Forest,” 2019.
[10] M. Tomas, “Recurrent neural network based language model ´ s Mikolov  Introduction  Comparison  and  model  combination Future work,” Elev. Annu. Conf. Int. speech Commun. Assoc., no. September, pp. 1–24, 2010.