Link Analisis deskriptif ini dilakukan untuk melihat gambaran secara umum mengenai status gizi di Provinsi Jawa Tengah pada tahun 2024. Data ini mencakup beberapa indikator seperti stunting, gizi buruk, dan gizi kurang di tiap kabupaten/kota. Melalui perhitungan nilai rata-rata, median, serta penyebaran data, analisis ini membantu memahami bagaimana kondisi gizi tersebar di berbagai daerah. Visualisasi seperti barchart, piechart, dan plot digunakan agar hasilnya lebih mudah dibaca dan dipahami. Hasil analisis ini diharapkan memberi gambaran awal tentang pola dan perbedaan status gizi di Jawa Tengah.

Lets Import Dataset

library(readxl)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.0     ✔ tibble    3.3.0
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.1.0     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data <- read_excel("C:/Users/Marcella/Downloads/data.xlsx")
View(data)
print(data)
## # A tibble: 35 × 12
##    Kabupaten              Jumlah_Balita BB_Kurang Persentase TB_Balita TB_Pendek
##    <chr>                          <dbl>     <dbl>      <dbl>     <dbl>     <dbl>
##  1 3301 Kab. Cilacap             106892      8956        8.4    106892      5235
##  2 3302 Kab. Banyumas             95468     12538       13.1     95468     14477
##  3 3303 Kab. Purbalingga          57631      6424       11.1     57631      7114
##  4 3304 Kab. Banjarnegara         52667      6020       11.4     52667      9018
##  5 3305 Kab. Kebumen              73895      9266       12.5     73895      6870
##  6 3306 Kab. Purworejo            38335      5208       13.6     38335      6107
##  7 3307 Kab. Wonosobo             47922      4919       10.3     47922      8741
##  8 3308 Kab. Magelang             71428      8598       12       71428     10914
##  9 3309 Kab. Boyolali             58437      5224        8.9     58437      6994
## 10 3310 Kab. Klaten               61905      8636       14       61905      8620
## # ℹ 25 more rows
## # ℹ 6 more variables: Persentase_TB <dbl>, Gizi_Balita <dbl>,
## #   Gizi_Kurang <dbl>, Persentase_Gizi <dbl>, Gizi_Buruk <dbl>,
## #   Persentase_GB <dbl>
summary(data)
##   Kabupaten         Jumlah_Balita      BB_Kurang       Persentase   
##  Length:35          Min.   :  4518   Min.   :  429   Min.   : 4.20  
##  Class :character   1st Qu.: 43416   1st Qu.: 4266   1st Qu.: 9.20  
##  Mode  :character   Median : 53761   Median : 5711   Median :11.30  
##                     Mean   : 56231   Mean   : 6005   Mean   :10.99  
##                     3rd Qu.: 74936   3rd Qu.: 7997   3rd Qu.:13.10  
##                     Max.   :106892   Max.   :13008   Max.   :17.90  
##    TB_Balita        TB_Pendek     Persentase_TB    Gizi_Balita    
##  Min.   :  4518   Min.   :  503   Min.   : 2.50   Min.   :  4518  
##  1st Qu.: 43416   1st Qu.: 2874   1st Qu.: 7.40   1st Qu.: 43416  
##  Median : 53761   Median : 5235   Median : 9.80   Median : 53761  
##  Mean   : 56231   Mean   : 5630   Mean   :10.08   Mean   : 56231  
##  3rd Qu.: 74936   3rd Qu.: 7054   3rd Qu.:13.10   3rd Qu.: 74936  
##  Max.   :106892   Max.   :15750   Max.   :18.20   Max.   :106892  
##   Gizi_Kurang   Persentase_Gizi   Gizi_Buruk     Persentase_GB   
##  Min.   : 168   Min.   :2.200   Min.   :   0.0   Min.   :0.0000  
##  1st Qu.:1837   1st Qu.:3.950   1st Qu.:  47.0   1st Qu.:0.1500  
##  Median :2814   Median :5.200   Median : 159.0   Median :0.3000  
##  Mean   :3081   Mean   :5.474   Mean   : 246.8   Mean   :0.3771  
##  3rd Qu.:3955   3rd Qu.:7.050   3rd Qu.: 308.0   3rd Qu.:0.4500  
##  Max.   :7507   Max.   :8.900   Max.   :1091.0   Max.   :1.3000

FOKUS UTAMA

Jumlah Balita Diukur, Balita Pendek, Gizi Balita, Gizi Kurang, dan Gizi Buruk

Jumlah Balita Diukur TB(Mean, Median, Mod)

