## Metode Collaborative Filtering Dalam Penampilan Rekomendasi Produk Dalam Aplikasi Chatbot Dan Mesin Rekomendasi Berbasis Web : Studi Kasus PT. Tokopedia
Arya Panji Nugroho 1) , Dewi Kusumaningsih 2) Teknik Informatika, Fakultas Teknologi Informasi, Universitas Budi Luhur Jl. Raya Ciledug, Petukangan Utara, Kebayoran Lama, Jakarta Selatan 12260 E-mail : mail.anugroho@gmail.com 1) , dewi.kusumaningsih@budiluhur.ac.id 2)

## ABSTRAK
Perkembangan teknologi informasi yang semakin  pesat mengakibatkan fungsi internet  sebagai salah satu gaya hidup  bahkan  menjadi  kebutuhan  utama.  Salah  satu  hal  yang  saat  ini  sedang  banyak  digunakan  pengguna internet  yaitu  belanja  online.  Saat  ini  sudah  banyak  layanan  belanja  online  yang  mempunyai  layanan berkualitas  serta  menawarkan  berbagai  macam  barang  yang  kita  butuhkan,  namun  karena  banyaknya  variasi barang  yang  ada,  timbul  tantangan  baru.  Diantaranya  pengguna  bingung  dalam  memilih  barang  yang  ingin dibeli, bahkan mereka belum mengetahui apa yang ingin dibeli. Oleh karena itu, dibutuhkan alternatif lain yang lebih  dekat  dengat  pengguna  dibandingkan  dengan  layanan  belanja  online  konvensional  berupa  website  utuh. Antarmuka  baru  ini  berupa  chatbot,  yang  akan  berperan  lebih  dekat  dengan  user  dalam  melakukan  proses belanja  online.  Aplikasi  chatbot  akan  berperan  sebagai  antarmuka  dari  catalog  yang  sudah  ada  sebelumnya pada  suatu  layanan  belanja  online.  Fitur  lain  yang  akan  dibangun  adalah  fitur  mesin  rekomendasi  dengan metode  collabolative  filtering  yang  akan  menampilkan  produk-produk  yang  mungkin  user  sukai.  Untuk mensiasati  agregasi  dan  pertukaran  data  dengan  fitur  catalog  dan  rekomendasi  tersebut    akan  menggunakan RestFul Web Service sehingga data tersebut dapat dikonsumsi oleh aplikasi chatbot.
Kata  kunci: web,  web  service,  chatBot,  restfull  web  service,  spring  seb  service,  artificial  intelligence,  mesin rekomendasi, collaborative filtering

