Pendahuluan

Dataset diamonds merupakan salah satu dataset yang sering digunakan dalam pembelajaran analisis data. Dataset ini berisi informasi mengenai hampir 54.000 berlian dengan berbagai karakteristik seperti berat (carat), harga (price), kualitas potongan (cut), warna (color), kejernihan (clarity), serta beberapa ukuran fisik lainnya.

Pada analisis ini, dilakukan eksplorasi data secara bivariat, yaitu melihat hubungan antara dua variabel sekaligus. Tujuannya adalah untuk memahami faktor-faktor apa saja yang berpengaruh terhadap harga berlian dan bagaimana pola hubungan antar variabel tersebut. Visualisasi dilakukan menggunakan package ggplot2 agar pola data dapat terlihat dengan lebih jelas dan mudah dipahami, bahkan oleh pembaca non-teknis.

Panggil data

library(ggplot2)
library(dplyr)
data(diamonds)

Struktur Dataset

# Cek struktur data
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 ...

Berdasarkan hasil pemeriksaan struktur data, dataset diamonds terdiri dari 53.940 baris dan 10 variabel. Artinya, terdapat 53.940 data berlian dengan 10 karakteristik yang berbeda.

Variabel-variabel tersebut terdiri dari:

  • carat: Berat berlian dalam satuan carat (numerik).
  • cut: Kualitas potongan berlian (kategori berurutan dari Fair hingga Ideal).
  • color: Warna berlian (kategori dari D hingga J).
  • clarity: Tingkat kejernihan berlian (kategori dari I1 hingga IF).
  • depth: Persentase kedalaman berlian.
  • table: Lebar bagian atas berlian.
  • price: Harga berlian dalam dolar Amerika (USD).
  • x, y, z: Dimensi fisik berlian dalam milimeter.

Sebagian variabel bersifat numerik (seperti carat, price, depth), sementara variabel lainnya bersifat kategorik berurutan (ordinal) seperti cut, color, dan clarity. Informasi ini penting untuk menentukan jenis visualisasi yang sesuai dalam analisis bivariat.

1. Scatter Plot (Carat vs Price)

ggplot(diamonds, aes(x = carat, y = price)) +
  geom_point(alpha = 0.3, color = "#C77DFF") +
  labs(title = "Hubungan Berat Berlian (Carat) dan Harga",
       x = "Carat (Berat Berlian)",
       y = "Harga (USD)")

Scatter plot tersebut menggambarkan hubungan antara berat berlian (carat) dan harga (USD). Terlihat adanya hubungan positif yang kuat, di mana semakin besar nilai carat, maka harga berlian cenderung semakin tinggi. Pada carat kecil (di bawah ±1 carat), harga masih relatif rendah dan penyebarannya sempit, sedangkan pada carat yang lebih besar, harga meningkat tajam dan variasinya semakin lebar. Hal ini menunjukkan bahwa berlian dengan berat yang sama dapat memiliki harga yang berbeda cukup jauh, yang kemungkinan dipengaruhi oleh faktor lain seperti kualitas potongan, warna, dan kejernihan. Selain itu, terlihat adanya konsentrasi titik pada carat tertentu (sekitar 1–2 carat), yang mengindikasikan bahwa ukuran tersebut paling banyak dijumpai dalam data. Secara keseluruhan, grafik ini menegaskan bahwa berat berlian merupakan faktor utama dalam menentukan harga, meskipun bukan satu-satunya penentu.

2. Boxplot Bivariate

Harga Berdasarkan Kualitas Potongan (Cut)

ggplot(diamonds, aes(x = cut, y = price)) +
  geom_boxplot(fill = "#E0AAFF", color = "#9D4EDD") +
  labs(title = "Distribusi Harga Berdasarkan Kualitas Potongan",
       x = "Kualitas Potongan",
       y = "Harga (USD)")