summary(data$TB_Balita)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4518   43416   53761   56231   74936  106892

Balita Pendek (Mean, Median, Mod)

summary(data$TB_Pendek)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     503    2874    5235    5630    7054   15750

Gizi Balita (Mean, Median, Mod)

summary(data$Gizi_Balita)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4518   43416   53761   56231   74936  106892

Gizi Kurang (Mean, Median, Mod)

summary(data$Gizi_Kurang)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     168    1837    2814    3081    3955    7507

Gizi Buruk (Mean, Median, Mod)

summary(data$Gizi_Buruk)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0    47.0   159.0   246.8   308.0  1091.0

BARCHART, PIE CHART, AND SCATTERPLOT

BALITA PENDEK DI JAWA TENGAH 2024

BARCHART

library(ggplot2)

Kabupaten_Kota <- c("Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Balita_Pendek <- c(5235,14477,7114,9018,6870,6107,8741,10914,6994,8620,4080,4233,2955,5659,5981,3354,4854,5537,2372,3278,2179,1960,5857,6823,4594,4974,8343,15750,12453,503,1597,552,2794,1270,1016)

data <- data.frame(Kabupaten_Kota, Balita_Pendek)

data$Kabupaten_Kota <- factor(data$Kabupaten_Kota,
                                    levels = data$Kabupaten_Kota[order(data$Balita_Pendek)])

ggplot(data, aes(x = Kabupaten_Kota, y = Balita_Pendek, fill = Balita_Pendek)) +
  geom_bar(stat = "identity", color = "white", width = 0.7) +
  scale_fill_gradient(low = "#f8c8dc", high = "#e75480") +
  coord_flip() +
  labs(
    title = "Jumlah Balita Pendek di Jawa Tengah Tahun 2024",
    x = "Kabupaten / Kota",
    y = "Jumlah Balita Pendek"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    axis.text = element_text(color = "#444", size = 9),
    axis.title = element_text(color = "#555"),
    panel.grid.major = element_line(color = "#fce4ec"),
    panel.background = element_rect(fill = "#fff6f9", color = NA),
    plot.background = element_rect(fill = "#fff6f9", color = NA),
    legend.position = "none"
  )

PIECHART

library(ggplot2)
library(dplyr)

Kabupaten_Kota <- c( "Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Balita_Pendek <- c(5235,14477,7114,9018,6870,6107,8741,10914,6994,8620,4080,4233,2955,5659,5981,3354,4854,5537,2372,3278,2179,1960,5857,6823,4594,4974,8343,15750,12453,503,1597,552,2794,1270,1016)

data <- data.frame(Kabupaten_Kota, Balita_Pendek)

# Mengambil 5 daerah dengan jumlah balita pendek tertinggi
top5 <- data %>%
  arrange(desc(Balita_Pendek)) %>%
  head(5)

# Hitung persentase untuk label
top5 <- top5 %>%
  mutate(persen = round(100 * Balita_Pendek / sum(Balita_Pendek), 1),
         label = paste0(Kabupaten_Kota, "\n", persen, "%"))

# Pie Chart
ggplot(top5, aes(x = "", y = Balita_Pendek, fill = Kabupaten_Kota)) +
  geom_bar(stat = "identity", width = 1, color = "white") +
  coord_polar("y", start = 0) +
  geom_text(aes(label = label),
            position = position_stack(vjust = 0.5),
            size = 3.5, color = "#444", lineheight = 0.9) +
  scale_fill_manual(values = c("#f8c8dc", "#f4acb7", "#ffe5ec", "#f7cad0", "#e75480")) +
  labs(
    title = "Top 5 Balita Pendek Tertinggi di Jawa Tengah (2024)",
    fill = "Wilayah"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    legend.title = element_text(color = "#555"),
    legend.text = element_text(color = "#555"),
    plot.background = element_rect(fill = "#fff6f9", color = NA)
  )

SCATTER PLOT

library(ggplot2)

Jumlah_Balita_diukur <- c("Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Balita_Pendek <- c(5235,14477,7114,9018,6870,6107,8741,10914,6994,8620,4080,4233,2955,5659,5981,3354,4854,5537,2372,3278,2179,1960,5857,6823,4594,4974,8343,15750,12453,503,1597,552,2794,1270,1016)

data <- data.frame(Jumlah_Balita_diukur, Balita_Pendek)

# Urutkan berdasarkan jumlah balita pendek
data$Jumlah_Balita_diukur <- factor(data$Jumlah_Balita_diukur, levels = data$Jumlah_Balita_diukur[order(data$Balita_Pendek)])

# Scatterplot
ggplot(data, aes(x = Jumlah_Balita_diukur, y = Balita_Pendek)) +
  geom_point(
    shape = 21,              
    size = 3,                
    fill = "#f4acb7",        
    color = "#e75480",      
    alpha = 0.7             
  ) +
  theme_minimal() +
  labs(
    title = "Sebaran Jumlah Balita Pendek di Jawa Tengah (2024)",
    subtitle = "Setiap titik mewakili satu kabupaten/kota",
    x = "Kabupaten/Kota",
    y = "Jumlah Balita Pendek"
  ) +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(color = "#555", hjust = 0.5),
    axis.text.x = element_blank(),
    axis.ticks.x = element_blank(),
    panel.grid.major = element_line(color = "#f9dce1"),
    panel.grid.minor = element_blank(),
    plot.background = element_rect(fill = "#fff6f9", color = NA)
  )

Dari hasil analisis dan visualisasi data diatas, dapat disimpulkan bahwa masalah stunting di Jawa Tengah belum merata tertangani. Daerah dengan jumlah balita pendek yang tinggi umumnya memiliki kesamaan karakteristik, seperti tingkat pendidikan orang tua yang rendah, akses terhadap layanan kesehatan dan sanitasi yang terbatas, serta pola konsumsi gizi yang belum seimbang. Oleh karena itu, upaya intervensi gizi dan edukasi masyarakat perlu terus dilakukan untuk menekan angka balita pendek, terutama di wilayah-wilayah dengan prevalensi tinggi seperti Tegal, Banyumas,Brebes, Magelang dan Banjarnegara.

BALITA GIZI KURANG DI JAWA TENGAH 2024

BARCHART

library(ggplot2)

Kabupaten_Kota <- c("Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Gizi_Kurang <- c(4961,5333,2941,2130,3506,1968,1381,3697,2610,3836,2289,1952,1811,2891,5411,3537,2642,3987,1863,4065,3184,1978,1647,4664,2814,3923,6521,7107,7507,168,1036,302,1792,1459,916)

data <- data.frame(Kabupaten_Kota, Gizi_Kurang)

data$Kabupaten_Kota <- factor(data$Kabupaten_Kota,
                                    levels = data$Kabupaten_Kota[order(data$Gizi_Kurang)])

ggplot(data, aes(x = Kabupaten_Kota, y = Gizi_Kurang, fill = Gizi_Kurang)) +
  geom_bar(stat = "identity", color = "white", width = 0.7) +
  scale_fill_gradient(low = "#f8c8dc", high = "#e75480") +
  coord_flip() +
  labs(
    title = "Jumlah Gizi Balita Kurang di Jawa Tengah Tahun 2024",
    x = "Kabupaten / Kota",
    y = "Jumlah Balita Pendek"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    axis.text = element_text(color = "#444", size = 9),
    axis.title = element_text(color = "#555"),
    panel.grid.major = element_line(color = "#fce4ec"),
    panel.background = element_rect(fill = "#fff6f9", color = NA),
    plot.background = element_rect(fill = "#fff6f9", color = NA),
    legend.position = "none"
  )

PIECHART

library(ggplot2)
library(dplyr)

Kabupaten_Kota <- c( "Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Gizi_Kurang<- c(4961,5333,2941,2130,3506,1968,1381,3697,2610,3836,2289,1952,1811,2891,5411,3537,2642,3987,1863,4065,3184,1978,1647,4664,2814,3923,6521,7107,7507,168,1036,302,1792,1459,916)

data <- data.frame(Kabupaten_Kota, Gizi_Kurang)

# Mengambil 5 daerah dengan jumlah gizi balita kurang tertinggi
top5 <- data %>%
  arrange(desc(Gizi_Kurang)) %>%
  head(5)

# Hitung persentase untuk label
top5 <- top5 %>%
  mutate(persen = round(100 * Gizi_Kurang / sum(Gizi_Kurang), 1),
         label = paste0(Kabupaten_Kota, "\n", persen, "%"))

# Pie chart
ggplot(top5, aes(x = "", y = Gizi_Kurang, fill = Kabupaten_Kota)) +
  geom_bar(stat = "identity", width = 1, color = "white") +
  coord_polar("y", start = 0) +
  geom_text(aes(label = label),
            position = position_stack(vjust = 0.5),
            size = 3.5, color = "#444", lineheight = 0.9) +
  scale_fill_manual(values = c("#f8c8dc", "#f4acb7", "#ffe5ec", "#f7cad0", "#e75480")) +
  labs(
    title = "Top 5 Gizi Balita Kurang Tertinggi di Jawa Tengah (2024)",
    fill = "Wilayah"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    legend.title = element_text(color = "#555"),
    legend.text = element_text(color = "#555"),
    plot.background = element_rect(fill = "#fff6f9", color = NA)
  )

SCATTER PLOT

library(ggplot2)

Kabupaten_Kota <- c("Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Gizi_Kurang <- c(4961,5333,2941,2130,3506,1968,1381,3697,2610,3836,2289,1952,1811,2891,5411,3537,2642,3987,1863,4065,3184,1978,1647,4664,2814,3923,6521,7107,7507,168,1036,302,1792,1459,916)

data <- data.frame(Kabupaten_Kota, Gizi_Kurang)

# Urutkan berdasarkan jumlah balita pendek
data$Kabupaten_Kota <- factor(data$Kabupaten_Kota, levels = data$Kabupaten_Kota[order(data$Gizi_Kurang)])

# Scatterplot 
ggplot(data, aes(x = Kabupaten_Kota, y = Gizi_Kurang)) +
  geom_point(
    shape = 21,              
    size = 3,                
    fill = "#f4acb7",        
    color = "#e75480",      
    alpha = 0.7             
  ) +
  theme_minimal() +
  labs(
    title = "Sebaran Jumlah Gizi Balita Kurang di Jawa Tengah (2024)",
    subtitle = "Setiap titik mewakili satu kabupaten/kota",
    x = "Kabupaten/Kota",
    y = "Jumlah Gizi Balita Kurang"
  ) +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(color = "#555", hjust = 0.5),
    axis.text.x = element_blank(),
    axis.ticks.x = element_blank(),
    panel.grid.major = element_line(color = "#f9dce1"),
    panel.grid.minor = element_blank(),
    plot.background = element_rect(fill = "#fff6f9", color = NA)
  )

Dari data pola persebaran ini memperlihatkan bahwa wilayah bagian barat dan tengah Jawa Tengah masih memiliki angka gizi kurang yang tinggi. Dapat dilihat top 5 kabupaten dengan angka tertinggi ada pada Kab. Brebes, Kab. Tegal, Kab. Pemalang, Kab. Grogongan dan Kab. Banyumas. Faktor-faktor seperti ketersediaan pangan bergizi, pengetahuan gizi keluarga, sanitasi, serta layanan kesehatan anak sangat berpengaruh terhadap kondisi ini. Oleh karena itu, upaya peningkatan edukasi gizi masyarakat, intervensi pangan lokal bergizi, dan program perbaikan sanitasi perlu terus diperkuat untuk menurunkan angka gizi kurang di Provinsi Jawa Tengah.

GIZI BURUK BALITA DI JAWA TENGAH 2024

BARCHART

library(ggplot2)

Kabupaten_Kota <- c("Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Gizi_Buruk <- c(427,259,205,169,36,55,105,155,19,194,91,159,19,181,191,74,216,384,202,541,53,41,71,676,153,357,1.056,1.018,1.091,4,0,1,368,30,38)

data <- data.frame(Kabupaten_Kota, Gizi_Buruk)

ggplot(data, aes(x = Kabupaten_Kota, y = Gizi_Buruk, fill = Gizi_Buruk)) +
  geom_bar(stat = "identity", color = "white", width = 0.7) +
  scale_fill_gradient(low = "#f8c8dc", high = "#e75480") +
  coord_flip() +
  labs(
    title = "Jumlah Gizi Balita Buruk di Jawa Tengah Tahun 2024",
    x = "Kabupaten / Kota",
    y = "Jumlah Gizi Balita Buruk "
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    axis.text = element_text(color = "#444", size = 9),
    axis.title = element_text(color = "#555"),
    panel.grid.major = element_line(color = "#fce4ec"),
    panel.background = element_rect(fill = "#fff6f9", color = NA),
    plot.background = element_rect(fill = "#fff6f9", color = NA),
    legend.position = "none"
  )

PIECHART

library(ggplot2)
library(dplyr)

Kabupaten_Kota <- c( "Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Gizi_Buruk <- c(427,259,205,169,36,55,105,155,19,194,91,159,19,181,191,74,216,384,202,541,53,41,71,676,153,357,1.056,1.018,1.091,4,0,1,368,30,38)

data <- data.frame(Kabupaten_Kota, Gizi_Buruk)

# Mengambil 5 daerah dengan jumlah gizi balita buruk tertinggi
top5 <- data %>%
  arrange(desc(Gizi_Buruk)) %>%
  head(5)

# Hitung persentase untuk label
top5 <- top5 %>%
  mutate(persen = round(100 * Gizi_Buruk / sum(Gizi_Buruk), 1),
         label = paste0(Kabupaten_Kota, "\n", persen, "%"))

# Pie chart
ggplot(top5, aes(x = "", y = Gizi_Buruk, fill = Kabupaten_Kota)) +
  geom_bar(stat = "identity", width = 1, color = "white") +
  coord_polar("y", start = 0) +
  geom_text(aes(label = label),
            position = position_stack(vjust = 0.5),
            size = 3.5, color = "#444", lineheight = 0.9) +
  scale_fill_manual(values = c("#f8c8dc", "#f4acb7", "#ffe5ec", "#f7cad0", "#e75480")) +
  labs(
    title = "Top 5 Gizi Balita Buruk Tertinggi di Jawa Tengah (2024)",
    fill = "Wilayah"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    legend.title = element_text(color = "#555"),
    legend.text = element_text(color = "#555"),
    plot.background = element_rect(fill = "#fff6f9", color = NA)
  )

SCATTER PLOT

library(ggplot2)

Kabupaten_Kota <- c("Kab. Cilacap","Kab. Banyumas","Kab. Purbalingga","Kab. Banjarnegara","Kab. Kebumen","Kab. Purworejo","Kab. Wonosobo","Kab. Magelang","Kab. Boyolali","Kab. Klaten","Kab. Sukoharjo","Kab. Wonogiri","Kab. Karanganyar","Kab. Sragen","Kab. Grobogan","Kab. Blora","Kab. Rembang","Kab.Pati","Kab. Kudus","Kab. Jepara","Kab. Demak","Kab. Semarang","Kab. Temanggung","Kab. Kendal","Kab. Batang","Kab. Pekalongan","Kab. Pemalang","Kab. Tegal","Kab. Brebes","Kota Magelang","Kota Surakarta","Kota Salatiga","Kota Semarang","Kota Pekalongan","Kota Tegal")

Gizi_Buruk <- c(427,259,205,169,36,55,105,155,19,194,91,159,19,181,191,74,216,384,202,541,53,41,71,676,153,357,1.056,1.018,1.091,4,0,1,368,30,38)

data <- data.frame(Kabupaten_Kota, Gizi_Buruk)

# Urutkan berdasarkan jumlah balita gizi buruk
data$Kabupaten_Kota <- factor(data$Kabupaten_Kota, levels = data$Kabupaten_Kota[order(data$Gizi_Buruk)])

# Scatterplot
ggplot(data, aes(x = Kabupaten_Kota, y = Gizi_Buruk)) +
  geom_point(
    shape = 21,              
    size = 3,                
    fill = "#f4acb7",        
    color = "#e75480",      
    alpha = 0.7             
  ) +
  theme_minimal() +
  labs(
    title = "Sebaran Jumlah Gizi Balita Buruk di Jawa Tengah (2024)",
    subtitle = "Setiap titik mewakili satu kabupaten/kota",
    x = "Kabupaten/Kota",
    y = "Jumlah Gizi Balita Buruk"
  ) +
  theme(
    plot.title = element_text(color = "#e75480", face = "bold", size = 13, hjust = 0.5),
    plot.subtitle = element_text(color = "#555", hjust = 0.5),
    axis.text.x = element_blank(),
    axis.ticks.x = element_blank(),
    panel.grid.major = element_line(color = "#f9dce1"),
    panel.grid.minor = element_blank(),
    plot.background = element_rect(fill = "#fff6f9", color = NA)
  )

Secara umum, data diatas menggambarkan bahwa gizi buruk masih menjadi persoalan multidimensi di Jawa Tengah, yang tidak hanya dipengaruhi oleh faktor ekonomi, tetapi juga oleh pengetahuan gizi, perilaku konsumsi, dan kualitas pelayanan kesehatan. Oleh karena itu, upaya pencegahan harus dilakukan secara menyeluruh melalui peningkatan edukasi gizi, pengawasan tumbuh kembang balita secara rutin, serta kolaborasi lintas sektor untuk menekan angka gizi buruk di daerah-daerah dengan kasus tertinggi seperti Kendal, Jepara, dan Cilacap.

PENUTUP

Analisis ini memberikan gambaran mengenai kondisi gizi balita di Provinsi Jawa Tengah, khususnya terkait balita pendek, gizi kurang, dan gizi buruk. Melalui visualisasi data ini diharapkan masyarakat dan pemerintah daerah dapat lebih memahami pentingnya perbaikan gizi sejak dini.

Ucapan terima kasih kepada BPS serta semua pihak yang telah mendukung analisis data ini.

Terima kasih 💖