Data Kesehatan Mahasiswa

Practicum ~ Week 4

Logo


1 Pendahuluan

Mahasiswa biasanya memiliki aktivitas kuliah yang padat, mulai dari tugas, kegiatan organisasi, hingga jadwal perkuliahan yang sering kali membuat waktu untuk menjaga kesehatan menjadi terbatas. Kondisi ini dapat memengaruhi pola hidup mereka, terutama dalam hal kebiasaan berolahraga, konsumsi air putih, dan kebiasaan merokok.

Berdasarkan hal tersebut, penting untuk mengetahui sejauh mana mahasiswa menjaga pola hidup sehatnya. Oleh karena itu, pada tugas praktikum ini diambil tema Kesehatan Mahasiswa sebagai upaya untuk memahami kebiasaan dan pola hidup sehat mahasiswa.

Tujuan dari analisis ini adalah untuk melihat kebiasaan mahasiswa dalam menjaga kesehatan sehari-hari, seperti kebiasaan berolahraga, minum air putih, dan merokok.

2 Persiapan Data

Dataset yang digunakan berisi 25 observasi mahasiswa dengan 6 variabel, yaitu:

  1. Nama: Identitas Responden
  2. Kelas: A/B/Yang lain (Kategorikal, Nominal)
  3. Berat Badan: Dalam bentuk kg (Numerik, Kontinu)
  4. Kebiasaan Olahraga: Sangat jarang, Jarang, Sering (Kategorikal, Ordinal)
  5. Status Merokok: Merokok/Tidak Merokok (Kategorikal, Nominal)
  6. Jumlah Gelas Air Putih per Hari: Jumlah gelas (Numerik, Diskrit)

Data diperoleh melalui kuisioner yang dibagikan kepada teman-teman mahasiswa.

Analisis dilakukan menggunakan R Studio. Langkah pertama adalah mengimpor data dari Excel ke R menggunakan fungsi read_excel() dan memastikan proses impor berjalan dengan benar. Selanjutnya dilakukan pemeriksaan struktur data dan memastikan setiap variabel memiliki tipe data yang sesuai, serta menggunakan paket ggplot untuk memvisualisasikan pola data yang lebih mudah dipahami.

library(readxl)
library(ggplot2)
library(knitr)
library(DT)

# Import Data Excel
data_kesehatan <- read_excel("data_kesehatan.xlsx")

# Ganti Nama Variabel
colnames(data_kesehatan) <- c("Timestamp", "Nama", "Kelas", "BB", "Kebiasaan_Olahraga", "Merokok", "Gelas")

# Mengubah Tipe Data
data_kesehatan$BB <- as.numeric(data_kesehatan$BB)
data_kesehatan$Gelas <- as.numeric(data_kesehatan$Gelas)
data_kesehatan$Kebiasaan_Olahraga <- factor(data_kesehatan$Kebiasaan_Olahraga,
                                  levels = c("Sangat Jarang", "Jarang", "Sering"),
                                  ordered = TRUE)
data_kesehatan$Merokok <- tolower(trimws(data_kesehatan$Merokok))
data_kesehatan$Merokok <- ifelse(grepl("iya", data_kesehatan$Merokok), "Iya", "Tidak")

datatable(head(data_kesehatan, 24), caption = "Data Kesehatan Mahasiswa")

3 Visualisasi Data

Visualisasi data adalah cara menyajikan atau mempresentasikan data dalam bentuk visual seperti gambar, grafik, atau diagram, agar data informasi lebih mudah dipahami. Melalui visualisasi, pola atau hubungan antarvariabel dapat terlihat lebih jelas dibanding hanya melihat data mentah.

Pada analisis ini, data mengenai Kesehatan Mahasiswa akan divisualisasikan dalam bentuk:

  1. Bar Chart: Untuk membandingkan jumlah mahasiswa berdasarkan tingkat kebiasaan olahraga.
  2. Histogram: Untuk menunjukkan distribusi berat badan mahasiswa.
  3. Box Plot: Untuk membandingkan berat badan antara mahasiswa yang merokok dan tidak merokok.
  4. Pie Chart: Untuk menampilkan perbandingan proporsi mahasiswa yang merokok dan tidak merokok.
  5. Scatter Plot: Untuk memvisualisasikan hubungan antara berat badan dan jumlah air putih yang diminum per hari.
  6. Line Plot: Untuk memperlihatkan pola perubahan atau perbandingan antara berat badan dan jumlah air putih yang diminum per hari.
  7. Density Plot: Untuk menunjukkan sebaran atau kepadatan data berat badan mahasiswa dalam bentuk kurva yang halus.
  8. Ridgeline Plot: Untuk membandingkan distribusi berat badan di tiap kategori kebiasaan olahraga dalam bentuk grafik halus.

