Data Preprocessing Menggunakan RStudio
## Pendahuluan
Dalam analisis data, data yang tersedia tidak selalu berada dalam kondisi siap digunakan. Pada praktikum ini, saya melakukan data preprocessing menggunakan RStudio dengan bahasa pemrograman R pada data pelanggan dan data transaksi sebuah perusahaan e-commerce. Data pelanggan memuat informasi identitas, usia, kota, pendapatan, dan status pelanggan, sedangkan data transaksi memuat jumlah transaksi dan total pembelian.
Kedua sumber data tersebut masih memiliki beberapa permasalahan, seperti missing value, kategori yang tidak konsisten, duplikasi, nilai ekstrem, serta perbedaan nama identifier. Oleh karena itu, dilakukan serangkaian tahapan preprocessing yang meliputi pemeriksaan kualitas data, data cleaning, penanganan missing value dan outlier, transformasi data numerik, serta integrasi kedua sumber data hingga diperoleh satu dataset yang lebih bersih dan terstruktur.
Dalam prosesnya, setiap perubahan terhadap data dilakukan berdasarkan alasan dan aturan yang jelas, bukan hanya karena suatu nilai terlihat berbeda atau tidak biasa. Dengan demikian, proses preprocessing tidak hanya bertujuan menghasilkan data yang lebih rapi, tetapi juga menjaga agar informasi yang terkandung di dalam data tetap dapat dipertanggungjawabkan dan siap digunakan untuk analisis selanjutnya.
pelanggan_raw <- data.frame(
customer_id = c(
"C001", "C002", "C003", "C004", "C005", "C006",
"C007", "C008", "C009", "C010", "C010", "C011",
"C012", "C013", "C014", "C015", "C015", "C016",
"C017", "C018", "C019", "C020", "C021", "C022",
"C023", "C024", "C025", "C026", "C027", "C028"
),
nama = c(
"Ani", "Budi", "Citra", "Dodi", "Eka", "Fani",
"Gilang", "Hana", "Indra", "Joko", "Joko", "Kiki",
"Lina", "Maya", "Nanda", "Oki", "Oki", "Putri",
"Raka", "Salsa", "Tio", "Uli", "Vina", "Wawan",
"Yani", "Zaki", "Aldi", "Bella", "Caca", "Dian"
),
usia = c(
21, 25, 23, 150, 27, NA,
31, 29, 22, 35, 35, 28,
24, 26, 30, 32, 32, 27,
34, 23, 29, NA, 31, 28,
25, 33, 140, 22, 36, 27
),
pendapatan = c(
4500000, NA, 5200000, 4800000, 4900000, 5100000,
500000000, 4700000, 4600000, 5300000, 5300000, NA,
4800000, 5500000, NA, 5100000, 5100000, 4900000,
6000000, 4700000, 5200000, NA, 5400000, 5000000,
5600000, 4800000, 350000000, 4500000, NA, 5100000
),
kota = c(
"Pekanbaru", " PKU", "PEKANBARU", "Dumai", "pekanbaru",
"DUMAI", "Pekanbaru ", "Siak", "PKU", "Dumai",
"Dumai", NA,
"Pekanbaru", "pekanbaru", " PKU", "DUMAI", "DUMAI",
"Siak", "Pekanbaru ", "PEKANBARU", "Dumai", "PKU",
"pekanbaru", "Pekanbaru", "DUMAI", "Siak", NA,
"PEKANBARU", "Dumai", "Pekanbaru"
),
status = c(
"Aktif", "aktif", "ACTIVE", "A", "Tidak Aktif", "nonaktif",
"Aktif", "AKTIF", "A", "Tidak aktif", "Tidak aktif", "Aktif",
"aktif", "ACTIVE", "A", "Tidak Aktif", "Tidak Aktif", "AKTIF",
"Aktif", "active", "A", "nonaktif", "Tidak aktif", "AKTIF",
"aktif", "ACTIVE", "A", "Tidak Aktif", "nonaktif", "Aktif"
),
stringsAsFactors = FALSE
)
pelanggan_raw
## customer_id nama usia pendapatan kota status
## 1 C001 Ani 21 4.5e+06 Pekanbaru Aktif
## 2 C002 Budi 25 NA PKU aktif
## 3 C003 Citra 23 5.2e+06 PEKANBARU ACTIVE
## 4 C004 Dodi 150 4.8e+06 Dumai A
## 5 C005 Eka 27 4.9e+06 pekanbaru Tidak Aktif
## 6 C006 Fani NA 5.1e+06 DUMAI nonaktif
## 7 C007 Gilang 31 5.0e+08 Pekanbaru Aktif
## 8 C008 Hana 29 4.7e+06 Siak AKTIF
## 9 C009 Indra 22 4.6e+06 PKU A
## 10 C010 Joko 35 5.3e+06 Dumai Tidak aktif
## 11 C010 Joko 35 5.3e+06 Dumai Tidak aktif
## 12 C011 Kiki 28 NA <NA> Aktif
## 13 C012 Lina 24 4.8e+06 Pekanbaru aktif
## 14 C013 Maya 26 5.5e+06 pekanbaru ACTIVE
## 15 C014 Nanda 30 NA PKU A
## 16 C015 Oki 32 5.1e+06 DUMAI Tidak Aktif
## 17 C015 Oki 32 5.1e+06 DUMAI Tidak Aktif
## 18 C016 Putri 27 4.9e+06 Siak AKTIF
## 19 C017 Raka 34 6.0e+06 Pekanbaru Aktif
## 20 C018 Salsa 23 4.7e+06 PEKANBARU active
## 21 C019 Tio 29 5.2e+06 Dumai A
## 22 C020 Uli NA NA PKU nonaktif
## 23 C021 Vina 31 5.4e+06 pekanbaru Tidak aktif
## 24 C022 Wawan 28 5.0e+06 Pekanbaru AKTIF
## 25 C023 Yani 25 5.6e+06 DUMAI aktif
## 26 C024 Zaki 33 4.8e+06 Siak ACTIVE
## 27 C025 Aldi 140 3.5e+08 <NA> A
## 28 C026 Bella 22 4.5e+06 PEKANBARU Tidak Aktif
## 29 C027 Caca 36 NA Dumai nonaktif
## 30 C028 Dian 27 5.1e+06 Pekanbaru Aktif
kaskdjkajjjsndjakdalkjajdja