Basic Data Visualizations

Exercises ~ Week 4

foto kelompok 6 statiska


Penjualan E-commerce – Harga, rating, dan jumlah pembelian per produk.

1 Pendahuluan

Perkembangan teknologi dan internet membuat penjualan online berkembang sangat cepat. Sekarang banyak orang belanja lewat platform e-commerce karena lebih praktis. Tapi, untuk bisa bersaing, perusahaan e-commerce nggak cukup cuma punya tampilan website yang menarik — mereka juga harus bisa memahami perilaku pelanggan dan tren pasar.

1.1 Tujuan

  • Menganalisis data pelanggan dan kebiasaan belanja.
  • Menemukan tren produk dan pola pembelian.
  • Membantu perusahaan mengambil keputusan yang lebih tepat.

1.2 Deskripsi Dataset

Data yang digunakan diambil dari aktivitas e-commerce, seperti:

  • Data transaksi penjualan (barang, jumlah, harga, tanggal, lokasi).
  • Data pelanggan (demografi, preferensi, kebiasaan belanja).
  • Data produk (kategori, stok, performa penjualan).
  • Data interaksi pengguna (klik, pencarian, dan aktivitas online lainnya).

1.3 Konteks Kasus

  • Mengenali pelanggan dengan lebih baik.
  • Menyesuaikan strategi promosi sesuai kebutuhan pasar.
  • Menyediakan rekomendasi produk yang lebih tepat.
  • Meningkatkan loyalitas pelanggan

2 Persiapan Data

2.1 Tujuan

  • Untuk mengidentifikasi faktor-faktor yang memengaruhi penjualan laptop di e-commerce (harga, lokasi, spesifikasi, waktu listing).
  • Untuk membantu strategi bisnis (penetapan harga, stok, pemasaran) berdasarkan insight dari data listing historis.
  • Untuk melihat pola penjualan khusus pada periode bulan Oktober, karena periode ini sering ada promo atau lonjakan belanja.

2.2 Deskripsi Dataset

Berdasarkan dataset E-commerce Laptop Price Scraping di Kaggle: Data diperoleh melalui proses web scraping dari platform e-commerce Shopee Indonesia. Kolom utama dalam dataset mencakup: nama laptop, harga, jumlah terjual (sold), link produk, dan tanggal produk ditampilkan (listing). Penyesuaian untuk analisis: Dari keseluruhan dataset, dipilih subset data yang hanya berasal dari Shopee dan berada pada periode bulan Oktober. Fokus analisis diarahkan untuk melihat pola harga, jumlah penjualan, serta tren produk laptop yang muncul di Shopee selama bulan Oktober. Analisis mencakup:

  • Statistik deskriptif: rata-rata harga laptop, jumlah produk terjual, dan jumlah produk yang muncul per hari.
  • Analisis tren penjualan: untuk melihat bagaimana pola penjualan dan harga laptop berkembang selama bulan Oktober.

2.3 Konteks Kasus

Bulan Oktober menjadi periode penting untuk melihat dinamika besar e-commerce. Dengan menganalisis data Shopee di bulan Oktober, peneliti dapat memahami kondisi pasar dan perilaku konsumen terhadap produk laptop pada perode tersebut. Tujuan analisis: Mengetahui bagaimana harga, jumlah penjualan, dan jumlah produk laptop yang tampil di Shopee pada bulan Oktober, serta faktor-faktor yang memengaruhi performa produk di pasar. Karena data dikumpulkan melalui web scraping dari halaman produk publik di Shopee, maka dataset ini menggambarkan kondisi pasar eksternal — yaitu harga dan produk yang terlihat oleh calon pembeli, bukan data internal transaksi penjualan Shopee.

2.4 Code

# Import library
library(dplyr)   # Untuk manipulasi data
library(ggplot2) # Untuk visualisasi
library(DT)      # Untuk menampilkan tabel interaktif