Berikut ini adalah penjelasan lebih kompleks mengenai beberapa bentuk visualisasi yang digunakan beserta kelebihan dan kekurangannya.

3.1 Bar Chart

Bar Chart digunakan untuk menampilkan data kategorikal dalam bentuk batang, di mana sumbu X merepresentasikan kategori, sedangkan sumbu Y menunjukkan nilai atau frekuensi dari tiap kategori. Tinggi batang menggambarkan banyaknya data dalam setiap kategori tersebut.

Pada dataset ini, grafik digunakan untuk memperlihatkan kebiasaan olahraga mahasiswa berdasarkan tiga kategori yaitu: Sangat Jarang, Jarang, dan Sering. Visualisasi ini membantu melihat perbandingan tingkat aktivitas olahraga antar mahasiswa secara cepat dan jelas.

Kelebihan:

  • Mudah dibaca dan efektif untuk membandingkan kategori.
  • Memberikan gambaran langsung tentang distribusi frekuensi.

Kekurangan:

  • Tidak cocok untuk data numerik kontinu.
  • Kurang efisien jika jumlah kategori terlalu banyak.
library(ggplot2)

ggplot(data_kesehatan, aes(x = Kebiasaan_Olahraga)) +
  geom_bar(fill = "steelblue") +
   scale_y_continuous(breaks = seq(0, 20, by = 2)) + #Jumlah orang di sb y
  labs(
    title = "Kebiasaan Olahraga Mahasiswa",
    x = "Kategori Kebiasaan Olahraga",
    y = "Jumlah Mahasiswa"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
    axis.text = element_text(size = 10),
    legend.position = "none"
  )

Kesimpulan: Sebagian besar mahasiswa memiliki kebiasaan olahraga yang jarang, menunjukkan bahwa masih rendahnya kesadaran aktivitas olahraga di kalangan responden dan perlu ditingkatkan.

3.2 Histogram

Histogram digunakan untuk menampilkan distribusi data numerik kontinu dalam bentuk batang yang saling berdekatan di sepanjang sumbu X. Setiap batang mewakili rentang nilai (interval), sedangkan tinggi batang menunjukkan frekuensi data pada interval tersebut.

Dalam dataset ini, histogram memperlihatkan distribusi Berat Badan (BB) Mahasiswa, sehingga memudahkan dalam melihat persebaran berat badan responden dan mendeteksi kelompok nilai yang paling sering muncul.

Kelebihan:

  • Dapat menggambarkan pola distribusi data dan mendeteksi pencilan dengan mudah.
  • Efektif untuk mengenali bentuk sebaran data.

Kekurangan:

  • Tidak sesuai untuk data kategorikal.
  • Hasil visual bisa berbeda tergantung jumlah atau lebar interval (binwidth) yang digunakan.
library(ggplot2)

ggplot(data_kesehatan, aes(x = BB)) +
  geom_histogram(
    binwidth = 5,          # jumlah batang
    fill = "royalblue",    # warna batang
    color = "black",       # warna garis tepi
    alpha = 0.8,           # transparansi
    boundary = 40
  ) +
  scale_x_continuous(
    breaks = seq(40, 85, by = 5),
    limits = c(40, 85)) +
  scale_y_continuous(breaks = seq(0, 10, by = 1)) +
  labs(
    title = "Distribusi Berat Badan Mahasiswa",
    x = "Berat Badan (kg)",
    y = "Jumlah Mahasiswa"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold")
  )

Kesimpulan: Sebagian besar mahasiswa memiliki berat badan pada rentang 50–60 kg, menunjukkan bahwa mayoritas responden memiliki kondisi fisik yang relatif seimbang.

3.3 Boxplot

