Tahapan Data Mining: dari Seleksi Data sampai Evaluasi Pola
TL;DR
Tahapan data mining dalam proses KDD ada lima: seleksi data, pembersihan data, transformasi data, penambangan pola, dan evaluasi atau interpretasi hasil. Tiga tahap pertama nyiapin data dan biasanya makan porsi waktu terbesar. Tahap penambangan pola itu bagian yang paling sering dibayangkan orang, padahal biasanya paling cepat.
Tahapan data mining ada lima: seleksi data, pembersihan data, transformasi data, penambangan pola, lalu evaluasi hasil.
Urutan ini datang dari proses KDD, singkatan dari Knowledge Discovery in Databases. Data mining sendiri sebenernya cuma satu tahap di tengah, walau namanya yang paling sering dipakai buat nyebut seluruh proses.
Yang bikin orang kaget waktu pertama kali ngerjain: tiga tahap pertama makan waktu paling banyak, dan tahap keempat yang paling dibayangin orang malah paling cepat.
Apa saja tahapan data mining?
Lima tahapannya: seleksi data buat milih bagian data yang relevan, pembersihan buat benerin nilai salah dan kosong, transformasi buat ngubah bentuk data sesuai kebutuhan algoritma, penambangan pola buat nerapin teknik data mining, dan evaluasi buat nilai apakah pola yang ketemu berguna.
| Tahap | Masukan | Keluaran | Porsi waktu |
|---|---|---|---|
| 1. Seleksi | Semua data mentah | Data target | 10% |
| 2. Pembersihan | Data target | Data bersih | 35% |
| 3. Transformasi | Data bersih | Data siap model | 25% |
| 4. Penambangan pola | Data siap model | Pola dan model | 15% |
| 5. Evaluasi | Pola dan model | Pengetahuan yang kepakai | 15% |
Porsi waktu di atas dari proyek-proyek yang aku kerjain, jadi anggap sebagai patokan kasar, bukan angka mutlak.
Kalau kamu belum kenal istilah dasarnya, mampir dulu ke penjelasan data mining dan contoh penerapannya.
Tahap 1: gimana cara milih data yang relevan?
Seleksi data adalah proses milih tabel, kolom, dan rentang waktu yang nyambung sama pertanyaan kamu. Patokannya satu: tiap kolom yang kamu bawa harus bisa kamu jelasin kenapa dia ada. Kolom yang nggak bisa kamu jelasin cuma nambah waktu pembersihan tanpa nambah nilai.
Empat keputusan yang harus kamu ambil di tahap ini:
- Rentang waktu. Data 5 tahun kelihatan lebih meyakinkan, tapi kalau bisnisnya berubah 2 tahun lalu, data lama malah nyesatin.
- Cakupan baris. Buang transaksi karyawan, akun percobaan, dan cabang yang baru buka bulan lalu.
- Kolom yang dibawa. Mulai dari kolom yang jelas nyambung, tambahin nanti kalau perlu.
- Tingkat rincian. Per baris transaksi, per struk, atau per pelanggan per bulan. Salah pilih di sini bikin kamu ngulang tahap 2 dan 3.
Satu hal yang sering ketinggalan: catat kenapa kamu buang sesuatu. Tiga minggu lagi ada yang nanya kenapa angka kamu beda tipis sama laporan keuangan, dan catatan itu yang jawab.
Tahap 2: apa yang dibersihin dari data mentah?
Pembersihan data ngurus lima jenis masalah: nilai kosong, duplikat, format yang nggak seragam, nilai yang nggak masuk akal, dan pencilan. Urutan pengerjaannya penting. Buang duplikat dulu sebelum ngisi nilai kosong, biar kamu nggak ngisi baris yang bakal dihapus.
| Masalah | Contoh nyata | Penanganan umum |
|---|---|---|
| Nilai kosong | Kolom kota kosong di 1.200 baris | Isi modus, isi rata-rata, atau buang baris |
| Duplikat | Struk sama keinput 2 kali | Hapus, simpan yang timestamp-nya terbaru |
| Format campur | "Jakarta", "jakarta", "JKT" | Samain huruf lalu petakan ke satu nilai |
| Nilai nggak masuk akal | Umur 210, harga negatif | Cek sumbernya, benerin atau tandai |
| Pencilan | Transaksi Rp 12 juta di toko sembako | Selidiki dulu, jangan langsung buang |
Soal nilai kosong, pilihannya jangan asal. Isi rata-rata bikin sebaran data kamu menyempit dan hubungan antar kolom melemah. Cara-cara penanganannya dijelasin lengkap di panduan missing data pandas.
Soal pencilan, aturan aku: selidiki dulu sebelum buang. Transaksi Rp 12 juta di toko sembako bisa jadi salah input, bisa juga pesanan katering yang justru pelanggan paling berharga. Bedanya jauh. Cara mendeteksinya ada di halaman outlier.
Urutan pemeriksaan lengkapnya bisa kamu ikutin dari checklist data cleaning.
Tahap 3: transformasi data itu ngapain aja?
Transformasi ngubah data bersih jadi bentuk yang bisa dicerna algoritma. Empat pekerjaan utamanya: bikin kolom turunan, ngubah skala angka, ngubah kategori jadi angka, dan ngeringkas data ke tingkat rincian yang dipakai model.
Kolom turunan. Ini bagian yang paling nentuin hasil. Tanggal transaksi mentah nggak berguna buat model. Turunannya berguna: jarak hari sejak belanja terakhir, jumlah transaksi setahun, hari dalam minggu, dan tanggal dalam bulan.
Penskalaan. Algoritma berbasis jarak kayak K-Means bakal didominasi kolom yang angkanya besar. Kolom total belanja dalam jutaan bakal ngalahin kolom jumlah transaksi yang cuma puluhan. Dua cara paling umum:
# Normalisasi min-max, hasilnya 0 sampai 1
x_baru = (x - x_min) / (x_max - x_min)
# Standardisasi z-score, rata-rata 0 simpangan baku 1
z = (x - rata_rata) / simpangan_baku
Pengkodean kategori. Kolom kota yang isinya teks harus jadi angka. One-hot encoding bikin satu kolom per nilai. Label encoding kasih nomor urut, tapi hati-hati, model bisa salah nganggap Bekasi lebih besar dari Bandung cuma gara-gara nomornya lebih tinggi.
Peringkasan. Kalau modelnya per pelanggan, 41 ribu baris transaksi harus diringkas jadi 3 ribu baris pelanggan. Proses mindahin dan ngubah bentuk data kayak gini istilahnya ETL.
Tahap 4: gimana penambangan pola dikerjain?
Di tahap ini kamu milih teknik sesuai bentuk pertanyaan, lalu jalanin algoritmanya. Empat teknik nutup mayoritas kasus: klasifikasi buat nebak label, clustering buat ngelompokin, association rules buat nyari kombinasi yang sering muncul, dan regresi buat nebak angka.
Yang wajib kamu lakuin sebelum ngelatih: pisahin data latih dan data uji. Tanpa itu, angka akurasi kamu cuma ngukur seberapa bagus model ngapalin data lama.
Dua pembagian yang umum:
- Holdout. 70 sampai 80 persen buat latih, sisanya buat uji. Cepat, cocok buat data besar.
- Cross validation. Data dibagi 5 atau 10 bagian, tiap bagian gantian jadi data uji. Lebih tahan kebetulan, cocok buat data kecil.
Buat data deret waktu, jangan acak. Latih pakai data lama, uji pakai data baru. Model yang dilatih pakai data Desember lalu diuji di data Januari itu nggak masuk akal buat kasus nyata.
Tahap 5: kapan pola dianggap berguna?
Pola dianggap berguna kalau dia lewat tiga saringan: bertahan di potongan data lain, didukung jumlah kasus yang cukup, dan masuk akal buat orang yang paham bisnisnya. Angka statistik yang bagus tanpa tiga hal itu belum tentu kepakai.
Buat association rules, tiga ukuran yang dipakai:
| Ukuran | Artinya | Patokan kasar |
|---|---|---|
| Support | Porsi transaksi yang memuat kombinasi itu | Di bawah 1% biasanya terlalu jarang |
| Confidence | Kalau beli A, berapa persen juga beli B | Di bawah 30% biasanya lemah |
| Lift | Berapa kali lebih sering dibanding kebetulan | Di bawah 1 berarti nggak berguna |
Lift yang paling sering diabaikan pemula. Aturan "beli minyak goreng lalu beli beras" bisa punya confidence 60 persen dan kelihatan hebat. Tapi kalau 60 persen semua transaksi emang beli beras, lift-nya 1,0 dan aturan itu nggak ngasih informasi apa-apa.
Contoh kasus: lima tahap di data toko_berkah
Dataset toko_berkah punya ngulikdata isinya 41.892 baris transaksi setahun dari satu toko sembako di Bekasi.
Seleksi. Rentang 12 bulan, cuma transaksi bermember. Dari 41.892 baris, sisa 25.678 baris.
Pembersihan. Duplikat struk 312 baris, dibuang. Baris dengan qty nol atau harga negatif 1.297 baris, dibuang setelah dicek berasal dari retur yang kecatat dobel. Kolom kota punya 47 variasi penulisan buat 9 kota beneran, disamain jadi 9. Sisa 24.069 baris bersih, artinya 6,3 persen data kena buang.
Transformasi. Data diringkas dari 24.069 baris transaksi jadi 3.104 baris pelanggan. Tiga kolom turunan: jarak hari sejak belanja terakhir, jumlah transaksi setahun, total belanja. Ketiganya distandardisasi karena skalanya beda jauh, dari puluhan sampai jutaan.
Penambangan pola. K-Means dengan jumlah klaster diuji dari 2 sampai 8. Nilai siluet tertinggi di 4 klaster, angkanya 0,52.
Evaluasi. Empat klaster yang keluar:
| Klaster | Jumlah | Rata-rata transaksi/tahun | Rata-rata belanja |
|---|---|---|---|
| Rutin nilai besar | 287 | 41 | Rp 142.800 |
| Rutin nilai kecil | 1.164 | 28 | Rp 38.500 |
| Sesekali | 1.041 | 6 | Rp 71.200 |
| Pernah rajin, sekarang hilang | 612 | 14 | Rp 87.400 |
Klaster pertama isinya cuma 9,2 persen member, tapi nyumbang 31,7 persen total nilai belanja member. Itu angka yang langsung bisa ditindaklanjuti pemilik toko.
Klaster keempat yang lebih menarik. 612 orang yang dulu belanja rutin dan sekarang hilang, dengan rata-rata belanja historis lebih tinggi dari klaster kedua. Ini daftar yang paling layak dikejar duluan.
Buat mastiin polanya bukan kebetulan, aku ulang proses yang sama pakai data 6 bulan pertama aja. Empat klaster tetap muncul dengan karakter yang mirip, dan porsi klaster pertama ada di 8,7 persen. Cukup dekat, jadi polanya aku anggap bertahan.
Kesalahan umum di tiap tahap
- Seleksi. Bawa semua kolom "biar aman". Ini bikin tahap 2 kamu tiga kali lebih lama.
- Pembersihan. Isi semua nilai kosong pakai rata-rata tanpa mikir. Kolom yang kosongnya di atas 40 persen mendingan dibuang.
- Transformasi. Lupa nyekala data sebelum pakai algoritma berbasis jarak. Hasil klasternya bakal ditentukan satu kolom aja.
- Penambangan pola. Ngacak data deret waktu waktu bagi latih dan uji.
- Evaluasi. Nerima pola pertama yang kelihatan menarik tanpa nguji di potongan data lain.
- Semua tahap. Nggak nyatet langkah yang udah dijalanin, jadi hasilnya nggak bisa diulang.
FAQ
Tahapan data mining sama nggak dengan CRISP-DM?
Beda cakupan. Tahapan KDD lima langkah dan fokusnya di pengolahan data sampai pola ketemu. CRISP-DM enam fase dan dia mulai lebih awal, dari pemahaman masalah bisnis, lalu berakhir lebih jauh, di deployment. Isi teknisnya banyak yang tumpang tindih. Kalau kamu nulis skripsi, cek dulu kerangka mana yang diminta pembimbing.
Tahap mana yang paling makan waktu?
Pembersihan dan transformasi. Di proyek yang aku kerjain, dua tahap itu rutin makan 50 sampai 70 persen total jam kerja. Alasannya sederhana: data dari sistem kasir, form, dan spreadsheet manual hampir selalu punya format campur, nilai kosong, dan duplikat. Tahap penambangan pola sendiri sering cuma sehari dua hari.
Apa bedanya normalisasi sama standardisasi?
Normalisasi min-max ngerapetin nilai ke rentang 0 sampai 1 pakai nilai terkecil dan terbesar. Standardisasi z-score ngubah nilai jadi jarak dari rata-rata dalam satuan simpangan baku. Normalisasi lebih gampang dibaca tapi peka sama nilai ekstrem. Standardisasi lebih tahan pencilan dan biasanya jadi pilihan default buat algoritma berbasis jarak.
Kapan pola dianggap berguna dan kapan cuma kebetulan?
Uji polanya di potongan data yang lain. Kalau pola cuma muncul di semester pertama dan hilang di semester kedua, kemungkinan besar itu kebetulan. Cek juga jumlah kasusnya. Aturan yang cuma didukung 12 transaksi dari 40 ribu itu lemah, walau angka confidence-nya tinggi. Terakhir, tanya ke orang yang paham bisnisnya, masuk akal nggak.
Harus pakai tool apa buat ngerjain tahapan ini?
Tergantung ukuran data. Di bawah 100 ribu baris, Excel plus Power Query udah cukup buat tahap 1 sampai 3. Buat penambangan pola tanpa coding, pakai Orange. Kalau datanya jutaan baris atau prosesnya harus jalan rutin, pindah ke SQL buat penyiapan data dan Python dengan pandas plus scikit-learn buat modelnya.
Mulai dari tahap mana
Dua hal yang paling nentuin kualitas hasil kamu: keputusan tingkat rincian di tahap seleksi, dan kolom turunan yang kamu bikin di tahap transformasi.
Sisanya kerja rapi-rapi yang bisa dilatih.
Ambil satu file transaksi yang ada sekarang, lalu kerjain tahap 1 dan 2 aja. Tulis berapa persen baris yang kamu buang dan kenapa. Itu udah lebih dari yang dilakuin kebanyakan orang.
Habis itu lanjut ke tutorial Orange Data Mining buat ngerjain tahap 4 tanpa nulis kode, atau ke panduan CRISP-DM kalau kamu butuh kerangka yang nyambung ke sisi bisnisnya.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Pandas groupby: Agregasi Data ala Pivot di Python (2026)
groupby ngelompokin baris berdasarkan kolom, lalu ngitung ringkasan per grup kayak total atau rata-rata. Ini pivot-nya pandas.
Pandas to_excel: Ekspor DataFrame ke Excel (2026)
to_excel nyimpen DataFrame pandas jadi file Excel .xlsx. Ini cara pakainya, dari satu sheet sampai banyak sheet, plus setelan yang bikin hasilnya rapi.
Pandas read_excel: Baca File Excel di Python
pandas read_excel baca file Excel jadi DataFrame, bisa pilih sheet tertentu dan lompatin baris judul yang berantakan. Ini cara pakai plus parameter penting dengan contoh data toko.