# Membuat dataset
data <- data.frame(
  Date = as.Date(c("2020-10-01","2020-10-01","2020-10-02",
                   "2020-10-02","2020-10-03","2020-10-05",
                   "2020-10-05","2020-10-06","2020-10-06",
                   "2020-10-07","2020-10-08","2020-10-08",
                   "2020-10-09","2020-10-10","2020-10-10",
                   "2020-10-12","2020-10-12","2020-10-13",
                   "2020-10-15","2020-10-16","2020-10-16",
                   "2020-10-17","2020-10-17","2020-10-19",
                   "2020-10-20","2020-10-21","2020-10-22",
                   "2020-10-22","2020-10-26","2020-10-27",
                   "2020-10-28")),
  Product = c("Acer","Lenovo","Acer","Dell","Acer","Acer",
              "HP","Acer","MSI","Asus","Asus","MSI","Asus",
              "Asus","Lenovo","Asus","MSI","Dell","Dell",
              "Dell","MSI","Dell","HP","HP","HP","HP","HP",
              "MSI","Lenovo","Lenovo","Lenovo"),
  Qty = c(1,2,8,77,101,187,170,2900,245,9,202,2100,2,1,40,2,
          12,5,121,5400,11900,4600,35,92,307,97,3100,86800,1,470,1600),
  Price = c(5990000,7675000,9750000,15899900,699000,6399000,
            17929300,12499000,14999000,10350000,11999000,
            14099000,6399000,11699000,9699000,12649000,
            14999000,3500000,8399000,2599000,33699000,
            11999000,15599000,15699000,35000000,15799000,
            25699000,21199000,2575000,17399000,29999000),
  Rating = c(4.9,5.0,4.8,4.9,4.8,4.9,5.0,4.9,5.0,4.9,4.9,4.9,
             4.9,4.9,5.0,4.7,4.9,4.6,4.9,4.8,4.9,4.9,5.0,4.9,
             4.9,4.9,4.8,4.9,4.6,4.9,4.9),
  stringsAsFactors = FALSE)

# Menampilkan tabel data 
datatable(data, caption = "Data Awal Produk Laptop Shopee",
options = list(pageLength = 31, scrollX = TRUE))
# Menghitung rata-rata harga, jumlah produk, dan total kuantitas terjual
summary_stats <- data %>%
  group_by(Product) %>%
  summarise(
    Rata_Harga = mean(Price),
    Median_Harga = median(Price),
    SD_Harga = sd(Price),
    Rata_Rating = mean(Rating),
    Total_Terjual = sum(Qty))

# Menampilkan ringkasan statistik 
datatable(summary_stats, caption = "Ringkasan Statistika Penjualan")

3 Visualisasi

3.1 Bar Chart

  1. Definisi

Bar chart atau diagram batang adalah grafik yang menampilkan aktivitas atau data dalam kolom vertikal yang mewakili kategori atau jenis aktivitas, sedangkan waktu atau nilai ditampilkan pada sumbu horizontal menggunakan batang horizontal yang panjangnya sesuai durasi atau nilai tersebut.

  1. Aturan Penggunaan
  • Bar chart digunakan untuk menampilkan dan membandingkan data kategori (nominal/ordinal).
  • Setiap batang mewakili satu kategori dengan tinggi/ panjang batang sesuai nilai data.
  • Bar chart efektif untuk visualisasi yang sederhana dan mudah dipahami.
  • Penggunaan error bar dalam bar chart harus hati-hati; jika data distribusi kompleks, box plot lebih disarankan.
  • Batang harus diberi label yang jelas untuk memperjelas kategori dan nilai.
  • Hindari terlalu banyak kategori dalam satu grafik agar mudah dibaca.
  • Bar chart cocok untuk menampilkan frekuensi, jumlah, atau rata-rata per kategori.
  • Pastikan sumbu dipilih dan diberi skala dengan tepat untuk menghindari interpretasi yang menyesatkan.
  • Untuk data waktu atau jadwal proyek, bar chart (Gantt chart) dapat digunakan menggambarkan durasi aktivitas.
  • Sertakan keterangan metodologi atau konteks data dalam laporan visualisasi.
  1. Kelebihan & Kekurangan

Kelebihan

  • Mudah dipahami dan digunakan oleh berbagai kalangan
  • Efektif untuk menggambarkan dan membandingkan data kategori atau aktivitas dalam penjadwalan proyek.
  • Memvisualisasikan durasi dan urutan kegiatan secara jelas, mendukung manajemen waktu.

Kekurangan

  • Kurang cocok untuk proyek atau data yang sangat kompleks karena keterbatasan dalam menunjukkan hubungan antar aktivitas.
  • Sulit untuk menangani sumber daya yang berulang dan berkelanjutan dari satu unit ke unit berikutnya.
  • Tidak mudah merevisi atau memperbaiki gangguan yang terjadi selama pelaksanaan proyek.
  1. Code
# Menghitung total terjual, rata-rata harga, dan rata-rata rating per produk
sales_summary <- data %>%
  group_by(Product) %>%
  summarise(
    Total_Terjual = sum(Qty),
    Rata_Harga = mean(Price),
    Rata_Rating = mean(Rating))

