Visualisasi Data

Assignment Week-4


Foto Kelompok 3

1 Pendahuluan

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: Rata-rata IPK per Fakultas

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

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()

# Tujuan: Melihat distribusi data numerik (nilai UAS)

3.0.3 Boxplot: Distribusi Kehadiran per Fakultas

ggplot(data_mahasiswa, aes(x = Fakultas, y = Kehadiran, fill = Fakultas)) +
  geom_boxplot() +
  labs(title = "Distribusi Kehadiran per Fakultas", y = "Kehadiran (%)") +
  theme_minimal()

# Tujuan: Mengetahui penyebaran data dan mendeteksi outlier

3.0.4 Pie Chart: Proporsi Mahasiswa per Fakultas

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()

# Tujuan: Menunjukkan proporsi kategori mahasiswa per fakultas

3.0.5 Scatter Plot: Waktu Belajar vs Nilai UAS

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'

# Tujuan: Melihat hubungan antara dua variabel numerik

3.0.6 Line Plot: Nilai UAS per Mahasiswa (tren)

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))

# Tujuan: Menampilkan tren/urutan data nilai per mahasiswa

3.0.7 Density Plot: Estimasi distribusi IPK

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()

# Tujuan: Mengestimasi distribusi probabilitas variabel numerik

3.0.8 Ridgeline Plot: Distribusi Nilai UAS per Fakultas

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