Boxplot digunakan untuk menampilkan penyebaran data numerik yang menggunakan kotak dan garis. Biasa digunakan untuk menggambarkan penyebaran data numerik serta menampilkan median, kuartil, dan mendeteksi outlier. Visualisasi ini membantu dalam mengidentifikasi sebaran data, perbedaan antar kelompok, serta mendeteksi pencilan (outlier) dengan cepat.

Dalam dataset ini, boxplot digunakan untuk membandingkan berat badan mahasiswa berdasarkan kebiasaan merokok, dengan tujuan melihat apakah terdapat perbedaan distribusi antara kelompok yang merokok dan yang tidak merokok.

Kelebihan:

  • Efektif untuk menggambarkan persebaran data dan mendeteksi outlier.
  • Cocok untuk membandingkan beberapa kelompok sekaligus.

Kekurangan:

  • Tidak menampilkan detail bentuk distribusi (misalnya apakah miring ke kanan/kiri).
  • Bisa menyesatkan jika ukuran sampel terlalu kecil.
library(ggplot2)

ggplot(data_kesehatan, aes(x = Merokok, y = BB, fill = Merokok)) +
  geom_boxplot(alpha = 0.7, outlier.color = "navy") +  # membuat boxplot
  labs(
    title = "Perbandingan Berat Badan Berdasarkan Kebiasaan Merokok",
    x = "Kebiasaan Merokok",
    y = "Berat Badan (kg)"
  ) +
  scale_fill_manual(values = c("dodgerblue", "steelblue")) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold")
  )

Kesimpulan: Boxplot menunjukkan bahwa perbedaan berat badan antara mahasiswa yang merokok dan tidak merokok tidak signifikan. Sebaran berat badan relatif serupa pada kedua kelompok, sehingga kebiasaan merokok tidak menunjukkan pengaruh yang jelas terhadap berat badan mahasiswa.

3.4 Pie Chart

PPie Chart merupakan visualisasi data berbentuk lingkaran yang dibagi menjadi beberapa irisan untuk menunjukkan proporsi tiap kategori terhadap total keseluruhan. Setiap potongan mewakili bagian dari total data, sehingga mudah untuk melihat perbandingan antar kategori secara visual.

Dalam dataset ini, diagram lingkaran digunakan untuk menggambarkan proporsi mahasiswa berdasarkan kebiasaan merokok dan pembagian kelas. Grafik ini membantu memahami distribusi kategori dalam populasi agar lebih mudah melihat perbandingan keduanya.

Kelebihan:

  • Sangat mudah dipahami karena menunjukkan proporsi secara visual.
  • Efektif untuk menggambarkan bagian terhadap keseluruhan (perbandingan kelompok kategori).

Kekurangan:

  • Kurang efisien untuk kategori yang banyak atau dengan perbedaan kecil antar nilai.
  • Tidak menampilkan nilai absolut secara detail.
library(ggplot2)
library(patchwork)

p1 <- ggplot(data_kesehatan, aes(x = "", fill = Merokok)) +
  geom_bar(width = 1) +
  coord_polar("y") +
  theme_void() +
  scale_fill_manual(values = c("midnightblue", "cornflowerblue")) +
  labs(title = "Kebiasaan Merokok")

p2 <- ggplot(data_kesehatan, aes(x = "", fill = Kelas)) +
  geom_bar(width = 1) +
  coord_polar("y") +
  theme_void() +
  scale_fill_manual(values = c("midnightblue", "dodgerblue", "lightskyblue", "royalblue", "blue", "cornflowerblue")) +
  labs(title = "Kelas Mahasiswa")

p1 + p2 + plot_annotation(title = "Pie Chart Data Mahasiswa")

Kesimpulan: Sebagian besar mahasiswa tidak merokok, yang menunjukkan kecenderungan gaya hidup sehat di kalangan responden. Selain itu, terlihat bahwa mayoritas mahasiswa berasal dari kelas A dan B, dan distribusi mahasiswa yang tidak merata antar kelas.

3.5 Scatter Plot

Scatter Plot merupakan visualisasi data berupa kumpulan titik yang menunjukkan hubungan antara dua variabel numerik. Setiap titik mewakili satu observasi, dengan posisi ditentukan oleh nilai dari masing-masing variabel pada sumbu X dan Y.

Dalam dataset ini, Scatter Plot digunakan untuk memperlihatkan hubungan antara berat badan mahasiswa dan jumlah konsumsi air putih per hari. Visualisasi ini membantu melihat apakah terdapat pola atau kecenderungan tertentu antara kedua variabel tersebut.