# Menampilkan data ringkasan untuk visualisasi bar chart
datatable(sales_summary, caption = "Statistik Ringkasan Harga, Kuantitas, dan Rating")
# # Membuat grafik batang (bar chart) menggunakan ggplot2
ggplot(sales_summary, aes(x = reorder(Product, -Total_Terjual), y = Total_Terjual, fill = Product)) +
  
# Menambahkan batang untuk menunjukkan total produk terjual per merek
  geom_col(show.legend = FALSE) +
  
# Menambahkan label angka di atas setiap batang
  geom_text(aes(label = Total_Terjual), vjust = -0.3) +
  
# Memberi judul dan label pada sumbu X dan Y
  labs(title = "Total Produk Terjual per Merek", x = "Produk", y = "Jumlah Terjual") +
  
# Menggunakan tema minimalis agar tampilan grafik lebih bersih
  theme_minimal()

3.2 Histogram

  1. Definisi

Histogram adalah representasi grafis dalam bentuk grafik batang yang menunjukkan frekuensi intensitas suatu data, seperti intensitas piksel dalam pengolahan citra digital. Histogram menggambarkan distribusi nilai data sehingga memudahkan analisis terhadap terang atau gelapnya gambar serta variasi kontrasnya. Dengan kata lain, histogram memberi informasi sebaran data secara visual melalui batang yang mewakili jumlah data dalam rentang nilai tertentu.

  1. Aturan Penggunaan
  • Data yang digunakan harus berupa data kuantitatif kontinu. - Tentukan interval kelas dengan membagi rentang data menjadi beberapa interval yang lebarnya sama. Jumlah interval sangat berpengaruh pada tampilan histogram.
  • Sumbu horizontal menampilkan rentang nilai data dalam setiap interval kelas.
  • Sumbu vertikal menunjukkan frekuensi data dalam masing-masing interval.
  • Batang histogram harus berdempetan tanpa jarak karena data kontinu.
  • Histogram digunakan untuk melihat distribusi data, perubahan proses, dan perbedaan output antar proses.
  • Digunakan untuk cek apakah data memenuhi persyaratan tertentu dan membantu analisis pola distribusi.
  1. Kelebihan & Kekurangan

Kelebihan

  • Histogram efektif meningkatkan kontras dan kualitas gambar sehingga informasi gambar menjadi lebih jelas.
  • Histogram dapat menunjukkan distribusi kecerahan pada gambar, membantu identifikasi gambar terlalu gelap atau terang.
  • Memudahkan analisis pola data dan distribusi intensitas.

Kekurangan

  • Histogram bergantung pada pengaturan fitur seperti kecerahan dan kontras yang jika tidak tepat dapat membuat histogram terlihat kurang akurat.
  • Noise atau gangguan pada data dapat mempengaruhi histogram sehingga interpretasi menjadi kurang tepat.
  • Histogram tidak menampilkan detail individual data, hanya hasil sebaran frekuensi.
  1. Code
# Visualisasi dengan menggunakan jenis Histogram
ggplot(data, aes(x = Price)) +
  
# Membuat histogram untuk menunjukkan distribusi harga produk
  geom_histogram(
    fill = "skyblue",
    color = "black",
    bins = 10,          # jumlah batang histogram
    alpha = 0.7) +
  
# Menambahkan judul dan label sumbu
  labs(
    title = "Distribusi Harga Produk",
    x = "Harga Produk (Rp)",
    y = "Frekuensi") +
  
# Mengatur tampilan sumbu X agar ada tanda pemisah ribuan
  scale_x_continuous(labels = scales::comma) + 
  
# Menggunakan tema minimalis agar tampilan grafik lebih bersih
  theme_minimal(base_size = 12) +
  
# Menyesuaikan tampilan teks dan elemen grafik
  theme(
    plot.title = element_text(face = "bold", size = 14))

3.3 Boxplot

  1. Definisi

Boxplot adalah grafik visual statistik yang merangkum distribusi data numerik melalui lima nilai utama yaitu nilai minimum, kuartil pertama, median, kuartil ketiga, dan nilai maksimum, serta dapat menunjukkan adanya nilai outlier, sehingga memudahkan pemahaman sebaran, tendensi sentral, dan variasi data secara cepat dan efektif.

  1. Aturan Penggunaan
  • Boxplot digunakan untuk menganalisis distribusi data numerik dengan menggambarkan lima ukuran statistik utama yaitu nilai observasi terkecil, kuartil pertama (Q1), median (Q2), kuartil ketiga (Q3), dan nilai observasi terbesar.
  • Boxplot juga memperlihatkan nilai outlier jika ada, dengan outlier ditentukan berdasarkan rumus batas bawah Q1 - 1,5 kali rentang interkuartil (IQR) dan batas atas Q3 + 1,5 kali IQR. Boxplot dapat dibuat secara horizontal maupun vertikal.
  • Dipakai untuk menilai penyebaran data, simetri/skewness, serta membandingkan distribusi antar kelompok data secara visual.
  • Boxplot termasuk metode statistik non-parametrik yang tidak bergantung pada asumsi distribusi data.
  1. Kelebihan & Kekurangan