## 1. PENDAHULUAN
Perkembangan  ilmu  pengetahuan  dan  teknologi saat  ini  berkembang  dengan  pesatnya,  tidak terkecuali  di  Indonesia.  Tidak  dapat  dipungkiri bahwa  teknologi  informasi  sangat  berpengaruh dalam  proses  kehidupan  sehari-hari  yang  manusia lalui.  Semua  aspek  kehidupan  itu  tidak  luput  dari peranan  teknologi  informasi  dan  manfaat  yang dapat  dirasakan.  Mulai  dari  aspek  pendidikan sampai  militer  semuanya  sangat  membutuhkan manfaat dari teknologi informasi untuk melancarkan prosesnya.
PT. Tokopedia adalah perusahaan yang begerak di  bidang  teknologi  dalam  bisnis e-commerce martketplace .  Memiliki  kantor  yang  beralamat  di Tokopedia Tower Jl. Prof. Dr. Satrio Kav 11, Karet Semanggi,  Setiabudi,  Jakarta  Selatan.  Tempat dimana penulis melakukan riset.
Hampir semua  layanan  belanja online saat  ini mempunyai  sarana  layanannya  baik  menggunakan website atau  aplikasi mobile ,  termasuk  Tokopedia juga  mempunyai  keduanya.  Karena  Tokopedia adalah marketplace yang  artinya  terdapat  banyak penjual  dan  masing-masing  penjual  mempunyai banyak  barang.  Karena  banyak  sekali  barang  yang ada,  terkadang customer bingung  untuk  mencari produk  yang  dibutuhkan  atau  yang  mungkin customer suka jika menemukannya.
ChatBot  dan  mesin  rekomendasi  yang  akan
dibangun  adalah  sistem  yang  terpisah  dari  sistem yang sudah ada sebelumnya tetapi terintegrasi  satu sama  lain,  sehingga  nantinya  ChatBot  juga  akan berdiri  secara  independen.  Case  yang  ada  adalah bagaimana  ChatBot  dapat  menghubungi  sistem yang  sudah  ada  untuk  mengambil  data  yang nantinya akan ditampilkan.
Untuk  solusi case tersebut,  keputusan  yang penulis ambil adalah meng- expose sistem database yang  sudah  ada  sebelumnya  tersebut  menjadi Web Service .
Hal  ini  dilakukan  dengan  cara  membuat recommendation server  baru  yang  mengakses sistem database yang  sudah  ada  sebelumnya. Kemudian  ChatBot  akan  mengakses web  service yang disediakan oleh web service provider tadi. Dari hasil penelitian  dan  analisa  sistem  yang sedang  berjalan,  penulis  menemukan  beberapa masalah yang dihadapi oleh PT. Tokopedia, yaitu : a. Banyaknya  produk  yang  mungkin customer akan  beli  dari  berbagai  macam  kategori,  fitur pencarian  masih  menampilkan  produk  yang sangat banyak sehingga user terkadang bingung mau memilih suatu produk.
b. User hanya  membeli  barang  yang  ingin  dibeli, tetapi  memungkinkan  ada  barang  lain  yang mungkin juga customer suka dan ingin beli.
c. Bagaimana  memberikan  layanan  pintar  tetapi juga sangat mudah digunakan user .
Dalam proses bisnisnya, PT. Tokopedia melakukan berbagai  macam proses,  namun penulis  membatasi lingkup penelitian sebagai berikut:
a. Interaksi ChatBot menggunakan bahasa inggris.
b. Sesi user login tidak diimplementasi.
c. Menampilkan kategori product . d. Menampilkan product .
e. Tambah ke keranjang tanpa kurir,
f. Menampilkan rekomendasi berdasarkan produk yang ditambah ke keranjang.
g. Simulasi checkout .

## 2. LANDASAN TEORI
2.1. Artificial Interlligence
Ada  beberapa  definisi  tentang  Artificial intelligence  (AI,  Kecerdasan  buatan)  menurut beberapa ahli seperti berikut :
1) Minsky, 1989 :  Kecerdasan buatan adalah suatu ilmu  yang  mempelajari  cara  membuat  komputer melakukan  sesuatu  seperti  yang  dilakukan  oleh manusia.
2)  H.  A.  Simon,  1987  :  Kecerdasan  buatan merupakan  kawasan  penelitian,  aplikasi  dan instruksi  yang  terkait  dengan  pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas.
3)  Ensiklopedi  Britannica  :  Kecedasan  buatan sebagai cabang ilmu komputer yang merepresentasi pengetahuan  lebih  banyak  menggunakan  symbol- simbol  daripada  bilangan,  dan  memproses informasi  berdasarkan  metode  heuristic  atau berdasarkan jumlah aturan.
4)  Stuart  J.  Russell  &  Peter  Norvig,  2003  : Kecerdasan  buatan  adalah  perangkat  komputer yang  dapat  memahami  lingkungannya  dan  dapat mengambil tindakan yang memaksimalkan peluang kesuksesan  di  lingkungan  tersebut  untuk  beberapa tujuan. [1]
Secara  sederhana  AI  adalah  teknik  dan  ilmu untuk  membuat  suatu  mesin  menjadi  cerdas, terutama  untuk  program  komputer.  Kecerdasan yang  dimaksud  adalah  kecerdasan  seperti  yang dimiliki  manusia, sehingga  sebuah komputer dapat mengambil tindakan untuk  menyelesaikan  masalah dengan pemikiran seperti seorang manusia. [3]
Tujuan  penilitian  dari  AI  meliputi  penalaran, pengetahuan, perencanaan, pembelajaran, pemrosesan bahasa alami, persepsi dan kemampuan untuk  mengerakan  dan  memanipulasi  objek. Kecerdasan umum adalah salah satu tujuan  jangka panjang  dari  AI.  AI  sudah  menciptakan  sejumlah besar alat untuk menyelesaikan  masalah  yang sulit pada  bidang  komputer.  Bidang  AI  mengacu  pada ilmu  komputer,  matematika,  psikologi,  linguistik, filsafat,  ilmu  saraf,  psikologi  buatan  dan  banyak lainnya.

