implementasi bm25f pada pencarian produk e...

86
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

Upload: others

Post on 09-Mar-2020

0 views

Category:

Documents


0 download

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

27

UIN Syarif Hidayatullah Jakarta

description

memberikan

hasil terburuk.

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

30

UIN Syarif Hidayatullah Jakarta

3.2. Alur Penelitian

Gambar 3. 2 : Alur Penelitian

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:

36

UIN Syarif Hidayatullah Jakarta

Gambar 4. 2 : Proses Tokenisasi

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.

51

UIN Syarif Hidayatullah Jakarta

Gambar 4. 4 : Flowchart BM25F Bagian 1

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 ?>