Kelebihan

  • Kemampuannya menyajikan gambaran ringkas tentang distribusi data, termasuk nilai tengah (median), penyebaran data (kuartil dan rentang interkuartil)
  • Mendeteksi outlier dengan jelas, tanpa memerlukan asumsi distribusi tertentu sehingga termasuk metode statistik non-parametrik.
  • Berguna untuk membandingkan distribusi antar kelompok data secara visual.

Kekurangan

  • Interpretasi outlier bisa subjektif
  • Tidak memberikan informasi detail tentang frekuensi data atau bentuk distribusi lebih mendalam seperti histogram.
  • bagi yang kurang familiar, pemahaman visual boxplot bisa agak sulit pada awalnya.
  1. Code
# Menghitung nilai minimum, rata-rata, dan maksimum harga untuk tiap produk
boxplot_summary <- data %>%
  group_by(Product) %>%       # # Mengelompokkan data berdasarkan nama produk
  summarise(
    Minimum = min(Price),
    Q1 = quantile(Price, 0.25),
    Median = median(Price),
    Q3 = quantile(Price, 0.75),
    Maksimum = max(Price),
    Rata_rata = mean(Price))

# Menampilkan ringkasan harga produk untuk boxplot
datatable(boxplot_summary, caption = 
              "Ringkasan Statistik Sebaran Harga per Produk")
# Membuat visualisasi boxplot untuk melihat sebaran harga per produk
ggplot(data, aes(x = Product, y = Price, fill = Product)) +
  
# Membuat boxplot untuk menunjukkan sebaran harga (min, Q1, median, Q3, max)
  geom_boxplot(alpha = 0.6, outlier.color = "red") + # Titik merah menunjukkan outlier (harga ekstrem)
  
# Menambahkan label teks berisi rata-rata harga tiap produk
  geom_text(data = sales_summary ,  # Mengambil data ringkasan dari tabel lain (sales_summary)
            aes(x = Product, y = Rata_Harga, 
                label = paste0("Rp ",format(round 
                       (Rata_Harga, 0), big.mark = ","))),# Format angka dengan pemisah ribuan
vjust = -0.5,      # Jarak vertikal teks dari titik data
size = 3,          
color = "black") +
  
# Mengatur tampilan sumbu Y agar ada tanda pemisah ribuan
  scale_y_continuous(labels = scales::comma) +
  
# Memberi judul dan label pada sumbu X dan Y
  labs(
    title = "Sebaran Harga Produk di Shopee",
    x = "Produk",
    y = "Harga Produk (Rp)") +
  
# Menggunakan tema minimalis untuk tampilan bersih
  theme_minimal(base_size = 12) +
  theme(
# Memiringkan teks nama produk agar tidak tumpang tindih
    axis.text.x = element_text(angle = 45, hjust = 1),
# Menghapus legend karena warnanya sudah jelas per produk
    legend.position = "none")

3.4 Pie Chart

  1. Definisi

Pie chart adalah jenis grafik yang berbentuk lingkaran. Anda dapat menggunakannya untuk menampilkan data dalam bentuk proporsi. Setiap bagian dari lingkaran ini mewakili bagian dari total data. Dengan pie chart, Anda bisa melihat perbandingan data dengan lebih mudah.

  1. Aturan Penggunaan
  • Menyajikan Data dengan Pie Chart Pie chart adalah alat yang efektif untuk menyajikan data dalam bentuk proporsi. Setiap irisan mewakili persentase dari total data, sehingga kontribusi masing-masing bagian terlihat jelas.
  • Menghitung Proporsi Proporsi dihitung dengan menentukan bagian dari total data yang ingin ditampilkan, misalnya proporsi penjualan tiap produk terhadap total penjualan.
  • Menampilkan Persentase Setelah menghitung proporsi, tampilkan persentase dari setiap bagian untuk menunjukkan kontribusi terhadap keseluruhan, seperti produk yang menyumbang 25% dari total penjualan.
  1. Kelebihan & Kekurangan

