Persiapan data

Pada kesempatan kali ini kita akan melakukan analisis dan perbandingan dari dua data set, yang mana sebagai contoh yaitu data tinggi, berat badan, dan nama dari kelas A dan B. Sebelum memulai disini saya menginstall paket dplyr dengan tujuan untuk memudahkan kita untuk memanipulasi data. paket ini menyediakan fungsi-fungsi dengan syntax yang ringkas, konsisten, dan mudah dibaca, sehingga kita tidak perlu menghafal perintah R dasar yang panjang dan rumit.

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Membuat data frame

Agar data yang telah disiapkan terlihat lebih rapi dan mudah untuk dilihat, kita menggunakan syntax data.frame yang dimana nanti hasil datanya terlihat seperti tabel.

#data kelas A
#nama
namaA<- c("Razha", "Nandar", "Fahri", "Syahrul", "Ariq", "Geo", "Nuri",
"Uci", "Jann", "Naju")
#berat
beratA<- c(55, 65, 88, 70, 60, 58, 75, 52, 60, 53)
#tinng
tinggiA<- c(160, 175, 176, 160, 165, 162, 158, 168, 155, 159)

#data frame kelas A
data_A<- data.frame(namaA, beratA, tinggiA)


#data kelas B
#nama
namaB<- c("Alya", "Bintang", "Rizki", "Ana", "Nanda", "Dimas", "Ali", "Agus", "Dwi", "Putri")
#berat 
beratB<- c(50, 55, 53, 60, 58, 70, 52, 57, 59, 54)
#tinggi
tinggiB<- c(145, 160, 172, 155, 160, 170, 148, 162, 160, 143)

#data frame kelas B
data_B<- data.frame(namaB, beratB, tinggiB)

#memanggil data 
data_A
data_B

Menghitung ukuran pemusatan data

Selanjutnya, kita lanjut ke materi ukuran pemusatan data. Ukuran pemusatan data merupakan nilai yang merepresentasikan titik tengah atau pusat dari suatu kumpulan data. Tujuannya adalah memberikan gambaran umum mengenai nilai yang dianggap mewakili data secara keseluruhan, tanpa perlu meninjau setiap nilai satu per satu. Terdapat tiga jenis ukuran pemusatan data yang sering digunakan, yaitu mean (rata-rata), median (nilai tengah), dan modus (nilai yang paling sering muncul). Selanjutnya, kita akan menghitung ketiga ukuran tersebut menggunakan data dari kelas A dan B.

Mean

Mean atau rata-rata adalah nilai yang mewakili pusat data dengan cara menjumlahkan semua nilai lalu membaginya dengan jumlah data. Mean sering digunakan untuk melihat nilai tipikal dari sebuah kumpulan data. Syntax dan output nya sebagai berikut :

#Kelas A
mean_tinggi_A<- mean(tinggiA)
cat("rata-rata tinggi kelas A yaitu: ", mean_tinggi_A, "cm\n")
## rata-rata tinggi kelas A yaitu:  163.8 cm
mean_berat_A<- mean(beratA)
cat("rata-rata berat kelas A yaitu: ", mean_berat_A, "kg\n")
## rata-rata berat kelas A yaitu:  63.6 kg
#Kelas B
mean_tinggi_B<- mean(tinggiB)
cat("rata-rata tinggi kelas B yaitu: ", mean_tinggi_B, "cm\n")
## rata-rata tinggi kelas B yaitu:  157.5 cm
mean_berat_B<- mean(beratB)
cat("rata-rata berat kelas B yaitu: ", mean_berat_B, "kg\n")
## rata-rata berat kelas B yaitu:  56.8 kg

Median

Median adalah ukuran pemusatan data yang bertujuan untuk melihat nilai tengah dari suatu data yang telah diurutkan dari yang terkecil hingga yang terbesar. Berbeda dengan mean yang dipengaruhi oleh nilai ekstrem, median cenderung stabil meskipun ada nilai yang sangat besar atau kecil.

