Asus

Mengenal Fuzzy Matching, Studi Kasus E-Commerce

5 min read
Mengenal Fuzzy Matching, Studi Kasus E-Commerce

Pernahkah kamu merasa frustrasi saat harus mencocokkan ribuan data produk dari berbagai supplier, tapi nama produknya tidak konsisten? “iPhone 14 Pro Max 256GB” di satu supplier, tapi di supplier lain tertulis “Apple iPhone 14Pro Max 256 GB”. Atau lebih parah lagi, ada typo seperti “Iphone 14 ProMax 256gb”.

Di sinilah Fuzzy Matching berperan. Teknik ini memungkinkan sistem untuk mengenali bahwa ketiga nama produk di atas sebenarnya adalah produk yang sama, meskipun penulisannya berbeda-beda.

Apa Itu Fuzzy Matching?

Fuzzy Matching adalah teknik pencocokan data yang dapat mengenali kesamaan meskipun terdapat perbedaan kecil dalam penulisan. Berbeda dengan pencocokan eksak (exact matching) yang hanya mengenali data yang 100% identik, fuzzy matching dapat menghitung tingkat kesamaan (similarity score) antara dua string teks.

Contoh sederhana:

Produk A Produk B Similarity
Samsung Galaxy S23 Samsung Galaxy S23 100%
Samsung Galaxy S23 Samsng Galaxy S23 95%
Samsung Galaxy S23 iPhone 14 Pro Max 15%

Sistem dapat mengenali bahwa baris kedua kemungkinan besar adalah produk yang sama dengan baris pertama (hanya typo huruf ‘u’), sementara baris ketiga jelas produk yang berbeda.

Masalah Nyata di E-Commerce

Bayangkan kamu mengelola marketplace atau toko online yang bekerja dengan 50+ supplier. Setiap supplier mengirimkan katalog produk mereka dalam format Excel dengan cara penulisan yang berbeda-beda:

  • Supplier A: “Apple iPhone 14 Pro Max 256GB – Deep Purple”
  • Supplier B: “iPhone 14 Pro Max 256 GB Deep Purple”
  • Supplier C: “IPHONE 14 PROMAX 256GB UNGU TUA”
  • Supplier D: “Hp Apple Iphone14 ProMax-256GB(Deep Purple)”

Tugas Kamu adalah:

  1. Mencocokkan produk yang sama dari berbagai supplier
  2. Membandingkan harga dari semua supplier untuk produk yang sama
  3. Memilih supplier dengan harga terbaik
  4. Update stok produk dari berbagai sumber

Tanpa fuzzy matching, Anda harus mencocokkan secara manual satu per satu — bayangkan jika ada 10,000+ SKU! Dengan fuzzy matching, proses ini bisa diotomatisasi dan selesai dalam hitungan detik.

Cara Kerja Fuzzy Matching

Fuzzy matching menggunakan berbagai algoritma untuk menghitung similarity score. Beberapa algoritma yang paling populer:

1. Levenshtein Distance (Edit Distance)

Menghitung berapa banyak perubahan (insert, delete, replace) yang diperlukan untuk mengubah satu string menjadi string lain.

Contoh:

  • “Samsung” → “Samsng” = 1 edit (hapus ‘u’)
  • “iPhone” → “Iphone” = 1 edit (ganti ‘P’ jadi ‘p’)

2. Token-Based Matching

Memecah string menjadi kata-kata (tokens) dan menghitung berapa banyak kata yang sama.

Contoh:

  • “Apple iPhone 14 Pro” dan “iPhone 14 Pro Apple”

Meskipun urutan berbeda, keempatnya memiliki token yang sama: Apple, iPhone, 14, Pro → Similarity tinggi!

3. Ratio Matching (FuzzyWuzzy)

Kombinasi berbagai metrik untuk menghasilkan score 0-100. Library populer seperti FuzzyWuzzy (Python) menggunakan algoritma ini dan sangat efektif untuk matching nama produk.

Studi Kasus: Otomasi Price Comparison di Marketplace

Situasi:

Kamu mengelola marketplace elektronik dengan 15 supplier yang mengirim katalog produk setiap minggu. Kamu perlu membandingkan harga produk yang sama dari berbagai supplier untuk menentukan supplier mana yang menawarkan harga terbaik.

Masalah:

  • Setiap supplier punya format penulisan berbeda
  • Ada typo dan inkonsistensi (spasi, dash, kapitalisasi)
  • Manual matching untuk 5,000+ produk memakan waktu berhari-hari
  • Error manusia sering terjadi dalam proses manual

Solusi dengan Fuzzy Matching:

Tahap Deskripsi
1. Normalisasi Standarisasi format: huruf kecil semua, hapus karakter spesial, normalisasi spasi
2. Fuzzy Match Hitung similarity score untuk setiap pasangan produk antar supplier
3. Threshold Set threshold (misalnya 85%) – produk dengan score di atas threshold dianggap match
4. Verifikasi Review manual untuk match dengan score 70-85% (grey area)
5. Output Generate price comparison report dengan harga terbaik untuk setiap produk

