Data yang digunakan dalam penelitian ini adalah data yang bersumber dari database R yaitu data “Diamonds”. Data yang dipanggil kemudian dilihat strukturnya yang kemudian disajikan beberapa variabelnya untuk menyajikan visualisasi data yang diharapkan bisa dipahami pembaca.

Dari penelitian ini, digunakanlah syntax-syntax sebagai berikut.

1. Import Data

  1. Import data yang dilakukan dapat dilakukan dengan syntax berikut.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
data(diamonds)
head(diamonds)
## # A tibble: 6 × 10
##   carat cut       color clarity depth table price     x     y     z
##   <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1  0.23 Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
## 2  0.21 Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
## 3  0.23 Good      E     VS1      56.9    65   327  4.05  4.07  2.31
## 4  0.29 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
## 5  0.31 Good      J     SI2      63.3    58   335  4.34  4.35  2.75
## 6  0.24 Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48

Dimana dari data yang ditampilkan terdapat 53940 observasi dari 10 variabel.

2. Melihat Struktur Data

Struktur data dapat ditampilkan dengan syntax berikut.

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 ...
sapply(diamonds, class)
## $carat
## [1] "numeric"
## 
## $cut
## [1] "ordered" "factor" 
## 
## $color
## [1] "ordered" "factor" 
## 
## $clarity
## [1] "ordered" "factor" 
## 
## $depth
## [1] "numeric"
## 
## $table
## [1] "numeric"
## 
## $price
## [1] "integer"
## 
## $x
## [1] "numeric"
## 
## $y
## [1] "numeric"
## 
## $z
## [1] "numeric"

Dari output yang diperoleh, dikatahui ada 10 variabel dengan rincian variabel : a. “Carat” yang merupakan data numerik b. “Cut” yang merupakan data ordinal faktor c. “Color” yang merupakan data ordinal faktor d. “Clarity” yang merupakan data ordinal faktor e. “Depht” yang merupakan data numerik f. “Table” yang merupakan data numerik g. “Price” yang merupakan data interger h. “x” yang merupakan data numerik i. “y” yang merupakan data numerik j. “z” yang merupakan data numerik

3. Membuat Visualisasi Data

Dari data, dibuatlah beberapa visualisasi data sebagai berikut.

a. Histogram

Histogram dapat dibuat dengan variabel “price” yang menunjukkan harga berlian sehingga akan dilihat bagaimana pesebaran harga berlian. Syntax yaitu sebagai berikut.

hist(diamonds$price,
     probability=TRUE,
     main="Distribusi Harga Berlian",
     xlab="Price",
     col="pink",
     breaks=30)

Dari output dapat diketahui bahwa harga berlian cukup condong berkisar rendah dibawah 5000.

b. Density Plot

Density plot digunakan untuk melihat pola distribusi data secara lebih halus dibanding histogram. Di sini digunakan variabel price.

ggplot(diamonds, aes(x = price, fill = cut)) +
  geom_density(alpha = 0.4) +
  labs(title = "Harga Berlian Berdasarkan Cut",
       x = "Price",
       y = "Density",
       fill = "Cut") +
  theme_minimal()

Dari density plot terlihat bahwa distribusi harga berlian condong ke kanan (right skewed). Kepadatan tertinggi berada pada kisaran harga rendah, kemudian semakin menurun ketika harga semakin tinggi. Hal ini menunjukkan bahwa sebagian besar berlian memiliki harga relatif rendah, sedangkan berlian dengan harga sangat tinggi jumlahnya sedikit.

c. Boxplot

Boxplot digunakan untuk melihat median, kuartil, serta adanya pencilan (outlier). Di sini dibuat boxplot price berdasarkan kategori cut.

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot() +
  labs(title = "Harga Berlian Berdasarkan Cut",
       x = "Cut",
       y = "Price") +
  theme_minimal() +
  theme(legend.position = "none")

Dari boxplot terlihat bahwa median harga berbeda pada setiap kategori cut. Selain itu, terdapat banyak titik pencilan (outlier) terutama pada harga tinggi. Hal ini menunjukkan bahwa terdapat beberapa berlian dengan harga jauh lebih mahal dibandingkan mayoritas data.Boxplot juga memperlihatkan bahwa distribusi harga tidak simetris karena whisker bagian atas lebih panjang dibanding bagian bawah, yang mengindikasikan kemiringan ke kanan.

d. Violin Plot

Violin plot merupakan kombinasi antara boxplot dan density plot. Grafik ini menunjukkan bentuk distribusi sekaligus median dan penyebaran data.

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_violin(trim = FALSE, alpha = 0.6) +
  labs(title = "Harga Berlian Berdasarkan Cut",
       x = "Cut",
       y = "Price") +
  theme_minimal() +
  theme(legend.position = "none")

Pada violin plot terlihat bentuk distribusi harga pada setiap kategori cut. Bagian yang lebih lebar menunjukkan kepadatan data yang lebih tinggi. Terlihat bahwa pada semua kategori cut, kepadatan terbesar berada pada harga rendah. Semakin ke atas, bentuknya semakin menyempit, yang menunjukkan jumlah berlian dengan harga tinggi semakin sedikit. Violin plot memberikan gambaran distribusi yang lebih detail dibanding boxplot, karena kita dapat melihat bentuk sebaran data, bukan hanya ringkasan statistiknya.