#Kelas A
median_tinggi_A<- median(tinggiA)
cat("median tinggi kelas A yaitu: ", median_tinggi_A, "cm\n")
## median tinggi kelas A yaitu:  161 cm
median_berat_A<- median(beratA)
cat("median berat kelas A yaitu: ", median_berat_A, "kg\n")
## median berat kelas A yaitu:  60 kg
#Kelas B
median_tinggi_B<- median(tinggiB)
cat("median tinggi kelas B yaitu: ", median_tinggi_B, "cm\n")
## median tinggi kelas B yaitu:  160 cm
median_berat_B<- median(beratA)
cat("median berat kelas B yaitu: ", median_berat_A, "kg\n")
## median berat kelas B yaitu:  60 kg

karena data nya berupa genap, jadi median didapatkan dari rata-rata nilai ke-5 dan ke-6 setelah diurutkan.

Modus

Modus adalah ukuran pemusatan data yang menunjukkan nilai yang paling sering muncul dalam suatu kumpulan data. Berbeda dengan mean dan median, modus tidak selalu ada (jika semua nilai unik) dan bisa lebih dari satu (jika ada beberapa nilai yang sama-sama sering muncul).

# Fungsi untuk mencari modus
get_mode <- function(v) { 
  uniqv <- unique(v)
  freq <- tabulate(match(v, uniqv)) 
  uniqv[freq == max(freq)]
}
#Kelas A
modus_tinggi_A<- get_mode(tinggiA)
cat("modus tinggi kelas A yaitu: ", modus_tinggi_A, "cm\n")
## modus tinggi kelas A yaitu:  160 cm
modus_berat_A<- get_mode(beratA)
cat("modus berat kelas A yaitu: ", modus_berat_A, "kg\n")
## modus berat kelas A yaitu:  60 kg
#Kelas B
modus_tinggi_B<- get_mode(tinggiB)
cat("modus tinggi kelas B yaitu: ", modus_tinggi_B, "cm\n")
## modus tinggi kelas B yaitu:  160 cm
modus_berat_B<- get_mode(beratB)
cat("modus berat kelas B yaitu: ", modus_berat_B, "kg\n")
## modus berat kelas B yaitu:  50 55 53 60 58 70 52 57 59 54 kg

dari modus diatas kita bisa melihat nilai apa yang sering muncul pada berat dan tinggi kelas A dan B.

Menghitung penyebaran data

Menghitung penyebaran data berarti mencari nilai yang menggambarkan sejauh mana variasi atau jarak antar data dalam suatu himpunan. Tujuan utamanya adalah untuk melihat apakah data cenderung berkelompok dekat di sekitar nilai pusat (seperti rata-rata) atau justru menyebar luas. Melalui pengukuran penyebaran, kita dapat menilai tingkat konsistensi data, mengidentifikasi adanya data pencilan (outlier), serta memahami pola distribusi data dengan lebih detail.

Menghitung Range

Range atau rentang data menunjukkan nilai minimus dan maksimum dari suatu data. Berikut syntaxnya

#kelas A
range_berat_A<- range(beratA)
cat("range berat kelas A yaitu:", range_berat_A, "\n")
## range berat kelas A yaitu: 52 88
range_tinggi_A<- range(tinggiA)
cat("range tinggi kelas A yaitu: ", range_tinggi_A, "\n")
## range tinggi kelas A yaitu:  155 176
#kelas B
range_berat_B<- range(beratB)
cat("range berat kelas B yaitu:", range_berat_B, "\n")
## range berat kelas B yaitu: 50 70
range_tinggi_B<- range(tinggiB)
cat("range tinggi kelas B yaitu: ", range_tinggi_B, "\n")
## range tinggi kelas B yaitu:  143 172

Output tersebut menunjukkan nilai minimum dan maksimum dari berat badan dan tinggi badan pada Kelas A dan Kelas B.

Kelas A - Berat Badan: 52 88 Artinya, berat badan terendah siswa di Kelas A adalah 52 kg, sedangkan yang tertinggi adalah 88 kg. Kelas A - Tinggi Badan: 155 176 Tinggi badan terendah di Kelas A adalah 155 cm, dan tertinggi adalah 176 cm. Kelas B - Berat Badan: 50 70 Berat badan terendah siswa Kelas B adalah 50 kg, sedangkan yang tertinggi adalah 70 kg. Kelas B - Tinggi Badan: 143 172 Tinggi badan terendah di Kelas B adalah 143 cm, dan yang tertinggi adalah 172 cm.

