Pendahuluan

Visualisasi data merupakan salah satu pendekatan yang efektif dalam proses eksplorasi data. Melalui visualisasi, data dapat disajikan dalam bentuk grafik sehingga pola distribusi, perbandingan antar kategori, hubungan antar variabel, serta perubahan data dari waktu ke waktu dapat diamati dengan lebih mudah.

Perkembangan teknologi digital menyebabkan berbagai aktivitas manusia menghasilkan data dalam jumlah yang semakin besar, termasuk pada kegiatan transaksi penjualan di sektor ritel. Setiap transaksi penjualan menyimpan informasi penting seperti waktu pembelian, jenis produk, jumlah transaksi, serta karakteristik pelanggan. Data tersebut memiliki potensi untuk dianalisis guna memahami pola pembelian dan kecenderungan perilaku konsumen. Oleh karena itu, kemampuan dalam mengolah dan menganalisis data menjadi penting agar data mentah dapat diubah menjadi informasi yang bermanfaat dalam mendukung pengambilan keputusan.

Dalam analisis ini digunakan Retail Sales Dataset yang tersedia secara terbuka pada platform Kaggle. Dataset tersebut berisi data transaksi penjualan beserta informasi pelanggan dan dirancang sebagai data simulasi yang menyerupai kondisi transaksi ritel nyata sehingga sesuai digunakan dalam pembelajaran eksplorasi dan visualisasi data.

Jenis Visualisasi Data Yang Digunakan

Jenis visualisasi data yang digunakan ada 4 yaitu:

  1. Visualisasi kategorik Visualisasi kategorik digunakan untuk menampilkan dan membandingkan data dalam bentuk kelompok atau kategori. Contohnya adalah diagram batang dan diagram lingkaran yang menunjukkan perbedaan jumlah atau proporsi antar kategori.

  2. Visualisasi kontinu Visualisasi kontinu digunakan untuk melihat distribusi dan sebaran data numerik. Contohnya seperti histogram dan box plot yang membantu memahami pola penyebaran data.

  3. Visualisasi bivariat Visualisasi bivariat digunakan untuk menganalisis hubungan antara dua variabel. Contohnya adalah scatter plot atau heatmap yang menunjukkan keterkaitan antar variabel.

  4. Visualisasi time series Visualisasi time series digunakan untuk melihat perubahan data dari waktu ke waktu. Biasanya menggunakan grafik garis untuk menunjukkan tren atau pola data.

Visualisasi data merupakan alat penting dalam menyampaikan informasi secara efektif. Penyajian yang tidak tepat dapat membuat data sulit dipahami dan berpotensi menimbulkan kesalahan interpretasi, sehingga visualisasi perlu disusun dengan memperhatikan kejelasan dan ketepatan agar informasi dapat diterima dengan baik. Salah satu aspek utama adalah kejelasan penyajian, di mana visualisasi harus mencerminkan kondisi data yang sebenarnya tanpa menimbulkan makna ganda. Penggunaan elemen visual seperti skala dan proporsi juga sangat penting karena dapat memengaruhi cara pembaca memahami data. Selain itu, visualisasi perlu dibuat sederhana agar mudah dipahami oleh berbagai kalangan. Penyajian yang tidak terlalu kompleks, pemilihan jenis grafik yang sesuai, serta penggunaan label dan judul yang jelas akan membantu menyampaikan informasi secara efektif. Visualisasi yang baik tidak harus rumit, tetapi mampu menyampaikan informasi secara tepat sesuai tujuan analisis.

Studi Kasus

Data yang digunakan dalam penelitian ini diperoleh dari platform kaggle dengan judul Retail Sales Dataset yang dapat diakses melalui link berikut :Klik di sini. Dataset ini merupakan data penjualan retail yang berisi informasi terkait transaksi pelanggan, produk, serta nilai pembelian yang dilakukan dalam periode waktu tertentu.

Dataset yang digunakan berbentuk data tabular (tabel) dengan karakteristik jumlah observasi terdapat 1000 data transaksi, jumlah variabel terdapat 9 dan bentuk data pada dataset ini adalah data cross-sectional dengan elemen time series karena terdapat variabel waktu (tanggal transaksi). Data ini mencerminkan aktivitas penjualan retail yang dapat digunakan untuk menganalisis pola pembelian, karakteristik pelanggan, serta tren penjualan dari waktu ke waktu.