Kelebihan

  • Sederhana dan Mudah Dipahami Pie chart menawarkan cara yang sederhana untuk memvisualisasikan data. Anda dapat dengan mudah melihat bagaimana setiap bagian dari data berkontribusi terhadap keseluruhan. Alat ini efektif untuk menyampaikan informasi kepada audiens tanpa latar belakang statistik karena visualisasinya intuitif dan mudah dipahami.
  • Efektif untuk Data dengan Sedikit Kategori Pie chart sangat efektif ketika digunakan untuk data dengan jumlah kategori yang terbatas. Anda dapat menampilkan perbandingan antar kategori dengan jelas, seperti pangsa pasar beberapa perusahaan. Dengan jumlah kategori yang sedikit, pie chart dapat menyajikan informasi secara ringkas dan langsung.

Kekurangan

  • Keterbacaan Menurun dengan Banyak Kategori Pie chart dapat menjadi sulit dibaca jika Anda mencoba memasukkan terlalu banyak kategori, karena perbedaan antar bagian menjadi tidak signifikan. Dalam situasi ini, bar chart lebih baik untuk menampilkan perbandingan dengan jelas.
  • Kurang Akurat untuk Perbandingan Detail Pie chart tidak cocok untuk perbandingan detail antar kategori karena kurang akurat. Bar chart atau line chart lebih sesuai untuk menampilkan perbandingan langsung dan perubahan data seiring waktu.
  1. Code
# Menghitung total penjualan (harga x kuantitas) dan proporsi per produk
pie_data <- data %>%
# Mengelompokkan data berdasarkan nama produk
  group_by(Product) %>% 
  summarise(Total_Terjual = sum(Qty)) %>% # Menjumlahkan total kuantitas yang terjual untuk setiap produk
   mutate(Proporsi = Total_Terjual / sum(Total_Terjual),# Menghitung proporsi penjualan tiap produk
       Label = paste0(Product, " (", round(Proporsi*100, 1), "%)"), # Membuat label dengan persentase (%)
       ypos = cumsum(Proporsi) - 0.5*Proporsi)  # Menentukan posisi label pada pie chart

# Menampilkan tabel proporsi penjualan untuk pie chart
datatable(pie_data, caption = "Persentase Total Penjualan per Produk")
# Membuat pie chart (diagram lingkaran) untuk menunjukkan proporsi penjualan per produk
ggplot(pie_data, aes(x = "", y = Proporsi, fill = Product)) +

# Membuat kolom sebagai dasar pie chart
  geom_col(width = 1, color = "white") +

  # Mengubah diagram batang menjadi bentuk lingkaran (pie chart)
  coord_polar(theta = "y") +
  
# Menambahkan label persentase di setiap irisan pie chart
  geom_text(aes(label = paste0(round(Proporsi * 100, 1), "%")), # Menampilkan angka persentase
            position = position_stack(vjust = 0.5), # Menempatkan teks di tengah tiap bagian
            color = "black",
            size = 3.5) +
  
# Memberi judul dan keterangan warna
  labs(
    title = "Proporsi Penjualan per Produk",
    fill = "Produk") +

  # Menghapus garis sumbu dan latar belakang agar tampilan lebih bersih
  theme_void() +
  
# Menyesuaikan gaya tampilan judul grafik
  theme(
    plot.title = element_text(face = "bold", size = 14, hjust = 0.5))

3.5 Scatter Plot

  1. Definisi

Scatter plot adalah grafik yang digunakan untuk memvisualisasikan hubungan antara dua variabel numerik dengan menampilkan titik-titik data pada koordinat kartesius. Tiap titik mewakili satu data dengan nilai variabel independen pada sumbu X dan nilai variabel dependen pada sumbu Y. Scatter plot membantu mengidentifikasi pola hubungan, seperti korelasi positif, negatif, atau tidak ada korelasi, dan juga untuk mendeteksi outlier atau pola distribusi data secara visual. Namun, scatter plot hanya menunjukkan korelasi dan bukan hubungan sebab-akibat.

  1. Aturan Penggunaan
  • Scatter plot digunakan untuk memvisualisasikan korelasi antara dua variabel kuantitatif.
  • Setiap titik data merepresentasikan pasangan nilai dari dua variabel yang diuji.
  • Pola titik pada scatter plot yang menyebar dan tidak membentuk kecenderungan linier menunjukkan tidak adanya korelasi antara variabel.
  • Scatter plot dapat digunakan untuk mengidentifikasi apakah pertambahan satu variabel memengaruhi variabel lain atau tidak.
  • Visualisasi harus memperhatikan pola titik yang muncul (linier, naik, turun, atau acak) untuk menyimpulkan hubungan antar variabel.
  1. Kelebihan & Kekurangan