## 2.2. Machine Learning
Menurut Arthur  Samuel  (1959) machine learning adalah bentuk pengetahuan yang
memberikan  kemampuan computer untuk  belajar tanpa secara eksplisit logika dari pemograman.
Machine learning adalah  bentuk  dari artificial intelligence .  Menggunakan  proses computer ,  kita dapat mendesain system yang bias belajar dari data yang  ada.  Sistem  ini  dapat  belajar  dan  lebih  baik lagi  dari  pengalaman  yang  sudah  terjadi  dan  kita bisa  mendefinisikan  model  yang  bisa  kita  gunakan untuk  memprediksi  apa  yang  akan  keluar  dari pembelajaran sebelumnya. Berikut 2 type pembelajaran bagi machine learning :
a) Supervised Learning
Bekerja  dengan  data  yang  sudah  disiapkan  untuk melatih.  Setiap  contoh  yang  ada,  kita  punya  input dan output yang kita sudah ekpektasikan. Data yang digunakan  sangat  berpengaruh,  sehingga  mungkin ada  data  yang  tidak  sengaja  mengganggu  proses pelatihan dari mesin rekomendasi.
b) Unsupervised Learning
Bekerja  dengan  membiarkan  algoritma  mencari pola  tersembunyi  dari  data  yang  diberikan.  Tidak ada benar atau salah disini, semua berdasarkan pola apa yang algoritma dapatkan.

## 2.3. Recommendation Engine
Menurut Suresh  Kumar  Gorakala  (2016)
Recommendation Engine adalah  salah  satu  bentuk dari information retrieval dan artificial  intelligence yang  powerful  dan  teknik  untuk  menganalisa  data dalam  volume  yang  besar,  terutama  informasi product  dan  user  untuk  memperoleh  rekomendasi yang relevan berdasarkan data. [4]
Dalam pengertian yang lebih teknik, recommendation  engine berguna  untuk  membuat model  matematika  atau  fungsi  yang  objektif  yang dapat  memprediksi  kemungkinan user menyukai sesuatu.
Jika  U  =  {users},  I  –  {items},  dan  F  =  Fungsi objektif  dan  menghitung  seberapa  besar  nilai  dari suatu item terhadap user U.

## F: U X I → R
Untuk  setiap user ,  kita  mau  memilih  suatu  item  I yang memenuhi fungsi berikut:
u ϵ U, I’u = argmaxuu(u, i)
Tujuan utama sistem rekomendasi adalah untuk menghasilkan  rekomendasi  yang  relevan  kepada online  user ,  untuk  membantu user mengambil keputusan dari berbagai macam alternatif yang ada. Sistem  rekomendasi  yang  baik  adalah  yang memberikan rekomendasi personal dengan menggunakan  informasi  digital user ,  demografi user ,  detail  transaksi user ,  jejak  interaksi  dan informasi  tentang  suatu  produk  seperti  spesifikasi, feedback dari user ,  perbandingan  dengan  produk lain, dsb sebelum membuat rekomendasi.
a) Collaborative Filtering
Collabolative  filtering adalah  bentuk  dasar  dari mesin  rekomendasi.  Pada  tipe  rekomendasi  ini, pemilihan  item  dari  banyaknya  alternatif  yaitu dengan memanfaatkan informasi dari suatu user . Tipe dari collaborative filtering terbagi menjadi 2:
1. User-based  collaborative  filtering ,  rekomendasi terbentuk dari informasi preferences dari user yang memiliki  kesamaan.  Tipe  ini  dapat  dilakukan dengan cara:
-Identifikasi preference  user yang  memiliki kesamaan -Rekomndasi  item  baru  kepada user yang  sedang online berdasarkan  rating  yang  diberikan user lain kepada item tersebut.
Berikut  adalah  salah  satu  contoh  formula  untuk mencari  kesamaan  pada  tipe user-based yaitu Euclidean distance .
Jarak  yang  didapat  antara  point  x  dan  point  y adalah panjang dari garis segment yang menghubungkan  keduanya.  Dimana  posisi  point  x dan y disebut Euclidean vector.
2. Item-based  collaborative  filtering ,  rekomendasi terbentuk  dari  informasi  item  yang  mempunyai kesamaan.  Tidak  seperti user-based ,  pertama  kita mencari  kesamaan  antara  item  lalu  berikan rekomendasi yang belum punya rating dimana item tersebut  mempunyai  kesamaan  dengan  item  yang sudah  di  rating.  Tiper  rekomendasi  ini  dapat dilakukan dengan cara:
-Kalkulasi  kesamaan  item  berdasarkan item preferences .
Berikut  adalah  contoh  formula  untuk  mencari kesamaan  pada  tipe item-based yaitu  cosine similarity .
Dimana  sim  adalah similarity atau  kesamaan  yang dimilika  antara  a  dan  b.  Dimana  jika  hasil  yang didapat  -1,  berarti  antara  a  dan  b  mempunyai kesamaan yang bertolak belakang, sampai dengan 1 yang berarti mempunyai kesamaan yang persis. Jika hasilnya  0,  maka  antara  a  dan  b  tidak  mempunyai kesamaan.