Variansi

Variansi adalah ukuran penyebaran data yang menunjukkan seberapa jauh nilai-nilai dalam suatu dataset menyimpang dari mean (rata-rata).Jika variansi besar, berarti data menyebar jauh dari rata-rata. Jika variansi kecil, berarti data cenderung berdekatan dengan rata-rata.

#kelas A
var_berat_A<- var(beratA)
cat("variansi berat kelas A yaitu:", var_berat_A, "\n")
## variansi berat kelas A yaitu: 127.3778
var_tinggi_A<- var(tinggiA)
cat("variansi tinggi kelas A yaitu: ", var_tinggi_A, "\n")
## variansi tinggi kelas A yaitu:  51.06667
#kelas B
var_berat_B<- var(beratB)
cat("variansi berat kelas B yaitu:", var_berat_B, "\n")
## variansi berat kelas B yaitu: 31.73333
var_tinggi_B<- var(tinggiB)
cat("variansi tinggi kelas B yaitu: ", var_tinggi_B, "\n")
## variansi tinggi kelas B yaitu:  96.5

Berdasarkan data variansi tersebut dapat diinterpretasikan:

Berat Kelas A: 127.3778 → Nilai variansi cukup besar, menunjukkan bahwa berat badan siswa di kelas A memiliki perbedaan yang cukup lebar satu sama lain (data tersebar luas dari rata-ratanya).

Tinggi Kelas A: 51.06667 → Variansinya lebih kecil dibanding berat kelas A, artinya tinggi badan siswa kelas A lebih seragam atau mendekati rata-rata dibanding berat badannya.

Berat Kelas B: 31.73333 → Variansi relatif kecil, sehingga berat badan siswa kelas B lebih konsisten atau seragam dibanding kelas A.

Tinggi Kelas B: 96.5 → Variansi tinggi di kelas B cukup besar, artinya perbedaan tinggi badan antar siswa kelas B lebih bervariasi dibanding kelas A.

Kesimpulan umum:

Kelas A memiliki variasi berat badan yang jauh lebih besar dibanding kelas B.

Sebaliknya, Kelas B memiliki variasi tinggi badan yang lebih besar dibanding kelas A.

Standar Deviasi

Standar deviasi adalah ukuran yang menunjukkan seberapa jauh data menyebar dari nilai rata-ratanya. Nilai standar deviasi kecil artinya data terkonsentrasi dekat rata-rata sedangkan nilai standar deviasi besar artinya data menyebar jauh dari rata-rata. Berikut sintaks yang digunkan untuk mengetahui standar deviasinya :

#kelas A
sd_berat_A<- sd(beratA)
cat("standar deviasi berat kelas A yaitu:", sd_berat_A, "\n")
## standar deviasi berat kelas A yaitu: 11.28618
sd_tinggi_A<- sd(tinggiA)
cat("standar deviasi tinggi kelas A yaitu: ", sd_tinggi_A, "\n")
## standar deviasi tinggi kelas A yaitu:  7.146095
#kelas B
sd_berat_B<- sd(beratB)
cat("standar deviasi berat kelas B yaitu:", sd_berat_B, "\n")
## standar deviasi berat kelas B yaitu: 5.633235
sd_tinggi_B<- sd(tinggiB)
cat("standar deviasi tinggi kelas B yaitu: ", sd_tinggi_B, "\n")
## standar deviasi tinggi kelas B yaitu:  9.823441

Berdasarkan analisis diatas dapat diinterpretasikan:

Berat Kelas A: 11.28618 → Standar deviasi cukup besar, menunjukkan berat badan siswa di kelas A bervariasi cukup jauh dari rata-ratanya.

Tinggi Kelas A: 7.146095 → Variasinya lebih kecil dibanding berat badan, artinya tinggi siswa di kelas A lebih seragam.

Berat Kelas B: 5.633235 → Standar deviasi kecil, sehingga berat badan siswa di kelas B cenderung homogen dan tidak jauh berbeda satu sama lain.