Variabel dalam dataset ini terdiri dari beberapa jenis, yaitu: variabel kategorik yang terdiri dari kolom gender, product category dan customer ID. Variabel numerik yang terdiri dari kolom age, quantity, price per unit dan total amount. Serta variabel waktu yang terdiri dari kolom date.

Berikut adalah deskripsi data yang digunakan dalam analisis:

Nama Variabel Deskripsi Variabel Keterangan
Transaction ID Nomor unik setiap transaksi Kategorik
Date Tanggal transaksi Waktu
Customer ID Identitas pelanggan Kategorik
Gender Jenis kelamin pelanggan Kategorik
Age Usia pelanggan Numerik
Product Category Kategori produk yang dibeli Kategorik
Quantity Jumlah produk yang dibeli Numerik
Price per unit Harga per unit produk Numerik
Total amount Total transaksi Numerik

Melalui visualisasi tersebut diharapkan dapat menjawab beberapa pertanyaan analisis, seperti:

  1. Bagaimana karakteristik dan struktur dataset retail sales?
  2. Bagaimana distribusi data berdasarkan kategori dan variabel numerik?
  3. Apakah terdapat hubungan antar variabel?
  4. Bagaimana pola dan tren transaksi berdasarkan waktu?

Dengan tujuan sebagai berikut, yaitu :

  1. Mengidentifikasi karakteristik dataset.
  2. Melakukan eksplorasi distribusi data.
  3. Menganalisis hubungan antar variabel.
  4. Menyajikan visualisasi yang informatif.

Variabel Yang Digunakan

Variabel yang terdapat dalam dataset ini berjumlah 9, yaitu:

  • Transaction ID: nomor unik untuk setiap transaksi
  • Date: tanggal terjadinya transaksi
  • Customer ID: identitas unik pelanggan
  • Gender: jenis kelamin pelanggan
  • Age: usia pelanggan
  • Product Category: kategori produk yang dibeli
  • Quantity: jumlah produk yang dibeli
  • Price per Unit: harga per unit produk
  • Total Amount: total nilai pembelian dalam satu transaksi

Variabel dalam dataset ini terdiri dari dua jenis, yaitu variabel kategorik seperti Gender dan Product Category, serta variabel numerik seperti Age, Quantity, Price per Unit, dan Total Amount. Selain itu, terdapat juga variabel berbentuk identitas seperti Transaction ID dan Customer ID.

Tahapan Analisis

Tahapan analisis data dalam penelitian ini dilakukan secara sistematis melalui beberapa langkah berikut:

  1. Pengumpulan data Data dikumpulkan dari platform kaggle dalam bentuk file CSV yang berisi data transaksi penjualan retail. Dataset diunduh secara langsung dari sumber resmi dan digunakan sebagai bahan utama dalam proses analisis.

  2. Data cleaning Tahap pembersihan data dilakukan untuk memastikan kualitas data sebelum dianalisis. Proses ini meliputi pengecekan dan penanganan data yang hilang (missing values), penghapusan data duplikat, serta penyesuaian tipe data seperti variabel tanggal, numerik, dan kategorik agar sesuai dengan kebutuhan analisis menggunakan R.

  3. Eksplorasi data awal Eksplorasi data dilakukan untuk memahami karakteristik dataset secara umum. Tahap ini mencakup identifikasi jenis variabel, perhitungan statistik deskriptif seperti mean, median, dan standar deviasi, serta pengamatan distribusi data untuk memperoleh gambaran awal mengenai pola yang terdapat dalam data.

  4. Visualisasi data dan interpretasi Data divisualisasikan untuk mempermudah pemahaman pola dan hubungan antar variabel. Visualisasi yang digunakan meliputi histogram untuk melihat distribusi data numerik, diagram batang untuk variabel kategorik, scatter plot untuk melihat hubungan antar variabel, serta grafik time series untuk mengamati tren data dari waktu ke waktu.

  5. Tools yang digunakan Penelitian ini menggunakan bahasa pemrograman R dengan bantuan beberapa library seperti tidyverse, lubridate, dan zoo. R dipilih karena memiliki kemampuan yang kuat dalam pengolahan data, visualisasi, serta analisis statistik. Selain itu, penggunaan ggplot2 dalam tidyverse memungkinkan pembuatan visualisasi yang informatif dan mudah dipahami, sehingga sangat mendukung proses eksplorasi dan interpretasi data.