Kelebihan:

  • Dapat menunjukkan pola hubungan atau kecenderungan antar variabel.
  • Memudahkan identifikasi outlier atau sebaran data ekstrem.

Kekurangan:

  • Kurang efektif jika data sangat banyak karena titik-titik bisa saling menumpuk.
  • Tidak secara langsung menunjukkan kekuatan hubungan (tanpa analisis statistik tambahan).
library(ggplot2)    # Scatter plot sederhana: BB vs Gelas

ggplot(data_kesehatan, aes(x = Gelas, y = BB)) +
  geom_point(color = "navy", size = 3, alpha = 0.7) +
  geom_smooth(method = "lm", formula = y ~ x, color = "red", se = FALSE, linewidth = 1) +
  scale_x_continuous(breaks = seq(5, 16, 1)) + # jumlah gelas di sb x
  scale_y_continuous(breaks = seq(42, 86, 4)) + # bb mahasiswa di sb y
  labs(
    title = "Hubungan Berat Badan dan Konsumsi Air Putih",
    x = "Jumlah gelas air putih per hari",
    y = "Berat Badan (kg)"
  ) +
  theme_minimal()

Kesimpulan: Berdasarkan visualisasi scatter plot, titik-titik data tampak tersebar tanpa pola yang jelas. Hal ini menunjukkan bahwa antara Berat Badan dan Jumlah Gelas Air Putih yang diminum per hari tidak memiliki hubungan yang signifikan. Dengan kata lain, banyaknya air putih yang diminum tidak selalu berkaitan langsung dengan berat badan mahasiswa.

3.6 Line Plot

Line Plot adalah visualisasi data yang menampilkan titik-titik yang dihubungkan oleh garis lurus untuk memperlihatkan perubahan nilai dari satu atau lebih variabel secara berurutan. Visualisasi ini efektif digunakan untuk menggambarkan tren, pola, atau perbandingan antar variabel dari waktu ke waktu atau antar kategori.

Dalam dataset ini, Line Plot digunakan untuk membandingkan berat badan mahasiswa dan jumlah air putih yang dikonsumsi per hari.

Kelebihan:

  • Menunjukkan tren dan perbedaan antar variabel dengan jelas.
  • Efektif untuk membandingkan dua atau lebih variabel dalam satu tampilan.

Kekurangan:

  • Kurang cocok untuk data kategorikal yang tidak memiliki urutan alami.
  • Garis bisa menyesatkan jika data tidak berkesinambungan (misalnya per individu).
library(ggplot2)
library(tidyr)

data_long <- data_kesehatan %>%             # Membuat data line plot
  pivot_longer(cols = c(BB, Gelas), 
               names_to = "Variabel", 
               values_to = "Nilai")

ggplot(data_long, aes(x = Nama, y = Nilai, color = Variabel, group = Variabel)) +
  geom_line(linewidth = 1.2) +          # Membuat garis
  geom_point(size = 2) +           # Menambahkan titik di setiap data
  theme_minimal() +                
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.title = element_text(size = 10),
    legend.text = element_text(size = 9)
  ) +
  labs(
    title = "Perbandingan Berat Badan dan Jumlah Air Putih per Hari",
    x = "Nama",
    y = "Nilai",
    color = "Variabel"
  )

Kesimpulan: Berdasarkan line plot, terlihat bahwa variasi berat badan antar mahasiswa cenderung lebih besar dibandingkan jumlah air putih yang diminum per hari. Meskipun beberapa mahasiswa dengan berat badan lebih tinggi juga mengonsumsi air putih dalam jumlah banyak, secara umum tidak terlihat hubungan yang kuat antara berat badan dan jumlah air putih yang diminum. Hal ini menunjukkan bahwa banyaknya air putih yang dikonsumsi tidak secara langsung memengaruhi berat badan mahasiswa.

3.7 Density Plot

Density Plot adalah visualisasi yang menampilkan distribusi data numerik secara halus dalam bentuk kurva kepadatan. Grafik ini menggambarkan bagaimana nilai-nilai suatu variabel tersebar dan seberapa sering nilai tertentu muncul dalam data.

Dalam dataset ini, Density Plot digunakan untuk menggambarkan sebaran berat badan mahasiswa dan memperkirakan area dengan konsentrasi data tertinggi.

