Laporan ini merupakan lanjutan dari analisis sebelumnya yang berfokus pada variabel kategorik. Kini perhatian dialihkan pada satu variabel kontinu yang paling fundamental dalam bisnis berlian, yaitu harga (
price). Empat visualisasi univariat digunakan untuk memahami karakter dasar harga: histogram, density plot, boxplot, dan violin plot.Hasil analisis menunjukkan distribusi harga yang sangat miring ke kanan dengan konsentrasi tertinggi di kisaran harga menengah ke bawah. Sebanyak 75% produk berada di bawah $5.324, dan banyak berlian mahal di atas $12.000 yang tergolong pencilan yang valid, bukan kesalahan data, melainkan produk premium eksklusif. Temuan ini menjadi landasan untuk strategi penentuan harga yang lebih terarah dan langkah analisis lanjutan.
Dalam bisnis berlian, pertanyaan paling mendasar yang selalu muncul
adalah: “Berapa harganya?”. Harga (price)
menentukan posisi produk di pasar, menjadi pertimbangan utama
konsumen, dan mencerminkan kombinasi seluruh atribut kualitas lainnya
seperti berat, potongan, warna, dan kejernihan.
Analisis ini merupakan bagian dari tahap eksplorasi data univariat, langkah awal dalam alur kerja analisis data sebelum melihat hubungan antar variabel. Fokusnya adalah memahami karakteristik dasar harga:
Bagaimana bentuk distribusi harga berlian?
Apakah distribusinya simetris atau miring?
Apakah terdapat nilai-nilai ekstrem (pencilan) yang perlu perhatian khusus?
Seberapa besar keragaman data tersebut?
Pemahaman ini penting karena akan menentukan langkah analisis selanjutnya, seperti transformasi data atau pemilihan metode statistik yang tepat.
Dataset yang digunakan masih sama, yaitu data internal
diamonds dengan 53.940 catatan transaksi/unit
berlian. Mari kita lihat struktur dan ringkasan statistik dari
variabel yang menjadi fokus.
str(diamonds)
## tibble [53,940 × 10] (S3: tbl_df/tbl/data.frame)
## $ carat : num [1:53940] 0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
## $ cut : Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
## $ color : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 2 2 2 6 7 7 6 5 2 5 ...
## $ clarity: Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 2 3 5 4 2 6 7 3 4 5 ...
## $ depth : num [1:53940] 61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
## $ table : num [1:53940] 55 61 65 58 58 57 57 55 61 61 ...
## $ price : int [1:53940] 326 326 327 334 335 336 336 337 337 338 ...
## $ x : num [1:53940] 3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
## $ y : num [1:53940] 3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
## $ z : num [1:53940] 2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
summary(diamonds$price)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 326 950 2401 3933 5324 18823
Dari output di atas, kita bisa melihat ringkasan statistik untuk
Harga (price):
Rentang: $326 – $18.823
Rata-rata: $3.933
Median: $2.401 (ini berarti 50% produk di bawah harga ini)
Kuartil: Q1 = $950, Q3 = $5.324
Perlu diketahui bahwa meskipun price tercatat dalam
bilangan bulat (int), secara konsep harga bersifat
kontinu karena dapat memiliki nilai di antaranya (misal
$5.231,47).
Mengapa hanya price yang dianalisis? Dataset
ini juga memiliki variabel kontinu lain seperti carat
(berat) yang nantinya akan dianalisis secara terpisah dalam kajian
hubungan antar variabel. Namun, laporan ini berfokus pada
eksplorasi mendalam distribusi harga sebagai fondasi awal
sebelum melangkah ke analisis yang lebih kompleks. Adapun variabel
numerik lain, seperti depth, table,
x, y, z lebih bersifat teknis dan
akan lebih sesuai untuk analisis terpisah yang berfokus pada aspek
gemologi.
Bagaimana sebaran harga berlian? Apakah datanya simetris atau miring?
Fokus analisis ini adalah melihat bentuk distribusi harga secara utuh, sehingga visualisasi yang tepat adalah histogram yang mengelompokkan data ke dalam interval (bin) sehingga bentuk distribusi dapat terlihat.
Adapun pemilihan jumlah bin dilakukan dengan mempertimbangkan aturan
Sturges (bins ≈ 17) sehingga 17 bin
dipilih sebagai kompromi antara cukup detail untuk melihat pola dan
tidak terlalu ramai untuk dibaca.
# Menghitung Q3 untuk highlight
q3_price <- quantile(diamonds$price, 0.75)
ggplot(diamonds, aes(x = price)) +
geom_histogram(bins = 17, fill = "lightgray", color = "white") +
geom_histogram(data = subset(diamonds, price < q3_price),
aes(x = price), bins = 17, fill = "#8E44AD", color = "white") +
scale_x_continuous(labels = dollar, breaks = seq(0, 20000, by = 5000)) +
scale_y_continuous(labels = comma) +
labs(
title = "Distribusi Harga Berlian",
subtitle = "Area biru = 75% produk dengan harga di bawah Q3 ($5.324)",
x = "Harga (USD)",
y = "Jumlah Berlian",
caption = "Sumber: ggplot2::diamonds"
) +
theme_minimal(base_size = 12) +
theme(plot.caption = element_text(margin = margin(t = 15)),
axis.text.x = element_text(angle = 45, hjust = 1)) # miringkan label
Dari histogram di atas, kita bisa melihat gambaran lengkap sebaran harga 53.940 berlian yang tercatat. Grafik ini memperlihatkan bahwa sebagian besar berlian berada di kisaran harga bawah hingga menengah, dengan frekuensi tertinggi terlihat pada rentang harga di bawah $2.000.
Bentuk distribusi yang terlihat sangat timpang ke kanan (skewed to the right) menunjukkan bahwa semakin mahal harga berlian, semakin sedikit jumlahnya. Harga-harga tinggi ($10.000 ke atas) hanya diisi oleh sedikit berlian, sementara produk-produk dengan harga terjangkau mendominasi pasar.
Area berwarna ungu menandai 75% produk dengan harga di bawah $5.324 (batas Q3). Ini berarti tiga perempat dari total produk kita berada di segmen harga menengah ke bawah, dan hanya seperempatnya yang masuk kategori menengah atas hingga premium.
Di kisaran harga mana produk paling banyak terkonsentrasi?
Jika histogram menampilkan distribusi dalam bentuk batang, density plot menyajikannya sebagai kurva kontinu sehingga pola konsentrasi data terlihat lebih jelas. Visualisasi ini juga dapat menjawab pertanyaan: apakah ada pola tersembunyi yang tidak terlihat di histogram?
ggplot(diamonds, aes(x = price)) +
geom_density(fill = "#8E44AD", alpha = 0.6) +
scale_x_continuous(labels = dollar, breaks = seq(0, 20000, by = 5000)) +
scale_y_continuous(labels = comma) +
labs(
title = "Konsentrasi Distribusi Harga Berlian",
subtitle = "Semakin tinggi kurva, semakin banyak produk di kisaran harga tersebut",
x = "Harga (USD)",
y = "Kepadatan",
caption = "Sumber: ggplot2::diamonds"
) +
theme_minimal(base_size = 12)
Density plot ini menyajikan pola konsentrasi harga dalam bentuk kurva yang lebih halus dibanding histogram. Semakin tinggi kurva, semakin banyak produk di kisaran harga tersebut.
Terlihat jelas bahwa konsentrasi tertinggi berada di kisaran harga sangat rendah, dengan puncak kurva menjulang di area sekitar $1.000–$2.000. Dari sana, kurva turun drastis dan terus mengecil seiring kenaikan harga. Ini mengonfirmasi temuan histogram sebelumnya bahawa produk kita didominasi oleh berlian dengan harga terjangkau, sementara segmen premium hanya mengisi porsi kecil.
Apakah ada berlian dengan harga yang jauh di luar kewajaran?
Boxplot menampilkan ringkasan statistik dalam bentuk visual: median, kuartil, dan pencilan (outlier). Kelebihannya adalah tahan terhadap pencilan dan memberikan gambaran cepat tentang sebaran data.
Dari ringkasan statistik price sebelumnya kita tahu:
Q1 = $950, median = $2.401, Q3 = $5.324
Rentang antar-kuartil (IQR) = Q3 - Q1 = $4.374
Batas atas wajar = Q3 + 1,5×IQR ≈ $11.885
Data di atas $11.885 bakal dianggap sebagai pencilan (outlier)
ggplot(diamonds, aes(y = price)) +
geom_boxplot(fill = "#8E44AD", alpha = 0.6, width = 0.3) +
scale_y_continuous(labels = dollar, breaks = seq(0, 20000, by = 5000)) +
scale_x_continuous(breaks = NULL) +
labs(
title = "Ringkasan Harga dan Pencilan",
subtitle = "Titik-titik di atas adalah berlian dengan harga sangat mahal",
x = "",
y = "Harga (USD)",
caption = "Sumber: ggplot2::diamonds"
) +
theme_minimal(base_size = 12)
Boxplot ini merangkum distribusi harga dalam bentuk yang sangat ringkas. Kotak ungu mewakili 50% data di tengah, dari harga $950 (Q1) hingga $5.324 (Q3). Garis tebal di dalam kotak adalah median ($2.401), yang menandakan separuh produk kita berharga di bawah angka tersebut.
Yang paling menarik untuk dicermati adalah banyaknya titik-titik di bagian atas yang melebihi batas wajar (di atas $11.885). Titik-titik ini adalah pencilan (outlier) berlian dengan harga sangat mahal yang berada jauh di luar kebanyakan produk.
Namun, dalam bisnis berlian kita, pencilan ini bukanlah kesalahan atau anomali, melainkan produk premium eksklusif yang menjadi ciri khas pasar: sedikit berlian dengan kualitas dan harga sangat tinggi, sementara sebagian besar produk berada di kisaran menengah ke bawah. Garis hitam tebal di bagian atas terjadi karena banyaknya pencilan yang saling bertumpuk bukan hanya satu dua, tapi ratusan bahkan ribuan berlian dengan harga di atas $12.000.
Bagaimana bentuk distribusi sekaligus ringkasan statistik dalam satu tampilan?
Histogram, density plot, dan boxplot telah menampilkan harga dari berbagai sudut pandang. Violin plot memadukan kelebihan ketiganya, dengan lebar area menunjukkan kepadatan data (seperti density plot), sementara kotak di dalamnya menampilkan ringkasan statistik (seperti boxplot).
ggplot(diamonds, aes(x = "", y = price)) +
geom_violin(fill = "#8E44AD", alpha = 0.6) +
geom_boxplot(width = 0.1, fill = "white", alpha = 0.7) +
scale_y_continuous(labels = dollar, breaks = seq(0, 20000, by = 5000)) +
labs(
title = "Gambaran Lengkap Sebaran Harga",
subtitle = "Area lebar = banyak data, kotak putih = ringkasan statistik",
x = "",
y = "Harga (USD)",
caption = "Sumber: ggplot2::diamonds"
) +
theme_minimal(base_size = 12)
Violin plot ini menggabungkan semua informasi dari visualisasi sebelumnya ke dalam satu tampilan. Lebar area menunjukkan kepadatan data (seperti density plot), sementara kotak putih di dalamnya menampilkan ringkasan statistik (seperti boxplot).
Bentuknya yang gemuk di bagian bawah dan sangat kurus di bagian atas dengan jelas menunjukkan distribusi yang sangat miring ke kanan seperti pada histogram dan density plot tadi. Area paling lebar berada di kisaran harga terendah, di sinilah mayoritas produk kita berada. Semakin ke atas, area menyempit drastis, menandakan semakin sedikit produk di harga tinggi.
Kotak putih di bagian bawah (sekitar $1.000–$5.000) menegaskan bahwa 50% data terkonsentrasi di rentang tersebut. Sementara ekor panjang yang menjulang hingga $18.000 menunjukkan keberadaan produk-produk premium dalam jumlah lebih terbatas.
Dari keempat visualisasi yang telah dilakukan, tergambar jelas karakteristik harga berlian dalam dataset produk. Distribusi harga sangat miring ke kanan, yang berarti sebagian besar produk terkonsentrasi di kisaran harga menengah ke bawah, sementara produk dengan harga tinggi hanya mengisi porsi kecil. Sebanyak 75% produk berada di harga di bawah $5.324, dan separuh dari total produk bahkan berada di bawah $2.401. Keberadaan banyak pencilan di atas $12.000 bukanlah anomali, melainkan ciri khas pasar berlian: sedikit produk premium dengan harga sangat tinggi, sementara mayoritas produk berada di kategori harga yang lebih terjangkau.
Konsistensi pola yang ditunjukkan oleh keempat jenis visualisasi mengonfirmasi bahwa data dapat dipercaya dan pola bisnis bersifat stabil. Pemahaman tentang distribusi ini menjadi fondasi penting sebelum melangkah ke analisis yang lebih kompleks, seperti melihat hubungan antara harga dengan variabel lain atau menyusun model prediksi.
Bagi Tim Bisnis:
Berdasarkan temuan bahwa pasar didominasi produk dengan harga di bawah $5.000, strategi pengadaan dan pemasaran sebaiknya tetap berfokus pada kelompok produk utama ini. Di sinilah kekuatan perusahaan berada, yakni produk dengan harga terjangkau yang menjadi pilihan mayoritas konsumen. Namun, keberadaan produk premium hingga $18.000 tetap perlu dipertahankan sebagai pembeda merek yang menunjukkan kapabilitas perusahaan menghasilkan berlian berkualitas tinggi, meskipun jumlahnya terbatas.
Dalam menentukan harga produk baru, titik-titik seperti median ($2.401) dan kuartil bawah ($950) dapat dijadikan acuan untuk memastikan harga kompetitif di pasar. Sementara itu, keberadaan banyak pencilan di atas $12.000 bisa dimanfaatkan sebagai peluang untuk menonjolkan keistimewaan produk dalam kampanye pemasaran produk premium.
Bagi Analisis Lanjutan:
Visualisasi univariat yang telah dilakukan merupakan tahap diagnostik awal yang sangat penting. Dengan hasil yang menunjukkan bahwa distribusi harga sangat miring, sehingga untuk analisis selanjutnya perlu dipertimbangkan:
Transformasi data (misalnya log transformasi)
pada variabel price jika akan digunakan dalam model regresi
atau analisis yang mengasumsikan normalitas.
Identifikasi dan perlakuan khusus terhadap pencilan, tergantung pada tujuan analisis, apakah akan dipertahankan sebagai produk premium eksklusif atau justru menjadi fokus investigasi lebih lanjut.
Analisis bivariat untuk melihat bagaimana
distribusi harga bervariasi antar kelompok potongan (cut),
warna (color), atau kejernihan (clarity). Ini
akan menjawab pertanyaan seperti: apakah potongan Ideal selalu lebih
mahal? atau apakah warna yang lebih jernih konsisten dengan
harga lebih tinggi?
Analisis multivariat untuk memahami faktor-faktor apa saja yang paling berpengaruh terhadap harga, dengan tetap mempertimbangkan karakter distribusi yang telah diketahui.
Pemahaman yang baik tentang karakter dasar data ini akan membuat analisis lanjutan menjadi lebih terarah dan interpretasi hasilnya lebih akurat.
Tools: RStudio, RMarkdown, ggplot2,
dplyr, scales
Dataset: diamonds (bawaan paket
ggplot2)
Publikasi: Laporan ini diunggah ke RPubs sebagai bagian dari portofolio profesional