## 2.4. ChatBot
Chatbot adalah program komputer yang memproses natural-language  input  dari user dan  membuat respon  yang  pintar  dan  relative  yang  lalu  dikirim kembali  ke user .  Chatbot  saat  ini  dibangun
menggunakan  metode  rules-driven engines atau artificial intelligent untuk berinteraksi dengan user melalui  antarmuka  text.  Program  ini  dapat dipasangkan  dengan  berbagai  platform  pengirim pesan  yang  terbuka  untuk  developer  integrasikan lewat  API  seperti  Facebook  Messager,  Slack, Skype, dsb. [2]

## 3. RANCANGAN SISTEM DAN APLIKASI

## 3.1. Permasalahan
Sistem  informasi  dibangun  mempunyai  tujuan yang  lebih  spesifik,  untuk  menghasilkan  data  atau informasi yang spesifik juga. Perusahaan di tempat penulis  melakukan  penelitian  sudah  menempatkan IT pada salah satu pendukung bisnis sejak lama dan sudah  mempunyai  banyak  aplikasi  yang  mengolah aspek-aspek informasi dalam perusahaan.
Saat  ini  ada  ada  layanan  chatbot  dan  mesin rekomendasi  yang  sedang  dibangun  berbasis  web. Aplikasi  ini  akan  mengambil  dan  mengolah informasi  yang  sudah  yang  sudah  ada  sebelumnya seperti  informasi  catalog,  category  dan  produk. Dengan  adanya  keadaan  ini,  maka  langkah  yang dilakukan  adalah  mengintegrasikan  sistem  yang terlibat.

## 3.2. Strategi Pemecahan Masalah
Berdasarkan uraian identifikasi masalah di atas, maka  dapat  diidentifikasi  beberapa  hal  yang  akan dilakukan sebagai solusi integrasi antara lain:
a. Chatbot akan terintegrasi dengan catalog service dengan web service .
b. Membuat web service server yang menyediakan data catalog product dan  rekomendasi  untuk digunakan pada sistem baru.
c.  Membuat intent , entity sebagai  dasar  proses natural- language di sistem LUIS dan menggunakan Microsoft bot framework .

## 3.3. Program Aplikasi
a)  Spesifikasi  sistem  yang  akan  dibangun  terbagi dari 2 bagian:
ChatBot 1)  Pembangunan  chatbot  menggunakan  bot framework SDK  untuk  membangun  antarmuka chatbot.
2)  Untuk  proses  natural-language  menggunakan LUIS untuk mendefinisikan dan melatih kemampuan chatbot.
3)  Aplikasi  mampu  berinteraksi  berdasarkan natural- language yang telah dibangun.
4)  Aplikasi  mampu  berkomunikasi  dengan  catalog service  untuk  menampilkan catalog produk  dan rekomendasi produk.
Catalog dan Rekomendasi service 1)  Aplikasi  mampu  memberikan  layanan  web service untuk catalog produk.
2)  Aplikasi  mampu  memberikan  layanan  web service untuk rekomendasi produk.
b) Metode Kerja Aplikasi Usulan Penjelasan  fungsi  pada  setiap  Aplikasi  sebagai berikut:
1)  Aplikasi  ChatBot  sebagai  antarmuka  utama untuk  end  user  berinteraksi  dan  agregasi  data catalog dan rekomendasi produk berbasis web.
2)  Aplikasi Catalog  service  web  based sebagai aplikasi  yang  menyediakan  data  catalog  dan rekomendasi produk yang dapat diakses menggunakan rest web service .
3.4. Rancangan Layar Berikut adalah rancangan layar aplikasi.
Gambar 1: Rancangan Greetings
Gambar 2: Rancangan Categories Gambar 3: Rancangan Product List