# load library
library(tidyverse)
library(lubridate)
library(ggplot2)
library(plotly)
library(zoo)
library(dplyr)
# import data
data <- read.csv("D:/TUGAS/SEMESTER 4/VISUALISASI DATA/retail_sales_dataset.csv")
# data cleaning
data$Date <- as.Date(data$Date, format = "%m/%d/%Y")
colnames(data) <- make.names(colnames(data))

data$Gender <- as.factor(data$Gender)
data$Product.Category <- as.factor(data$Product.Category)
# tema biar grafik jelas
theme_bersih <- function() {
  theme_minimal() +
    theme(
      panel.border = element_rect(color = "black", fill = NA, linewidth = 0.7),
      panel.grid.major = element_line(color = "grey70"),
      panel.grid.minor = element_line(color = "grey90"),
      axis.line = element_line(color = "black"),
      plot.title = element_text(face = "bold")
    )
}

Analisis Visualisasi Data

Gambaran Umum Data

Dataset yang digunakan dalam penelitian ini merupakan data transaksi penjualan yang terdiri dari beberapa variabel utama, yaitu Gender, Age, Product Category, Quantity, Price per Unit, Totoal Amount, serta Date. Variabel-variabel tersebut mencakup data kategorik, numerik, dan waktu sehingga memungkinkan dilakukan analisis distribusi, hubungan antar variabel, serta tren dari waktu ke waktu. Pada bab ini, eksplorasi data bertujuan untuk mengidentifikasi pola pembelian, hubungan karakteristik pelanggan terhadap transaksi, serta perkembangan penjualan berdasarkan waktu variabel utama yang dianalisis.


Visualisasi Distribusi Kategori Produk

library(ggplot2)
library(plotly)

# plot
p1 <- ggplot(data, aes(x = Product.Category,
                       text = paste("Kategori:", Product.Category))) +
  geom_bar(fill = "steelblue", color = "black") +
  labs(
    title = "Distribusi Kategori Produk",
    x = "Kategori Produk",
    y = "Jumlah Transaksi"
  ) +
  theme_minimal()

ggplotly(p1, tooltip = "text")

Pada visualisasi pertama ini menggunakan diagram batang untuk menggambarkan distribusi jumlah transaksi pada masing-masing kategori produk (Product Category). Grafik ini bertujuan untuk mengetahui kategori produk yang paling dominan dalam dataset.

Berdasarkan grafik, terlihat bahwa kategori Clothing memiliki jumlah transaksi tertinggi dibandingkan kategori lainnya, dengan jumlah sekitar 350 transaksi. Sementara itu, kategori Electronics berada pada posisi kedua dengan jumlah transaksi yang sedikit lebih rendah, yaitu sekitar 340 transaksi. Adapun kategori Beauty memiliki jumlah transaksi paling rendah, yaitu sekitar 310 transaksi. Secara umum, perbedaan jumlah transaksi antar kategori tidak terlalu jauh, namun tetap menunjukkan adanya variasi dalam preferensi pembelian pelanggan.

Kondisi ini menunjukkan bahwa produk pada kategori Clothing cenderung lebih diminati oleh pelanggan dibandingkan kategori lainnya. Tingginya jumlah transaksi pada kategori ini dapat mengindikasikan bahwa kebutuhan akan produk pakaian bersifat lebih rutin atau memiliki variasi yang lebih banyak sehingga mendorong frekuensi pembelian. Sementara itu, kategori Beauty yang memiliki jumlah transaksi paling rendah dapat disebabkan oleh sifat produk yang tidak dibeli sesering kategori lain.

Distribusi Total Pembelian

# visualisasi 2: total amount (density plot)
ggplot(data, aes(x = Total.Amount)) +
  geom_density(fill = "steelblue", color = "black", alpha = 0.5) +
  labs(
    title = "Distribusi Total Pembelian",
    x = "Total Amount",
    y = "Density"
  ) +
  theme_bersih()