Kelebihan

  • Scatter plot memudahkan visualisasi hubungan antara dua variabel numerik.
  • Membantu mengidentifikasi pola, korelasi (positif atau negatif), dan tren dalam data.
  • Membantu menemukan outlier atau data yang menyimpang dari pola umum.
  • Mempermudah komunikasi hasil penelitian secara visual dan jelas.

Kekurangan

  • Scatter plot hanya menunjukkan korelasi, tidak membuktikan sebab-akibat.
  • Sulit diinterpretasikan jika data terlalu padat atau titik-titik saling tumpang tindih.
  • Kesalahan umum termasuk penggunaan skala atau ukuran titik yang tidak tepat, dan pelabelan yang kurang jelas dapat menyesatkan interpretasi.
  1. Code
# Membuat scatter plot untuk melihat hubungan antara harga dan rating produk
ggplot(data, aes(x = Price, y = Rating, color = Product)) +
  
# Membuat titik-titik data (setiap titik mewakili satu produk)
  geom_point(size = 3, # Ukuran titik
             alpha = 0.7) + # Transparansi titik (0 = transparan, 1 = solid)
  
# Mengatur tampilan sumbu X agar angka harga memiliki tanda pemisah ribuan
  scale_x_continuous(labels = scales::comma) +
  
# Memberi judul grafik dan label pada sumbu serta legenda warna
  labs(
    title = "Hubungan antara Harga dan Rating Produk",
    x = "Harga (Rp)",
    y = "Rating",
    color = "Produk") +
  
# Menggunakan tema minimalis agar grafik terlihat bersih
  theme_minimal() +
  
# Menggunakan tema minimalis agar grafik terlihat bersih
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"))

3.6 Line Plot

  1. Definisi

Line plot adalah visualisasi data yang menghubungkan titik-titik data secara berurutan menggunakan garis, sehingga memudahkan pengamatan tren, pola, atau perubahan nilai sepanjang sumbu horizontal (biasanya waktu atau urutan). Line plot efektif untuk menampilkan hubungan antar variabel dan dinamika perubahan data secara kontinu. Grafik ini sangat berguna dalam analisis runtun waktu (time series) dan studi pergerakan data secara berkelanjutan.

  1. Aturan Penggunaan
  • Line plot digunakan untuk memvisualisasikan data kontinu yang berurutan, seperti data waktu atau runtun.
  • Setiap titik data dihubungkan dengan garis lurus untuk menunjukkan tren atau pola perubahan.
  • Label sumbu dan judul plot harus jelas agar mudah dipahami.
  • Pengaturan warna dan tipe garis bisa disesuaikan untuk membedakan data jika ada banyak kelompok.
  • Data harus terurut dengan benar pada sumbu horizontal agar plot representatif.
  • Line plot sebaiknya disertai interpretasi tren yang terlihat untuk memperkuat analisis.
  • Jangan menggunakan line plot untuk data kategorik tanpa urutan sebab dapat menyesatkan.
  • Gunakan fitur tambahan seperti marker titik jika ingin menonjolkan titik data tertentu.
  • Pastikan skala sumbu sesuai agar grafik tidak bias atau menyesatkan.
  • Dalam pembuatan grafik digital, perintah seperti hold on/off digunakan untuk menggabungkan beberapa garis dalam satu plot.
  1. Kelebihan & Kekurangan

Kelebihan

  • Efektif menunjukkan tren dan perubahan data dari waktu ke waktu.
  • Mudah dipahami oleh pemula maupun profesional karena tampilannya sederhana.
  • Cocok untuk data berkelanjutan dan runtun waktu (time series).
  • Memvisualisasikan hubungan antar variabel dengan jelas.

Kekurangan

  • Kurang memberikan detail jika dibandingkan grafik lain seperti candlestick chart.
  • Kurang efektif untuk data kategoris atau data diskrit.
  • Tidak ideal untuk perbandingan langsung antar kategori atau periode waktu
  1. Code
# Membuat data simulasi tren penjualan harian 
trend_data <- data %>%
  group_by(Date) %>%  # Mengelompokkan data berdasarkan tanggal
  summarise(Total_Terjual = sum(Qty)) # Menjumlahkan total produk terjual per tanggal