## Gambar 4: Rancangan Add To Cart
Pada gambar diatas menggambarkan kemampuan chatbot menampilkan detail produk yang didapat dari catalog service dengan perintah “@add:product_id” yang langsung otomatis membalas Bot ketika user klik tombol “Add to cart” pada detail suatu produk.
Gambar 5: Rancangan recommendation
Pada gambar diatas menggambarkan kemampuan chatbot menampilkan rekomendasi produk tepat setelah user menambahkan suatu barang ke keranjang belanja (Add to cart), jika produk yang baru saja dimasukan ke keranjang mempunyai kesamaan dengan produk serupa.
Tepat sebelum menampilkan rekomendasi ChatBot akan tanya terlebih dahulu ke user, apakah ingin melihat rekomendasi yang ada. Hal ini menurut penulis harus dilakukan agar user tidak kehilangan fokus apa yang dia lakukan sebelumnya.
Produk rekomendasi yang ditampilkan maksimum 5 buah produk yang memilik kesamaan.
Gambar 6: Rancangan Show Cart

## Gambar 7: Rancangan Checkout

## 3.5. Rancangan High Level
High level design aplikasi secara keseluruhan akan menggambarkan  bagaimana  aplikasi  bekerja  dan saling berkaitan satu sama lain. Web service client akan  mengakses  Web  server  provider  melalui network  dengan  protocol  HTTP.  Data  yang diterima  oleh  web  service  berupa  JSON  format. Masing-masing client melakukan mapping terhadap data JSON yang diterima.

## Gambar 8: High Level Design
3.6. Rancangan ERD
Gambar 9: ERD
No  Nama Field Type Data Panjang  Key 1 user_id bigint 20
primary
2 username varchar
100 3 first_name varchar 100 4 last_name
varchar 100 Tabel 1: Tabel User No  Nama Field  Type Data Panjan g Key 1 cart_id bigint 20 primary 2 product_id bigint 20 primary 3 user_id bigint 20 primary 4 value double primary Tabel 2: Tabel Cart No  Nama Field Type Data Panjang  Key 1 product_id bigint 20 primary 2 name varchar 100
3 category_id  bigint 20 4 price double 5 description text 6 imageURL
varchar 255 Tabel 3: Tabel Product No  Nama Field Type Data Panjang  Key 1 variant_id bigint 20 primary 2 product_id varchar 100 3 variant varchar 100 4 value varchar 100 Tabel 4: Tabel Variant No  Nama Field  Type Data Panjang  Key 1 category_id bigint 20 primary 2 name varchar  100
3 parent_id bigint
20
Tabel 5: Tabel Category

## 4.  HASIL DAN PEMBAHASAN
Berikut adalah sample percakapan dengan ChatBot, mulai  dari  awal,  pencarian  produk,  add  to  cart, tampilkan  rekomendasi,  tampilkan  keranjang,  dan checkout.
Gambar 10: Tampilan chatbot menyapa
Gambar 11: Tampilan list produk
Gambar 12: Tampilan detail produk
Gambar 13: Tampilan pilih variant produk
Gambar 14: Tampilan tambah ke keranjang
Gambar 15: Tampilan rekomendasi produk

## 5. KESIMPULAN
Dengan  adanya  implementasi  ChatBot  dengan mesin  rekomendasi  sebelumnya,  maka  penulis dapat mengambil kesimpulan bahwa:
1. User dapat fokus melihat produk yang dicari karena  produk  yang  ditampilkan  adalah  produk
yang ditanyakan ke chatbot.
2.  Dengan adanya  rekomendasi  produk, memungkinkan  produk  lain  yang  mungkin customer suka juga akan dibeli.
3.  ChatBot  adalah  altenatif  yang  bagus  karena customer  tidak  perlu  mempelajari  bagaimana menggunakan solusi ini karena antarmuka yang mirip aplikasi chat yang digunakan sehari-hari..

## DAFTAR PUSTAKA
[1]  Peter  Norvig  dan  Stuart  J.  Russell.  (2003).
Artificial  Intelligence:  “A  Modern  Approach
(2rd Edition)”. Prentice Hall.
[2]  Rashid Khan. (2018). “Build Better Chatbots”. Appress.
[3]  Suyanto. (2007). “Artificial  Intelligence (Searching, Reasoning, Planning, and Learning)”. Bandung : Informatika.
[4]  Suresh  Kumar  Gorakala.  (2016).  “Building Recommendation Engines”. Packt-Publishing.