Tinggi Kelas B: 9.823441 → Standar deviasi relatif tinggi, menunjukkan tinggi badan siswa kelas B cukup bervariasi.

Kesimpulan:

Kelas A → variasi terbesar ada pada berat badan, sedangkan tinggi badannya lebih seragam.

Kelas B → variasi terbesar ada pada tinggi badan, sedangkan berat badannya relatif seragam.

Perbedaan ini konsisten dengan hasil analisis variansi sebelumnya.

Visualisasi Data

Visualisasi data merupakan metode untuk menampilkan data dalam bentuk grafis, seperti diagram, grafik, atau pie chart, agar informasi di dalamnya lebih mudah dan cepat dipahami. Melalui visualisasi, kita dapat langsung mengamati pola, tren, perbandingan, serta penyebaran data tanpa perlu memeriksa angka-angka secara rinci. Pada kesempatan ini, kita akan memanfaatkan histogram dan boxplot sebagai alat visualisasi.

Boxplot

Boxplot (atau diagram kotak) adalah salah satu jenis visualisasi data yang digunakan untuk menggambarkan penyebaran data dan mendeteksi pencilan (outlier) dengan cepat. Bagian-bagian utama boxplot: Kotak (box) → Menunjukkan rentang kuartil 1 (Q1) sampai kuartil 3 (Q3), yang berisi 50% data tengah. Garis di dalam kotak (median) → Menunjukkan nilai tengah data. “Whisker” (garis memanjang) → Menunjukkan rentang data dari titik minimum hingga maksimum yang masih dianggap normal (bukan outlier). Titik terpisah → Menunjukkan outlier, yaitu data yang jauh berbeda dari nilai lainnya. Kegunaan boxplot: Mengetahui letak median, rentang, dan persebaran data. Membandingkan distribusi antar kelompok data secara visual. Mendeteksi data ekstrem atau pencilan. Melihat kemencengan distribusi (apakah simetris atau condong ke salah satu sisi). Berikut ini cara menampilkan boxplot untuk data kita :

#boxplot kelas A
# 1. Berat
boxplot(beratA,
main = "Boxplot Berat Badan - Kelas A", ylab = "Berat Badan (kg)",
col = "blue", border = "black")

# 2. Tinggi 
boxplot(tinggiA,
main = "Boxplot Tinggi Badan - Kelas A", ylab = "Tinggi Badan (cm)",
col = "maroon", border = "black")

#boxplot kelas B
# 1. Berat
boxplot(beratB,
main = "Boxplot Berat Badan - Kelas B", ylab = "Berat Badan (kg)",
col = "green", border = "black")

# 2. Tinggi 
boxplot(tinggiB,
main = "Boxplot Tinggi Badan - Kelas B", ylab = "Tinggi Badan (cm)",
col = "pink", border = "black")

Histogram

Histogram adalah bentuk visualisasi data yang menampilkan distribusi frekuensi dalam bentuk batang. Histogram digunakan untuk melihat bagaimana data tersebar dalam rentang (interval) tertentu. Ciri dan bagian utama histogram: Sumbu horizontal (X) → Menunjukkan kelas atau interval data (rentang nilai). Sumbu vertikal (Y) → Menunjukkan frekuensi atau jumlah data pada setiap interval. Batang → Lebarnya mewakili interval kelas, tingginya mewakili jumlah data dalam interval tersebut. Batang pada histogram saling berdempetan (tidak ada jarak), karena data yang ditampilkan bersifat kontinu. Kegunaan histogram: Mengetahui pola distribusi data (normal, miring ke kiri/kanan, dll). Menilai sebaran data: apakah terpusat di tengah, tersebar merata, atau berpola tertentu. Membantu melihat adanya kemiringan (skewness) atau puncak ganda (bimodal). Berikut cara menampilkan histogram:

#histogram kelas A
# 1. Berat
hist(beratA,
main = "Histogram Berat Badan - Kelas A", xlab = "Berat Badan (kg)",
ylab = "Frekuensi", col = "violet", border = "black")