Boxplot tersebut menunjukkan distribusi harga berlian berdasarkan kualitas potongan (Fair, Good, Very Good, Premium, dan Ideal). Secara umum, terlihat bahwa median harga berlian cenderung menurun dari kategori Fair ke Ideal, yang menunjukkan bahwa berlian dengan potongan lebih baik tidak selalu memiliki harga lebih tinggi; hal ini kemungkinan dipengaruhi oleh faktor lain seperti berat (carat), warna, dan kejernihan. Setiap kategori memiliki rentang interkuartil (IQR) yang cukup lebar, menandakan adanya variasi harga yang besar dalam satu kualitas potongan yang sama. Selain itu, terdapat banyak outlier di bagian atas pada semua kategori, yang mengindikasikan adanya berlian dengan harga sangat tinggi meskipun berada pada kualitas potongan tertentu. Dengan demikian, boxplot ini menegaskan bahwa kualitas potongan saja belum cukup untuk menjelaskan perbedaan harga berlian, karena harga dipengaruhi oleh kombinasi beberapa karakteristik lainnya.

3. Bubble Plot Bivariate

Carat vs Price dengan Ukuran Titik Berdasarkan Depth

ggplot(diamonds, aes(x = carat, y = price, size = depth)) +
  geom_point(alpha = 0.3, color = "#C77DFF") +
  labs(title = "Hubungan Carat dan Harga dengan Variasi Depth",
       x = "Carat",
       y = "Harga",
       size = "Depth")

Grafik bubble plot ini memperlihatkan hubungan antara berat karat (sumbu X) dengan harga berlian (sumbu Y), di mana setiap titik mewakili sebuah berlian dan ukuran lingkaran (bubble) menunjukkan tingkat kedalaman (depth) berlian tersebut. Pola umum yang terlihat adalah semakin besar karat suatu berlian, semakin mahal harganya, yang tercermin dari penyebaran titik yang naik ke kanan atas. Yang menarik dari visualisasi ini adalah informasi tambahan tentang kedalaman berlian yang direpresentasikan melalui ukuran bubble - semakin besar ukuran lingkarannya, semakin dalam berlian tersebut (depth mendekati 70), sementara bubble yang lebih kecil menunjukkan berlian yang lebih dangkal (depth mendekati 50). Dari sebaran bubble, kita dapat mengamati bahwa berlian dengan depth sedang (ukuran bubble sedang) paling banyak ditemui di berbagai rentang harga dan karat, menunjukkan bahwa proporsi kedalaman yang ideal (sekitar 60-65) adalah yang paling umum diproduksi dan diminati pasar. Sementara itu, berlian dengan depth ekstrem (bubble sangat kecil atau sangat besar) cenderung lebih jarang, terutama pada ukuran karat besar, yang mungkin mengindikasikan bahwa berlian dengan proporsi tidak ideal tersebut lebih sulit ditemukan dalam ukuran besar atau kurang diminati konsumen karena mempengaruhi kilau dan keindahan berlian.

4. Line Plot Bivariate

Rata-rata Harga Berdasarkan Carat

diamonds_avg <- diamonds %>%
  mutate(carat_round = round(carat, 1)) %>%
  group_by(carat_round) %>%
  summarise(mean_price = mean(price))

ggplot(diamonds_avg, aes(x = carat_round, y = mean_price)) +
  geom_line(color = "#9D4EDD", linewidth = 1) +
  labs(title = "Rata-rata Harga Berdasarkan Berat Berlian",
       x = "Carat (Dibulatkan)",
       y = "Rata-rata Harga")

