Analisis Data Eksploratif ‘Titanic’

Anisa Nurizki | NIM. 1503117517

Senin, 21 September 2026

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