Selanjutnya pada visualisasi kedua ini menggunakan density plot untuk menggambarkan distribusi variabel Total Amount. Grafik ini bertujuan untuk memahami pola persebaran nilai total pembelian secara lebih halus dibandingkan histogram, sehingga kecenderungan distribusi data dapat terlihat dengan lebih jelas.

Berdasarkan grafik, kepadatan tertinggi berada pada nilai Total Amount rendah hingga menengah yang ditunjukkan oleh puncak kurva di bagian kiri. Seiring meningkatnya nilai, kepadatan menurun, yang berarti transaksi bernilai besar lebih sedikit. Selain itu, terlihat pola distribusi yang condong ke kanan (right-skewed) yang menunjukkan adanya beberapa transaksi dengan nilai sangat tinggi.

Pola ini menunjukkan bahwa pelanggan cenderung melakukan pembelian dalam jumlah kecil hingga menengah, sementara transaksi besar hanya terjadi pada sebagian kecil pelanggan. Implikasinya, strategi penjualan dapat difokuskan pada peningkatan nilai transaksi, misalnya melalui promosi atau bundling, serta memberikan penawaran khusus bagi pelanggan dengan nilai transaksi tinggi.

Distribusi Perbandingan Total Berdasarkan Gender

# visualisasi 3: gender vs total amount
ggplot(data, aes(x = Gender, y = Total.Amount)) +
  geom_violin(fill = "steelblue", color = "black", alpha = 0.5) +
  geom_boxplot(width = 0.2, fill = "white", color = "black") +
  labs(
    title = "Distribusi dan Perbandingan Total Pembelian Berdasarkan Gender",
    x = "Gender",
    y = "Total Amount"
  ) +
  theme_bersih()

Pada Visualisasi ketiga disini menggunakan violin plot yang dikombinasikan dengan boxplot untuk menggambarkan distribusi Total Amount berdasarkan variabel Gender. Grafik ini bertujuan untuk membandingkan pola pembelian antara pelanggan laki-laki dan perempuan serta melihat sebaran dan kecenderungan nilai transaksi.

Berdasarkan grafik, distribusi Total Amount pada kedua gender terlihat relatif mirip dengan sebaran data yang cukup luas. Bentuk violin menunjukkan adanya konsentrasi nilai pada rentang tertentu, sementara boxplot memperlihatkan median yang tidak jauh berbeda. Selain itu, terdapat beberapa nilai ekstrem pada kedua kelompok.

Hal ini menunjukkan bahwa tidak terdapat perbedaan signifikan dalam pola pembelian antara pelanggan laki-laki dan perempuan. Keduanya memiliki kecenderungan nilai transaksi yang hampir sama, sehingga gender bukan faktor utama yang memengaruhi pembelian. Oleh karena itu, strategi pemasaran lebih tepat difokuskan pada faktor lain seperti kategori produk atau perilaku pelanggan.

Tren Penjualan dengan Moving Avarage

# pastikan format tanggal
data$Date <- as.Date(data$Date)

# agregasi per tanggal
data_time <- data %>%
  group_by(Date) %>%
  summarise(Total_Sales = sum(Total.Amount), .groups = "drop") %>%
  arrange(Date)

# moving average 7 hari
data_time$MA7 <- rollmean(data_time$Total_Sales, 7, fill = NA, align = "right")

# plot
p4 <- ggplot(data_time, aes(x = Date)) +
  geom_line(aes(y = Total_Sales), color = "steelblue") +
  geom_line(aes(y = MA7), color = "red", linewidth = 1) +
  labs(
    title = "Tren Penjualan dengan Moving Average 7 Hari",
    x = "Tanggal",
    y = "Total Penjualan"
  ) +
  theme_minimal()

ggplotly(p4)

Selanjutnya Visualisasi ini menggunakan grafik garis (line chart) yang dikombinasikan dengan metode moving average untuk menggambarkan tren Total Amount berdasarkan waktu (Date). Grafik menampilkan dua garis, yaitu data penjualan harian dan garis moving average sebagai tren yang telah dihaluskan. Tujuannya adalah untuk mengidentifikasi pola perubahan penjualan dari waktu ke waktu serta mengurangi pengaruh fluktuasi jangka pendek.