# Menampilkan tabel penjualan harian
datatable(trend_data, caption = "Total Penjualan Harian")
# Membuat line chart untuk menampilkan tren penjualan setiap hari
ggplot(trend_data, aes(x = Date, y = Total_Terjual)) +
 
# Membuat garis utama tren penjualan 
  geom_line(color = "steelblue", linewidth = 1) +  # Ketebalan garis (pengganti 'size' di versi terbaru ggplot)
 
# Menambahkan titik di setiap tanggal untuk memperjelas nilai penjualan
   geom_point(color = "darkorange", size = 2) +
  
# Memberi judul dan label sumbu
  labs(
    title = "Tren Penjualan Harian",
    x = "Tanggal",
    y = "Total Produk Terjual") +
  
# Menggunakan tema minimalis agar tampilan grafik lebih bersih
  theme_minimal() +
  
# Menyesuaikan tampilan judul grafik
  theme(plot.title = element_text(hjust = 0.5, face = "bold"))

3.7 Density Plot

  1. Definisi

Density plot adalah grafik yang digunakan untuk memperkirakan dan menampilkan distribusi probabilitas data kontinu secara halus dengan memanfaatkan metode smoothing seperti kernel density estimation.

  1. Aturan Penggunaan
  • Density plot digunakan untuk memvisualisasikan distribusi data kontinu secara halus.
  • Data yang dianalisis harus berjumlah cukup agar estimasi distribusi akurat.
  • Pemilihan bandwidth kernel harus tepat agar kurva tidak berisik atau terlalu halus.
  • Density plot membantu mengidentifikasi pola distribusi seperti kemencengan dan multimodalitas.
  • Bisa digunakan untuk membandingkan distribusi antar kelompok data.
  • Density plot dilengkapi dengan penjelasan parameter dan interpretasi agar mudah dipahami.
  • Sebaiknya digunakan berdampingan dengan visualisasi lain seperti histogram untuk gambaran lengkap.
  1. Kelebihan & Kekurangan

Kelebihan

  • Menampilkan distribusi data kontinu dengan kurva yang halus dan mudah dipahami.
  • Lebih informatif dibandingkan histogram karena tidak bergantung pada pemilihan batas bin.
  • Membantu mendeteksi pola distribusi seperti kecondongan (skewness) dan multimodalitas.
  • Memungkinkan perbandingan distribusi antar kelompok data.

Kekurangan

  • Sensitif terhadap pemilihan parameter bandwidth; bandwidth yang tidak tepat dapat menghasilkan estimasi yang kurang akurat.
  • Kurva density plot bisa menyesatkan jika jumlah data terlalu sedikit.
  • Tidak cocok untuk data diskrit karena visualisasi distribusi tidak realistis.
  • Memerlukan interpretasi pendukung agar tidak salah tafsir.
  1. Code
options(scipen = 999)  # Menonaktifkan notasi ilmiah pada angka (contoh: 1e+06 → 1,000,000)

# Membuat grafik distribusi harga produk menggunakan Density Plot
ggplot(data, aes(x = Price, fill = Product)) +
  
# Membuat kurva kepadatan (density plot) untuk melihat sebaran harga tiap produk
  geom_density(alpha = 0.6) + # alpha = transparansi warna antar produk
  
# Menambahkan judul dan label sumbu
  labs(
    title = "Distribusi Harga Produk",
    x = "Harga Produk (Rupiah)",
    y = "Kepadatan") +
  
# Menggunakan tema minimalis agar grafik tampak bersih
  theme_minimal() +
  
# Menyesuaikan tampilan judul dan posisi legenda
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    legend.position = "bottom") + # Meletakkan legenda di bawah grafik
  
# Menambahkan tanda pemisah ribuan pada sumbu X agar angka harga mudah dibaca
  scale_x_continuous(labels = scales::comma)  

3.8 Ridgeline Plot

  1. Definisi

Plot Ridgeline (kadang-kadang disebut Joyplot) menunjukkan distribusi nilai numerik untuk beberapa kelompok. Distribusi dapat direpresentasikan menggunakan histogram atau plot kepadatan, semuanya sejajar dengan skala horizontal yang sama dan disajikan dengan tumpang tindih ringan.

  1. Aturan Penggunaan
  • Tumpang tindih yang terkontrol: Plot ini bekerja dengan menumpuk density plot atau histogram secara vertikal. Tumpang tindih ini dapat diatur, yang menghemat ruang namun mungkin mengurangi visibilitas detail pada area yang sangat tumpang tindih.
  • Penyesuaian transparansi: Jika tumpang tindih terlalu parah, tambahkan transparansi pada plot untuk memungkinkan visualisasi yang lebih baik. Di beberapa package (seperti ggridges di R), ini bisa dilakukan dengan argumen alpha.
  • Menghindari legenda berlebihan: Karena sumbu Y biasanya diberi label untuk setiap kelompok, legenda seringkali tidak diperlukan dan dapat dihapus untuk membuat plot lebih bersih.
  • Menyorot tren: Anda dapat menambahkan garis referensi seperti garis rata-rata untuk membantu memvisualisasikan tren antar kelompok.
  • Pemilihan package: Gunakan package atau pustaka yang sesuai seperti ggridges di R atau Seaborn di Python, yang menyediakan fungsi khusus untuk membuat ridgeline plot.
  1. Kelebihan & Kekurangan

