implementasi bm25f pada pencarian produk e...
TRANSCRIPT
IMPLEMENTASI BM25F PADA PENCARIAN
PRODUK E-COMMERCE BERBASIS WEB
(STUDI KASUS: WEB E-COMMERCE)
Skripsi
Disusun oleh
ABDURRAHMAN
(1113091000046)
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2019 M / 1440 H
IMPLEMENTASI BM25F PADA PENCARIAN
PRODUK E-COMMERCE BERBASIS WEB
(STUDI KASUS: WEB E-COMMERCE)
Skripsi
Diajukan kepada Fakultas Sains dan Teknologi untuk Memenuhi Persyaratan
Memperoleh Gelar Sarjana Komputer (S.Kom.)
Disusun oleh
ABDURRAHMAN
(1113091000046)
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2019 M / 1440 H
ii
UIN Syarif Hidayatullah Jakarta
PERNYATAAN ORISINALITAS
Dengan ini saya menyatakan bahwa:
1. Skripsi ini merupakan hasil karya asli saya yang diajukan untuk memenuhi
salah satu persyaratan memperoleh gelar Strata 1 di UIN Syarif Hidayatullah
Jakarta
2. Semua sumber yang saya gunakan dalam penelitian ini telah saya cantumkan
sesuai dengan ketentuan yang berlaku di UIN Syarif Hidayatullah Jakarta
3. Apabila di kemudian hari terbukti karya ini bukan hasil karya asli saya atau
merupakan hasil jiplakan karya orang lain, maka saya bersedia menerima
sanksi yang berlaku di UIN Syarif Hidayatullah Jakarta
Tangerang Selatan, 12 Maret 2019
Abdurrahman
1113091000046
iii
UIN Syarif Hidayatullah Jakarta
LEMBAR PERSETUJUAN PEMBIMBING
IMPLEMENTASI BM25F PADA PENCARIAN PRODUK E-COMMERCE
BERBASIS WEB
(STUDI KASUS: WEB E-COMMERCE)
Skripsi
Diajukan Untuk Memenuhi Persyaratan Memperoleh Gelar Sarjana Komputer
(S.Kom)
Oleh
ABDURRAHMAN
1113091000046
Menyetujui
Pembimbing I
Dewi Khairani, M.Sc
NIP. 19820522 201101 2 009
Pembimbing II
Luh Kesuma Wardhani, MT
NIP. 19780424 200801 2 022
Mengetahui
Ketua Program Studi Teknik Informatika
Arini, MT
NIP. 19760131 200901 2 001
iv
UIN Syarif Hidayatullah Jakarta
LEMBAR PENGESAHAN
Skripsi yang berjudul “Implementasi BM25F Pada Pencarian Produk e-Commerce
Berbasis Web (Studi Kasus: Web e-Commerce) ” telah diujikan dalam sidang
munaqasyah Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta pada 20
Februari 2019. Skripsi ini telah diterima sebagai salah satu syarat untuk memperoleh
gelar Sarjana Komputer (S.Kom) pada Program Studi Teknik Informatika.
Tangerang Selatan, 12 Maret 2019
Tim Penguji
Penguji I
Nurhayati, Ph.D
NIP. 19690316 199903 2002
Penguji II
Husni Teja Sukmana, Ph.D
NIP. 19770327 200312 2001
Tim Pembimbing
Pembimbing I
Dewi Khairani, M.Sc
NIP. 19820522 201101 2009
Pembimbing II
Luh Kesuma Wardhani, M.T
NIP. 19780424 200801 2022
Mengetahui,
Dekan Fakultas
Sains dan Teknologi
Prof. Dr. Lily Surraya Eka Putri, M.Env.Stud
NIP. 19690404 200501 2005
Ketua Program Studi
Teknik Informatika
Arini, M.T
NIP. 19760131 200901 2001
v
UIN Syarif Hidayatullah Jakarta
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
Sebagai civitas akademik UIN Syarif Hidayatullah Jakarta, saya yang bertanda tangan di
bawah ini:
Nama : Abdurrahman
NIM : 1113091000046
Program Studi : Teknik Informatika
Fakultas : Sains dan Teknologi
Jenis Karya : Skripsi
demi pembuatan ilmu pengetahuan, menyetujui untuk memberikan kepada UIN Syarif
Hidayatullah Jakarta Hak Bebas Royalti Noneksklusif (Non-exclusive Royalti Free Right)
atas karya ilmiah yang berjudul:
IMPLEMENTASI BM25F PADA PENCARIAN PRODUK E-COMMERCE
BERBASIS WEB (STUDI KASUS: WEB E-COMMERCE)
beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Noneksklusif ini
UIN Syarif Hidayatullah Jakarta berhak menyimpan, mengalihmedia/formatkan,
mengelola dalam bentuk pangkalan data (database), merawat, dan mempublikasikan tugas
akhir saya selama tetap mencantumkan nama saya sebagai penulis/pencipta dan sebagai
pemilik Hak Cipta. Demikian pernyataan ini saya buat dengan sebenarnya.
Tangerang Selatan, 12 Maret 2019
Yang menyatakan
Abdurrahman
vi
UIN Syarif Hidayatullah Jakarta
Nama : Abdurrahman
Program Studi : Teknik Informatika
Judul : Implementasi BM25F Pada Pencarian Produk e-Commerce
Berbasis Web (Studi Kasus: Web e-Commerce)
ABSTRAK
E-commerce XYZ merupakan salah satu e-commerce di Indonesia yang
mempunyai beragam produk yang dijual. Dalam observasi yang dilakukan terhadap
e-commerce tersebut, didapatkan masalah bahwa suatu barang yang dicari tidak
tampil pada bagian paling atas dalam hasil pencarian tersebut. BM25F menjadi
salah satu solusi untuk menentukan ketepatan dari kata yang dicari. BM25F
merupakan salah satu transformasi dari term frequency yang ada pada vector space
model. Penelitian ini merupakan penelitian eksperimental untuk menguji akurasi
dari BM25F. Analisis dari hasil pengujian yang penulis lakukan menunjukan bahwa
BM25F dapat digunakan dalam pencarian produk e-commerce berbasis web. Selain
itu, BM25F mempunyai akurasi yang lebih tinggi dibandingkan dengan BM25.
Tingkat akurasi pada BM25F sebesar 97,27 %, sedangkan BM25 sebesar 86,32%.
Kata Kunci : BM25F, e-commerce, information retrieval, pencarian,
vector space model
Jumlah Halaman : XIV + 71 Halaman
vii
UIN Syarif Hidayatullah Jakarta
Name : Abdurrahman
Major : Informatics Engineering
Title : BM25F Implementation on Web-Based e-Commerce Product
Search (Case Study: e-Commerce Web)
ABSTRACT
E-commerce XYZ is one of the e-commerce in Indonesia that has a variety of
products sold. In observations made on e-commerce, it was found the problem that
an item sought did not appear at the very top of the search results. BM25F is one
solution to determine the accuracy of the words sought. BM25F is one of the
transformations of the term frequency in the vector space model. This research is
an experimental study to test the accuracy of BM25F. The analysis of the test results
that the authors did shows that BM25F can be used in searching for web-based e-
commerce products. In addition, BM25F has a higher accuracy compared to BM25.
The level of accuracy on BM25F is 97.27%, while BM25 is 86.32%.
Kata Kunci : BM25F, e-commerce, information retrieval, searching,
vector space model
Jumlah Halaman : XIV + 71 Pages
viii
UIN Syarif Hidayatullah Jakarta
KATA PENGANTAR
حيم حمن الر بسم هللا الر
Puji syukur kehadirat Allah SWT yang telah memberikan rahmat, taufik, serta
hidayah-Nya sehingga penulis dapat melaksanakan dan menyelesaikan tugas
laporan skripsi dengan baik. Judul penulisan laporan skripsi yang penulis ambil
adalah “IMPLEMENTASI BM25F PADA PENCARIAN PRODUK E-
COMMERCE BERBASIS WEB (STUDI KASUS: WEB E-COMMERCE)”.
Keberhasilan laporan skripsi ini tentu dikarenakan adanya dukungan dari
berbagai pihak. Tanpa adanya pihak-pihak terkait, upaya pengujian laporan ini
tidak berarti apa-apa. Maka dari itu penulis mengucapkan terima kasih kepada:
1. Allah SWT karena segala sesuatu terjadi atas kehendak-Nya
2. Kedua orang tua yang selalu memberikan dukungan kepada penulis dalam
hal moril ataupun materil
3. Ibu Arini, ST, MT selaku Ketua Program Studi Teknik Informatika
4. Ibu Dewi Khairani selaku Dosen Pembimbing I yang senantiasa memberi
pengarahan dan bimbingan kepada penulis dalam menyusun skripsi ini.
5. Ibu Luh Kesuma Wardhani selaku Dosen Pembimbing II yang telah
membantu dan memberi masukan terhadap penulisan pada skripsi ini.
6. Seluruh dosen TI UIN yang telah memberikan ilmu kepada penulis
7. Zainal Muttaqin yang merupakan teman satu topik dalam menulis skripsi
8. Kontrakan Team yang telah berjuang bersama dan memfasilitasi penulis
dalam menyelesaikan skripsi ini.
9. Bayti Studio yang telah menemani dan membantu penulis selama berkuliah
10. Semua pihak yang tidak bisa penulis sebutkan yang juga turut membantu
penulis dalam menyelesaikan skripsi ini.
ix
UIN Syarif Hidayatullah Jakarta
Akhir kata penulis menyadari banyaknya kekurangan yang terdapat pada
penulisan ini, sehingga penulis mengharapkan adanya saran dan kritik yang bersifat
membangun demi kesempurnaan skripsi ini.
Tangerang Selatan, 12 Maret 2019
Abdurrahman
x
UIN Syarif Hidayatullah Jakarta
DAFTAR ISI
PERNYATAAN ORISINALITAS ......................................................................... ii
LEMBAR PERSETUJUAN PEMBIMBING ........................................................ iii
LEMBAR PENGESAHAN ................................................................................... iv
PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI .................................. iv
ABSTRAK ............................................................................................................. vi
ABSTRACT ............................................................................................................ vii
KATA PENGANTAR ......................................................................................... viii
DAFTAR ISI ........................................................................................................... x
DAFTAR GAMBAR ............................................................................................ xii
DAFTAR TABEL ................................................................................................ xiii
DAFTAR LAMPIRAN ........................................................................................ xiv
BAB I PENDAHULUAN ....................................................................................... 1
1.1. Latar Belakang ............................................................................................ 1
1.2. Tujuan Penelitian ......................................................................................... 4
1.3. Manfaat Penelitian ....................................................................................... 4
1.4. Rumusan Masalah ....................................................................................... 5
1.5. Batasan Masalah .......................................................................................... 5
1.6. Metodologi Penelitian ................................................................................. 5
1.6.1 Metode Pengumpulan Data ............................................................. 6
1.6.2 Metode Pengimplementasian ........................................................... 6
1.7. Sistematika Penulisan .................................................................................. 6
BAB II LANDASAN TEORI ................................................................................. 8
2.1. Information Retrieval .................................................................................. 8
2.1.1. Komponen Information Retrieval .................................................... 8
2.2. Macam-Macam Model Information Retrieval .......................................... 12
2.2.1. Boolean Model ............................................................................... 12
2.2.2. Probabilistic Model ....................................................................... 13
2.2.3. Vector Space Model ....................................................................... 15
xi
UIN Syarif Hidayatullah Jakarta
2.3. BM25 ......................................................................................................... 18
2.3.1. BM25F ........................................................................................... 19
2.4. Recall Precision ........................................................................................ 20
2.5. E-Commerce .............................................................................................. 21
2.6. Laravel ....................................................................................................... 23
2.7. Literatur Sejenis ........................................................................................ 24
BAB III METODE PENELITIAN........................................................................ 28
3.1. Metode Pengumpulan Data ....................................................................... 28
3.1.1. Studi Literatur ................................................................................ 28
3.1.2. Observasi ....................................................................................... 28
3.2. Alur Penelitian ........................................................................................... 30
3.3. Skenario Pengujian .................................................................................... 31
BAB IV ANALISIS DAN IMPLEMENTASI ...................................................... 32
4.1. Perolehan Data .......................................................................................... 32
4.2. Analisis dan Desain ................................................................................... 32
4.3. Pembuatan Aplikasi Pencarian .................................................................. 33
4.3.1. Implementasi Pengolahan Data ..................................................... 33
4.3.2. Implementasi Pencarian ................................................................. 50
4.4. Evaluasi ..................................................................................................... 54
BAB V HASIL DAN PEMBAHASAN ................................................................ 57
5.1. Pengujian ................................................................................................... 57
5.2. Analisa Hasil Pengujian ............................................................................ 60
BAB VI KESIMPULAN DAN SARAN .............................................................. 61
6.1. Kesimpulan ................................................................................................ 61
6.2. Saran .......................................................................................................... 61
DAFTAR PUSTAKA ........................................................................................... 62
LAMPIRAN-LAMPIRAN .................................................................................... 65
xii
UIN Syarif Hidayatullah Jakarta
DAFTAR GAMBAR
Gambar 1. 1 : Pertumbuhan Pengguna Internet Indonesia (Asosiasi Penyelenggara
Jasa Internet Indonesia, 2018) ................................................................................. 1
Gambar 1. 2 : Jumlah Pengguna Internet di Dunia Setiap Tahun (Internet Live
Stats, 2019) .............................................................................................................. 2
Gambar 2. 1 : Arsitektur Information Retrieval (Latha, 2018) ............................... 9
Gambar 2. 2 : Ide Dasar Model Probabilistik (Zhai & Massung, 2016) ............... 14
Gambar 2. 3 : Ilustrasi Dokumen-Dokumen Dalam Ruang Vektor (Zhai &
Massung, 2016) ..................................................................................................... 16
Gambar 2. 4 : Grafik BM25 (Zhai & Massung, 2016).......................................... 19
Gambar 3. 1 : ERD Table Produk ......................................................................... 29
Gambar 3. 2 : Alur Penelitian ............................................................................... 30
Gambar 4. 1 : Skema Proses Secara Umum .......................................................... 34
Gambar 4. 2 : Proses Tokenisasi ........................................................................... 36
Gambar 4. 3 : Flowchart Inverse Document Frequency ....................................... 43
Gambar 4. 4 : Flowchart BM25F Bagian 1 .......................................................... 51
Gambar 4. 5 : Flowchart BM25F Bagian 2 .......................................................... 52
Gambar 4. 6 : Flowchart Proses Pencarian ........................................................... 53
Gambar 5. 1 : Analisis Hasil Pengujian ................................................................ 60
xiii
UIN Syarif Hidayatullah Jakarta
DAFTAR TABEL
Tabel 2. 1 : Recall dan Precision .......................................................................... 21
Tabel 2. 2 : Tabel Literatur Sejenis ....................................................................... 24
Tabel 4. 1 : Contoh Nama Produk dan Deskripsi.................................................. 38
Tabel 4. 2 : Contoh Kategori Produk .................................................................... 40
Tabel 4. 3 : Hasil Tokenisasi ................................................................................. 41
Tabel 4. 4 : Tabel IDF ........................................................................................... 44
Tabel 4. 5 : Hasil Nilai BM25F Langkah Pertama ............................................... 47
Tabel 4. 6 : Nilai 𝑤𝑡, 𝐷.......................................................................................... 48
Tabel 4. 7 : Bobot Akhir BM25F .......................................................................... 49
Tabel 4. 8 : Tabel Hasil Akhir BM25F ................................................................. 54
Tabel 4. 9 : Hasil Perhitungan avp(L) ke-1 ........................................................... 55
Tabel 4. 10 : Hasil Perhitungan avp(L) ke-2 ......................................................... 56
Tabel 4. 11 : Hasil Perhitungan Akhir MAP ......................................................... 56
Tabel 5. 1 : Hasil avp(L) Bagian I ......................................................................... 57
Tabel 5. 2 : Hasil avp(L) Bagian II ....................................................................... 58
Tabel 5. 3 : Hasil avp(L) Bagian III ...................................................................... 59
xiv
UIN Syarif Hidayatullah Jakarta
DAFTAR LAMPIRAN
LAMPIRAN 1 KODE PROGRAM TOKENISASI ............................................. 65
LAMPIRAN 2 KODE PROGRAM IDF............................................................... 69
LAMPIRAN 3 KODE PROGRAM BM25F......................................................... 70
1
UIN Syarif Hidayatullah Jakarta
BAB I
PENDAHULUAN
1.1. Latar Belakang
Seiring bertambahnya tahun, pengguna internet di dunia pun terus menerus
bertambah. Secara global, jumlah pengguna internet per Februari 2019 menyentuh
angka 4,1 miliar. Jumlah ini lebih banyak dari tahun sebelumnya yang berkisar 3,8
miliar pengguna (Internet Live Stats, 2019).
Pertumbuhan pengguna internet yang pesat juga terjadi di Indonesia.
Sebanyak 8 persen pengguna internet di Indonesia bertambah dari tahun 2017
sampai dengan tahun 2018. Pada awal tahun 2018, pengguna internet di Indonesia
berjumlah 143,26 juta pengguna (Internet World Stats, 2019). Sedangkan pada
tahun 2017, pengguna internet di Indonesia berjumlah 132,7 juta pengguna (We
Are Social, 2018).
Gambar 1. 1 : Pertumbuhan Pengguna Internet Indonesia (Asosiasi Penyelenggara Jasa
Internet Indonesia, 2018)
2
UIN Syarif Hidayatullah Jakarta
Hal ini tentu berdampak pada perkembangan e-commerce di Indonesia.
Menurut lembaga survey We Are Social, pengguna internet di Indonesia yang
berbelanja online mencapai 28,07 juta orang. Selama setahun terakhir, para
pengguna tersebut menghabiskan uang sebesar US$7,056 miliar atau sekitar Rp99,5
triliun untuk berbelanja di berbagai e-commerce (We Are Social, 2018). Nilai ini
jelas meningkat dibandingkan tahun-tahun sebelumnya. Pada 2017, jumlah online
shopper mencapai 24,74 juta orang dengan nilai transaksi sekitar US$5,6 miliar
(We Are Social, 2017). Sedangkan pada 2016, nilai transaksi dari online shopper
sekitar US$4,89 miliar (Hadi, 2017) .
Selain nilai transaksinya yang besar, pertumbuhan industri belanja online
juga cukup tinggi. Menurut Ketua Umum Indonesian E-Commerce Association
(idEA), Aulia E. Marinto, data Sensus Ekonomi 2016 dari Badan Pusat Statistik
(BPS) menyebutkan, industri e-Commerce Indonesia dalam sepuluh tahun terakhir
tumbuh sekitar tujuh belas persen dengan total jumlah usaha e-Commerce mencapai
26,2 juta unit (Abdurrahman, 2017).
Gambar 1. 2 : Jumlah Pengguna Internet di Dunia Setiap Tahun (Internet Live Stats,
2019)
Selain dari banyaknya jumlah usaha e-commerce, produk yang dijual di e-
commerce pun sangat beragam dan banyak jumlahnya. Menurut CEO dari e-
commerce Tokopedia, William Tanuwijaya, Tokopedia mencatat adanya 9 jutaan
3
UIN Syarif Hidayatullah Jakarta
produk yang terjual melalui situs Tokopedia pada Bulan Desember 2015 (Fajrina,
2016). Selain itu, situs jual beli online Lazada juga telah mencatat 7 juta produk
yang ditampung pada platform mereka baik dari pihak Lazada ataupun dari mitra
pedagang (Yordan & Panji, 2017).
Banyaknya barang yang mereka tampung tersebut tentu membutuhkan fitur
pencarian untuk memudahkan customer memperoleh barang yang mereka
inginkan. Memberikan kemudahan kepada orang lain merupakan salah satu
perbuatan mulia dalam Islam sehingga Rasulullah SAW bersabda:
صل ي اهلل عنه، عني النبي ن ى اهلل عليهي وسلم قال :عن أبي هري رة رضي ن كربة مي س عن مؤمي من ن ف
ر اهلل ر يس ر على معسي يامةي، ومن يس ن كربي ي ومي القي س اهلل عنه كربة مي ن يا ن ف ن يا كربي الد عليهي في الد
رةي، ومن ست ر مس يهي واآلخي رةي واهلل في عوني العبدي ما كان العبد في عوني أخي ن يا واآلخي ليما ست ره اهلل في الد
Dari Abu Hurairah ra, Nabi SAW, bersabda: “Barang siapa yang melepaskan satu
kesusahan seorang mukmin, pasti Allah akan melepaskan darinya satu kesusahan
pada hari kiamat. Barang siapa yang menjadikan mudah urusan orang lain, pasti
Allah akan memudahkannya di dunia dan di akhirat. Barang siapa yang menutupi
aib seorang muslim, pasti Allah akan menutupi aibnya di dunia dan di akhirat. Allah
senantiasa menolong hamba Nya selama hamba Nya itu suka menolong
saudaranya”. (HR. Muslim, lihat juga Kumpulan Hadits Arba’in An Nawawi hadits
ke 36).
Ketepatan antara kata kunci yang dimasukkan dengan barang yang
ditampilkan merupakan tujuan utama dalam pencarian ini. Semakin tepat informasi
yang didapatkan maka semakin puas customer dalam berbelanja. Untuk
memperoleh ketepatan dalam pencarian maka digunakanlah suatu teknik yang
disebut information retrieval.
Ada beberapa model pencarian dalam information retrieval. Model-model
tersebut digunakan untuk memutuskan hasil dari informasi yang akan didapat
berdasarkan pada variabel-variabel tertentu. Salah satu model yang terkenal berada
dalam beberapa penelitian adalah vector space model. Dalam model tersebut, hasil
ditentukan berdasarkan kemiripan antara kata kunci yang dimasukan dengan
4
UIN Syarif Hidayatullah Jakarta
dokumen yang tersedia. Kemudian dalam perkembangannya, vector space model
mengalami beberapa modifikasi. Salah satu modifikasinya disebutkan dalam jurnal
yang berjudul A Short Note on Proximity-based Scoring of Documents with
Multiple Fields karya Tomohiro Manabe dan Sumio Fujita. Modifikasi tersebut
bernama BM25F. Menurut mereka, fungsi BM25F memiliki perlakuan khusus
terhadap dokumen terstruktur dengan sebuah set kolom, contohnya nama barang,
spesifikasi, deskripsi, tanggal publikasi, dan harga seperti yang terdapat pada
pencarian e-commerce (Manabe & Fujita, 2017).
Sehingga dengan adanya teknik tersebut customer diharapkan tidak hanya
memperoleh barang yang sesuai dengan kata kunci yang dimasukkan, tetapi juga
memperoleh barang yang mirip atau mendekati kata kunci yang dimasukkan.
Sehingga customer tidak perlu mengingat nama barang secara detail karena sistem
sudah mengetahui apa yang dimaksud oleh customer.
Dalam hal pencarian barang, PT. XYZ mengalami masalah pada fitur
pencarian di situsnya. Ketika customer mencari barang berdasarkan nama barang
tertentu, nama barang lain justru muncul paling atas dalam hasil pencarian.
Sedangkan barang yang dimaksud berada pada posisi yang jauh sehingga customer
masih harus mencarinya dalam hasil pencarian tersebut. Hal ini menyebabkan
waktu yang ada terbuang atau tidak efisien karena customer masih harus melakukan
pencarian setelah melakukan pencarian di situs tersebut. Maka dari itu, penulis
ingin melakukan penelitian yang berjudul Implementasi Vector Space Model dan
BM25F Pada Pencarian Produk e-Commerce Berbasis Web (Studi Kasus: Web
e-Commerce).
1.2. Tujuan Penelitian
Tujuan dari penelitian ini adalah mengimplementasikan BM25F pada
pencarian produk e-commerce berbasis web dan juga mengetahui tingkat akurasi
BM25F dalam pencarian tersebut.
1.3. Manfaat Penelitian
5
UIN Syarif Hidayatullah Jakarta
Setelah melaksanakan skripsi ini diharapkan skripsi ini dapat memberikan
manfaat kepada berbagai pihak, salah satunya kepada mahasiswa-mahasiswa atau
para peneliti yang ingin melakukan penelitian seputar BM25F atau yang berkaitan
dengan BM25F. Selain itu, penelitian ini diharapkan dapat diaplikasikan ke dalam
sebuah sistem e-commerce yang sesungguhnya oleh orang lain agar dapat
memudahkan para pengguna e-commerce dalam pencarian barang dan juga
diharapkan penelitian ini menambah wawasan bagi penulis dalam bidang
information retrieval.
1.4. Rumusan Masalah
Atas dasar permasalahan yang telah dijelaskan sebelumnya, maka dapat
dirumuskan bahwa permasalahan yang akan dibahas adalah “Bagaimana
mengimplementasikan BM25F pada pencarian produk e-commerce berbasis web
dan bagaimana mengetahui akurasi dari BM25F pada pencarian produk e-
commerce berbasis web”.
1.5. Batasan Masalah
Batasan masalah dalam penelitian ini adalah :
1. Metode pemberian skor menggunakan persamaan BM25F
2. Penelitian ini membahas analisis data, analisis proses implementasi,
implementasi, serta pengujian dari implementasi yang sudah dilakukan
3. Terdapat dua proses dalam implementasi, yaitu proses pengolahan data dan
proses pencarian
4. Implementasi dilakukan dalam bentuk aplikasi web dengan menggunakan
bahasa pemrograman PHP serta menggunakan web server XAMPP
5. Data pengujian yang digunakan sebanyak 400 data dari perusahaan web e-
commerce XYZ
1.6. Metodologi Penelitian
6
UIN Syarif Hidayatullah Jakarta
Dalam melakukan penelitian ini, penulis menggunakan metode penelitian
sebagai berikut:
1.6.1 Metode Pengumpulan Data
Metode yang penulis gunakan untuk mengumpulkan data dan fakta
dalam menguraikan masalah dalam penelitian ini meliputi:
1. Studi Literatur
Penulis mengumpulkan data dari karya tulis yang relevan dengan
permasalahan yang penulis temukan. Hal ini diakukan untuk
menambah referensi, sehingga dapat dipelajari sebagai landasan
teori mengenai permasalahan yang ada.
2. Observasi
Penulis juga menggunakan observasi sebagai masalah utama dari
penelitian yang penulis lakukan. Observasi dilakukan terhadap
website e-commerce XYZ.
1.6.2 Metode Pengimplementasian
Dalam mengimplementasikan model yang penulis ajukan, penulis
lakukan dengan beberapa tahapan, yaitu analisa, implementasi, dan pengujian.
1.7. Sistematika Penulisan
Dalam penyusunan skripsi ini, pembahasan terbagi dalam enam bab yang
secara singkat akan diuraikan sebagai berikut:
BAB I PENDAHULUAN
Dalam bab ini menerangkan tentang hal umum tentang
permasalahan dasar, yaitu latar belakang, rumusan masalah,
batasan masalah, tujuan penelitian, manfaat penelitian, metode
penelitian, dan sistematika penulisan.
BAB II LANDASAN TEORI
Pada bab ini berisi penjelasan secara rinci mengenai konsep dari
teori-teori yang digunakan dalam penyusunan skripsi ini.
BAB III METODE PENELITIAN
7
UIN Syarif Hidayatullah Jakarta
Berisi tentang uraian secara rinci metode penilitian yang
digunakan. Metode tersebut meliputi metode pengumpulan data
dan metode pengimplementasian.
BAB IV ANALISIS, PERANCANGAN, IMPLEMENTASI, DAN
PENGUJIAN SISTEM
Bab ini membahas analisis terhadap kebutuhan sistem,
perancangan, dan implementasi pengembangannya.
BAB V HASIL DAN PEMBAHASAN
Bab ini berisi hasil dan pembahasan yang didapat dari penelitian
yang dilakukan penulis.
BAB VI PENUTUP
Dalam bab ini berisi kesimpulan dan saran.
8
UIN Syarif Hidayatullah Jakarta
BAB II
LANDASAN TEORI
2.1. Information Retrieval
Information retrieval adalah menemukan materi dari sebuah bahan yang
tidak terstruktur (biasanya teks) yang dapat memenuhi sebuah informasi yang
diinginkan dari koleksi yang besar. Information retrieval bekerja dengan
menggolongkan dokumen yang sesuai berdasarkan relevansinya dan kemudian
menampilkannya kepada pengguna. Tujuan dari information retrieval adalah untuk
meminimalisir biaya operasi pengguna dalam menemukan informasi yang bernilai
(Manning, Raghavan, & Schutze, 2009).
Selain menurut Christopher Manning, beberapa ahli lain juga
mendefinisikan apa itu information retrieval. Menurut K. Latha dalam bukunya
yang berjudul Experiment And Evaluation In Information Retrieval Models,
information retrieval adalah teknik dan proses mencari, memperoleh kembali, dan
memanipulasi informasi dari data yang tersimpan dalam jumlah besar. Selain itu,
menurut Britannica Concise Encyclopedia, information retrieval adalah
memperoleh kembali informasi, terutama dalam sebuah basis data yang tersimpan
dalam komputer. Menurut Mooers (1950), information retrieval adalah nama dari
suatu proses atau metode yang dimana seorang calon pengguna informasi dapat
mengubah kebutuhan informasinya ke dalam sebuah daftar kutipan sesungguhnya
ke dokumen yang berada di penyimpanan yang mengandung informasi yang
berguna untuk pengguna (Latha, 2018).
2.1.1. Komponen Information Retrieval
Secara umum, ada tiga komponen besar yang membentuk sebuah
sistem information retrieval, yaitu, pemrosesan dokumen, pemrosesan query,
dan pemberian ranking. Untuk lebih jelasnya dapat dilihat pada Gambar 2.1.
9
UIN Syarif Hidayatullah Jakarta
Gambar 2. 1 : Arsitektur Information Retrieval (Latha, 2018)
1. Pemrosesan Dokumen
Pada pemrosesan dokumen ada beberapa modul yang harus dilakukan,
yaitu, modul tokenisasi (tokenizing), modul pembuangan stopword
(filtering), modul pengubahan kata dasar (stemming), modul pengindeksan
kata (indexing), dan modul pembobotan kata (term weighting),.
Pertama adalah proses tokenizing, yaitu, proses untuk memisahkan
setiap kata dalam suatu dokumen. Pada umumnya setiap kata dipisahkan
oleh karakter spasi, sehingga proses ini menggunakan karakter spasi untuk
memisahkan setiap kata dalam suatu dokumen.
Kedua adalah proses filtering, yaitu, proses pembuangan kata yang
tidak memiliki arti atau tidak relevan. Pada proses ini, kata-kata yang telah
melalui proses tokenizing akan disaring lagi dengan membuang beberapa
kata yang tidak memiliki arti seperti kata “yang”, “di”, dan “ke”. Daftar
kata ini terdapat pada lampiran 1.
Ketiga adalah proses stemming, yaitu, proses untuk mengembalikan
kata dasar dari suatu kata. Jika suatu kata terdapat suatu imbuhan, di
belakang atau di depan, maka imbuhan tersebut dihilangkan dan kemudian
10
UIN Syarif Hidayatullah Jakarta
dikembalikan ke kata dasarnya. Tetapi jika suatu kata sudah merupakan
suatu kata dasar, maka simpan sebagai mana adanya.
Keempat adalah proses indexing, yaitu, proses pengindeksan kata-kata
dari koleksi teks yang digunakan untuk mempercepat proses pencarian.
Kata-kata ini diambil dari kata yang telah dilakukan proses stemming
sebelumnya dan kemudian disimpan dalam database.
Kelima adalah proses term weighting, yaitu, proses pembobotan setiap
kata yang muncul dalam dokumen. Pembobotan kata pada penelitian ini
menggunakan term frequency and inverse document frequency (tf-idf).
Proses pertama yaitu term frequency, yaitu, menghitung berapa banyak
kata tertentu yang muncul pada dokumen tertentu. Jika kata tersebut
muncul dalam suatu dokumen maka diberikan angka sebanyak
kemunculan kata tersebut. Jika tidak, maka diberikan angka 0.
Setelah menghitung jumlah kata yang muncul dalam suatu dokumen,
maka selanjutnya dilakukan proses inverse document frequency pada tiap
kata untuk menghitung bobot tiap kata. Inverse document frequency
merupakan sebuah ukuran informasi yang disediakan kata yang
menyatakan apakah suatu kata itu umum atau jarang pada seluruh koleksi
dokumen. Rumus inverse document frequency adalah sebagai berikut:
𝐼𝐷𝐹(𝑤) = 𝑙𝑜𝑔𝑀+1
𝑑𝑓(𝑤) (2.1)
dengan:
IDF (w) = bobot kata w
M = jumlah seluruh dokumen dalam koleksi,
df (w) = jumlah dokumen yang mengandung kata w.
Setelah mendapatkan nilai inverse document frequency pada tiap kata,
maka selanjutnya menghitung tf-idf weighting atau bobot hubungan suatu
kata di dalam dokumen. Rumus tf-idf weighting adalah sebagai berikut:
11
UIN Syarif Hidayatullah Jakarta
𝑤𝑓(𝑡,𝑑) = 𝑡𝑓𝑡,𝑑 ∗ 𝑖𝑑𝑓𝑡 (2.2)
dengan:
wf = bobot dokumen ke-d terhadap kata ke-t
tf = jumlah kemunculan kata ke-t pada dokumen ke-d
idf = bobot kata ke-t
Setelah diberikan pembobotan seperti yang sudah penulis jelaskan,
kemudian hasil-hasil perhitungan tersebut disimpan dalam database untuk
dipakai kemudian ketika pencarian dilakukan (Amin, 2011).
2. Pemrosesan Query
Sebenarnya proses query ini mempunyai banyak tahapan, tetapi karena
sudah terdapat database index pada proses sebelumnya, maka proses query
bisa dipersingkat.
Pada tahap ini, pengguna memasukan sebuah query ke dalam sistem.
Kemudian, sistem melakukan proses tokenizing terhadap query yang
dimasukan pengguna. Proses sama seperti proses tokenizing yang sudah
dibahas sebelumnya (Latha, 2018).
3. Pemberian Ranking
Proses pemberian ranking merupakan proses untuk menentukan urutan
relevansi dari query yang diberikan oleh pengguna dengan koleksi
dokumen yang dimiliki. Pemberian ranking ini menggunakan ranking
model.
Ranking model merupakan model untuk menentukan kecocokan antara
query yang diberikan pengguna dengan dokumen indeks yang berada di
sistem. Ranking model merupakan komponen utama dalam information
retrieval (Lie, 2011). Berbagai macam ranking model dalam information
retrieval akan dijelaskan pada bagian selanjutnya.
12
UIN Syarif Hidayatullah Jakarta
2.2. Macam-Macam Model Information Retrieval
2.2.1. Boolean Model
Boolean model merupakan sebuah model information retrieval yang
klasik dan merupakan model information retrieval pertama yang mungkin
banyak digunakan oleh beberapa sistem information retrieval (Latha, 2018).
Boolean model bekerja berdasarkan pada logika Boolean. Dokumen-dokumen
dianggap sebagai kumpulan-kumpulan istilah dan sebuah dokumen dianggap
relevan terhadap sebuah query jika dokumen-dokumen tersebut bernilai true
berdasarkan formula query. Pada model ini, query dan kumpulan dokumen
dikombinasikan dengan menggunakan operator logika matematika, seperti
operator konjungsi (AND), disjungsi (OR), dan negasi (NOT). Kemudian, model
akan mengambil dokumen yang persis sama dengan query yang diberikan
pengguna.
Mengkombinasikan istilah-istilah dengan operator AND akan
menghasilkan sebuah kumpulan dokumen yang lebih sedikit daripada kumpulan
dokumen dari setiap istilah. Sebagai contoh, diberikan query “information AND
retrieval AND system”, maka sistem akan mengembalikan dokumen yang
memiliki ketiga istilah tersebut dalam satu dokumen. Jika hanya memiliki satu
atau dua dari ketiga istilah tersebut, maka logika bernilai false dan dokumen
dianggap tidak relevan, begitu juga sebaliknya. Selain itu, mengkombinasikan
istilah-istilah dengan operator OR akan menghasilkan sebuah kumpulan
dokumen yang lebih besar daripada kumpulan dokumen dari setiap istilah
tersebut. Sebagai contoh, diberikan query “information OR retrieval OR
system”, maka sistem akan mengembalikan dokumen yang memiliki salah satu
dari ketiga istilah tersebut dalam satu dokumen. Jika salah satu dari ketiga istilah
tersebut terdapat pada sebuah dokumen, maka logika bernilai true dan dokumen
dianggap releven, begitu juga sebaliknya.
Kelebihan dari model ini adalah konsepnya sangat intuitif. Boolean
model menawarkan cara kerja yang mudah untuk dimengerti oleh pengguna
sistem information retrieval pada umumnya. Tetapi kekurangan utama
menggunakan model ini adalah tidak ditetapkannya urutan (ranking) untuk temu
13
UIN Syarif Hidayatullah Jakarta
balik dokumen-dokumen. Strategi retrieval dengan berdasarkan keputusan biner
menyebabkan performa sistem information retrieval menjadi sangat buruk. Hal
itu karena terlalu kompleks untuk menerjemahkan informasi yang dibutuhkan ke
dalam sebuah ekspresi Boolean. Kebanyakan pengguna akan kesulitan dan
merasa aneh menuliskan query ke dalam ekspresi Boolean.
Namun begitu, Boolean model tetap populer dengan pengguna karena
kendali yang tidak ambigu yang ditawarkan oleh sistem kepada user. Boolean
model juga merupakan titik pangkal dari beberapa model information retrieval.
Maka dari itu, Boolean model disebut sebagai “model dari model” dan berperan
sebagai referensi dari beberapa model lain.
2.2.2. Probabilistic Model
Selain Boolean model, ada juga probabilistic model atau dalam bahasa
Indonesia disebut dengan model probabilistik. Pada model probabilistik, sudah
terdapat fungsi ranking yang berdasarkan probabilitas relevansi sebuah
dokumen terhadap sebuah query atau suatu variabel biner acak yang
menunjukkan relevansi.
Pada dasarnya, cara kerja dari model probabilistik adalah dengan
menghitung kemungkinan sebuah query akan menghasilkan suatu kumpulan
dokumen tertentu. Kemungkinan itu didapat dari pertanyaan apakah pengguna
menyukai suatu dokumen ketika pengguna memasukan sebuah query. Semakin
banyak pengguna yang menyukai dokumen tersebut ketika query yang sama
dimasukan, maka semakin tinggi peringkat dari dokumen tersebut dalam
kumpulan dokumen yang dihasilkan. Untuk lebih memahaminya penulis
lampirkan pada Gambar 2.2.
14
UIN Syarif Hidayatullah Jakarta
Gambar 2. 2 : Ide Dasar Model Probabilistik (Zhai & Massung, 2016)
Pada Gambar 2.2 ditunjukkan daftar beberapa nilai status relevansi dari
query terhadap dokumen. Pada tabel tersebut ditunjukkan bahwa q merupakan
query yang dimasukan oleh pengguna, d merupakan dokumen yang dilihat
pengguna, dan R merupakan ekspresi Boolean yang diberikan pengguna yang
menyatakan apakah dokumen tertentu relevan terhadap query tertentu. Mari kita
lihat lebih detail lagi, pada kasus ini penulis contohkan bahwa seorang pengguna
pada q1 memilih d1, d2, dan d5, tetapi terdapat pengguna lain yang pada query
yang sama, yaitu, q1, memilih d2 sebagai dokumen yang relevan terhadap q1.
Maka, kemudian harus dihitung probabilitas kemungkinan dipilihnya d1, d2, d3,
d4, dan d5 pada query q1 dengan rumus:
𝑝(𝑅 = 1|𝑑, 𝑞) =𝑐𝑜𝑢𝑛𝑡(𝑅=1,𝑑,𝑞)
𝑐𝑜𝑢𝑛𝑡(𝑑,𝑞) (2.3)
Maka kemudian, dokumen dengan probabilitas paling tinggi dalam
suatu query akan ditempatkan lebih prioritas dibandingkan dokumen yang
probabilitasnya lebih rendah (Zhai & Massung, 2016).
Information retrieval yang menggunakan jenis model ini mempunyai
kekurangan tersendiri. Pertama, harus menebak untuk inisiasi ranking.
Dikarenakan probabilitas tergantung pada pendapat pengguna, maka pada
15
UIN Syarif Hidayatullah Jakarta
awalnya, kita harus menebak angka kemungkinan suatu query akan
memunculkan dokumen-dokumen tertentu. Kedua, bebas melakukan asumsi.
Hampir sama seperti kelemahan pertama, selain asumsi pada saat inisiasi, ada
juga asumsi bebas dari pengguna ketika memilih suatu dokumen sehingga bisa
mempengaruhi hasil yang nanti dikeluarkan oleh sistem. Ketiga, pembobotannya
menggunakan biner dan mengabaikan frekuensi. Karena adanya kelemahan ini,
maka diperlukan improvisasi untuk mengurangi kelemahan-kelemahan ini.
2.2.3. Vector Space Model
Peter Luhn merupakan orang pertama yang memperkenalkan model
statistika dalam information retrieval, berdasarkan pada kesamaan terhadap
pencarian informasi. Peter Luhn menyadari bahwa pembobotan menggunakan
bilangan biner, seperti Boolean model dan probabilistic model, mempunyai
banyak keterbatasan. Maka dari itu, Peter Luhn mengusulkan suatu pembobotan
yang non-biner, yaitu pembobotan indeks kata dalam query dan kata dalam
dokumen. Dengan demikian, maka dapat dihitung derajat kesamaan antara tiap
dokumen dan query dari pengguna.
Setelah Peter Luhn membuat persamaan dan konsep tentang model
tersebut, Gerard Salton dan koleganya membuat sebuah model berdasarkan
ruang vector (vector space) dengan menggunakan konsep yang telah dibuat oleh
Peter Luhn (Latha, 2018). Vector space model merupakan sebuah model yang
simpel dan merupakan metode yang masih efektif dalam menentukan peringkat
dalam information retrieval. Pada model ini, tingkat relevansi ditentukan oleh
kesamaan istilah/kata antara sebuah query dan sebuah dokumen. Semakin
banyak kesamaan antara query tersebut dan suatu dokumen maka dokumen
tersebut dianggap lebih relevan, begitu pun sebaliknya.
Gagasan dasar dari vector space model dapat dibayangkan ke dalam
sebuah ruang kosong suatu dimensi yang dimana setiap dimensi dinyatakan
dengan sebuah istilah. Kemudian, setiap dokumen direpresentasikan sebagai
sebuah vektor dari besaran istilah. Untuk lebih jelasnya dapat dilihat pada
Gambar 2.3.
16
UIN Syarif Hidayatullah Jakarta
Gambar 2. 3 : Ilustrasi Dokumen-Dokumen Dalam Ruang Vektor (Zhai & Massung,
2016)
Pada Gambar 2.3, terdapat tiga ruang dimensi dengan tiga buah kata,
yaitu kata programming, library, dan presidential. Setiap istilah kata tersebut
mendefinisikan satu dimensi. Kemudian, setiap dokumen dan query ditempatkan
pada ruang vektor tersebut. Sebagai contoh, dokumen d1 merepresentasikan
sebuah dokumen yang mengandung istilah library dan presidential tanpa
membicarakan tentang programming. Lalu, dapat dilihat ada perbedaan dengan
vektor dari dokumen lain. Pada dokumen d2, dokumen mengandung istilah
programming dan library, tetapi tidak mengandung istilah presidential.
Kemudian, d3 arah panahnya menunjuk ke arah yang mengandung istilah
presidential dan programming. Semua dokumen yang berada di ruang vektor
akan menunjuk ke arah tertentu yang diberikan oleh ketiga dimensi tersebut.
Selain dokumen-dokumen yang dijadikan vektor, query juga
dimasukan ke dalam ruang vektor tersebut sebagai sebuah vektor. Jika sudah,
maka dapat dihitung persamaan antara vektor dari setiap dokumen dan vektor
dari query. Dalam kasus yang ada pada contoh di atas, kita dapat melihat dengan
mudah bahwa vektor dari dokumen d2 berada di dekat vektor dari query. Hal itu
menandakan bahwa dokumen d2 lebih sesuai dengan query dan ditempatkan
pada peringkat teratas dalam sebuah hasil. Ini merupakan dasar pemikiran dari
vector space model.
17
UIN Syarif Hidayatullah Jakarta
Untuk menentukan vektor-vektor dari masing-masing dokumen dan
query kita harus menghitungnya dengan rumus-rumus tertentu. Cara paling
mudah adalah dengan menggunakan bit vector. Pada bit vector kita menentukan
apakah setiap istilah pada query terdapat pada suatu dokumen. Jika ada satu
istilah pada query yang terdapat pada dokumen, maka kita beri nilai 1 pada
dokumen tersebut. Semakin banyak istilah dalam query yang terdapat pada
dokumen, maka nilai dokumen tersebut semakin besar. Rumus bit vector dapat
dilihat pada persamaan 2.4 (Zhai & Massung, 2016).
𝑆𝑖𝑚(𝑞, 𝑑) = 𝑞. 𝑑 = 𝑥1𝑦1 + ⋯ + 𝑥𝑁𝑦𝑁 = ∑ 𝑥𝑖𝑁𝑖=1 𝑦𝑖 (2.4)
dengan : 𝑥𝑖 , 𝑦𝑖 ∈ {0,1}
Jika sudah dihitung persamaan antara seluruh dokumen dalam koleksi
dengan query, maka dapat ditentukan peringkat dari tiap dokumen berdasarkan
kesamaannya dengan query. Tetapi dengan menggunakan bit vector masih
terdapat banyak kelemahan. Terutama pada tingkat frekuensi kemunculan kata
dalam suatu dokumen. Kedua, ada beberapa kata yang seharusnya dianggap
lebih penting atau lebih utama dibandingkan yang lain. Maka dari itu, kita
memerlukan suatu improvisasi dengan menggunakan term frequency and
inverse document frequency (TF-IDF). TF-IDF ini sebenarnya sudah dibahas
pada bagian sebelumnya tentang komponen information retrieval. Maka pada
bagian ini, penulis hanya akan menjabarkan tujuan digunakannya TF-IDF pada
vector space model. TF (term frequency) merupakan metode untuk menghitung
seberapa banyak suatu kata muncul pada suatu dokumen. Persamaannya sama
seperti pada persamaan 2.4, tetapi dengan 𝑥𝑖 merupakan jumlah kata 𝑊𝑖 di dalam
query dan 𝑦𝑖 merupakan jumlah kata 𝑊𝑖 di dalam dokumen (Zhai & Massung,
2016).
TF ini menggantikan metode bit vector dalam pengaplikasiannya.
Sehingga persamaan antara dokumen dan query tidak hanya dihitung
berdasarkan ada atau tidaknya kata tertentu, tetapi juga frekuensi
kemunculannya dalam suatu dokumen. Kemudian ada juga IDF (inverse
18
UIN Syarif Hidayatullah Jakarta
document frequency), IDF digunakan untuk menghitung seberapa sering suatu
kata muncul dalam seluruh koleksi dokumen. Semakin sering suatu kata muncul
dalam seluruh dokumen, maka nilai IDF semakin kecil. Begitu pun sebaliknya,
sehingga kita dapat mengetahui seberapa penting suatu kata sebagai sebuah kata
kunci. Rumus untuk IDF ada pada pembahasan sebelumnya pada persamaan 2.1.
Jika nilai TF dan IDF sudah ditemukan, maka nilai persamaannya seperti pada
persamaan 2.5. Sehingga kita akan mendapatkan nilai persamaan dari tiap
dokumen, semakin besar nilai tersebut maka dianggap semakin relevan dengan
query.
𝑓(𝑞, 𝑑) = ∑ 𝑥𝑖𝑦𝑖𝑁𝑖=1 = ∑ 𝑐(𝑤, 𝑞)𝑐(𝑤, 𝑑)𝑙𝑜𝑔
𝑀+1
𝑑𝑓(𝑤)𝑤∈𝑞∩𝑑 (2.5)
2.3. BM25
BM25 merupakan sebuah fungsi pemeringkatan untuk pembobotan kata.
Pembobotan kata merepresentasikan seberapa berpengaruh jumlah kata yang
muncul di dalam sebuah dokumen terhadap relevansinya dengan query. Jika dilihat
pada pembahasan sebelumnya, maka BM25 ini menggantikan fungsi TF. Sehingga
didapatkan rumus:
𝑓(𝑞, 𝑑) = ∑ 𝑐(𝑤, 𝑞)(𝑘+1)𝑐(𝑤,𝑑)
𝑐(𝑤,𝑑)+𝑘(1−𝑏+𝑏|𝑑|
𝑎𝑣𝑑𝑙)
𝑤∈𝑞∩𝑑 𝑙𝑜𝑔𝑀+1
𝑑𝑓(𝑤) (2.6)
dimana k merupakan parameter setelan lebih atau sama dengan 0, semakin
besar nilai k, maka sama seperti memakai rumus nilai persamaan term frequency
dasar. Tetapi, jika nilai k sama dengan 0, maka rumus nilai persamaan sama seperti
menggunakan binary model. Kemudian, b merupakan parameter setelan antara 0
sampai 1. Nilai b = 1 menyatakan normalisasi secara penuh berdasarkan panjang
dokumen. Sedangkan nilai b = 0 menyatakan tidak adanya normalisasi. Secara
umum, hasil yang dihasilkan menggunakan BM25 akan seperti Gambar 2.4.
19
UIN Syarif Hidayatullah Jakarta
Gambar 2. 4 : Grafik BM25 (Zhai & Massung, 2016)
2.3.1. BM25F
BM25F merupakan pengembangan dari BM25 yang digunakan untuk
dokumen yang terstruktur yang terdiri dari sebuah set field. Setiap field
mempunyai sebuah array yang terdiri dari kata-kata yang muncul seperti yang
ada pada dokumen tidak terstruktur. Field diberikan tipe dan nama sesuai
fungsinya di dalam dokumen. Contohnya, field yang terdapat pada e-commerce,
yaitu nama barang, spesifikasi, deskripsi, tanggal, dan harga.
Perbedaan antara BM25F dengan BM25 hanya terdapat pada
perhatiannya terhadap pembobotan field. Rumus BM25F yang didapatkan dari
Tomohiro Manabe (2017) adalah sebagai berikut:
∑𝑤(𝑡,𝐷)
𝑘1+𝑤(𝑡,𝐷)𝑡∈𝑄 ∗ 𝑙𝑜𝑔𝑀+1
𝑑𝑓(𝑤) (2.7)
𝑤(𝑡, 𝐷) = ∑𝑡𝑓(𝑡,𝑓,𝐷)∗𝑏𝑜𝑜𝑠𝑡𝑓
(1−𝑏𝑓)+𝑏𝑓∗𝑙𝑒𝑛(𝑓,𝐷)/𝑎𝑣𝑔𝐿𝑒𝑛(𝑓)𝑓∈𝐷 (2.8)
dengan tf(t, f, D) adalah jumlah kemunculan t dalam field f dari dokumen D,
len(f, D) adalah jumlah seluruh kata yang ada dalam field f, dan avgLen(f)
merupakan rata-rata len(f, D) untuk semua dokumen. Sedangkan bf dan boostf
20
UIN Syarif Hidayatullah Jakarta
merupakan parameter bebas. Parameter bf sama seperti parameter b pada BM25
(Perez-Aguera, Arroyo, Greenberg, Iglesias, & Fresno, 2010), sedangkan boostf
ditentukan berbeda untuk setiap field tergantung pada bobot nilai field tersebut
(Manabe & Fujita, 2017).
2.4. Recall Precision
Dalam mengevaluasi performa dari suatu mesin pencari diperlukan sebuah
besaran tertentu sehingga dapat diukur secara ilmiah dan tidak berdasarkan
subjektifitas setiap orang. Maka dari itu, dibuatlah dua buah pengukuran dalam
mengukur performa dari suatu mesin pencari, yaitu, recall dan precision.
Recall merupakan perbandingan antara data relevan yang diterima
berbanding dengan keseluruhan data relevan yang diterima maupun yang tidak
diterima. Sedangkan precision merupakan perbandingan antara data relevan yang
diterima dengan keseluruhan data yang diterima baik relevan ataupun tidak. Untuk
lebih jelasnya dapat dilihat pada Tabel 2.1.
Tetapi, untuk mengukur performa dari mesin pencari yang menghasilkan
data hasil yang terurut tidak bisa hanya menggunakan recall dan precision yang
sederhana. Maka dari itu, diperlukan pengukuran yang lebih adil menggunakan
average precision.
Dalam menghitung average precision harus dilihat relevansi data yang
dihasilkan pada urutan ke-i dan dalam melihatnya harus satu per satu dari yang
teratas sampai yang paling bawah. Jika dalam melihat data ditemukan data yang
relevan, maka berikan nilai sebagai berikut:
𝑝(𝑖) =𝑅𝑒𝑙(𝑖)
𝑖 (2.9)
dengan Rel(i) merupakan jumlah data yang relevan hingga data ke-i. Selanjutnya,
seluruh nilai dirata-rata dengan persamaan average precision sebagai berikut:
21
UIN Syarif Hidayatullah Jakarta
𝑎𝑣𝑝(𝐿) =1
|𝑅𝑒𝑙|∑ 𝑝(𝑖)𝑛
𝑖=1 (2.10)
dengan Rel merupakan jumlah keseluruhan data yang relevan dengan query.
Dengan demikian telah didapatkan nilai average precision dari sebuah query.
Tabel 2. 1 : Recall dan Precision
Action
Retrieved Not Retrieved
Doc Relevant a b
Not Relevant c d
Precision 𝑎
𝑎 + 𝑐
Recall 𝑎
𝑎 + 𝑏
Selanjutnya, persamaan average precision dikembangkan untuk mengukur
tidak hanya untuk satu query, sehingga kita dapat mengetahui rata-rata dari
beberapa query. Rata-rata dari average precision disebut dengan mean average
precision (MAP) (Zhai & Massung, 2016). Persamaan dari mean average precision
adalah sebagai berikut:
𝑀𝐴𝑃 =1
𝑚∑ 𝑎𝑣𝑝(𝐿𝑖)
𝑚𝑖=1 (2.11)
2.5. E-Commerce
Electronic Commerce atau E-Commerce atau EC merujuk kepada perbuatan
menggunakan internet dan jaringan lainnya untuk membeli, menjual, atau mengirim
data, barang, ataupun pelayanan. Beberapa orang menganggap bahwa perdagangan
atau commerce hanya merupakan proses jual-beli antara penjual dan pembeli. Jika
definisi ini digunakan, maka pengertian e-commerce atau perdagangan elektronik
menjadi sangat sempit. Padahal, e-commerce tidak hanya meliputi jual-beli antara
penjual dan pembeli, tetapi lebih dari itu. E-commerce juga meliputi segala
22
UIN Syarif Hidayatullah Jakarta
jenis/macam bisnis online seperti pelayanan pelanggan, kolaborasi antar rekan
bisnis, penyampaian e-learning, dan transaksi elektronik antar organisasi.
Kegiatan e-commerce dapat dilakukan di sebuah e-marketplace, yaitu
sebuah lokasi online, yang dapat diakses menggunakan internet, di mana penjual
dan pembeli melakukan transaksi di sana. Setiap individu juga dapat membuka
sebuah e-marketplace sendiri untuk menjual barang-barang miliknya sendiri
(Turban, et al., 2018).
Menurut Efraim Turban (2018), terdapat banyak keuntungan dari adanya e-
commerce dan keuntungan itu akan terus bertambah seiring berjalannya waktu.
Keuntungan-keuntungan dari e-commerce dapat dibagi menjadi 3 bagian, yaitu
keuntungan untuk perusahaan, pelanggan, dan masyarakat.
Pertama, yaitu, keuntungan untuk perusahaan. Keuntungan pertama dengan
adanya e-commerce bagi perusahaan adalah cost reduction. Dengan adanya e-
commerce biaya untuk memproses, menyimpan, dan mendistribusikan barang
berkurang. Keuntungan kedua adalah supply chain improvements. Dengan adanya
e-commerce dapat mengurangi keterlambatan distribusi barang, proses
inventarisasi barang, dan juga biaya dalam distribusi barang. Keuntungan ketiga
adalah global reach. Dengan adanya e-commerce perusahaan dapat menentukan
lokasi pelanggan ataupun rekan bisnis dalam waktu yang cepat dan mendunia, serta
tentu saja dengan biaya yang lebih murah dibandingkan tanpa e-commerce.
Kemudian, bagian kedua yang mendapatkan keuntungan dari adanya e-
commerce adalah pelanggan. Keuntungan pertama yang mereka dapatkan yaitu
availability, yaitu pelanggan dapat mempunyai pilihan yang sangat luas untuk
memilih barang berdasarkan produsennya ataupun produknya. Keuntungan kedua
adalah ubiquity, yaitu pelanggan dapat berbelanja kapan pun dan dimana pun
mereka inginkan. Keuntungan ketiga adalah find bargains, yaitu pelanggan dapat
memilih harga yang tepat untuknya dengan menggunakan mesin pembanding yang
disediakan oleh e-commerce.
Bagian ketiga yang mendapatkan keuntungan adalah masyarakat.
Keuntungan pertama yang didapatkan masyarakat adalah increase standard of
living, yaitu standar hidup masyarakat menjadi bertambah, hal ini dikarenakan
23
UIN Syarif Hidayatullah Jakarta
harga barang menjadi murah dan masyarakat dapat membeli lebih banyak.
Keuntungan kedua adalah close the digital divide, yaitu masyarakat di pedesaan
dapat menggunakan lebih banyak pelayanan dan pembelian untuk apa yang mereka
benar-benar inginkan. Keuntungan ketiga adalah home shipping, yaitu
berkurangnya kemacetan dan polusi udara dikarenakan berkurangnya kendaraan
yang menuju tempat-tempat perbelanjaan. Keuntungan-keuntungan yang telah
penulis sebutkan tentu saja hanya merupakan sebagian kecil dari sekitar 30
keuntungan yang telah disebutkan oleh Efraim Tubran (2018).
2.6. Laravel
Laravel merupakan salah satu framework dari PHP. Sejak versi 3
diluncurkan, Laravel menjadi salah satu framework PHP yang paling populer dan
paling banyak digunakan dalam waktu yang singkat. Selain itu, repositori Laravel
yang terdapat di Github memiliki rating yang bagus dibandingkan dengan
framework lain seperti Symfony, CakePHP, CodeIgniter, dan Yii.
Laravel mempunyai tujuan yang sama seperti framework lainnya. Martin
Bean (2015) mengatakan bahwa dia terinspirasi dari framework populer lainnya
yang tidak hanya ada pada bahasa pemrograman PHP, tetapi juga pada bahasa
pemrograman lainnya, yaitu untuk mempermudah developer dalam menggunakan
fungsi-fungsi atau kelas-kelas yang biasa digunakan dalam pembuatan sebuah
website sehingga bisa digunakan kembali dalam pembuatan website yang lain.
Selain itu, Martin Bean mengatakan bahwa Laravel juga bertujuan untuk
memudahkan pekerjaan yang mengharuskan adanya kerjasama tim di dalamnya.
Walaupun Laravel mempunyai tujuan yang sama dengan framework lain,
tetapi Laravel mempunyai pendekatan lain, yaitu menggabungkan beberapa fitur-
fitur terbaik yang ada pada framework lain sehingga Laravel mempunyai
kelebihannya tersendiri dibanding framework lain. Kelebihan-kelebihan Laravel
menurut Martin Bean, yaitu lebih ekspresif, lebih konsisten, lebih mudah diuji, dan
mempunyai fitur yang lebih lengkap (Bean, 2015).
24
UIN Syarif Hidayatullah Jakarta
2.7. Literatur Sejenis
Tabel 2. 2 : Tabel Literatur Sejenis
No
.
Judul Nama dan
Tahun
Metode Studi Kasus Hasil
1. Implementasi
Search
Engine
(Mesin
Pencari)
Menggunaka
n Metode
Vector Space
Model
(Amin, 2011)
Fatkhul
Amin
(2011)
Vector
Space
Model
Dokumen
Teks
Berbahasa
Indonesia
Penulis
mengklaim
recall yang
dihasilkan
rendah dan
presisi yang
dihasilkan
tinggi. Tetapi
terdapat
keanehan pada
pemeringkatan
dokumen
2. Information
Retrieval
System Pada
Pencarian
File
Dokumen
Berbasis Teks
Dengan
Metode
Vector Space
Model dan
Algoritma
ECS
Stemmer
(Zain &
Muhamma
d Yasir
Zain dan
Suswati
(2016)
Vector
Space
Model
dan
Algoritm
a ECS
Stemmer
Dokumen
Perpustakaa
n Fakultas
Teknik
Universitas
Madura
Aplikasi yang
dibuat dapat
mencari
informasi dari
isi file
dokumen
25
UIN Syarif Hidayatullah Jakarta
Suswati,
2016)
3. Implementasi
Vector Space
Model dalam
Pembangkita
n Frequently
Asked
Questions
Otomatis dan
Solusi yang
Relevan
untuk
Keluhan
Pelanggan
(Aziz,
Saptono, &
Suryajaya,
2015)
Abdul
Aziz, Ristu
Saptono,
dan Kartika
Permatasari
Suryajaya
(2015)
Vector
Space
Model
Keluhan
Pelanggan di
UPT
PUSKOM
UNS
Tiap notasi
pembobotan
TF-IDF
memiliki
karakteristik
yang berbeda-
beda dan
menghasilkan
urutan
dokumen
relevan yang
berbeda antara
notasi satu
dengan notasi
lainnya
4. Sistem
Repositori
Tugas Akhir
Mahasiswa
dengan
Fungsi
Peringkat
Okapi BM25
(Tjandra &
Widiasri,
2016)
Ellysa
Tjandra dan
Monica
Widiasri
(2016)
BM25 Repositori
Tugas Akhir
Mahasiswa
Sistem
Repositori
Tugas Akhir
dapat
memberikan
hasil pencarian
yang lebih
relevan dengan
menggunakan
fungsi
26
UIN Syarif Hidayatullah Jakarta
peringkat
Okapi BM25
5. A Short Note
on Proximity-
based Scoring
of Documents
with Multiple
Fields
(Manabe &
Fujita, 2017)
Tomohiro
Manabe
dan Sumio
Fujita
(2017)
BM25F
dan
Expanded
Span
Melakukan
Kombinasi 2
Metode
Hasilnya
merupakan
kalkulasi
indepen dari
kontribusi
relevansi setiap
field dan
integrasi
kontribusi
relevansi
berbasis fungsi
seperti BM25F
6. Using
BM25F and
KLD for
Patent
Retrieval
(Perez-
Iglesias,
Rodrigo, &
Fresno, 2010)
Joaquin
Perez-
Iglesias,
Alvaro
Rodrigo,
Victor
Fresno
(2010)
BM25F Patents Hasil retrieval
terbaik
didapatkan
ketika semua
field
diperhitungkan
. Selain itu,
penambahan
bobot pada
field title
menampilkan
hasil terbaik
dan
penambahan
bobot pada
field
28
UIN Syarif Hidayatullah Jakarta
BAB III
METODE PENELITIAN
3.1. Metode Pengumpulan Data
Penulis dalam menyusun penelitian ini memerlukan data dan informasi yang
penulis gunakan sebagai latar belakang masalah dan teori-teori yang berkaitan
dengan metode dalam memecahkan masalah tersebut. Ada dua metode
pengumpulan data yang penulis lakukan, yaitu studi literatur dan observasi.
3.1.1. Studi Literatur
Pada metode studi literatur, penulis mencari referensi-referensi yang
relevan dengan penelitian penulis. Adapun literatur-literatur yang diambil ada
yang didapat dari secara online maupun non-online, dan dalam Bahasa Indonesia
maupun Bahasa Inggris. Literatur-literatur tersebut digunakan sebagai bahan
pendukung dalam latar belakang masalah dan sebagai bahan utama pada dasar-
dasar teori dari metode pemecahan masalah yang penulis teliti. Adapun jumlah
literatur yang penulis gunakan adalah 21 literatur yang terdiri dari 6 jurnal, 6
buku, dan 9 website.
3.1.2. Observasi
Metode yang dipakai selanjutnya adalah observasi. Pada metode ini,
dilakukan observasi terhadap website e-commerce XYZ. Kemudian, dari hasil
observasi tersebut digunakan sebagai dasar masalah dari penelitian ini. Selain
sebagai dasar masalah, observasi juga dijadikan sebagai studi kasus dalam
penelitian ini.
Dari hasil observasi yang dilakukan, didapatkan masalah bahwa pada
aplikasi e-commerce XYZ mempunyai pencarian yang bermasalah. Hasil
pencarian pada aplikasi tersebut tidak sesuai dengan kata kunci yang dimasukan.
Selain itu, dari hasil observasi yang dilakukan, juga didapatkan sebuah file SQL
dengan 5 table, yaitu, table nm_maincategory, nm_secmaincategory,
nm_subcategory, nm_secsubcategory, dan nm_product. Empat table pertama
29
UIN Syarif Hidayatullah Jakarta
tersebut merupakan data kategori produk sedangkan table terakhir merupakan
data master dari produk. Untuk struktur dari kelima table tersebut bisa dilihat
pada Gambar 3.1.
Gambar 3. 1 : ERD Table Produk
31
UIN Syarif Hidayatullah Jakarta
3.3. Skenario Pengujian
Pengujian pada penelitian ini dilakukan dengan cara menguji mesin pencari
menggunakan 30 kata kunci yang kemudian dibagi menjadi 3 bagian sehingga
setiap bagian terdapat 10 kata kunci. Pada bagian pertama, aplikasi diberikan
sebuah kata pada setiap kata kuncinya yang didapatkan secara acak dari data produk
yang ada di dalam basis data. Pada bagian kedua, aplikasi diberikan dua buah kata
dan pada bagian ketiga diberikan tiga buah kata, yang dimana kata-kata tersebut
didapat seperti pada bagian pertama.
Pengujian akan dilakukan pada dua buah aplikasi, yaitu aplikasi yang
terdapat implementasi BM25F di dalamnya dan juga aplikasi yang mencari dengan
BM25. Dengan skenario tersebut diharapkan dapat diperoleh besaran akurasi yang
didapat untuk setiap bagian dan juga rata-rata keseluruhan kasus yang diberikan.
Besaran akurasi kemudian akan dibandingkan antara aplikasi dengan implementasi
BM25F dan aplikasi BM25.
32
UIN Syarif Hidayatullah Jakarta
BAB IV
ANALISIS DAN IMPLEMENTASI
Penelitian ini diimplementasikan dengan melakukan langkah-langkah
sebagai berikut.
4.1. Perolehan Data
Berdasarkan observasi yang dilakukan pada web e-commerce XYZ,
didapatkan masalah berupa tidak sesuainya hasil pencarian yang diperoleh dengan
kata kunci yang dimasukan. Selain dari observasi, didapatkan juga data dari CNN
Indonesia bahwa produk e-commerce yang dijual dapat mencapai 9 juta produk.
Sehingga tidak memungkinkan untuk customer mencari barang yang
dibutuhkannya satu per satu.
Maka dari itu, diperlukan mesin pencari dalam sebuah e-commerce yang
dapat secara tepat menemukan hasil yang sesuai dengan kata kunci yang
dimasukan. Dalam pembuatan mesin pencari ini, digunakan data barang dari e-
commerce XYZ sebagai studi kasusnya. Data barang tersebut mempunyai struktur
seperti yang ada pada Gambar 3.1. Selain itu, tampilan web juga didapatkan dari e-
commerce XYZ.
4.2. Analisis dan Desain
Untuk membuat mesin pencari, hal pertama yang dilakukan adalah
menganalisis data yang ada pada e-commerce XYZ agar bisa didapatkan solusi
yang tepat untuk permasalahan pencarian tersebut. Setelah melakukan analisis,
maka diperoleh beberapa pertimbangan dalam memberikan solusi. Pertama, data
yang diperoleh dibuat dalam bentuk SQL. Kedua, ada 5 tabel yang berhubungan
dengan produk. Ketiga, ada setidaknya 3 jenis kolom yang menunjukan spesifikasi
produk, yaitu, nama barang, kategori barang, dan deskripsi barang.
Alasan pemakaian ketiga jenis kolom tersebut karena yang pertama adalah
ketiga jenis kolom tersebut merupakan kolom bertipe string. Alasan kedua
33
UIN Syarif Hidayatullah Jakarta
dipakainya kolom-kolom tersebut dikarenakan ketiga jenis kolom tersebut menurut
asumsi penulis sudah dapat mendeskripsikan keseluruhan produk kepada customer.
Setelah didapatkan data analisis, maka dapat diberikan solusi untuk
permasalahan tersebut dengan menggunakan rangking function BM25F. Solusi
tersebut diberikan karena BM25F dirancang khusus untuk melakukan pencarian
terhadap dokumen terstruktur yang mempunyai beberapa kolom (Manabe & Fujita,
2017).
Setelah data produk dianalisa, selanjutnya menganalisa modul aplikasi yang
dibuat. Dari hasil analisa yang dilakukan, desain modul aplikasi dibagi menjadi dua
buah proses. Proses pertama merupakan proses pengolahan data produk dan proses
kedua merupakan proses pencarian sekaligus pemeringkatan hasil.
4.3. Pembuatan Aplikasi Pencarian
Pada tahap ini, aplikasi pencarian dibuat sesuai dengan analisa dan desain
pada tahap sebelumnya. Sehingga aplikasi dibuat menjadi dua proses. Pada proses
pengolahan data, aplikasi dibuat tanpa tampilan dan pada implementasinya nanti
hanya menjalankan script yang telah dibuat. Hasil dari proses ini adalah bobot nilai
dari BM25F dan bobot nilai indeks kata. Kemudian, pada proses yang kedua yaitu
proses pencarian, aplikasi dibuat dengan menampilkan halaman utama dan halaman
hasil pencarian. Hasil pencarian dihitung dengan menjumlahkan bobot-bobot nilai
pada keyword yang dimasukan, bobot-bobot nilai tersebut dilihat dari hasil proses
pengolahan data yang sebelumnya telah dilakukan. Skema aplikasi secara umum
dapat dilihat pada Gambar 4.1.
4.3.1. Implementasi Pengolahan Data
Proses pertama pada aplikasi ini adalah proses pengolahan data. Proses
ini dibuat berdasarkan persamaan-persamaan yang sudah dijabarkan pada bab
sebelumnya tentang information retrieval. Persamaan yang dipakai adalah
persamaan BM25F dari jurnal karya Tomohiro Manabe dan Sumio Fujita (2017)
yang berjudul A Short Note on Proximity-based Scoring of Documents with
Multiple Fields, serta persamaan IDF dari buku karya ChengXiang Zhai dan
34
UIN Syarif Hidayatullah Jakarta
Sean Massung (2016) yang berjudul Text Data Management and Analysis : A
Practical Introduction to Information Retrieval and Text Mining.
Gambar 4. 1 : Skema Proses Secara Umum
4.3.1.1. Tokenisasi
Langkah pertama dalam proses ini adalah mengambil data produk dari
database. Selanjutnya, dipilih data yang dibutuhkan, yaitu nama barang,
deskripsi barang, dan kategori barang. Kemudian, data yang telah dipilih
tersebut dihilangkan tanda bacanya beserta simbol-simbol yang terdapat pada
35
UIN Syarif Hidayatullah Jakarta
data tersebut. Setelah menghilangkan tanda baca dan simbol, data tersebut
dipisahkan setiap katanya dengan menggunakan penanda spasi. Selanjutnya,
kata-kata tersebut dimasukan satu per satu ke dalam table term_frequency,
beserta frekuensi kemunculannya dalam kolom yang dimana kata tersebut
berada, untuk kemudian akan diberikan bobot. Berikut pseudocode dari proses
tersebut:
37
UIN Syarif Hidayatullah Jakarta
Program Tokenisasi
{Program ini digunakan untuk memecah kata pada kalimat
dan menghitung frekuensi tiap katanya}
Kamus
Products : array
Title : string
Description : string
Category : string
Frequency : integer
Deskripsi Algoritma
Products <- get from table nm_products
FOREACH Products DO
Title <- remove symbols and tags from Products[“Title”]
Title <- breaks Title into array
Description <- remove symbols and tags from
Products[“Description”]
Description <- breaks Description into array
Category <- remove symbols and tags from
Products[“Category”]
Category <- breaks Category into array
FOREACH Title DO
IF Title AND Product[“id”] is exist in table
term_frequency THEN
Frequency increase 1 in table term_frequency
ELSE
INSERT Title AND Product[“id”] to table term_frequency
ENDIF
ENDFOREACH
FOREACH Category DO
IF Category AND Product[“id”] is exist in table
term_frequency THEN
Frequency increase 1 in table term_frequency
38
UIN Syarif Hidayatullah Jakarta
ELSE
INSERT Category AND Product[“id”] to table term_frequency
ENDIF
ENDFOREACH
FOREACH Description DO
IF Description AND Product[“id”] is exist in table
term_frequency THEN
Frequency increase 1 in table term_frequency
ELSE
INSERT Description AND Product[“id”] to table
term_frequency
ENDIF
ENDFOREACH
ENDFOREACH
Sebagai contoh, diambil tiga buah produk dengan detail data seperti
pada Tabel 4.1 dan Tabel 4.2. Tabel 4.1 merupakan contoh barang yang terdiri
dari nama produk dan deskripsi produk. Sedangkan Tabel 4.2 contoh dari
kategori produk tersebut yang terdiri dari kategori level 1 hingga 4.
Tabel 4. 1 : Contoh Nama Produk dan Deskripsi
ID Produk Nama Produk Deskripsi
110 Samsung Mesin Cuci Front
Loading WW65J3033LW
Putih
Sistem kerja motor dengan
Digital Inverter membuat mesin
cuci front loading tipe
WW65J3033LW ini tidak
bising, lebih hemat listrik, dan
tahan lama. Selain itu, desain sisi
tabung yang unik menyerupai
berlian merawat pakaian lebih
baik dibandingkan drum
konvensional. Tekstur drum
39
UIN Syarif Hidayatullah Jakarta
yang lembut juga memiliki
lubang-lubang kecil untuk
pembuangan air mencegah kain
tersangkut, sehingga pakaian
tetap terawat.
111 Sanken Mesin Cuci 2
Tabung TW-870 Pink
Sanken TW-870 merupakan
mesin cuci dua tabung yang
tersedia dengan berbagai pilihan
warna menarik. Sanken TW-870
dibekali tabung pengeringan
yang mampu mengeringkan
pakaian hanya dalam satu
langkah. Mesin cuci ini pun
harganya cukup terjangkau.
115 Sanken Mesin Cuci 2
Tabung TW-9880 Biru
Grade D
DUA TABUNG UNTUK CUCI
DAN KERINGKAN DENGAN
SEMPURNA
Mesin cuci Sanken TW-9880 ini
adalah mesin cuci 2 tabung yang
memiliki kapasitas 8.5 Kg.
Cukup besar untuk menampung
pakaian kotor yang menumpuk
berhari-hari. Mesin cuci ini juga
berteknologi canggih nano filter
yang memberikan hasil cucian
yang bersih dan tetap lembut
tanpa bau tak sedap dan bakteri-
bakteri merugikan lainnya.
Dengan 2 tabung proses mencuci
dan mengeringkan pakaian jadi
40
UIN Syarif Hidayatullah Jakarta
lebih mudah dan praktis tanpa
harus memindahkan cucian
basah ke wadah lain. Sistem
pengeringannya menggunakan
Super Spin Dry, dengan
teknologi aliran udara yang
super cepat pada tabung
pengering untuk menghasilkan
cucian yang lebih kering setelah
pembilasan. Hal ini juga
mencegah tumbuhnya jamur
yang disebabkan baju tak kering
sempurna.
Tabel 4. 2 : Contoh Kategori Produk
ID Produk Kategori
Level 1
Kategori
Level 2
Kategori
Level 3
Kategori
Level 4
110 Elektronik Elektronik
Rumah
Tangga
Mesin Cuci &
Pengering
Mesin Cuci &
Pengering
111 Elektronik Elektronik
Rumah
Tangga
Mesin Cuci &
Pengering
Mesin Cuci &
Pengering
115 Elektronik Elektronik
Rumah
Tangga
Mesin Cuci &
Pengering
Mesin Cuci &
Pengering
Kemudian dilakukan proses tokenisasi terhadap data yang didapat dari
Tabel 4.1 dan Tabel 4.2 sehingga diperoleh data hasil tokenisasi. Sehingga
ditampilkan pada Tabel 4.3 sebagian hasil dari tokenisasi.
41
UIN Syarif Hidayatullah Jakarta
Tabel 4. 3 : Hasil Tokenisasi
ID Produk Field Frekuensi Term
110 Title 1 Mesin
110 Category 2 Mesin
110 Description 1 Mesin
110 Title 1 Cuci
110 Category 2 Cuci
110 Description 1 Cuci
111 Title 1 Mesin
111 Category 2 Mesin
111 Description 2 Mesin
111 Title 1 Cuci
111 Description 2 Cuci
111 Category 2 Cuci
111 Title 1 Sanken
111 Description 2 Sanken
115 Title 1 Mesin
115 Category 2 Mesin
115 Description 3 Mesin
115 Title 1 Cuci
115 Category 2 Cuci
115 Description 4 Cuci
115 Title 1 Sanken
115 Description 1 Sanken
4.3.1.2. Indeksasi
Setelah setiap kata dimasukan ke dalam table term_frequency, maka
langkah selanjutnya adalah menghitung nilai IDF untuk setiap kata. Persamaan
IDF yang dipakai pada penelitian ini menggunakan persamaan dari ChengXiang
Zhai dalam bukunya yang berjudul “Text Data Management and Analysis : A
42
UIN Syarif Hidayatullah Jakarta
Practical Introduction to Information Retrieval and Text Mining” (2016).
Persamaan tersebut dapat dilihat pada persamaan 4.1 di bawah ini:
𝐼𝐷𝐹 = 𝑙𝑜𝑔𝑀+1
𝑑𝑓(𝑤) (4.1)
Detail dari proses tersebut adalah mengambil data kata yang sudah
dimasukan sebelumnya ke table term_frequency. Kemudian, menghitung berapa
banyak produk yang dimiliki. Setelahnya, menghitung berapa banyak produk
yang mempunyai kata tersebut. Setelah itu, program menghitung nilai IDF dari
kata tersebut berdasarkan persamaan yang ada di Gambar 2.2. Selesai
perhitungan, program memasukkan hasilnya ke dalam database di table
inverse_document_frequency. Untuk proses IDF secara lengkap terdapat source
code pada Gambar 4.2 dan berikut pseudocode dari proses perhitungan IDF:
Program IDF
{Program ini digunakan untuk menghitung nilai IDF pada
kata}
Kamus
Terms : array
TotalProducts : integer
ProductsWithTerm : integer
IDF : float
Deskripsi Algoritma
Terms <- get term from table term_frequency
FOREACH Terms DO
TotalProducts <- COUNT FROM TABLE nm_product
ProductsWithTerm <- COUNT Products FROM TABLE
term_frequency WHERE term = Terms
IDF <- 𝑙𝑜𝑔𝑇𝑜𝑡𝑎𝑙𝑃𝑟𝑜𝑑𝑢𝑐𝑡𝑠+1
𝑃𝑟𝑜𝑑𝑢𝑐𝑡𝑠𝑊𝑖𝑡ℎ𝑇𝑒𝑟𝑚
INSERT IDF AND Terms to TABLE inverse_document_frequency
ENDFOREACH
43
UIN Syarif Hidayatullah Jakarta
Gambar 4. 3 : Flowchart Inverse Document Frequency
Sebagai contoh untuk proses IDF, dilanjutkan perhitungan dari proses
sebelumnya dan dijabarkan hasil perhitungannya pada Tabel 4.4. Diambil
contoh pada kata “Sanken”, banyaknya barang pada kata “Sanken” sebanyak 39
barang. Kemudian dihitung jumlah keseluruhan produk sebanyak 464 barang.
Maka nilai IDF dari kata “Sanken” adalah
44
UIN Syarif Hidayatullah Jakarta
𝑙𝑜𝑔𝑀 + 1
𝑑𝑓(𝑤)= 𝑙𝑜𝑔
464 + 1
39= log 11.9230769 = 1.0763883458635
Tabel 4. 4 : Tabel IDF
Term Document
Frequency
Jumlah
Seluruh
Produk
Nilai IDF
Sanken 39 464 1.0763883458635
Mesin 49 464 0.97725687286144
Cuci 48 464 0.98621171551437
4.3.1.3. Menghitung Nilai BM25F
Setelah proses perhitungan IDF selesai, program menghitung nilai
BM25F. Persamaan BM25F yang dipakai pada penelitian ini didapatkan dari
jurnal yang berjudul “A Short Note on Proximity-based Scoring of Documents
with Multiple Fields” karya Tomohiro Manabe dan Sumio Fujita (2017).
Persamaan tersebut terdapat pada persamaan 4.2 dan persamaan 4.3.
∑𝑤(𝑡,𝐷)
𝑘1+𝑤(𝑡,𝐷)𝑡∈𝑄 ∗ 𝑙𝑜𝑔𝑀+1
𝑑𝑓(𝑤) (4.2)
𝑤(𝑡, 𝐷) = ∑𝑡𝑓(𝑡,𝑓,𝐷)∗𝑏𝑜𝑜𝑠𝑡𝑓
(1−𝑏𝑓)+𝑏𝑓∗𝑙𝑒𝑛(𝑓,𝐷)/𝑎𝑣𝑔𝐿𝑒𝑛(𝑓)𝑓∈𝐷 (4.3)
Pada proses ini, program mengambil data kata terlebih dahulu dari table
term_frequency. Kemudian, program menghitung variabel-variabel yang
dibutuhkan dalam perhitungan BM25F. Pertama, yaitu variabel yang
dideklarasikan dengan 𝑙𝑒𝑛(𝑓, 𝐷) yaitu variabel yang menyatakan jumlah
kemunculan seluruh kata yang ada dalam suatu field. Variabel kedua adalah
𝑎𝑣𝑔𝐿𝑒𝑛(𝑓) yang merupakan rata-rata kemunculan kata dalam suatu field
tertentu. Variabel ketiga adalah 𝑡𝑓(𝑡, 𝑓, 𝐷) yang merupakan jumlah suatu kata
45
UIN Syarif Hidayatullah Jakarta
dalam field tertentu dan dokumen tertentu. Variabel keempat adalah 𝑏𝑜𝑜𝑠𝑡𝑓 yang
merupakan bobot suatu field. Variabel tersebut ditentukan berdasarkan seberapa
penting field tersebut dalam menentukan hasil pencarian, semakin besar nilai
variabel tersebut maka semakin diprioritaskan dalam hasil pencarian. Pada
penelitian ini ditentukan field title bernilai 3, field category bernilai 2, dan field
description bernilai 1. Selanjutnya, ditentukan nilai variabel 𝑏𝑓. Penentuannya
didasarkan pada pendapat dari Christopher D. Manning dalam buku An
Introduction to Information Retrieval (2009), yaitu sebesar 0,75. Setelah itu,
program menghitung nilai BM25F berdasarkan rumus yang ada pada persamaan
4.2 dan 4.3. Kemudian hasilnya disimpan pada table term_frequency. Proses
perhitungan BM25F bisa dilihat pada pseudocode di bawah ini serta Gambar 4.4
dan Gambar 4.5.
Program BM25F
{Program ini digunakan untuk menghitung pembobotan BM25F}
Kamus
Terms : array
TermsTotal : array
Len_fD : integer
avgLen_f : float
boost_f : integer
b : float
w_tD : float
w_tD_total : float
Deskripsi Algoritma
Terms <- get term from table term_frequency
FOREACH Terms DO
Len_fD <- sum frequency from all term where product_id =
Terms[“product_id”] and field = Terms[“field”]
avgLen_f <- average term frequency where field =
Terms[“field”]
IF Terms[“field”] = “Title”
46
UIN Syarif Hidayatullah Jakarta
boost_f <- 3
ELSE IF Terms[“field”] = “Category”
boost_f <- 2
ELSE IF Terms[“field”] = “Description”
boost_f <- 1
ELSE
boost_f <- 0
ENDIF
b <- 0.75
w_tD <- 𝑇𝑒𝑟𝑚𝑠["𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦"]∗𝑏𝑜𝑜𝑠𝑡_𝑓
(1−𝑏)+𝑏∗𝐿𝑒𝑛_𝑓𝐷/𝑎𝑣𝑔𝐿𝑒𝑛_𝑓
INSERT w_tD to table term_frequency
ENDFOREACH
TermsTotal <- get from table term_frequency where field =
“Total”
FOREACH TermsTotal DO
w_tD_total <- SUM TermsTotal[“weight”] where product_id =
TermsTotal[“product_id”] AND TermsTotal[“term”]
INSERT w_tD_total to table term_frequency
ENDFOREACH
Sebagai contoh, diketahui sebelumnya pada Tabel 4.4 bahwa terdapat
kata “Mesin” pada ID Produk nomor 110. Kata tersebut terdapat pada ketiga
field, yaitu Title, Category, dan Description. Pada field Title terdapat 1 kali
kemunculan, lalu pada field Category terdapat 2 kali kemunculan, dan pada field
Description terdapat 1 kali kemunculan. Selain itu, diketahui panjang kata pada
field Title di ID Produk nomor 110 sebesar 7 kata dan panjang rata-rata field Title
terhadap keseluruhan produk adalah sebesar 7,9375. Maka dapat dihitung
sebagai contoh pada field Title adalah sebagai berikut:
𝑡𝑓(𝑡, 𝑓, 𝐷) ∗ 𝑏𝑜𝑜𝑠𝑡𝑓
(1 − 𝑏𝑓) + 𝑏𝑓 ∗ 𝑙𝑒𝑛(𝑓, 𝐷)/𝑎𝑣𝑔𝐿𝑒𝑛(𝑓)=
1 ∗ 3
(1 − 0.75) + 0.75 ∗ 7/7.9375
= 3.2915766738661
47
UIN Syarif Hidayatullah Jakarta
Tabel 4. 5 : Hasil Nilai BM25F Langkah Pertama
ID Produk Field Frekuensi Term Nilai BM25F
Langkah
Pertama
110 Title 1 Mesin 3.2915766738661
110 Category 2 Mesin 3.2388701082908
110 Description 1 Mesin 0.67652952462162
110 Title 1 Cuci 3.2915766738661
110 Category 2 Cuci 3.2388701082908
110 Description 1 Cuci 0.67652952462162
111 Title 1 Mesin 3.2915766738661
111 Category 2 Mesin 3.2388701082908
111 Description 2 Mesin 2.0087347300462
111 Title 1 Cuci 3.2915766738661
111 Description 2 Cuci 2.0087347300462
111 Category 2 Cuci 3.2388701082908
111 Title 1 Sanken 3.2915766738661
111 Description 2 Sanken 2.0087347300462
115 Title 1 Mesin 2.7262969588551
115 Category 2 Mesin 3.2388701082908
115 Description 3 Mesin 1.0737340701477
115 Title 1 Cuci 2.7262969588551
115 Category 2 Cuci 3.2388701082908
115 Description 4 Cuci 1.4316454268637
115 Title 1 Sanken 2.7262969588551
115 Description 1 Sanken 0.35791135671591
48
UIN Syarif Hidayatullah Jakarta
Kemudian, setelah didapatkan nilai untuk langkah pertama BM25F,
maka dapat dihitung nilai 𝑤(𝑡, 𝐷). Nilai tersebut merupakan hasil penjumlahan
semua field suatu term pada dokumen tertentu. Sebagai contoh, pada term
“Mesin” dalam ID Produk nomor 110 terdapat pada 3 field yang masing-masing
sudah dihitung bobot awalnya seperti pada Tabel 4.5. Pada field Title nilai bobot
awalnya sebesar 3.2915766738661. Kemudian pada field Category nilai bobot
awalnya sebesar 3.2388701082908 dan pada field Description sebesar
0.67652952462162. Sehingga dapat dihitung nilai 𝑤(𝑡, 𝐷) menjadi:
𝑤(𝑡, 𝐷) = 3.2915766738661 + 3.2388701082908 + 0.67652952462162
𝑤(𝑡, 𝐷) = 7.20697630677852
Tabel 4. 6 : Nilai 𝑤(𝑡, 𝐷)
ID Produk Term 𝒘(𝒕, 𝑫)
110 Mesin 7.20697630677852
110 Cuci 7.20697630677852
111 Mesin 8.5391815122031
111 Cuci 8.5391815122031
111 Sanken 5.3003114039123
115 Mesin 7.0389011372936
115 Cuci 7.3968124940096
115 Sanken 3.08420831557101
Setelah diperoleh nilai 𝑤(𝑡, 𝐷), perhitungan selanjutnya adalah
menghitng bobot akhir BM25F. Sebagai contoh, pada Tabel 4.6 diketahui term
“Mesin” pada ID Produk nomor 110 mempunyai nilai 7,20697630677852.
Kemudian, pada Tabel 4.4 diketahui bahwa term “Mesin” mempunyai nilai IDF
sebesar 0,97725687286144. Selain itu, nilai k pada rumus BM25F ditetapkan
sebesar 1,2 berdasarkan pada buku An Introduction to Information Retrieval
karya Christopher D. Manning. Maka dapat dihitung bobot akhirnya menjadi:
49
UIN Syarif Hidayatullah Jakarta
𝑤(𝑡, 𝐷)
𝑘1 + 𝑤(𝑡, 𝐷)∗ 𝑙𝑜𝑔
𝑀 + 1
𝑑𝑓(𝑤)
=7.20697630677852
1.2 + 7.20697630677852∗ 0.97725687286144
= 0.83776459827418
Sehingga hasil bobot akhir BM25F dari Tabel 4.6 dijabarkan pada
Tabel 4.7.
Tabel 4. 7 : Bobot Akhir BM25F
ID
Produ
k
Term 𝒘(𝒕, 𝑫) IDF BM25F
110 Mesin 7.2069763067785
2
0.9772568728614
4
0.8377645982741
8
110 Cuci 7.2069763067785
2
0.9862117155143
7
0.8454412392537
2
111 Mesin 8.5391815122031 0.9772568728614
4
0.8568454968167
1
111 Cuci 8.5391815122031 0.9862117155143
7
0.8646969807151
1
111 Sanke
n
5.3003114039123 1.0763883458635 0.8776800171734
6
115 Mesin 7.0389011372936 0.9772568728614
4
0.8349189290153
3
115 Cuci 7.3968124940096 0.9862117155143
7
0.8485497554051
115 Sanke
n
3.0842083155710
1
1.0763883458635 0.7748936658915
6
50
UIN Syarif Hidayatullah Jakarta
4.3.2. Implementasi Pencarian
Pada proses pencarian, dibuat tampilan awal untuk memasukan kata
barang yang dicari. Kedua, proses pengambilan data berdasarkan kata yang
dimasukan oleh pengguna. Terakhir, tampilan hasil data produk yang diperoleh
berdasarkan kata yang dimasukan oleh pengguna. Untuk flowchart bisa dilihat
pada Gambar 4.6.
Tampilan awal dan hasil didapat dari template perusahaan tempat studi
kasus penelitian. Tampilan tersebut hanya sedikit dimodifikasi untuk keperluan
penelitian ini. Hal tersebut dilakukan karena tampilan bukan merupakan fokus
dari penelitian yang dilakukan. Selain itu, pemakaian template mempercepat
penyelesaian penelitian yang dilakukan.
Selanjutnya, pada proses pengambilan data, dibuat program untuk
mengambil data dan mengurutkan data berdasarkan jumlah nilai bobot yang
dimiliki. Langkah awal pada proses ini adalah memisahkan setiap kata yang
pengguna masukan. Setelah dipisahkan, program lalu mencari data kata yang
sesuai pada table term_frequency dan digabungkan dengan table
inverse_document_frequency serta table yang berhubungan dengan data produk.
52
UIN Syarif Hidayatullah Jakarta
Kemudian, di dalam query, program menghitung jumlah bobot
keseluruhan dengan mengalikan nilai bobot yang berada di table term_frequency
dan yang berada di table inverse_document_frequency. Hasilnya kemudian
diurutkan dari yang terbesar ke yang terkecil. Kemudian, hasil query ditampilkan
dalam tampilan hasil.
Gambar 4. 5 : Flowchart BM25F Bagian 2
53
UIN Syarif Hidayatullah Jakarta
Gambar 4. 6 : Flowchart Proses Pencarian
Sebagai contoh untuk proses pencarian, dimasukan kata kunci “Mesin
Cuci Sanken”. Kemudian, kata kunci ditokenisasi menjadi “Mesin”, “Cuci”, dan
“Sanken”. Selanjutnya, dijumlahkan nilai bobot akhir BM25F pada setiap
produk yang memiliki kata kunci “Mesin”, “Cuci”, ataupun “Sanken”. Sebagai
54
UIN Syarif Hidayatullah Jakarta
contoh, pada ID Produk nomor 110 dapat dilihat pada Tabel 4.7 mempunyai kata
kunci “Mesin” dan “Cuci”, sehingga dijumlahkan nilai BM25F pada kata
“Mesin” dan kata “Cuci” menjadi senilai 1,6832058375279. Kemudian, produk-
produk lain pun dilakukan hal yang sama sehingga diperoleh hasil seperti pada
Tabel 4.8.
Tabel 4. 8 : Tabel Hasil Akhir BM25F
ID Produk Nilai Total BM25F Peringkat
110 1.6832058375279 3
111 2.59922249470527 1
115 2.45836235031198 2
4.4. Evaluasi
Setelah BM25F diimplementasikan pada pencarian e-commerce,
selanjutnya dilakukan evaluasi untuk mengetahui seberapa baik implementasi yang
dilakukan. Evaluasi pada penelitian ini menggunakan mean average precision.
Pemakaian mean average precision pada penelitian ini digunakan karena mean
average precision merupakan metode untuk mengukur akurasi pada ranked
retrieval system. Hal ini senada dengan K. Latha dalam bukunya Experiment and
Evaluation in Information Retrieval (2018) dan ChengXiang Zhai dan Sean
Massung dalam Text Data Management and Analysis : A Practical Introduction to
Information Retrieval and Text Mining (2016).
Secara umum, rumus mean average precision atau yang biasa disingkat
dengan MAP adalah sebagai berikut:
𝑀𝐴𝑃 =1
𝑚∑ 𝑎𝑣𝑝(𝐿𝑖)
𝑚𝑖=1 (4.4)
Dengan m merupakan jumlah query yang dijalankan dan avp(Li) adalah sebagai
berikut:
𝑎𝑣𝑝(𝐿) =1
|𝑅𝑒𝑙|∑ 𝑝(𝑖)𝑛
𝑖=1 (4.5)
55
UIN Syarif Hidayatullah Jakarta
Rel merupakan jumlah keseluruhan data yang relevan dengan query baik yang
diperoleh ataupun yang tidak. Sedangkan p(i) adalah sebagai berikut:
𝑝(𝑖) =𝑅𝑒𝑙(𝑖)
𝑖 (4.6)
Rel(i) merupakan data yang relevan hingga data ke-i.
Untuk mengetahui lebih jelas bagaimana menghitung mean average
precision tersebut diberikan contoh sebagai berikut. Diketahui dari data pada
contoh sebelumnya bahwa ID Produk nomor 110 tidak relevan dengan kata kunci
pencarian karena bukan merupakan mesin cuci bermerek Sanken. Sedangkan ID
Produk nomor 111 dan 115 cocok dengan kata kunci pencarian. Kemudian sebagai
contoh, diketahui pula bahwa produk yang relevan dengan kata kunci seharusnya
ada 4 produk.
Maka langkah selanjutnya adalah menghitng dahulu p(i). Cara menghitung
p(i) adalah dengan melihat apakah produk yang ditampilkan relevan atau tidak.
Selain itu, melihatnya harus satu per satu dari rank yang tertinggi. Jika produk yang
ditampilkan tidak relevan, maka 𝑝(𝑖) = 0. Jika produk yang ditampilkan relevan,
maka 𝑝(𝑖) merupakan hasil pembagian antara jumlah produk yang relevan yang
dilihat hingga data ke-i dengan posisi ke-i yang sedang dilihat. Setelah p(i) selesai
dihitung, dapat dihitung nilai average precision atau avp(L). Hasil perhitungan
tersebut dapat dilihat pada Tabel 4.9.
Tabel 4. 9 : Hasil Perhitungan avp(L) ke-1
Rank ID Produk Apakah Relevan? p(i)
1 111 Ya 1
1 = 1
2 115 Ya 2
2 = 1
3 110 Tidak 0
Total 2
avp(L) 2
4 = 0.5
56
UIN Syarif Hidayatullah Jakarta
Setelah didapatkan nilai avp(L) pada kasus pertama, maka langkah
selanjutnya adalah menghitung untuk kasus kedua. Sebagai contoh, dimasukan kata
kunci “Speaker”. Kemudian, dilakukan proses tokenisasi sehingga didapat satu
kata, yaitu, “Speaker”. Setelah itu, dilakukan langkah-langkah sebagaimana contoh
sebelumnya dan diketahui bahwa seluruh produk yang ada yang relevan dengan
kata kunci “Speaker” berjumlah 2 produk hingga didapat hasil seperti pada Tabel
4.10.
Tabel 4. 10 : Hasil Perhitungan avp(L) ke-2
Rank ID Produk Apakah Relevan? p(i)
1 24 Ya 1
1= 1
2 27 Tidak 0
3 30 Ya 2
3= 0.67
Total 1.67
avp(L) 1.67
2= 0.835
Kemudian, setelah dilakukan percobaan lebih dari 1 query maka dapat dicari
nilai MAP. Sehingga nilai MAP pada contoh di atas adalah sebesar 0,6675.
Penjabaran perhitungannya terdapat pada Tabel 4.11.
Tabel 4. 11 : Hasil Perhitungan Akhir MAP
Query ke-i avp(L)
Query ke-1 0.5
Query ke-2 0.835
Total 1.335
MAP 1.335
2= 0.6675
57
UIN Syarif Hidayatullah Jakarta
BAB V
HASIL DAN PEMBAHASAN
5.1. Pengujian
Pada penelitian ini, aplikasi diuji dengan membandingkan hasil dari mean
average precision pada aplikasi menggunakan BM25 dan aplikasi yang
menggunakan BM25F. Setiap aplikasi akan dimasukan keyword sebanyak 30 kali
dan dibagi menjadi 3 bagian sama rata. Pada bagian pertama jumlah kata pada
keyword yang diberikan sebanyak satu kata. Kemudian, pada bagian kedua jumlah
kata pada keyword yang diberikan sebanyak dua kata. Terakhir, pada bagian ketiga
jumlah kata pada keyword yang diberikan sebanyak tiga kata. Setelah itu, setiap
kasus dicari berapa average precision-nya. Tabel 5.1 merupakan hasil dari
pengujian untuk mencari nilai average precision pada bagian pertama.
Tabel 5. 1 : Hasil avp(L) Bagian I
No. Keyword
BM25 BM25F
∑ 𝒑(𝒊) Rel 𝒂𝒗𝒑(𝑳)
∑ 𝒑(𝒊) Rel 𝒂𝒗𝒑(𝑳)
1. Sanken 21 21 1 21 21 1
2. DVD 29,487 30 0,983 30 30 1
3. Hitam 93,105 95 0,980 95 95 1
4. Compact 1,917 3 0,639 3 3 1
5. Dispenser 7 7 1 7 7 1
6. UA40J5100AK 1 1 1 1 1 1
7. TV 32 32 1 32 32 1
8. Speaker 2,985 7 0,426 7 7 1
9. TW-7701 1 1 1 1 1 1
10. LG 26 26 1 26 26 1
Total avp(L) 9,028 10
58
UIN Syarif Hidayatullah Jakarta
MAP 9,028
10= 0,9028
10
10= 1
Tabel 5.2 merupakan hasil dari pengujian untuk mencari nilai average
precision pada bagian kedua.
Tabel 5. 2 : Hasil avp(L) Bagian II
No. Keyword
BM25 BM25F
∑ 𝒑(𝒊) Rel 𝒂𝒗𝒑(𝑳)
∑ 𝒑(𝒊) Rel 𝒂𝒗𝒑(𝑳)
1. Dispenser
Fujitec
2 2 1 2 2 1
2. TV LED 30 30 1 30 30 1
3. Freezer
GF-D159
0,077 1 0,077 0,5 1 0,5
4. TV
Toshiba
4 4 1 4 4 1
5. Front
Loading
1 1 1 1 1 1
6. Denpoo
DW-898
2,6 3 0,867 3 3 1
7. Top
Loading
3,55 4 0,888 4 4 1
8. Mesin
Cuci
26 26 1 26 26 1
9. Audio
System
46,457 48 0,968 47,8 48 0,996
10. LED TV 30 30 1 30 30 1
Total avp(L) 8,8 9,496
MAP 8,8
10= 0,88
9,496
10= 0,9496
59
UIN Syarif Hidayatullah Jakarta
Tabel 5.3 merupakan hasil dari pengujian untuk mencari nilai average
precision pada bagian ketiga.
Tabel 5. 3 : Hasil avp(L) Bagian III
No. Keyword
BM25 BM25F
∑ 𝒑(𝒊) Rel 𝒂𝒗𝒑(𝑳)
∑ 𝒑(𝒊) Rel 𝒂𝒗𝒑(𝑳)
1. Mini DVD
Theatre
5 5 1 5 5 1
2. Samsung
Top
Loading
2 2 1 2 2 1
3. TV LED
Samsung
8,627 10 0,863 10 10 1
4. Polytron
LED TV
0,071 1 0,071 1 1 1
5. Mesin
Cuci
Sanken
10 10 1 10 10 1
6. TV
19D1000
Changhong
1 1 1 1 1 1
7. Lemari Es
Fujitec
6,778 7 0,968 7 7 1
8. Grade E
Hitam
28,222 33 0,855 33 33 1
9. DVD Mini
LG
5,272 6 0,879 5,433 6 0,906
60
UIN Syarif Hidayatullah Jakarta
10. Blu-ray
Disc
Player
3,017 7 0,431 5,459 7 0,78
Total avp(L) 8,067 9,686
MAP 8,067
10= 0,8067
9,686
10= 0,9686
5.2. Analisa Hasil Pengujian
Berdasarkan data di atas, maka berikutnya penulis menganalisa hasil
pengujian dengan menghitung nilai dari mean average precision untuk menentukan
seberapa besar akurasi dari masing-masing aplikasi. Sehingga, didapatkan hasil
pengujian sebagai berikut:
Gambar 5. 1 : Analisis Hasil Pengujian
Berdasarkan Gambar 5.1 diperoleh bahwa BM25F cenderung lebih akurat
dibandingkan dengan BM25 dengan selisih 10,956%. Selain itu, pada setiap
bagiannya BM25F cenderung stabil. Sebaliknya, pada BM25 cenderung turun pada
setiap bagiannya. Hal itu dikarenakan pada BM25F dilakukan pembobotan
terhadap field, sedangkan pada BM25 tidak dilakukan hal yang demikian.
0
20
40
60
80
100
Bagian I Bagian II Bagian III Rata-rataKeseluruhan
BM25 90.28 88 80.67 86.31666667
BM25F 100 94.96 96.86 97.27333333
90.28 8880.67 86.31666667
100 94.96 96.86 97.27333333
Mean Average Precision (%)
61
UIN Syarif Hidayatullah Jakarta
BAB VI
KESIMPULAN DAN SARAN
6.1. Kesimpulan
Berdasarkan pemaparan yang sudah dijelaskan sebelumnya, maka dapat
disimpulkan bahwa BM25F dapat diimplementasikan pada pencarian produk e-
commerce XYZ yang berbasis web dengan baik. Selanjutnya, dari skenario
pengujian yang diberikan kepada aplikasi menunjukan bahwa BM25F mempunyai
tingkat akurasi sebesar 97,27%. Angka itu lebih besar dibandingkan dengan BM25
yang hanya menunjukan nilai akurasi rata-rata sebesar 86,32%
6.2. Saran
Penulis menyarankan untuk penelitian selanjutnya agar memakai model lain
pada information retrieval seperti probabilistic model. Kombinasi antara
probabilistic model dan vector space model juga penulis sarankan untuk penelitian
selanjutnya. Selain itu, penulis juga menyarankan penelitian selanjutnya agar
mempunyai data yang lebih besar agar bisa mendapatkan data hasil penelitian yang
lebih akurat.
62
UIN Syarif Hidayatullah Jakarta
DAFTAR PUSTAKA
Abdurrahman, M. S. (2017, Mei 20). Pertumbuhan e-Commerce Indonesia
Tertinggi di Dunia. Retrieved from Liputan 6:
https://www.liputan6.com/tekno/read/2957050/pertumbuhan-e-commerce-
indonesia-tertinggi-di-dunia
Amin, F. (2011). Implementasi Search Engine (Mesin Pencari) Menggunakan
Metode Vector Space Model. Dinamika Teknik Vol. V, 45-58.
Asosiasi Penyelenggara Jasa Internet Indonesia. (2018). Hasil Survei Penetrasi
dan Perilaku Pengguna Internet Indonesia 2017. Retrieved from APJII:
https://apjii.or.id/content/read/39/342/Hasil-Survei-Penetrasi-dan-Perilaku-
Pengguna-Internet-Indonesia-2017
Aziz, A., Saptono, R., & Suryajaya, K. P. (2015). Impelementasi Vector Space
Model Dalam Pembangkitan Frequently Asked Question Otomatis Dan
Solusi Yang Relevan Untuk Keluhan Pelanggan. Scientific Journal of
Informatics Vol. 2, No. 2, 111-122.
Bean, M. (2015). Laravel 5 Essentials. Birmingham: Packt Publishing Ltd.
Fajrina, H. N. (2016, Januari 14). 2015, Hampir 10 Juta Produk Terjual di
Tokopedia. Retrieved Oktober 19, 2017, from CNN Indonesia:
https://www.cnnindonesia.com/teknologi/20160114075006-185-
104165/2015-hampir-10-juta-produk-terjual-di-tokopedia
Hadi, F. (2017, Februari 20). Transaksi e-Commerce di Indonesia Pada 2016
Mencapai 4,89 Miliar Dolar AS. Retrieved Agustus 7, 2017, from
Tribunnews: http://www.tribunnews.com/
Internet Live Stats. (2019, Februari 14). Internet Users. Retrieved Oktober 18,
2017, from http://www.internetlivestats.com/
63
UIN Syarif Hidayatullah Jakarta
Internet World Stats. (2019, February 14). Asia Marketing Research, Intenet
Usage, Population Statistics and Facebook Subscribers. Retrieved from
Internet World Stats: https://www.internetworldstats.com/asia.htm
Latha, K. (2018). Experiment And Evaluation In Information Retrieval Models.
Boca Raton: CRC Press.
Lie, T.-Y. (2011). Learning to Rank for Information Retrieval. Berlin: Springer.
Manabe, T., & Fujita, S. (2017). A Short Note on Proximity-based Scoring of
Documents with Multiple Fields.
Manning, C. D., Raghavan, P., & Schutze, H. (2009). An Introduction to
Information Retrieval. Cambridge: Cambridge University Press.
Perez-Aguera, J. R., Arroyo, J., Greenberg, J., Iglesias, J. P., & Fresno, V. (2010).
Using BM25F for Semantic Search.
Tjandra, E., & Widiasri, M. (2016). Sistem Repositori Tugas Akhir Mahasiswa
dengan Fungsi Peringkat Okapi BM25. Journal of Information Systems
Engineering and Business Intelligence Vol. 2, No. 2, 88-94.
Turban, E., Outland, J., King, D., Lee, J. K., Liang, T.-P., & Turban, D. C. (2018).
Electronic Commerce 2018: A Managerial And Social Networks
Perspective Ninth Edition. Cham: Springer Texts In Business And
Economics.
We Are Social. (2017, January 26). Digital in 2017: Southeast Asia. Retrieved
from SlideShare: https://www.slideshare.net/wearesocialsg/digital-in-
2017-southeast-asia
We Are Social. (2018, January 29). Digital in 2018 in Southeast Asia Part 2 -
South-East. Retrieved Oktober 18, 2017, from SlideShare:
https://www.slideshare.net/wearesocial/digital-in-2018-in-southeast-asia-
part-2-southeast-86866464
64
UIN Syarif Hidayatullah Jakarta
Yordan, J., & Panji, A. (2017, Maret 15). Ada 7 Juta Produk Dijual di Lazada
Indonesia. Retrieved Oktober 19, 2017, from Kumparan:
https://kumparan.com/@kumparantech/ada-7-juta-produk-dijual-di-lazada-
indonesia
Zain, M. Y., & Suswati. (2016). Information Retrieval System Pada Pencarian
File Dokumen Berbasis Teks Dengan Metode Vector Space Model dan
Algoritma ECS Stemmer. Jurnal Insand Comtech, 33-40.
Zhai, C., & Massung, S. (2016). Text Data Management And Analysis: A
Practical Introduction To Information Retrieval And Text Mining. New
York: ACM Books.
65
UIN Syarif Hidayatullah Jakarta
LAMPIRAN-LAMPIRAN
LAMPIRAN 1 KODE PROGRAM TOKENISASI
1 <?php
2 $get_product = DB::table('nm_product')
3 ->LeftJoin('nm_maincategory', 'nm_maincategory.mc_id', '=',
'nm_product.pro_mc_id')
4 ->LeftJoin('nm_secmaincategory', 'nm_secmaincategory.smc_id',
'=', 'nm_product.pro_smc_id')
5 ->LeftJoin('nm_subcategory', 'nm_subcategory.sb_id', '=',
'nm_product.pro_sb_id')
6 ->LeftJoin('nm_secsubcategory', 'nm_secsubcategory.ssb_id',
'=', 'nm_product.pro_ssb_id')
7 ->select('pro_id', 'pro_title', 'pro_desc', 'mc_name',
'smc_name', 'sb_name', 'ssb_name')
8 ->where('pro_id', '!=', 1)
9 ->where('pro_id', '!=', 2)
10 ->get();
11
12 DB::table('term_frequency')
13 ->truncate();
14
15 foreach ($get_product as $row) {
16 Log::info($row->pro_id.' Start');
17 $title = preg_replace('/[^\p{L}\p{N}\s]/u', '', $row-
>pro_title);
18 $title = preg_replace('~[[:cntrl:]]~', ' ', $title);
19 $title = strip_tags($title);
20 $title = explode(' ', $title);
21
22 $description = preg_replace('/[^\p{L}\p{N}\s]/u', '',
$row->pro_desc);
23 $description = preg_replace('~[[:cntrl:]]~', ' ',
$description);
24 $description = strip_tags($description);
25 $description = explode(' ', $description);
26
27 $category = $row->mc_name.' '.$row->smc_name.' '.$row-
>sb_name.' '.$row->ssb_name;
28 $category = preg_replace('/[^\p{L}\p{N}\s]/u', '',
$category);
29 $category = preg_replace('~[[:cntrl:]]~', ' ', $category);
30 $category = strip_tags($category);
31 $category = explode(' ', $category);
32
33 foreach ($title as $term_title) {
34 if ($term_title != '') {
35 $check = DB::table('term_frequency')
36 ->where('pro_id', $row->pro_id)
37 ->where('term', $term_title)
38 ->where('field', 'Title')
39 ->first();
40 $check2 = DB::table('term_frequency')
41 ->where('pro_id', $row->pro_id)
66
UIN Syarif Hidayatullah Jakarta
42 ->where('term', $term_title)
43 ->where('field', 'Total')
44 ->first();
45
46 if ($check != null) {
47 DB::table('term_frequency')
48 ->where('pro_id', $row->pro_id)
49 ->where('term', $term_title)
50 ->where('field', 'Title')
51 ->update([
52 'frequency' => $check->frequency + 1
53 ]);
54 }else {
55 DB::table('term_frequency')
56 ->insert([
57 'pro_id' => $row->pro_id,
58 'term' => $term_title,
59 'field' => 'Title',
60 'frequency' => 1,
61 'weight' => 0
62 ]);
63 }
64
65 if ($check2 != null) {
66 DB::table('term_frequency')
67 ->where('pro_id', $row->pro_id)
68 ->where('term', $term_title)
69 ->where('field', 'Total')
70 ->update([
71 'frequency' => $check2->frequency + 1
72 ]);
73 }else {
74 DB::table('term_frequency')
75 ->insert([
76 'pro_id' => $row->pro_id,
77 'term' => $term_title,
78 'field' => 'Total',
79 'frequency' => 1,
80 'weight' => 0
81 ]);
82 }
83
84 }
85
86 }
87
88 foreach ($description as $term_desc) {
89 if ($term_desc != '') {
90 $check = DB::table('term_frequency')
91 ->where('pro_id', $row->pro_id)
92 ->where('term', $term_desc)
93 ->where('field', 'Description')
94 ->first();
95 $check2 = DB::table('term_frequency')
96 ->where('pro_id', $row->pro_id)
97 ->where('term', $term_desc)
67
UIN Syarif Hidayatullah Jakarta
98 ->where('field', 'Total')
99 ->first();
100
101 if ($check != null) {
102 DB::table('term_frequency')
103 ->where('pro_id', $row->pro_id)
104 ->where('term', $term_desc)
105 ->where('field', 'Description')
106 ->update([
107 'frequency' => $check->frequency + 1
108 ]);
109 }else {
110 DB::table('term_frequency')
111 ->insert([
112 'pro_id' => $row->pro_id,
113 'term' => $term_desc,
114 'field' => 'Description',
115 'frequency' => 1,
116 'weight' => 0
117 ]);
118 }
119
120 if ($check2 != null) {
121 DB::table('term_frequency')
122 ->where('pro_id', $row->pro_id)
123 ->where('term', $term_desc)
124 ->where('field', 'Total')
125 ->update([
126 'frequency' => $check2->frequency + 1
127 ]);
128 }else {
129 DB::table('term_frequency')
130 ->insert([
131 'pro_id' => $row->pro_id,
132 'term' => $term_desc,
133 'field' => 'Total',
134 'frequency' => 1,
135 'weight' => 0
136 ]);
137 }
138
139 }
140
141 }
142
143 foreach ($category as $term_cat) {
144 if ($term_cat != '') {
145 $check = DB::table('term_frequency')
146 ->where('pro_id', $row->pro_id)
147 ->where('term', $term_cat)
148 ->where('field', 'Category')
149 ->first();
150 $check2 = DB::table('term_frequency')
151 ->where('pro_id', $row->pro_id)
152 ->where('term', $term_cat)
153 ->where('field', 'Total')
68
UIN Syarif Hidayatullah Jakarta
154 ->first();
155
156 if ($check != null) {
157 DB::table('term_frequency')
158 ->where('pro_id', $row->pro_id)
159 ->where('term', $term_cat)
160 ->where('field', 'Category')
161 ->update([
162 'frequency' => $check->frequency + 1
163 ]);
164 }else {
165 DB::table('term_frequency')
166 ->insert([
167 'pro_id' => $row->pro_id,
168 'term' => $term_cat,
169 'field' => 'Category',
170 'frequency' => 1,
171 'weight' => 0
172 ]);
173 }
174
175 if ($check2 != null) {
176 DB::table('term_frequency')
177 ->where('pro_id', $row->pro_id)
178 ->where('term', $term_cat)
179 ->where('field', 'Total')
180 ->update([
181 'frequency' => $check2->frequency + 1
182 ]);
183 }else {
184 DB::table('term_frequency')
185 ->insert([
186 'pro_id' => $row->pro_id,
187 'term' => $term_cat,
188 'field' => 'Total',
189 'frequency' => 1,
190 'weight' => 0
191 ]);
192 }
193
194 }
195
196 }
197 }
198 ?>
69
UIN Syarif Hidayatullah Jakarta
LAMPIRAN 2 KODE PROGRAM IDF
1 <?php
2 //IDF
3 Log::info('IDF Start');
4 $terms = DB::table('term_frequency')->groupBy('term')->get();
5 DB::table('inverse_document_frequency')->truncate();
6
7 foreach ($terms as $term) {
8 $products = DB::table('term_frequency')-
>groupBy('pro_id')->get();
9 $products = collect($products)->count();
10
11 $products_with_term = DB::table('term_frequency')
12 ->where('term', $term->term)
13 ->groupBy('pro_id')
14 ->get();
15 $products_with_term = collect($products_with_term)-
>count();
16
17 $idf = log10(($products + 1) / $products_with_term);
18
19 DB::table('inverse_document_frequency')->insert([
20 'term' => $term->term,
21 'df' => $products_with_term,
22 'value' => $idf
23 ]);
24 }
25 ?>
70
UIN Syarif Hidayatullah Jakarta
LAMPIRAN 3 KODE PROGRAM BM25F
1 <?php
2 //BM25F
3 Log::info('BM25F Start');
4 $terms = DB::table('term_frequency')
5 ->where('field', '!=', 'Total')
6 ->get();
7
8 foreach ($terms as $term) {
9 $len_fD = DB::table('term_frequency')
10 ->where('pro_id', $term->pro_id)
11 ->where('field', $term->field)
12 ->sum('frequency');
13 $count_product = DB::table('nm_product')
14 ->where('pro_id', '!=', 1)
15 ->where('pro_id', '!=', 2)
16 ->count();
17 $len_f = DB::table('term_frequency')
18 ->where('field', $term->field)
19 ->sum('frequency');
20 $avgLen_f = $len_f / $count_product;
21 $tf = $term->frequency;
22 $b = 0.75;
23
24 if ($term->field == 'Title') {
25 $boostf = 3;
26 }elseif ($term->field == 'Category') {
27 $boostf = 2;
28 }elseif ($term->field == 'Description') {
29 $boostf = 1;
30 }else {
31 $boostf = 0;
32 }
33
34 $w_tD1 = $tf * $boostf;
35 $w_tD2 = 1 - $b;
36 $w_tD3 = $b * $len_fD / $avgLen_f;
37 $w_tD4 = $w_tD2 + $w_tD3;
38 $w_tD = $w_tD1 / $w_tD4;
39
40 DB::table('term_frequency')
41 ->where('pro_id', $term->pro_id)
42 ->where('term', $term->term)
43 ->where('field', $term->field)
44 ->update([
45 'weight' => $w_tD
46 ]);
47 }
48
49 $terms = DB::table('term_frequency')
50 ->where('field', 'Total')
51 ->get();
71
UIN Syarif Hidayatullah Jakarta
52
53 $k = 1.2;
54
55 foreach ($terms as $term) {
56 $total = DB::table('term_frequency')
57 ->where('pro_id', $term->pro_id)
58 ->where('term', $term->term)
59 ->where('field', '!=', 'Total')
60 ->sum('weight');
61 $idf = DB::table('inverse_document_frequency')
62 ->where('term', $term->term)
63 ->sum('value');
64
65 $total_bm25f = ($total / ($k + $total)) * $idf;
66
67 DB::table('term_frequency')
68 ->where('pro_id', $term->pro_id)
69 ->where('term', $term->term)
70 ->where('field', 'Total')
71 ->update([
72 'weight' => $total_bm25f
73 ]);
74 }
75 ?>