Berdasarkan grafik, data penjualan harian terlihat sangat fluktuatif dengan beberapa lonjakan tajam pada periode tertentu. Nilai penjualan sesekali mencapai puncak tinggi, terutama pada pertengahan tahun, kemudian menurun kembali. Sementara itu, garis moving average menunjukkan pola yang lebih stabil, dengan tren meningkat pada awal hingga pertengahan tahun, lalu menurun, dan kembali meningkat menjelang akhir tahun.

Pola ini menunjukkan bahwa meskipun penjualan harian tidak stabil, terdapat tren yang lebih jelas dalam jangka waktu tertentu. Lonjakan penjualan kemungkinan dipengaruhi oleh faktor musiman atau promosi, sedangkan penurunan setelah pertengahan tahun dapat mengindikasikan berkurangnya aktivitas transaksi. Kenaikan di akhir periode menunjukkan adanya potensi peningkatan kembali dalam permintaan.


Insight dan Temuan Utama

Berdasarkan hasil analisis visualisasi data yang telah dilakukan, diperoleh beberapa insight utama terkait perilaku pembelian pelanggan.

Pertama, kategori Clothing memiliki jumlah transaksi tertinggi, yang menunjukkan bahwa produk ini memiliki permintaan paling tinggi dan sering dibeli. Implikasinya, kategori ini berpotensi menjadi kontributor utama penjualan sehingga dapat dijadikan fokus dalam strategi pemasaran.

Kedua, distribusi Total Amount menunjukkan bahwa sebagian besar transaksi berada pada nilai rendah hingga menengah, dengan sedikit transaksi bernilai tinggi. Hal ini mengindikasikan bahwa pelanggan cenderung melakukan pembelian kecil namun sering. Implikasinya, strategi penjualan dapat difokuskan pada peningkatan nilai pembelian, seperti melalui promo bundling atau minimum pembelian.

Ketiga, tidak terdapat perbedaan signifikan antara pola pembelian pelanggan laki-laki dan perempuan, sehingga gender bukan faktor utama dalam menentukan nilai transaksi. Selain itu, tren penjualan menunjukkan pola fluktuatif dengan kecenderungan naik di periode tertentu, yang mengindikasikan adanya pola musiman. Implikasinya, strategi pemasaran dapat difokuskan pada waktu dengan potensi penjualan tinggi serta tidak perlu menitikberatkan segmentasi berdasarkan gender.

Kesimpulan

Berdasarkan hasil analisis visualisasi data yang telah dilakukan, dapat disimpulkan bahwa dataset retail sales memiliki karakteristik yang terdiri dari variabel kategorik, numerik, dan waktu yang memungkinkan dilakukan analisis distribusi, hubungan, serta tren data. Hasil eksplorasi menunjukkan bahwa kategori produk Clothing memiliki jumlah transaksi tertinggi, sedangkan distribusi nilai transaksi (Total Amount) didominasi oleh pembelian dengan nilai rendah hingga menengah. Hal ini menunjukkan bahwa pelanggan cenderung melakukan pembelian dalam jumlah kecil namun dengan frekuensi yang relatif tinggi.

Selain itu, hasil analisis menunjukkan bahwa tidak terdapat perbedaan signifikan dalam pola pembelian berdasarkan gender, sehingga faktor tersebut bukan penentu utama dalam nilai transaksi. Analisis tren waktu juga menunjukkan adanya pola fluktuatif dengan kecenderungan tertentu yang mengindikasikan kemungkinan pengaruh faktor musiman. Secara keseluruhan, visualisasi data berhasil membantu dalam mengidentifikasi pola, hubungan antar variabel, serta tren data sehingga dapat memberikan gambaran yang lebih jelas untuk mendukung pengambilan keputusan.

Saran

Untuk pengembangan analisis selanjutnya, disarankan agar menggunakan dataset dengan jumlah observasi yang lebih besar dan periode waktu yang lebih panjang agar pola tren dapat dianalisis dengan lebih akurat. Selain itu, analisis dapat dikembangkan dengan menambahkan metode statistik atau machine learning untuk mendapatkan insight yang lebih mendalam. Penggunaan variabel tambahan seperti lokasi atau preferensi pelanggan juga dapat membantu dalam menghasilkan analisis yang lebih komprehensif dan mendukung pengambilan keputusan yang lebih tepat.