# Tujuan: Membandingkan distribusi beberapa kelompok sekaligus
LS0tDQp0aXRsZTogIlZpc3VhbGlzYXNpIERhdGEiDQpzdWJ0aXRsZTogIkFzc2lnbm1lbnQgV2Vlay00Ig0KYXV0aG9yOg0KLSAiS2Vsb21wb2sgMyIgDQotICJOYWlmYWggRWRyaWEgQXJ0YSAoNTIyNTAwNTYpIg0KLSAiRnJpenp5IExpdGhtZW5zeWFoICg1MjI1MDA2MikiDQotICJMdWx1IE5hamxhIFNhbHNhYmlsYSAoNTIyNTAwNjkpIg0KLSAiTmFpbGEgU3lhaHJhbmkgUHV0cmkgKDUyMjUwMDcwKSINCi0gIk5pLiBNZCBBdXJvcmEgU2VrYXJuaW5ncnVtICg1MjI1MDA3MikiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJlYWR0aGVkb3duOg0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgdGh1bWJuYWlsczogdHJ1ZQ0KICAgIGxpZ2h0Ym94OiB0cnVlDQogICAgZ2FsbGVyeTogdHJ1ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KICAgIGxpYl9kaXI6IGxpYnMNCiAgICBkZl9wcmludDogInBhZ2VkIg0KICAgIGNvZGVfZm9sZGluZzogInNob3ciDQogICAgY29kZV9kb3dubG9hZDogeWVzDQotLS0NCg0KPGNlbnRlcj4NCjxpbWcgc3JjPSJDOi9Vc2Vycy9hY2VyL0RvY3VtZW50cy9XaGF0c0FwcCBJbWFnZSAyMDI1LTEwLTE2IGF0IDE4LjQyLjA2X2Y1NGNiNzliLmpwZyIgd2lkdGg9IjMwMCI+PGJyPg0KPGI+Rm90byBLZWxvbXBvayAzPC9iPg0KPC9jZW50ZXI+DQoNCi0tLQ0KDQojIFBlbmRhaHVsdWFuDQoNCg0KDQoNCiMgUGVyc2lhcGFuIERhdGENCmBgYHtyfQ0KZGF0YV9tYWhhc2lzd2EgPC0gZGF0YS5mcmFtZSgNCiAgSURfTWFoYXNpc3dhID0gYygiTTAwMSIsICJNMDAyIiwgIk0wMDMiLCAiTTAwNCIsICJNMDA1IiwgDQogICAgICAgICAgICAgICAgICAgIk0wMDYiLCAiTTAwNyIsICJNMDA4IiwgIk0wMDkiLCAiTTAxMCIsIA0KICAgICAgICAgICAgICAgICAgICJNMDExIiwgIk0wMTIiKSwNCiAgRmFrdWx0YXMgPSBjKCJUZWtuaWsiLCAiVGVrbmlrIiwgIktlZG9rdGVyYW4iLCAiSHVrdW0iLCAiS2Vkb2t0ZXJhbiIsIA0KICAgICAgICAgICAgICAgIkh1a3VtIiwgIlRla25payIsICJIdWt1bSIsICJLZWRva3RlcmFuIiwgIkh1a3VtIiwNCiAgICAgICAgICAgICAgICJUZWtuaWsiLCAiS2Vkb2t0ZXJhbiIpLA0KICBOaWxhaV9VQVMgPSBjKDg1LCA3OCwgOTIsIDcwLCA4OCwgNjQsIDk0LCA3MywgODEsIDc3LCA5MCwgODYpLA0KICBXYWt0dV9iZWxhamFyID0gYygxMCwgOCwgMTUsIDYsIDEyLCA0LCAxNiwgNywgMTAsIDksIDEzLCAxMSksDQogIEtlaGFkaXJhbiA9IGMoOTUsIDg4LCA5OCwgODIsIDk3LCA3NSwgOTksIDg1LCA5MSwgODksIDk2LCA5MyksDQogIElQSyA9IGMoMy43LCAzLjQsIDMuOSwgMi45LCAzLjgsIDIuNiwgNC4wLCAzLjMsIDMuNSwgMy4yLCAzLjgsIDMuNiksDQogIEdlbmRlciA9IGMoIkwiLCAiUCIsICJMIiwgIlAiLCAiTCIsICJQIiwgIkwiLCAiTCIsICJMIiwgIlAiLCAiUCIsICJMIiksDQogIFNlbWVzdGVyID0gYyg1LCA0LCAzLCAzLCA1LCA2LCA2LCA1LCA0LCA0LCAzLCA2KQ0KKQ0KDQoNCnByaW50IChkYXRhX21haGFzaXN3YSkNCmBgYA0KDQojIFZpc3VhbGlzYXNpIGRhdGENCg0KIyMjIEJhciBDaGFydDogUmF0YS1yYXRhIElQSyBwZXIgRmFrdWx0YXMNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KDQpnZ3Bsb3QoZGF0YV9tYWhhc2lzd2EsIGFlcyh4ID0gRmFrdWx0YXMsIHkgPSBJUEssIGZpbGwgPSBGYWt1bHRhcykpICsNCiAgc3RhdF9zdW1tYXJ5KGZ1biA9IG1lYW4sIGdlb20gPSAiYmFyIikgKw0KICBsYWJzKHRpdGxlID0gIlJhdGEtcmF0YSBJUEsgcGVyIEZha3VsdGFzIiwgeSA9ICJJUEsgUmF0YS1yYXRhIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQoNCiMjIyBIaXN0b2dyYW06IERpc3RyaWJ1c2kgTmlsYWkgVUFTDQpgYGB7cn0NCmdncGxvdChkYXRhX21haGFzaXN3YSwgYWVzKHggPSBOaWxhaV9VQVMpKSArDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gNSwgZmlsbCA9ICJza3libHVlIiwgY29sb3IgPSAiYmxhY2siKSArDQogIGxhYnModGl0bGUgPSAiRGlzdHJpYnVzaSBOaWxhaSBVQVMiLCB4ID0gIk5pbGFpIFVBUyIsIHkgPSAiRnJla3VlbnNpIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCg0KIyBUdWp1YW46IE1lbGloYXQgZGlzdHJpYnVzaSBkYXRhIG51bWVyaWsgKG5pbGFpIFVBUykNCmBgYA0KDQoNCiMjIyBCb3hwbG90OiBEaXN0cmlidXNpIEtlaGFkaXJhbiBwZXIgRmFrdWx0YXMNCmBgYHtyfQ0KZ2dwbG90KGRhdGFfbWFoYXNpc3dhLCBhZXMoeCA9IEZha3VsdGFzLCB5ID0gS2VoYWRpcmFuLCBmaWxsID0gRmFrdWx0YXMpKSArDQogIGdlb21fYm94cGxvdCgpICsNCiAgbGFicyh0aXRsZSA9ICJEaXN0cmlidXNpIEtlaGFkaXJhbiBwZXIgRmFrdWx0YXMiLCB5ID0gIktlaGFkaXJhbiAoJSkiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIFR1anVhbjogTWVuZ2V0YWh1aSBwZW55ZWJhcmFuIGRhdGEgZGFuIG1lbmRldGVrc2kgb3V0bGllcg0KYGBgDQoNCg0KDQojIyMgUGllIENoYXJ0OiBQcm9wb3JzaSBNYWhhc2lzd2EgcGVyIEZha3VsdGFzDQpgYGB7cn0NCnBpZV9kYXRhIDwtIGFzLmRhdGEuZnJhbWUodGFibGUoZGF0YV9tYWhhc2lzd2EkRmFrdWx0YXMpKQ0KY29sbmFtZXMocGllX2RhdGEpIDwtIGMoIkZha3VsdGFzIiwgIkp1bWxhaCIpDQoNCmdncGxvdChwaWVfZGF0YSwgYWVzKHggPSAiIiwgeSA9IEp1bWxhaCwgZmlsbCA9IEZha3VsdGFzKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5Iiwgd2lkdGggPSAxKSArDQogIGNvb3JkX3BvbGFyKCJ5Iiwgc3RhcnQgPSAwKSArDQogIGxhYnModGl0bGUgPSAiUHJvcG9yc2kgTWFoYXNpc3dhIHBlciBGYWt1bHRhcyIpICsNCiAgdGhlbWVfdm9pZCgpDQoNCiMgVHVqdWFuOiBNZW51bmp1a2thbiBwcm9wb3JzaSBrYXRlZ29yaSBtYWhhc2lzd2EgcGVyIGZha3VsdGFzDQpgYGANCg0KDQojIyMgU2NhdHRlciBQbG90OiBXYWt0dSBCZWxhamFyIHZzIE5pbGFpIFVBUw0KYGBge3J9DQpnZ3Bsb3QoZGF0YV9tYWhhc2lzd2EsIGFlcyh4ID0gV2FrdHVfYmVsYWphciwgeSA9IE5pbGFpX1VBUywgY29sb3IgPSBGYWt1bHRhcykpICsNCiAgZ2VvbV9wb2ludChzaXplID0gMykgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBzZSA9IEZBTFNFLCBsaW5ldHlwZSA9ICJkYXNoZWQiKSArDQogIGxhYnModGl0bGUgPSAiSHVidW5nYW4gV2FrdHUgQmVsYWphciB2cyBOaWxhaSBVQVMiLA0KICAgICAgIHggPSAiV2FrdHUgQmVsYWphciAoamFtKSIsDQogICAgICAgeSA9ICJOaWxhaSBVQVMiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIFR1anVhbjogTWVsaWhhdCBodWJ1bmdhbiBhbnRhcmEgZHVhIHZhcmlhYmVsIG51bWVyaWsNCmBgYA0KDQoNCiMjIyBMaW5lIFBsb3Q6IE5pbGFpIFVBUyBwZXIgTWFoYXNpc3dhICh0cmVuKQ0KYGBge3J9DQpnZ3Bsb3QoZGF0YV9tYWhhc2lzd2EsIGFlcyh4ID0gSURfTWFoYXNpc3dhLCB5ID0gTmlsYWlfVUFTLCBncm91cCA9IDEpKSArDQogIGdlb21fbGluZShjb2xvciA9ICJibHVlIikgKw0KICBnZW9tX3BvaW50KHNpemUgPSAzLCBjb2xvciA9ICJyZWQiKSArDQogIGxhYnModGl0bGUgPSAiTmlsYWkgVUFTIHBlciBNYWhhc2lzd2EiLCB4ID0gIklEIE1haGFzaXN3YSIsIHkgPSAiTmlsYWkgVUFTIikgKw0KICB0aGVtZV9taW5pbWFsKCkgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEpKQ0KDQojIFR1anVhbjogTWVuYW1waWxrYW4gdHJlbi91cnV0YW4gZGF0YSBuaWxhaSBwZXIgbWFoYXNpc3dhDQpgYGANCg0KDQoNCiMjIyBEZW5zaXR5IFBsb3Q6IEVzdGltYXNpIGRpc3RyaWJ1c2kgSVBLDQpgYGB7cn0NCmdncGxvdChkYXRhX21haGFzaXN3YSwgYWVzKHggPSBJUEssIGZpbGwgPSBGYWt1bHRhcykpICsNCiAgZ2VvbV9kZW5zaXR5KGFscGhhID0gMC41KSArDQogIGxhYnModGl0bGUgPSAiRGVuc2l0eSBQbG90IElQSyBwZXIgRmFrdWx0YXMiLCB4ID0gIklQSyIsIHkgPSAiRGVuc2l0eSIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQoNCiMgVHVqdWFuOiBNZW5nZXN0aW1hc2kgZGlzdHJpYnVzaSBwcm9iYWJpbGl0YXMgdmFyaWFiZWwgbnVtZXJpaw0KYGBgDQoNCg0KIyMjICBSaWRnZWxpbmUgUGxvdDogRGlzdHJpYnVzaSBOaWxhaSBVQVMgcGVyIEZha3VsdGFzDQpgYGB7cn0NCmxpYnJhcnkoZ2dyaWRnZXMpDQoNCmdncGxvdChkYXRhX21haGFzaXN3YSwgYWVzKHggPSBOaWxhaV9VQVMsIHkgPSBGYWt1bHRhcywgZmlsbCA9IEZha3VsdGFzKSkgKw0KICBnZW9tX2RlbnNpdHlfcmlkZ2VzKGFscGhhID0gMC43KSArDQogIGxhYnModGl0bGUgPSAiUmlkZ2VsaW5lIFBsb3QgTmlsYWkgVUFTIHBlciBGYWt1bHRhcyIsIHggPSAiTmlsYWkgVUFTIiwgeSA9ICJGYWt1bHRhcyIpICsNCiAgdGhlbWVfcmlkZ2VzKCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpDQoNCiMgVHVqdWFuOiBNZW1iYW5kaW5na2FuIGRpc3RyaWJ1c2kgYmViZXJhcGEga2Vsb21wb2vCoHNla2FsaWd1cw0KYGBg