Kelebihan:

  • Menunjukkan bentuk distribusi data dengan lebih halus dibandingkan histogram.
  • Memudahkan identifikasi kecenderungan dan nilai rata-rata.

Kekurangan:

  • Interpretasi bisa salah jika jumlah data sedikit atau distribusinya tidak merata.
  • Tidak menunjukkan frekuensi absolut.
library(ggplot2)

ggplot(data_kesehatan, aes(x = BB)) +
  geom_density(fill = "blue", alpha = 0.5) +
  scale_x_continuous(breaks = seq(40, 85, 5)) + # BB di sb x
  labs(title = "Density Plot Berat Badan",
       x = "Berat Badan (kg)",
       y = "Kepadatan") +
  theme_minimal()

Kesimpulan: Berdasarkan density plot berat badan, sebagian besar mahasiswa memiliki berat badan di kisaran 45–55 kg, dan hanya sedikit yang berada di atas 70 kg. Distribusi berat badan cenderung miring ke kanan, menunjukkan beberapa orang yang beratnya lebih tinggi dari yang lain.

3.8 Ridgeline Plot

Ridgeline Plot adalah visualisasi yang digunakan untuk membandingkan distribusi dari beberapa kelompok data secara bersamaan dalam bentuk kurva bertumpuk. Grafik ini membantu melihat perbedaan pola sebaran antar kelompok dengan cara yang lebih intuitif dan estetis.

Dalam dataset ini, Ridgeline Plot digunakan untuk membandingkan distribusi berat badan mahasiswa berdasarkan kebiasaan olahraga, untuk mengetahui apakah tingkat frekuensi olahraga berpengaruh terhadap pola berat badan.

Kelebihan:

  • Menarik secara visual dan efektif untuk membandingkan banyak distribusi sekaligus.
  • Memberikan gambaran umum perbedaan pola antar kelompok.

Kekurangan:

  • Kurang akurat untuk pembacaan nilai spesifik.
  • Sulit dibaca jika jumlah kelompok terlalu banyak.
library(ggplot2)
library(ggridges)

ggplot(data_kesehatan, aes(x = BB, y = Kebiasaan_Olahraga, fill = Kebiasaan_Olahraga)) +
  geom_density_ridges(bandwidth = 5, alpha = 0.7) +
  scale_x_continuous(breaks = seq(40, 85, 5)) + # BB di sb x
  labs(title = "Ridgeline Plot Berat Badan vs Kebiasaan Olahraga",
       x = "Berat Badan (kg)",
       y = "Kebiasaan Olahraga") +
  theme_minimal() +
  theme(legend.position = "none") 

Kesimpulan: Berdasarkan ridgeline plot, distribusi berat badan mahasiswa yang sering berolahraga tampak lebih stabil dibandingkan kelompok yang jarang berolahraga, yang memiliki sebaran lebih bervariasi. Namun, kelompok “sangat jarang” berolahraga tidak tampak jelas karena jumlah respondennya sedikit, sehingga hubungan antara kebiasaan olahraga dan berat badan belum dapat disimpulkan secara pasti.

4 Insight dan Kesimpulan

Kesimpulan: Berdasarkan hasil keseluruhan analisis dan visualisasi, dapat disimpulkan bahwa:

  1. Kebiasaan olahraga: Mayoritas mahasiswa tergolong jarang berolahraga, meskipun sebagian besar masih memiliki berat badan dalam kisaran normal.
  2. Kebiasaan merokok: Proporsi mahasiswa yang merokok relatif kecil, dan tidak menunjukkan pengaruh yang signifikan terhadap berat badan.
  3. Konsumsi air putih: Sebagian besar mahasiswa telah memenuhi kebutuhan cairan harian yang cukup, walaupun masih terdapat sebagian yang belum mencapai jumlah ideal.

Insight: Secara umum, hasil analisis menunjukkan bahwa mahasiswa cenderung memiliki gaya hidup cukup sehat, terutama dalam hal konsumsi air putih dan kebiasaan tidak merokok. Namun, tingkat aktivitas olahraga masih perlu ditingkatkan, mengingat kebiasaan olahraga yang rendah berpotensi memengaruhi kebugaran dan kestabilan berat badan dalam jangka panjang.