Contoh Hasil Matching:

Supplier A Supplier B Score Status
iPhone 14 Pro Max 256GB Iphone 14ProMax 256 GB 92%
Samsung Galaxy S23 Ultra Samsung S23 Ultra 5G 88%
MacBook Pro 14 M3 Macbook Air 13 M2 76% ?
Sony WH-1000XM5 Bose QC45 28%

Catatan: Produk dengan score 70-85% (kuning) memerlukan verifikasi manual karena bisa jadi produk berbeda dengan nama mirip.

Kesalahan Umum dan Cara Mengatasinya

1. False Positive: Produk Berbeda Terdeteksi Sama

Contoh Kasus:

  • “iPhone 14 Pro Max 256GB” vs “iPhone 14 Pro 256GB” → Score: 95%

Padahal ini adalah dua produk berbeda (satu Pro Max, satu Pro biasa)!

Solusi:

  • Tambahkan bobot lebih besar pada kata kunci penting (model, kapasitas, warna)
  • Gunakan exact match untuk kata kunci kritis seperti angka (256GB harus tepat 256GB)
  • Set threshold lebih tinggi (90-95%) untuk produk dengan variasi model yang banyak

2. False Negative: Produk Sama Tidak Terdeteksi

Contoh Kasus:

  • “Sony WH-1000XM5 Black” vs “Sony Headphone WH1000XM5 Hitam” → Score: 68%

Ini sebenarnya produk yang sama, tapi score-nya rendah karena ada kata tambahan dan bahasa berbeda.

Solusi:

  • Normalisasi lebih agresif: hapus kata generik (“Headphone”, “Original”, “Garansi Resmi”)
  • Buat dictionary untuk translate istilah (“Black” = “Hitam”, “Pro Max” = “ProMax”)
  • Gunakan token-based matching yang tidak sensitif terhadap urutan kata

Best Practices untuk Implementasi

  1. Mulai dengan Normalisasi yang Baik

Sebelum fuzzy matching, standardisasi dulu data Anda: lowercase semua, hapus karakter spesial, normalisasi spasi, dan translate istilah umum ke satu bahasa.

  1. Set Threshold yang Realistis

Jangan terlalu rendah (banyak false positive) atau terlalu tinggi (banyak false negative). Sweet spot biasanya di 80-90%. Untuk produk dengan banyak variasi, naikkan ke 90-95%.

  1. Gunakan Manual Review untuk Grey Area

Match dengan score 70-85% sebaiknya di-review manual. Buat sistem flagging untuk memudahkan review.

  1. Iterasi dan Perbaiki

Monitor hasil matching secara berkala. Catat false positive dan false negative, lalu perbaiki algoritma atau threshold Anda.

  1. Kombinasi dengan Data Terstruktur

Jika ada data terstruktur seperti SKU, barcode, atau product ID, gunakan sebagai anchor point. Fuzzy matching lebih efektif sebagai validasi tambahan, bukan satu-satunya metode.

Tools untuk Implementasi Fuzzy Matching

1. Python Libraries

  • FuzzyWuzzy / RapidFuzz: Library paling populer, mudah digunakan, cocok untuk pemula
  • python-Levenshtein: Untuk implementasi edit distance yang cepat
  • Record Linkage Toolkit: Untuk matching dataset besar dengan berbagai metode

2. Excel Add-ins & Tools

  • Power Query: Built-in di Excel, bisa untuk fuzzy matching sederhana
  • Claude in Excel: Gunakan AI untuk matching data dengan instruksi natural language
  • Fuzzy Lookup Add-in (Microsoft): Tool gratis dari Microsoft untuk fuzzy matching di Excel

3. Database & Big Data Tools

  • PostgreSQL pg_trgm: Extension untuk trigram matching di database
  • Elasticsearch: Untuk fuzzy search pada dataset sangat besar
  • Apache Spark MLlib: Untuk big data processing dengan fuzzy matching

Fuzzy matching adalah teknik yang sangat powerful untuk menangani data yang tidak sempurna — dan di dunia nyata, hampir semua data tidak sempurna. Untuk e-commerce, fuzzy matching bukan lagi optional tapi menjadi necessity, terutama jika:

  • Bekerja dengan banyak supplier dengan format data berbeda
  • Perlu membandingkan harga produk dari berbagai sumber
  • Mengelola inventory dari multiple channel
  • Melakukan data cleaning dan deduplication

Dengan implementasi yang tepat, fuzzy matching bisa menghemat ratusan jam kerja manual dan mengurangi error secara signifikan. Yang tadinya butuh berhari-hari untuk matching 10,000 produk, sekarang bisa selesai dalam hitungan menit.


Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Chat!
1