Martien Dermawan Tanama Universitas Ciputra UC Town, Citraland Surabaya 60219 mdermawan@student.ciputra.ac.id Alfon Wicaksi Universitas Ciputra UC Town, Citraland Surabaya 60219 awicaksi@ciputra.ac.id
Rancang Bangun Aplikasi Pengumpulan Pembeli Potensial
Terhadap Barang Grosir Fashion Dengan
Algoritma
Jaccard Index
ABSTRAK
Ada gap antara pembeli ritel dan pedagang grosir, dimana pedagang grosir mengkhususkan diri untuk melayani pembelian barang dalam jumlah besar agar mendapatkan harga lebih murah, sedangkan pembeli ritel biasanya hanya membeli barang dalam jumlah kecil sesuai kebutuhannya saja. Misalnya produk fashion. Penelitian ini mengusulkan solusi untuk gap tersebut, yaitu dengan menggunakan algoritma Jaccard Index untuk menemukan kemiripan pembeli berdasarkan jumlah sub kategori, sejumlah pembeli ritel potensial dengan kebutuhan barang yang sama akan dapat dikumpulkan untuk dapat membeli barang dari pedagang grosir dalam jumlah besar.
Kata kunci: Sistem rekomendasi, jaccard index, pembeli potensial, grosir 1. PENDAHULUAN
Perdagangan grosir memungkinkan pembeli mendapatkan harga murah namun mensyaratkan pembelian dengan jumlah minimum tertentu. Padahal tidak semua orang membutuhkan barang, misalnya barang fashion seperti baju, tas, dan sepatu, dalam jumlah yang banyak, sedangkan batas minimum pembelian grosir bisa enam, dua belas, atau bahkan lebih, tergantung dari kebijakan pedagang. Para
calon pembeli yang tetap ingin
mendapatkan harga yang murah harus bergabung dengan pembeli lain, dengan target barang yang sama, untuk dapat membeli secara grosir. Namun ada kendala, bagaimana pembeli dengan target barang yang sama atau mirip tersebut dapat saling
menemukan dan bergabung dalam transaksi pembelian.
Pemilihan fokus pada produk
fashion didasarkan dari hasil survei di kalangan remaja seperti dikutip oleh
Setyanti (November 2011) yang
mengatakan bahwa produk fashion
merupakan salah satu produk yang paling dicari dalam bisnis online shop.
Masalah yang diangkat dalam penelitian ini adalah cara merancang dan
membangun aplikasi yang dapat
menemukan dan mengumpulkan pembeli potensial terhadap barang grosir fashion, dengan lingkup:
1) Aplikasi dibuat untuk
merekomendasikan user, bukan item, dan hanya sampai menyusun pembeli
potensial, tidak mencakup penjualan, transaksi, ataupun pengiriman.
2) Aplikasi akan memberikan
rekomendasi selama ditemukan hasil dengan nilai di atas nol.
3) Isu keamanan sistem di luar pengerjaan tugas akhir ini.
4) Dalam pengerjaan tugas akhir ini,
pengujian algoritma akan
menggunakan data dummy.
Tujuan yang ingin dicapai penelitian ini adalah membuat aplikasi, Fashsale, yang memiliki fungsi menemukan dan merekomendasikan sesama pembeli dengan minat produk yang sama terhadap barang
grosir fashion tertentu menggunakan
algoritma Jaccard Index.
2. DASAR TEORI 2.1. Perdagangan
Perdagangan adalah semua tindakan yang tujuannya menyampaikan barang untuk tujuan hidup sehari-hari, prosesnya berlangsung dari produsen sampai kepada konsumen. Perdagangan dibedakan menjadi dua yaitu perdagangan besar yang kita sebut sebagai grosir, maupun perdagangan kecil yang kita sebut sebagai ritel atau pengecer.
Grosir adalah jenis perdagangan dengan cara membeli produk dari perusahaan pembuat produk atau produsen lain dalam jumlah yang besar dan menjualnya kembali ke perusahaan ritel.
Karena perusahaan grosir mengambil langsung dari produsen dalam jumlah yang banyak maka pedagang grosir akan mendapatkan harga yang lebih murah.
Ritel adalah jenis perdagangan yang dilakukan dalam partai kecil, dimana peritel biasanya membeli barang dari pedagang grosir lalu menjualnya kembali kepada konsumen akhir.
2.2. Jaccard Index
Algoritma Jaccard Index yang
dikenal juga dengan Jaccard Similarity
Coefficient adalah algoritma yang
digunakan untuk membandingkan
kesamaan antara dua set sampel. Jaccard Index memiliki nilai output antara nol sampai dengan satu dimana apabila nilai output semakin mendekati angka nol berarti semakin tidak ada kesamaan antara kedua set sampel, dan apabila semakin mendekati angka satu berarti semakin banyak kesamaan antara kedua set sampel.
Menurut Ullman (2011) algoritma
Jaccard Index dapat menemukan kemiripan kebiasaan membeli dari user. Fashsale akan memanfaatkan algoritma tersebut untuk
menemukan kemiripan sub kategori isi
wishlist dari user sehingga dapat
memberikan rekomendasi pembeli
potensial.
Berikut adalah formula algoritma
Jaccard Index: J(A,B) =!! ∪ ∩ !!
A = Set A / User A B = Set B / User B ∩ = Intersect
∪ = Union
Cara kerja algoritma Jaccard Index
ini adalah dengan membagi jumlah
intersect antara kedua user dengan jumlah
union antara kedua user.
𝐽= 𝑀!!
𝑀!"+𝑀!"+𝑀!!
𝑀!! merupakan jumlah dari atribut dimana A dan B memiliki nilai nol
𝑀!" merupakan jumlah dari atribut dimana A memiliki nilai satu
dan B memiliki nilai nol
𝑀!" merupakan jumlah dari atribut dimana A memiliki nilai nol dan B memiliki nilai satu
Berikut adalah pseudocode dari
algoritma Jaccard Index: /*
ALGORITMA Jaccard Index(userA, userB)
Fungsi : Mencari pembeli potensial yang memiliki kesukaan yang sama berdasarkan historywishlist
Input : subcategory dari historywishlist
Variabel yang digunakan : wishlistuserA dan userB dengan tipe // data array.
Output : Nilai kesamaan antara 0(tidak mirip) sampai 1(mirip) */
1. intersect = 0 2. union = 0
3. UNTUK n=1 sampai jumlah array wishlist userA
4. JIKA array wishlist userA[n] ada di array wishlist userB
5. JIKA jumlah wishlist userA < userB
6. intersect += jumlah wishlist
userA
7. union += jumlah wishlist userB
8. JIKA TIDAK
9. intersect += jumlah wishlist
userB
10. union += jumlah wishlist userA
11. JIKA TIDAK
12. union += jumlah wishlist userA 13. SELESAI
14.
15. UNTUK n=1 sampai jumlah array wishlist userB
16. JIKA array wishlist userB[n] tidak ada di array wishlist userA
17. union += jumlah wishlist userB
18. SELESAI 19.
20. Nilai kemiripan = intersect / union
3. PERANCANGAN SISTEM 3.1. Penyusunan Rekomendasi
Proses penyusunan rekomendasi terdiri dari empat tahap, mulai pengambilan data user wishlist dari dalam database, perhitungan nilai kesamaan menggunakan algoritma Jaccard Index, memperbaharui tabel Jaccard Index, sampai menampilkan rekomendasi pembeli potensial kepada
user.
3.1.1. Mengambil isi wishlist pengguna Wishlist adalah daftar item barang yang ingin dibeli oleh pengguna (pembeli ritel). Isi dari daftar inilah yang akan dijadikan patokan pencarian kesamaan dengan pengguna lain. Setiap item barang akan dikelompokkan ke dalam suatu kategori untuk memudahkan pencarian kemiripan antar pengguna.
3.1.2. Menghitung nilai kesamaan
Daftar barang yang sudah
dikelompokkan akan saling dibandingkan antar pengguna dengan menggunakan algoritma Jaccard Index untuk menghitung
nilai kesamaannya. Cara kerja
penghitungan diilustrasikan oleh kode berikut:
1 function getSimiliarity($userA, $userB) { 2 $match = 0;
3 $diff = 0;
4 //untuk mencari sub category yang ada di user A sama atau tidak dengan user B
5 for ($index = 0; $index < sizeof($array_wishlist_a_name); $index++) {
6 //jika arrayA[i] ada di dalam arrayB
7 if (in_array($array_wishlist_a_name[$index], $array_wishlist_b_name)) {
8 //jika quantity yang ada di arrayA lebih kecil sama dengan quantity di userB
9 if ($array_wishlist_a_qty[$array_wishlist_a_name[$index]] <= 10$array_wishlist_b_qty[$array_wishlist_a_name[$index]]) { 11 $match += $array_wishlist_a_qty[$array_wishlist_a_name[$index]]; 12 $diff += $array_wishlist_a_qty[$array_wishlist_a_name[$index]] + 13$array_wishlist_b_qty[$array_wishlist_a_name[$index]] – 14$array_wishlist_a_qty[$array_wishlist_a_name[$index]]; 15 } else {
16 //jika tidak sama maka
17 $match += $array_wishlist_b_qty[$array_wishlist_a_name[$index]]; 18 $diff += $array_wishlist_a_qty[$array_wishlist_a_name[$index]] + 19$array_wishlist_b_qty[$array_wishlist_a_name[$index]] – 20$array_wishlist_b_qty[$array_wishlist_a_name[$index]]; 21 } 22 } else {
23 //jika tidak ada kesamaan dari wishlist userA[i] dengan userB
24 $diff +=
$array_wishlist_a_qty[$array_wishlist_a_name[$index]]; 25 }
26 }
27 //untuk mencari sub category yang ada di user B tetapi tidak ada di user A
28 for ($index = 0; $index < sizeof($array_wishlist_b_name); $index++) { 29 if (!in_array($array_wishlist_b_name[$index], $array_wishlist_a_name)) { 30 $diff += $array_wishlist_b_qty[$array_wishlist_b_name[$index]]; 31 } 32 }
33 return $match / $diff; 34}
3.1.3. Memperbarui tabel jaccard
Nilai hasil kalkulasi setiap pasangan daftar barang akan dicatat dan dikumpulkan dalam tabel khusus, table jaccard, yang berisi informasi kemiripan dari seluruh
wishlist pengguna.
3.1.4. Memberikan rekomendasi
Rekomendasi yang diberikan sistem adalah sesama pengguna yang memiliki kemiripan wishlist, yang didasarkan dari nilai index jaccard yang sudah dihitung terdahulu. Pemilihan pengguna yang direkomendasi di dapatkan dari attribut
id_user teratas pada tabel jaccard setelah diurutkan secara descending.
3.2. Diagram Database
Hubungan antara entitas data yang tercakup dalam aplikasi ini digambarkan melalui diagram pada Gambar 3.1, yang sekaligus mengilustrasikan desain skema database.
Gambar 1. Diagram Database
3.3. Sitemap
Struktur website Fashsale
digambarkan melalui peta situs (sitemap), Gambar 3.2, yang terdiri dari halaman
register, login, logout, buy item, item list, sell item, new selling, selling list, message, compose, inbox, outbox, wishlist.
3.4. Arsitektur Sistem
Arsitektur sistem, Gambar 3.3, mengilustrasikan struktur aplikasi Fashsale. Modul utama adalah modul rekomendasi
yang menggunakan algoritma Jaccard
Index. Fashsale didukung oleh database engine MySQL, server web Apache, dan dibangun dengan PHP.
Gambar 3. Arsitektur sistem
4. PENGUJIAN 4.1. Tujuan pengujian
Pengujian dilakukan untuk
membuktikan bahwa calon pembeli
potensial yang direkomendasikan memiliki tingkat kesamaan isi wishlist lebih tinggi
daripada user lain yang tidak
direkomendasikan.
4.2. Data pengujian
Data yang digunakan dalam
pengujian adalah data rekayasa (dummy) namun representatif untuk kasus ini.
Tabel 1. Data ujicoba
User No Wishlist (Quantity) 1 A(1), B(2), F(1), G(3) 2 A(2), C(2) 3 B(2), F(3), G(1), H(1), I(1) 4 A(1), B(1), C(2), D(1) 5 C(2), D(1), E(2), F(1) 6 F(3), G(2), H(1), J(1) 7 A(1), B(2), D(1), G(3) 8 A(2), C(2), J(1) 9 A(1), F(2), G(3), J(1) 10 G(1), H(1), I(1), J(1)
Tabel 1 menunjukan data dummy
yang digunakan untuk melakukan
pengujian aplikasi, berupa sepuluh user
dengan rata-rata isi wishlist kurang dari sepuluh kategori (Tabel 2) dengan sebaran acak. Kategorisasi tersebut didasarkan pada
manfaat kegunaan, karena perilaku
konsumen akan membeli barang sesuai dengan manfaat yang dibutuhkan (Ma’ruf, 2005).
Tabel 2. Kategorisasi barang Kategori Nama Deskripsi
A Top Pakaian atas B Bottom Pakaian bawah
C Dress Pakaian terusan, dipakai untuk pesta
D Hat Pelindung kepala
E Accessory Hiasan tangan (gelang), kuping (anting)
F Underwear Pakaian dalam
G Bag Tempat menyimpan barang H Make-‐up Alat untuk mempercantik
wajah I Shoes Alas kaki J Watch Pengingat waktu
4.3. Skenario pengujian
Skenario pengujian yang dilakukan adalah dengan cara mengambil tiga sampel
hasil pengujian dan dibuktikan
direkomendasikan selalu mempunyai kesamaan isi wishlist yang lebih tinggi atau
sama dengan user yang tidak
direkomendasikan.
4.4. Hasil pengujian
Pengujian dilakukan beberapa kali dengan menggunakan pasangan pengguna yang berbeda.
Tabel 3. Hasil pengujian pertama User A User B Score 1 7 0.75 1 9 0.55 1 3 0.36 1 6 0.27 1 4 0.2 1 8 0.1 1 2 0.1 1 5 0.09 1 10 0.08
Tabel 3 merupakan hasil
perhitungan algoritma Jaccard Index telah diurutkan secara descending berdasarkan
score. Hasilnya, yang memiliki tingkat kesamaan paling tinggi dengan user 1
adalah user 7 dengan score 0.75.
Pencocokan dengan data aslinya ternyata antara user 1 dan 7 memiliki isi wishlist 6 barang dengan sub kategori yang sama dan 2 sub kategori yang berbeda, sedangkan yang memiliki tingkat kesamaan paling rendah dengan user 1 adalah user 10 dengan isi wishlist 0 barang dengan sub
kategori yang sama dan 11 barang dengan
sub kategori yang berbeda.
Tabel 4 melaporkan hasil ujicoba bahwa yang memiliki tingkat kesamaan paling tinggi dengan user 2 adalah user 8 dengan score 0.8 dan setelah dicocokan
Tabel 4. Hasil pengujian kedua User A User B Score 2 8 0.8 2 4 0.5 2 5 0.25 2 1 0.1 2 9 0.1 2 7 0.1 2 3 0 2 6 0 2 10 0
dengan data aslinya ternyata antara user 2 dan 8 memiliki isi wishlist 4 barang dengan
sub kategori yang sama dan 1 sub kategori yang berbeda, sedangkan yang memiliki tingkat kesamaan paling rendah dengan
user 2 adalah user 3 dengan isi wishlist 0 barang dengan sub kategori yang sama dan
12 barang dengan sub kategori yang
berbeda.
Tabel 5. Hasil pengujian ketiga User A User B Score 3 6 0.5 3 10 0.36 3 7 0.33 3 9 0.25 3 1 0.25 3 4 0.08 3 5 0.07 3 2 0 3 8 0
Tabel 5 melaporkan hasil ujicoba bahwa yang memiliki tingkat kesamaan
paling tinggi dengan user 3 adalah user 6 dengan score 0.5 dan setelah dicocokan dengan data aslinya ternyata isi wishlist
antara user 3 dan 6 ada 5 barang dengan
sub kategori yang sama dan 10 barang
dengan sub kategori yang berbeda,
sedangkan yang memiliki tingkat kesamaan paling rendah dengan user 3 adalah user 2 dengan isi wishlist 0 barang dengan sub
kategori yang sama dan 12 barang dengan
sub kategori yang berbeda.
4.5. Analisis pengujian
Dari hasil pengujian tiga sampel
user, dapat diketahui bahwa besar nilai
Jaccard Index (JI) selalu berbanding lurus dengan besar kemiripan sub kategori dari isi wishlist yang dimiliki kedua user.
5. KESIMPULAN DAN SARAN 5.1. Kesimpulan
Berdasarkan hasil ujicoba, dapat disimpulkan bahwa:
1) Aplikasi Fashsale ini dapat
mengumpulkan pembeli potensial
dengan menggunakan algoritma JI yang dapat menemukan kemiripan jumlah sub kategori isi wishlist antar calon pembeli.
2) Parameter sub kategori yang digunakan oleh JI sangat bergantung kepada
ketelitian untuk menentukan
atributnya, semakin detil pemilihan atribut untuk sub kategori maka hasil yang didapatkan akan semakin akurat.
Misal, sub kategori sepatu dapat diperdetil lagi menjadi sepatu olah raga, sepatu resmi, sepatu sandal, dan lain sebagainya.
3) Data yang digunakan untuk mencari
kemiripan sub kategori isi wishlist
adalah seluruh data di database
sehingga aplikasi Fashsale tidak dapat
mengetahui apakah user yang
direkomendasikan masih aktif membeli barang atau tidak.
4) Algoritma JI membagi jumlah intersect
dengan jumlah union dari seluruh isi
wishlist kedua user sehingga apabila salah satu user memiliki banyak isi
wishlist yang tidak dimiliki user
lainnnya akan mengakibatkan semakin kecil nilai kemiripan sub kategori dari isi wishlist kedua user walaupun
sebenarnya ada kemungkinan user
tersebut adalah pembeli besar yang berpotensi untuk membeli barang yang sama dari user yang lainnya.
5.2. Saran
Saran pengembangan bagi
penelitian ini adalah:
1) Aplikasi ini dapat berguna juga untuk
Business To Business (B2B), terutama
untuk startup bisnis yang
membutuhkan sejumlah packaging
dengan harga yang murah dengan cara mengumpulkan pembeli potensial dari
membutuhkan packaging yang sama, demi efisiensi biaya.
2) Ditambahkan parameter lain dalam
pencarian, seperti merek barang dan harga barang, untuk mempertajam akurasi.
3) Digunakan algoritma atau metode lain untuk meningkatkan akurasi hasil pada
kasus-kasus tertentu, misalnya
menghitung tingkat kepuasan pembeli terhadap suatu barang.
4) Ditambahkan filtering user aktif saja yang akan diolah dalam pencarian kesamaan, agar hasil rekomendasi lebih akurat.
6. DAFTAR PUSTAKA
Ma’ruf, H. 2005. Pemasaran Ritel. PT Gramedia Pustaka Utama, Jakarta, Indonesia.
Setyanti, CA. 2011. Prospek Cerah "Online Shopping", Female Kompas, Indonesia. [Online]
Tersedia di: http://female.kompas.com/read/2011/11/25/11510670/
Prospek.Cerah.Online.Shopping. [Diakses tanggal 29 Maret 2012]
Ullman, JD, Rajaramand, A. 2011. Mining of Massive Datasets. Cambridge University Press, Cambridge, United Kingdom.