Visualisasi Data
Assignment Week-4
Foto Kelompok 3
1 Pendahuluan
1.0.1 Tujuan
Tujuan dari visualisasi data ini adalah untuk menganalisis hubungan antara variabel-variabel akademik seperti nilai UAS, IPK, waktu belajar, dan kehadiran. Melalui visualisasi, dapat diketahui pola atau tren kinerja mahasiswa, membandingkan prestasi antar fakultas, serta mengidentifikasi faktor yang paling berpengaruh terhadap hasil belajar.
1.0.2 Dataset
library(knitr)
#membuat tabel deskripsi variabel
data_description <- data.frame(
Column = c(
"ID_Mahasiswa",
"Fakultas",
"Nilai_UAS",
"Waktu_belajar",
"Kehadiran",
"IPK",
"Gender",
"Semester"
),
Data_Type = c(
"Categorical",
"Categorical",
"Numerical",
"Numerical",
"Numerical",
"Numerical",
"Categorical",
"Numerical"
),
Subtype = c(
"Nominal",
"Nominal",
"Continuous",
"Continuous",
"Continuous",
"Continuous",
"Nominal",
"Discrete"
),
Description = c(
"Kode unik untuk setiap mahasiswa",
"Fakultas tempat mahasiswa terdaftar (Teknik, Hukum, Kedokteran)",
"Nilai ujian akhir semester yang diperoleh mahasiswa",
"Jumlah jam belajar mandiri mahasiswa per minggu",
"Persentase kehadiran mahasiswa selama perkuliahan",
"Indeks Prestasi Kumulatif mahasiswa",
"Jenis kelamin mahasiswa (L = Laki-laki, P = Perempuan)",
"Semester yang sedang ditempuh oleh mahasiswa"
)
)
# Menampilkan tabel seperti di laporan akademik
kable(
data_description,
caption = "Table 1. Data Description Table for the Mahasiswa Dataset",
align = "lccc"
)| Column | Data_Type | Subtype | Description |
|---|---|---|---|
| ID_Mahasiswa | Categorical | Nominal | Kode unik untuk setiap mahasiswa |
| Fakultas | Categorical | Nominal | Fakultas tempat mahasiswa terdaftar (Teknik, Hukum, Kedokteran) |
| Nilai_UAS | Numerical | Continuous | Nilai ujian akhir semester yang diperoleh mahasiswa |
| Waktu_belajar | Numerical | Continuous | Jumlah jam belajar mandiri mahasiswa per minggu |
| Kehadiran | Numerical | Continuous | Persentase kehadiran mahasiswa selama perkuliahan |
| IPK | Numerical | Continuous | Indeks Prestasi Kumulatif mahasiswa |
| Gender | Categorical | Nominal | Jenis kelamin mahasiswa (L = Laki-laki, P = Perempuan) |
| Semester | Numerical | Discrete | Semester yang sedang ditempuh oleh mahasiswa |
1.0.3 Konteks Kasus
Dalam kasus ini, pihak universitas ingin melakukan evaluasi terhadap kinerja mahasiswa dari beberapa fakultas, yaitu Teknik, Hukum, dan Kedokteran. Analisis dilakukan untuk melihat apakah tingkat kehadiran dan waktu belajar berhubungan dengan nilai UAS dan IPK mahasiswa. Hasil visualisasi diharapkan dapat membantu pihak akademik dalam menentukan strategi pembelajaran yang lebih efektif serta memberikan dukungan yang tepat bagi mahasiswa yang mengalami penurunan kinerja
2 Persiapan Data
data_mahasiswa <- data.frame(
ID_Mahasiswa = c("M001", "M002", "M003", "M004", "M005",
"M006", "M007", "M008", "M009", "M010",
"M011", "M012"),
Fakultas = c("Teknik", "Teknik", "Kedokteran", "Hukum", "Kedokteran",
"Hukum", "Teknik", "Hukum", "Kedokteran", "Hukum",
"Teknik", "Kedokteran"),
Nilai_UAS = c(85, 78, 92, 70, 88, 64, 94, 73, 81, 77, 90, 86),
Waktu_belajar = c(10, 8, 15, 6, 12, 4, 16, 7, 10, 9, 13, 11),
Kehadiran = c(95, 88, 98, 82, 97, 75, 99, 85, 91, 89, 96, 93),
IPK = c(3.7, 3.4, 3.9, 2.9, 3.8, 2.6, 4.0, 3.3, 3.5, 3.2, 3.8, 3.6),
Gender = c("L", "P", "L", "P", "L", "P", "L", "L", "L", "P", "P", "L"),
Semester = c(5, 4, 3, 3, 5, 6, 6, 5, 4, 4, 3, 6)
)
print (data_mahasiswa)## ID_Mahasiswa Fakultas Nilai_UAS Waktu_belajar Kehadiran IPK Gender
## 1 M001 Teknik 85 10 95 3.7 L
## 2 M002 Teknik 78 8 88 3.4 P
## 3 M003 Kedokteran 92 15 98 3.9 L
## 4 M004 Hukum 70 6 82 2.9 P
## 5 M005 Kedokteran 88 12 97 3.8 L
## 6 M006 Hukum 64 4 75 2.6 P
## 7 M007 Teknik 94 16 99 4.0 L
## 8 M008 Hukum 73 7 85 3.3 L
## 9 M009 Kedokteran 81 10 91 3.5 L
## 10 M010 Hukum 77 9 89 3.2 P
## 11 M011 Teknik 90 13 96 3.8 P
## 12 M012 Kedokteran 86 11 93 3.6 L
## Semester
## 1 5
## 2 4
## 3 3
## 4 3
## 5 5
## 6 6
## 7 6
## 8 5
## 9 4
## 10 4
## 11 3
## 12 6
3 Visualisasi data
3.0.1 Bar Chart
Definisi:
Bar chart digunakan untuk menampilkan dan membandingkan data kategori (kategorikal) dalam bentuk batang tegak atau mendatar. Setiap batang mewakili satu kategori (misalnya Fakultas, Jenis Kelamin, atau Mata Kuliah), dan panjang batang menggambarkan jumlah, rata-rata, atau nilai tertentu dari kategori tersebut.
Aturan Penggunaan:
Gunakan jika data bersifat kategorik atau diskrit.
Sumbu X (horizontal) → kategori.
Sumbu Y (vertikal) → nilai (jumlah, frekuensi, rata-rata, dll).
Hindari terlalu banyak kategori karena grafik bisa jadi sulit dibaca.
kelebihan:
Sangat mudah dipahami oleh semua orang.
Cocok untuk membandingkan nilai antar kategori.
Dapat digunakan dengan berbagai variasi (stacked bar, grouped bar, horizontal bar).
kekurangan:
Tidak cocok untuk data kontinu (angka yang bersambung).
Sulit dibaca jika jumlah kategori terlalu banyak atau label panjang.
library(ggplot2)
ggplot(data_mahasiswa, aes(x = Fakultas, y = IPK, fill = Fakultas)) +
stat_summary(fun = mean, geom = "bar") +
labs(title = "Rata-rata IPK per Fakultas", y = "IPK Rata-rata") +
theme_minimal()3.0.2 Histogram: Distribusi Nilai UAS
Definisi:
Histogram digunakan untuk menunjukkan distribusi frekuensi dari data numerik (misalnya nilai ujian, IPK, tinggi badan, dll). Berbeda dari bar chart, histogram tidak menampilkan kategori melainkan interval nilai (bin). Tiap batang mewakili jumlah data yang berada dalam rentang nilai tertentu.
Aturan Penggunaan:
Gunakan untuk data numerik kontinu.
Sumbu X → interval nilai.
Sumbu Y → frekuensi data dalam interval itu.
Jumlah bin (interval) dapat diatur untuk hasil yang lebih detail atau ringkas.
kelebihan:
Menunjukkan bentuk distribusi data (normal, miring, dll).
Dapat membantu menemukan outlier atau sebaran nilai yang tidak merata.
Kekurangan:
Hasil bisa berubah tergantung pengaturan jumlah bin.
Tidak cocok untuk data kategorik.
Tidak menunjukkan nilai individual.
ggplot(data_mahasiswa, aes(x = Nilai_UAS)) +
geom_histogram(binwidth = 5, fill = "skyblue", color = "black") +
labs(title = "Distribusi Nilai UAS", x = "Nilai UAS", y = "Frekuensi") +
theme_minimal()3.0.3 Boxplot: Distribusi Kehadiran per Fakultas
Definisi:
Boxplot (box-and-whisker plot) menampilkan sebaran data numerik melalui lima ukuran statistik utama: nilai minimum, kuartil pertama (Q1), median, kuartil ketiga (Q3), dan maksimum, serta menandai outlier (data ekstrem).
Aturan Penggunaan:
Gunakan untuk data numerik.
Cocok untuk membandingkan sebaran data antar kelompok (misalnya IPK per fakultas).
Median menunjukkan nilai tengah, panjang kotak menunjukkan tingkat variasi data.
Kelebihan:
Memberikan ringkasan sebaran data secara cepat.
Dapat mendeteksi outlier dengan mudah.
Ideal untuk membandingkan beberapa kelompok data sekaligus.
Kekurangan:
Tidak menunjukkan detail distribusi (seperti bentuk kurva).
Sulit dipahami oleh orang awam.
ggplot(data_mahasiswa, aes(x = Fakultas, y = Kehadiran, fill = Fakultas)) +
geom_boxplot() +
labs(title = "Distribusi Kehadiran per Fakultas", y = "Kehadiran (%)") +
theme_minimal()3.0.4 Pie Chart: Proporsi Mahasiswa per Fakultas
Definisi:
Pie chart menggambarkan proporsi atau persentase dari setiap kategori terhadap total keseluruhan dalam bentuk irisan lingkaran. Setiap potongan (slice) menunjukkan seberapa besar kontribusi suatu kategori dibanding total.
Aturan Penggunaan:
Gunakan untuk data kategorik dengan total = 100%.
Gunakan maksimal 5–6 kategori agar grafik tetap jelas.
Gunakan label persentase agar mudah dibaca.
Kelebihan:
Menarik secara visual dan mudah dipahami.
Cocok untuk menunjukkan perbandingan bagian terhadap keseluruhan.
Kekurangan:
Tidak akurat untuk banyak kategori.
Sulit membandingkan ukuran antar irisan secara tepat.
Tidak menunjukkan nilai absolut.
pie_data <- as.data.frame(table(data_mahasiswa$Fakultas))
colnames(pie_data) <- c("Fakultas", "Jumlah")
ggplot(pie_data, aes(x = "", y = Jumlah, fill = Fakultas)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
labs(title = "Proporsi Mahasiswa per Fakultas") +
theme_void()3.0.5 Scatter Plot: Waktu Belajar vs Nilai UAS
Definisi:
Scatter plot menampilkan hubungan antara dua variabel numerik dalam bentuk titik-titik pada bidang koordinat. Setiap titik mewakili satu data (misalnya satu mahasiswa), dengan posisi X dan Y mewakili dua nilai variabel.
Aturan Penggunaan:
Gunakan untuk menunjukkan korelasi atau hubungan antara dua variabel numerik (misal: Waktu Belajar vs Nilai UAS).
Bisa ditambah warna/shape untuk membedakan kelompok (misalnya fakultas).
Kelebihan:
Menunjukkan hubungan atau pola (positif, negatif, acak).
Bisa mendeteksi outlier.
Cocok untuk analisis korelasi.
Kekurangan:
Tidak cocok untuk data kategorik.
Jika data terlalu banyak, titik bisa saling menumpuk.
ggplot(data_mahasiswa, aes(x = Waktu_belajar, y = Nilai_UAS, color = Fakultas)) +
geom_point(size = 3) +
geom_smooth(method = "lm", se = FALSE, linetype = "dashed") +
labs(title = "Hubungan Waktu Belajar vs Nilai UAS",
x = "Waktu Belajar (jam)",
y = "Nilai UAS") +
theme_minimal()## `geom_smooth()` using formula = 'y ~ x'
3.0.6 Line Plot: Nilai UAS per Mahasiswa
Definisi:
Line plot digunakan untuk menunjukkan perubahan data secara berurutan, biasanya berdasarkan waktu atau urutan tertentu (misalnya tren nilai per semester). Setiap titik data dihubungkan dengan garis, sehingga kita bisa melihat pola tren naik atau turun.
Aturan Penggunaan:
Gunakan untuk data berurutan atau time series.
Sumbu X → waktu atau urutan.
Sumbu Y → nilai yang diukur.
Gunakan warna berbeda jika membandingkan beberapa seri.
Kelebihan:
Sangat bagus untuk menampilkan tren dan perubahan dari waktu ke waktu.
Mudah dibaca dan dimengerti.
Dapat menampilkan beberapa seri data sekaligus.
Kekurangan:
Tidak cocok untuk data yang tidak berurutan.
Bisa membingungkan jika terlalu banyak garis.
ggplot(data_mahasiswa, aes(x = ID_Mahasiswa, y = Nilai_UAS, group = 1)) +
geom_line(color = "blue") +
geom_point(size = 3, color = "red") +
labs(title = "Nilai UAS per Mahasiswa", x = "ID Mahasiswa", y = "Nilai UAS") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))3.0.7 Density Plot: Estimasi distribusi IPK
Definisi:
Density plot adalah grafik yang menunjukkan bentuk distribusi data numerik secara halus (smooth). Mirip histogram, tapi menggantikan batang dengan kurva halus yang memperkirakan kepadatan data. Kurva yang tinggi menunjukkan banyak data di area tersebut.
Aturan Penggunaan:
Gunakan untuk data numerik kontinu.
Cocok untuk membandingkan beberapa kelompok (misalnya distribusi IPK per fakultas).
Biasanya dibuat dengan fungsi geom_density() di R.
Kelebihan:
Menunjukkan bentuk distribusi dengan lebih lembut.
Cocok untuk perbandingan antar kelompok.
Terlihat lebih estetis daripada histogram.
Kekurangan:
Kurang akurat untuk dataset kecil.
Tidak menunjukkan jumlah data secara langsung.
ggplot(data_mahasiswa, aes(x = IPK, fill = Fakultas)) +
geom_density(alpha = 0.5) +
labs(title = "Density Plot IPK per Fakultas", x = "IPK", y = "Density") +
theme_minimal()3.0.8 Ridgeline Plot: Distribusi Nilai UAS per Fakultas
Definisi:
Ridgeline plot (atau joyplot) adalah kumpulan dari beberapa density plot yang ditumpuk secara vertikal, digunakan untuk membandingkan distribusi data antar kategori. Setiap “gelombang” (ridge) mewakili satu kelompok, dan bentuknya menunjukkan pola sebaran nilai dalam kelompok tersebut.
Aturan Penggunaan:
Gunakan untuk membandingkan distribusi data numerik antar kategori (misalnya Nilai UAS per Fakultas).
Biasanya dibuat dengan paket ggridges di R.
Kelebihan:
Visualnya menarik dan informatif.
Mudah melihat perbedaan pola distribusi antar kategori.
Cocok untuk dataset dengan banyak kelompok.
Kekurangan:
Bisa sulit dibaca kalau kategori terlalu banyak.
Tidak menunjukkan nilai numerik yang spesifik.
library(ggridges)
ggplot(data_mahasiswa, aes(x = Nilai_UAS, y = Fakultas, fill = Fakultas)) +
geom_density_ridges(alpha = 0.7) +
labs(title = "Ridgeline Plot Nilai UAS per Fakultas", x = "Nilai UAS", y = "Fakultas") +
theme_ridges() +
theme(legend.position = "none")## Picking joint bandwidth of 2.97
4 Kesimpulan
Berdasarkan visualisasi:
Nilai UAS mahasiswa berbeda antar fakultas, beberapa fakultas memiliki nilai rata-rata lebih tinggi.
Sebaran nilai umumnya normal, tapi ada beberapa outlier.
Mahasiswa dengan waktu belajar lebih tinggi cenderung memperoleh nilai UAS lebih baik.
Ridgeline, Boxplot, dan Pie Chart membantu membandingkan distribusi dan proporsi antar fakultas.
Visualisasi ini mempermudah pemahaman pola akademik mahasiswa dan hubungan antar variabel dengan cepat.