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.
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.
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
Dari data, dibuatlah beberapa visualisasi data sebagai berikut.
Barplot dapat dibuat dengan variabel “Cut” yang menunjukkan kualitas berlian sehingga akan di lihat bagaimana pesebaran kualitan berlian. Syntax sebagai berikut.
barplot(table(diamonds$cut),
main="Distribusi Cut Berlian",
xlab="Jenis Cut",
ylab="Frekuensi",
col= "salmon")
cut <- table(diamonds$cut)
bp <- barplot(cut,
main="Distribusi Cut Berlian",
xlab="Jenis Cut",
ylab="Frekuensi",
col="salmon",
border="black",
ylim=c(0, max(cut)*1.1))
text(x = bp,
y = cut,
labels = cut,
pos = 3,
cex = 0.8)
Dari output, dapat dilihat distribusi cut dari berlian dimana ada yang fair, good, very good, premium, dan ideal. Dari grafik distribusi tersebut, terlihat bahwa kategori Ideal memiliki frekuensi paling tinggi yaitu 21.551 observasi, diikuti oleh Premium dan Very Good, sedangkan kategori Fair memiliki frekuensi paling rendah.
Secara statistik deskriptif, hal ini menunjukkan bahwa distribusi kategori cut tidak merata (tidak uniform). Data cenderung terkonsentrasi pada kualitas potongan tinggi. Jika dihitung secara proporsi, kategori Ideal mencakup bagian terbesar dari total 53.940 observasi. Ini menunjukkan bahwa dalam dataset ini, kualitas potongan berlian didominasi oleh kategori terbaik.
Distribusi ini juga menunjukkan adanya ketidakseimbangan kategori (imbalance data), yang perlu diperhatikan apabila nantinya dilakukan analisis lanjutan seperti klasifikasi atau pemodelan.
Adapun bentuk kedua yang menggambarkan frequensi berlian dari tingkat kejernihan dapat ditampilkan sebagai berikut.
clarity <- table(diamonds$clarity)
bp <- barplot(clarity,
main="Distribusi Clarity Berlian",
xlab="Clarity",
ylab="Frekuensi",
col="lightblue",
border="black",
ylim=c(0, max(clarity)*1.1))
text(x = bp,
y = clarity,
labels = clarity,
pos = 3,
cex = 0.8)
Pada grafik distribusi clarity, kategori SI1 memiliki frekuensi tertinggi, diikuti oleh VS2 dan SI2. Sementara kategori I1 dan IF memiliki frekuensi yang relatif rendah.
Secara statistik, distribusi clarity menunjukkan pola yang terpusat pada tingkat kejernihan menengah. Hal ini mengindikasikan bahwa mayoritas berlian dalam dataset berada pada kategori kejernihan sedang, bukan pada kategori ekstrem (sangat rendah atau sangat tinggi).
Distribusi ini juga tidak simetris, karena terdapat variasi frekuensi yang cukup besar antar kategori. Jika divisualisasikan dalam bentuk proporsi, akan terlihat bahwa kategori tengah mendominasi struktur data.
Grouped bar chart dapat diuat dengan syntax berikut.
library(ggplot2)
ggplot(diamonds, aes(x = cut, fill = color)) +
geom_bar(position = position_dodge(width = 0.9)) +
geom_text(stat = "count",
aes(label = after_stat(count)),
position = position_dodge(width = 0.9),
vjust = -0.3,
size = 1.5) +
labs(title = "Perbandingan Cut berdasarkan Color",
x = "Cut",
y = "Frekuensi",
fill = "Color") +
theme_minimal()
Pada grouped bar chart, terlihat hubungan antara dua variabel kategorik yaitu cut dan color. Grafik ini memperlihatkan distribusi frekuensi warna dalam setiap kategori cut secara berdampingan.
Terlihat bahwa pada hampir semua kategori cut, warna G, E, dan F memiliki frekuensi relatif lebih tinggi dibandingkan warna lainnya. Selain itu, kategori Ideal konsisten memiliki frekuensi tertinggi pada hampir seluruh warna.
Secara analisis bivariat deskriptif, grafik ini menunjukkan adanya pola distribusi yang relatif konsisten antar kategori. Namun, dari grafik ini belum dapat disimpulkan adanya hubungan sebab-akibat, hanya menunjukkan pola frekuensi bersama (joint frequency distribution).
Stacked bar chart dapat diuat dengan syntax berikut.
ggplot(diamonds, aes(x = cut, fill = color)) +
geom_bar() +
geom_text(stat = "count",
aes(label = after_stat(count)),
position = position_stack(vjust = 0.5),
size = 1.5,
color = "black") +
labs(title = "Perbandingan Frekuensi Cut dan Color",
x = "Cut",
y = "Frekuensi",
fill = "Color") +
theme_minimal()
Stacked bar chart menunjukkan distribusi total cut beserta komposisi warna di dalamnya. Tinggi batang menggambarkan total frekuensi cut, sedangkan bagian warna menunjukkan kontribusi masing-masing kategori warna.
Kategori Ideal memiliki total frekuensi paling tinggi, dan terdiri dari berbagai variasi warna. Secara komposisi, tidak terlihat satu warna yang sepenuhnya mendominasi suatu cut tertentu.
Grafik ini membantu dalam melihat distribusi marginal (total cut) sekaligus distribusi bersyarat (warna dalam cut). Secara statistik deskriptif, dapat dikatakan bahwa variasi warna tersebar di semua kategori cut.
Propotion bar chart dapat diuat dengan syntax berikut.
ggplot(diamonds, aes(x = cut, fill = color)) +
geom_bar(position = "fill") +
geom_text(stat = "count",
aes(label = scales::percent(after_stat(count / tapply(after_stat(count), after_stat(x), sum)[after_stat(x)]))),
position = position_fill(vjust = 0.5),
size = 3) +
labs(title = "Proporsi Color dalam Setiap Cut",
x = "Cut",
y = "Proporsi",
fill = "Color") +
theme_minimal()
Pada proportion bar chart yang telah ditambahkan persentase, terlihat distribusi relatif warna dalam setiap kategori cut. Berbeda dengan grafik sebelumnya yang menampilkan jumlah absolut, grafik ini menunjukkan komposisi dalam bentuk proporsi (0–100%).
Dari grafik terlihat bahwa pola persentase warna antar kategori cut relatif mirip. Artinya, walaupun jumlah total setiap cut berbeda jauh (misalnya Ideal jauh lebih banyak dari Fair), komposisi persentase warnanya cenderung tidak terlalu berbeda secara drastis.
Sebagai contoh, warna G tetap memiliki proporsi yang cukup besar di hampir semua kategori cut. Hal ini menunjukkan bahwa distribusi warna relatif stabil terhadap variasi cut.
Secara statistik, grafik ini memberikan gambaran awal bahwa hubungan antara variabel cut dan color mungkin tidak terlalu kuat, karena pola proporsinya relatif serupa di setiap kategori. Namun, untuk memastikan ada tidaknya hubungan yang signifikan, diperlukan uji statistik lanjutan seperti uji Chi-Square independensi.
Pie chart dapat dibuat dengan syntax berikut.
color <- table(diamonds$color)
color_labels <- paste(names(color),
"\n",
round(color/sum(color)*100, 1), "%")
pie(color,
labels = color_labels,
main = "Proporsi Warna Berlian",
col = rainbow(length(color)))
Dari output dapat diketahui bahwa pie chart menunjukkan distribusi marginal dari variabel color. Warna G memiliki persentase terbesar, diikuti oleh E dan F, sedangkan J memiliki proporsi paling kecil.
Distribusi ini menunjukkan bahwa data tidak tersebar merata pada semua kategori warna. Terdapat kecenderungan bahwa warna tertentu lebih banyak muncul dalam dataset. Dalam konteks statistik deskriptif, ini menunjukkan adanya konsentrasi frekuensi pada kategori tertentu.
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.
Berdasarkan hasil visualisasi data yang telah dilakukan terhadap data diamonds, dapat disimpulkan bahwa data ini terdiri dari 53.940 observasi dengan 10 variabel yang menggambarkan karakteristik serta harga berlian. Dari struktur data yang telah ditampilkan, diketahui bahwa variabel yang ada terdiri dari data numerik, integer, dan faktor ordinal.
Melalui barplot yang dibuat, dapat diketahui bahwa kategori cut yang paling banyak adalah Ideal, sehingga dapat dikatakan bahwa sebagian besar berlian dalam data memiliki kualitas potongan yang sangat baik. Pada variabel clarity, terlihat adanya perbedaan jumlah pada setiap tingkat kejernihan. Sedangkan pada pie chart variabel color, dapat dilihat bahwa warna G memiliki jumlah atau persentase paling besar dibandingkan warna lainnya. Selain itu, melalui histogram pada variabel price, dapat diketahui bahwa harga berlian cenderung lebih banyak berada pada kisaran harga di bawah 5000.
Grafik juga menunjukkan bahwa distribusi harga tidak merata dan cenderung miring ke kanan, yang artinya terdapat beberapa berlian dengan harga sangat tinggi namun jumlahnya tidak sebanyak harga yang lebih rendah.
Secara umum, visualisasi data yang dilakukan dapat membantu dalam memahami gambaran umum dari dataset diamonds. Dengan adanya grafik-grafik tersebut, informasi yang terdapat dalam data menjadi lebih mudah dipahami dan dianalisis oleh pembaca.