Kelebihan

  • Efisiensi ruang: Dengan tumpang tindih (overlap) antar kurva, ridgeline plot dapat memvisualisasikan distribusi dari banyak kelompok data secara ringkas, sehingga lebih efisien dibanding harus membuat grafik terpisah untuk setiap kelompok.
  • Perbandingan yang jelas: Tumpukan kurva pada sumbu yang sama memudahkan perbandingan visual secara langsung antara kelompok-kelompok data. Pola-pola seperti pergeseran distribusi, perbedaan puncak, atau variasi dalam keragaman data menjadi lebih mudah dikenali.
  • Intuisi dan estetika: Tampilan plot yang menyerupai pegunungan memberikan efek visual yang menarik dan mudah dipahami, sehingga dapat mengurangi beban kognitif saat menginterpretasi data.
  • Mengungkap pola tersembunyi: Ridgeline plot sangat efektif untuk mengidentifikasi pola-pola tren, perubahan musiman, atau pergeseran distribusi yang mungkin sulit terlihat jika menggunakan visualisasi lain.

Kekurangan

  • Keterbatasan perbandingan detail: Meskipun bagus untuk perbandingan umum, ridgeline plot tidak optimal untuk perbandingan yang sangat spesifik antar kelompok, terutama pada area yang tumpang tindih. Kurva di bagian bawah dapat menutupi informasi penting dari kurva di atasnya.
  • Tidak ideal untuk data dengan sedikit kelompok: Jika jumlah kelompok yang divisualisasikan sedikit (kurang dari 6), plot distribusi lainnya, seperti violin plot atau density plot terpisah, mungkin lebih efektif dan jelas.
  • Potensi salah interpretasi: Karena adanya tumpang tindih, pembaca mungkin sulit membandingkan nilai density atau titik data yang tepat. Area yang tertutupi dapat menimbulkan kesan yang salah tentang distribusi data yang sebenarnya.
  • Sensitif terhadap tumpang tindih: Jika tumpang tindih terlalu banyak, visualisasi bisa menjadi tidak rapi (messy) dan kehilangan maknanya. Diperlukan penyesuaian yang hati-hati pada tingkat tumpang tindih agar plot tetap informatif.
  1. Code
# Memanggil library 'ggridges' untuk membuat grafik ridge (ridge plot)
library(ggridges)

# Membuat ridge plot untuk menampilkan sebaran distribusi harga laptop per merek
ggplot(data, aes(x = Price, y = Product, fill = Product)) +
  
# Membuat kurva distribusi bertumpuk per produk/merek
  geom_density_ridges(alpha = 0.7) +
  
# Menambahkan judul dan label pada sumbu X dan Y
  labs(
    title = "Sebaran Distribusi Harga Laptop per Merek",
    x = "Harga (Rp)",
    y = "Produk") +
  
# Menggunakan tema minimalis agar grafik terlihat bersih
  theme_minimal() +
  
# Mengatur tampilan angka pada sumbu X agar memiliki tanda pemisah ribuan
  scale_x_continuous(labels = scales::comma) +
  
# Menyesuaikan tampilan grafik
  theme(
    legend.position = "none",  # Menghilangkan legenda (karena warna sudah cukup jelas)
    plot.title = element_text(face = "bold", hjust = 0.5))

4 Kesimpulan

Dari berbagai visualisasi data yang dibuat — mulai dari bar chart, histogram, hingga ridgeline plot — dapat disimpulkan bahwa setiap jenis grafik memiliki fungsi dan keunggulan masing-masing dalam menampilkan pola data. Melalui analisis ini, terlihat bahwa produk dengan harga dan rating tinggi tidak selalu memiliki jumlah penjualan terbesar. Pemilihan visualisasi yang tepat membantu memahami data e-commerce dengan lebih jelas dan efisien.