# 2. Tinggi 
hist(tinggiA,
main = "Histogram Tinggi Badan - Kelas A", xlab = "Tinggi Badan (kg)",
ylab = "Frekuensi", col = "lightblue", border = "black")

#boxplot kelas B
# 1. Berat
hist(beratB,
main = "Histogram Berat Badan - Kelas B", xlab = "Berat Badan (kg)",
ylab = "Frekuensi", col = "red", border = "black")

# 2. Tinggi 
hist(tinggiB,
main = "Histogram Tinggi Badan - Kelas B", xlab = "Tinggi Badan (kg)",
ylab = "Frekuensi", col = "grey", border = "black")

Dari histogram diatas kita bisa lihat bagaimana bentuk sebarannya.

Membandingkan ukuran pemusatan data dan penyebaran data berat badan kelas A dan B

Berat badan

Pada ukuran pemusatan, nilai mean dan median di Kelas A lebih tinggi dibanding Kelas B. Hal ini menunjukkan bahwa secara rata-rata, berat badan siswa Kelas A lebih besar daripada siswa Kelas B. Modus pada kedua kelas bisa saja berbeda atau bahkan tidak ada jika seluruh nilai bersifat unik. Namun, distribusi data di Kelas A cenderung merata di sekitar nilai tengah yang relatif tinggi.

Pada ukuran penyebaran, rentang (range) di Kelas A lebih luas dibandingkan Kelas B, yang berarti variasi berat badan siswa Kelas A lebih besar. Kondisi ini didukung oleh nilai variansi dan standar deviasi yang juga lebih tinggi pada Kelas A, menandakan bahwa perbedaan berat badan antar siswa di kelas tersebut cukup signifikan—ada yang jauh di atas rata-rata dan ada yang jauh di bawahnya. Sebaliknya, Kelas B memiliki distribusi berat badan yang lebih homogen.

Tinggi badan

Mean dan median tinggi badan Kelas A lebih besar dibanding Kelas B. Ini menunjukkan bahwa secara umum siswa Kelas A memiliki tinggi badan yang lebih tinggi dibanding siswa Kelas B. Modus pada kedua kelas bisa tidak ada jika semua nilai tinggi berbeda, tetapi kecenderungan pusat data Kelas A tetap lebih tinggi.

Sementara pada ukuran penyebaran data, range Kelas B memiliki selisih yang lebih tinggi daripada kelas A. Hal ini juga sejalan dengan perbedaan pada variansi dan standar deviasi yang menunjukkan kelas B lebih beragam.

Hasil analisis dari Visualisasi data

Boxplot

Berdasarkan keempat boxplot yang membandingkan berat badan dan tinggi badan Kelas A dan Kelas B, terlihat bahwa median berat badan Kelas A sedikit lebih tinggi dibanding Kelas B, menunjukkan bahwa siswa Kelas A cenderung memiliki berat badan yang lebih besar. Sebaran berat badan Kelas A juga sedikit lebih lebar, yang berarti variasinya lebih besar dibanding Kelas B.

Untuk tinggi badan, median Kelas B juga lebih tinggi dibanding Kelas A, menandakan rata-rata siswa Kelas B memiliki postur lebih tinggi. Sebaran tinggi badan Kelas B relatif merata tanpa outlier, sedangkan pada Kelas A terlihat sebaran yang lebih sempit namun memiliki nilai terendah yang lebih rendah dibanding Kelas B. Secara keseluruhan, Kelas B memiliki rata-rata dan variasi yang lebih besar pada kedua variabel, sementara Kelas A cenderung lebih homogen.

Histogram

Pada berat badan, histogram Kelas A memperlihatkan sebaran yang lebih luas dengan variasi nilai dari yang rendah hingga tinggi, sedangkan Kelas B memiliki distribusi yang lebih sempit, menandakan berat badan siswa di kelas tersebut relatif seragam.

Untuk tinggi badan, puncak distribusi Kelas B berada pada kisaran nilai yang lebih tinggi dibandingkan Kelas A, dengan rentang sebaran yang juga lebih besar. Sementara itu, Kelas B menunjukkan distribusi tinggi badan yang lebih terkonsentrasi pada kisaran menengah dan hanya memiliki sedikit variasi ekstrem.