Grafik garis ini memperlihatkan hubungan yang sangat jelas antara berat karat berlian dengan rata-rata harganya, di mana semakin berat berlian maka semakin mahal harga rata-ratanya. Terlihat pola peningkatan harga yang konsisten seiring bertambahnya berat karat, namun dengan beberapa lonjakan yang cukup tajam, terutama pada ukuran 1 karat dan mendekati 2 karat yang menunjukkan adanya premium harga pada ukuran-ukuran populer tersebut. Menariknya, kenaikan harga tidak selalu linier - ada beberapa titik di mana garis naik lebih curam, mengindikasikan bahwa konsumen cenderung membayar harga lebih mahal per karatnya untuk berlian dengan ukuran tertentu yang dianggap istimewa. Pada kisaran 3 karat ke atas, meskipun harga terus meningkat, grafik mulai menunjukkan fluktuasi karena terbatasnya jumlah sampel berlian dengan ukuran besar di pasaran. Secara keseluruhan, grafik ini dengan jelas menunjukkan bahwa berat karat merupakan faktor dominan dalam menentukan harga berlian, namun efek “lonjakan harga” pada ukuran tertentu membuktikan bahwa faktor psikologis dan permintaan pasar juga berperan penting dalam pembentukan harga.

5. Density Plot Bivariate

Distribusi Harga Berdasarkan Cut

ggplot(diamonds, aes(x = price, fill = cut)) +
  geom_density(alpha = 0.4) +
  scale_fill_manual(values = c("#E0AAFF","#C77DFF","#D8B4FE","#B185DB","#9D4EDD")) +
  labs(title = "Distribusi Harga Berdasarkan Kualitas Potongan",
       x = "Harga",
       y = "Kepadatan",
       fill = "Cut")

Grafik ini menunjukkan distribusi kepadatan harga untuk setiap jenis kualitas potongan berlian (Fair, Good, Very Good, Premium, dan Ideal). Dari pola distribusinya, terlihat bahwa potongan dengan kualitas “Fair” (terendah) memiliki puncak distribusi yang paling tinggi di kisaran harga rendah (sekitar $0-2000), yang berarti sebagian besar berlian dengan potongan Fair dijual dengan harga murah. Sebaliknya, potongan “Ideal” (terbaik) memiliki distribusi yang lebih melebar ke kanan hingga harga tinggi (di atas $10.000), menunjukkan bahwa berlian dengan potongan ideal lebih banyak ditemukan di berbagai rentang harga, termasuk harga mahal. Potongan “Premium” dan “Very Good” berada di posisi tengah, dengan distribusi yang cukup merata dari harga rendah hingga menengah. Hal ini membuktikan bahwa kualitas potongan mempengaruhi potensi harga berlian - semakin baik potongannya, semakin besar kemungkinan berlian tersebut dijual dengan harga tinggi.

Kesimpulan

1.Scatter Plot (Carat vs Price)

Berat berlian (carat) memiliki hubungan positif yang sangat kuat dengan harga, di mana semakin besar carat maka harga berlian cenderung semakin tinggi, meskipun pada carat yang sama harga dapat bervariasi karena dipengaruhi faktor lain.

2.Boxplot Harga Berdasarkan Cut

Kualitas potongan (cut) saja tidak menentukan harga berlian, karena setiap kategori cut memiliki variasi harga yang besar dan banyak outlier, sehingga faktor lain seperti carat dan kejernihan juga berperan penting.

3.Bubble Plot (Carat vs Price dengan Depth)

Sebagian besar berlian memiliki depth sedang (sekitar 60–65) di berbagai ukuran carat dan harga, menunjukkan bahwa depth ideal lebih umum dan diminati dibandingkan depth yang terlalu dangkal atau terlalu dalam.

4.Line Plot Rata-rata Harga Berdasarkan Carat

Rata-rata harga berlian meningkat seiring bertambahnya carat, dengan lonjakan harga pada ukuran tertentu seperti 1 dan 2 carat, yang mengindikasikan adanya pengaruh permintaan pasar dan faktor psikologis konsumen.

5.Density Plot Harga Berdasarkan Cut

Berlian dengan kualitas potongan lebih baik (Ideal dan Premium) memiliki distribusi harga yang lebih luas hingga harga tinggi, sedangkan potongan Fair cenderung terkonsentrasi pada harga rendah.