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:
- Mencocokkan produk yang sama dari berbagai supplier
- Membandingkan harga dari semua supplier untuk produk yang sama
- Memilih supplier dengan harga terbaik
- 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
- 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.
- 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%.
- Gunakan Manual Review untuk Grey Area
Match dengan score 70-85% sebaiknya di-review manual. Buat sistem flagging untuk memudahkan review.
- Iterasi dan Perbaiki
Monitor hasil matching secara berkala. Catat false positive dan false negative, lalu perbaiki algoritma atau threshold Anda.
- 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.