Disusun oleh:

Hariyol (G1401221009) || Delita Nur Hasanah (G1401221018) || R. Mugni Chairil Arbi (G1401220163)

Data yang kami gunakan adalah Kasus Penyakit Malaria di Jawa Barat Tahun 2016 hingga 2022. Penyakit Malaria merupakan penyakit yang juga menjadi perhatian setelah DBD. Penyakit ini disebabkan oleh Nyamuk Anopheles Betina.Data ini memliki 8 peubah, dan peubah yang akan kami gunakan adalah “Nama Kabupaten/Kota”, “Jumlah Kasus” dan “Tahun”. Tujuan pada analisis ini adalah ingin mengetahui kasus malaria tertinggi terjadi di tahun berapa, di kota/kabupaten apa, dan bagaimana peningkatan atau penurunannya.

Membaca Data

malaria <- read.csv("C:/#2 SEMESTER 4 IPB UNIVERSITY/#MATA KULIAH/VISUALISASI DATA/PRAK/data.jabarprov.go.id/malaria.csv",)
str(malaria)
## 'data.frame':    189 obs. of  8 variables:
##  $ id                 : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ kode_provinsi      : int  32 32 32 32 32 32 32 32 32 32 ...
##  $ nama_provinsi      : chr  "JAWA BARAT" "JAWA BARAT" "JAWA BARAT" "JAWA BARAT" ...
##  $ kode_kabupaten_kota: int  3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 ...
##  $ nama_kabupaten_kota: chr  "KABUPATEN BOGOR" "KABUPATEN SUKABUMI" "KABUPATEN CIANJUR" "KABUPATEN BANDUNG" ...
##  $ jumlah_kasus       : int  0 66 0 1 5 59 0 0 11 0 ...
##  $ satuan             : chr  "ORANG" "ORANG" "ORANG" "ORANG" ...
##  $ tahun              : int  2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 ...

Cleaning Data

#melakukan subset data
Tahun_2016 <- subset(malaria,tahun==2016)
Tahun_2017 <- subset(malaria,tahun==2017)
Tahun_2018 <- subset(malaria,tahun==2018)
Tahun_2019 <- subset(malaria,tahun==2019)
Tahun_2020 <- subset(malaria,tahun==2020)
Tahun_2021 <- subset(malaria,tahun==2021)
Tahun_2022 <- subset(malaria,tahun==2022)

#Rata-rata jumlah kasus malaria pertahun di provinsi Jawa Barat
rata_list <- lapply(list(Tahun_2016, Tahun_2017, Tahun_2018, Tahun_2019, Tahun_2020, Tahun_2021, Tahun_2022), function(data) {
  rata <- mean(data$jumlah_kasus)
  return(rata)
})

names(rata_list) <-(2016:2022)
rata_list
## $`2016`
## [1] 9.259259
## 
## $`2017`
## [1] 4.666667
## 
## $`2018`
## [1] 8
## 
## $`2019`
## [1] 8.62963
## 
## $`2020`
## [1] 12.18519
## 
## $`2021`
## [1] 6.703704
## 
## $`2022`
## [1] 18.44444

1. Visualisasi Nilai

a. Line Chart Rata-rata Kasus Malaria Pertahun Provinsi Jawa Barat

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
#membuat data frame
malaria2 <-data.frame(
  Tahun = c(2016, 2017, 2018, 2019, 2020, 2021, 2022),
  Rata_rata = c(9.25, 4.67, 8, 8.62, 12.18, 6.7, 18.44)
)
# Membuat grafik line chart
grafik <- ggplot(data = malaria2, aes(x = Tahun, y = Rata_rata)) +
  geom_line(color="red",size=2) +
  geom_point(color="blue",size=3)+
  geom_text(aes(label = Rata_rata), vjust = 0.5, color = "black", size = 3,nudge_y =0.5 )+
  labs(x = "Tahun", y = "Rata-rata") +
  ggtitle("Rata-rata Malaria per Tahun")+
  scale_color_manual(values = c("red", "blue"), name = "Data Type") +
  scale_x_continuous(breaks = malaria2$Tahun)+
  theme(plot.title = element_text(hjust = 0.5))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Menampilkan grafik
print(grafik)

Berdasarkan grafik diatas, terlihat rata-rata penyakit malaria dari tahun ke tahun mengalami peningkatan yang cukup signikan. Peningkatan rata-rata penyakit malaria paling tinggi yaitu tahun 2021 yang memiliki rata-rata malaria sebanyak 6.7 atau 7 orang menjadi 18.44 atau 19 orang di tahun 2022. Sedangkan kasus rata-rata malaria terendah terjadi di tahun 2017 yaitu sebanyak 4.67 atau 5 orang.

b. Bar Chart Top 10 Kabupaten/Kota dengan Jumlah Kasus Malaria Tertinggi Tahun 2016-2022

library(ggplot2)
library(dplyr)
## 
## 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
kasus <- malaria %>% mutate(Ranking=rank(jumlah_kasus))
top10_kasus <-kasus %>%
  top_n(10, wt=jumlah_kasus) %>%
  arrange(desc(jumlah_kasus))

top10_kasus1 <- top10_kasus[,c(5:6,8:9)]
top10_kasus1
##      nama_kabupaten_kota jumlah_kasus tahun Ranking
## 1             KOTA DEPOK          209  2022   189.0
## 2             KOTA DEPOK          187  2020   188.0
## 3     KABUPATEN SUKABUMI           66  2016   187.0
## 4  KABUPATEN TASIKMALAYA           59  2016   186.0
## 5     KABUPATEN SUKABUMI           43  2019   183.5
## 6            KOTA CIMAHI           43  2020   183.5
## 7            KOTA CIMAHI           43  2021   183.5
## 8            KOTA CIMAHI           43  2022   183.5
## 9           KOTA BANDUNG           41  2022   181.0
## 10            KOTA BOGOR           39  2022   180.0
colors <- c("#416D19","#9BCF53","#BFEA7C","#FFF67E","#ECB159")

ggplot(top10_kasus1, aes(x = nama_kabupaten_kota, y = jumlah_kasus, fill = as.factor(tahun))) +
  geom_bar(stat = "identity", position = "dodge")+
  labs(title = "Top 10 Kabupaten/Kota dengan Jumlah Kasus Malaria\n Tertinggi Tahun 2016-2022",
       x = "Kabupaten/Kota",
       y = "Jumlah Kasus",
       fill = "Tahun") +
  theme(axis.text.x = element_text(angle = 0, hjust = 2))+
  coord_flip()+
 scale_fill_manual(values = colors)+
  theme(plot.title = element_text(hjust = 0.5))

Berdasarkan grafik diatas, dapat dilihat bahwa Kota Depok pada Tahun 2022 merupakan Kota dengan jumlah kasus malaria tertinggi sepanjang tahun 2016 hingga 2022, dengan jumlah 250 lebih kasus. Di Kota Cimahi jumlah kasus malaria terlihat konstan selama 3 tahun berturut-turut, yaitu dari tahun 2020 hingga 2022. Selanjutnya adalah Kota Bogor, Bandng dan Tasikmalaya, jumlah kasus malaria tertinggi di kota tersebut hanya terjadi dalam satu tahun saja, tidak seperti kota lainnya yang terjadi selama lebih dari 1 tahun.

2. Visualisasi Sebaran

a. Boxplot Top 10 Kabupaten/Kota dengan Jumlah Kasus Malaria Tertinggi Tahun 2018-2022

library(dplyr)

top10_list <- lapply(list(Tahun_2018, Tahun_2019, Tahun_2020, Tahun_2021, Tahun_2022), function(data) {
  data %>%
    arrange(desc(jumlah_kasus)) %>%
    head(10)
})

top10lah <- do.call(rbind, top10_list)
Top10 <-top10lah[,c(5:6,8)]
Top10
##      nama_kabupaten_kota jumlah_kasus tahun
## 1     KABUPATEN SUKABUMI           36  2018
## 2  KABUPATEN TASIKMALAYA           27  2018
## 3           KOTA BANDUNG           23  2018
## 4            KOTA CIMAHI           22  2018
## 5            KOTA BEKASI           19  2018
## 6      KABUPATEN CIREBON           18  2018
## 7             KOTA BOGOR           14  2018
## 8      KABUPATEN BANDUNG            9  2018
## 9       KABUPATEN CIAMIS            8  2018
## 10    KABUPATEN SUMEDANG            8  2018
## 11    KABUPATEN SUKABUMI           43  2019
## 12   KABUPATEN INDRAMAYU           36  2019
## 13            KOTA BOGOR           31  2019
## 14 KABUPATEN PANGANDARAN           25  2019
## 15          KOTA BANDUNG           24  2019
## 16 KABUPATEN TASIKMALAYA           20  2019
## 17           KOTA CIMAHI           11  2019
## 18       KABUPATEN BOGOR            9  2019
## 19       KABUPATEN GARUT            5  2019
## 20     KABUPATEN CIREBON            5  2019
## 21            KOTA DEPOK          187  2020
## 22           KOTA CIMAHI           43  2020
## 23   KABUPATEN INDRAMAYU           19  2020
## 24            KOTA BOGOR           18  2020
## 25    KABUPATEN SUKABUMI           11  2020
## 26          KOTA BANDUNG            8  2020
## 27 KABUPATEN TASIKMALAYA            7  2020
## 28           KOTA BEKASI            7  2020
## 29       KABUPATEN BOGOR            6  2020
## 30 KABUPATEN PANGANDARAN            4  2020
## 31           KOTA CIMAHI           43  2021
## 32   KABUPATEN INDRAMAYU           19  2021
## 33            KOTA DEPOK           19  2021
## 34            KOTA BOGOR           18  2021
## 35 KABUPATEN TASIKMALAYA           15  2021
## 36     KABUPATEN BANDUNG           12  2021
## 37      KOTA TASIKMALAYA           10  2021
## 38          KOTA BANDUNG            8  2021
## 39    KABUPATEN SUKABUMI            7  2021
## 40       KABUPATEN BOGOR            5  2021
## 41            KOTA DEPOK          209  2022
## 42           KOTA CIMAHI           43  2022
## 43          KOTA BANDUNG           41  2022
## 44            KOTA BOGOR           39  2022
## 45 KABUPATEN TASIKMALAYA           29  2022
## 46    KABUPATEN SUKABUMI           28  2022
## 47           KOTA BEKASI           25  2022
## 48       KABUPATEN BOGOR           11  2022
## 49   KABUPATEN INDRAMAYU           10  2022
## 50       KABUPATEN GARUT            9  2022
library(ggplot2)
ggplot(Top10, aes(x = tahun, y = jumlah_kasus, fill = factor(tahun))) +
  geom_boxplot() +
  scale_fill_manual(values = c("#999999", "#E69F00","red","orange","green"), name = "Tahun")+
  labs(x = "Tahun", y = "Jumlah Kasus", title = "Top 10 kabupaten/kota dengan Jumlah Kasus Malaria\n Tertinggi berdasarkan Tahun",color = "Statistik") +
  stat_summary(fun = "mean", geom = "point", shape = 18, size = 3, color = "blue", position = position_nudge(0.2)) +  # Menambahkan titik rata-rata
  stat_summary(fun = "median", geom = "point", shape = 8, size = 3, color = "black", position = position_nudge(-0.2)) +  # Menambahkan titik median
  stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.2, color = "blue") +  # Menambahkan error bar untuk rata-rata
  stat_summary(fun.data = "median_hilow", geom = "errorbar", width = 0.2, color = "black")+# Menambahkan error bar untuk median
  guides(color = guide_legend(title = "Statistik", override.aes = list(shape = c(18, 8), size = c(3, 3), color = c("blue", "black"))))+
  theme(plot.title = element_text(hjust = 0.5))

Nilai tengah atau median tertinggi pada top 10 kabupaten/kota dengan jumlah kasus malaria tertinggi terjadi pada tahun 2022. Pada tahun ini sebaran boxplot adalah menjulur ke kanan dan terdapat 1 nilai outlier atas. Hal ini membuktikan bahwa pada tahun tersebut terjadi kasus malaria yang tinggi. Kemudian, pada tahun 2018 hingga 2019, terjadi peningkatan yang cukup kecil. Namun, pada tahun 2020 terjadi peningkatan yang tinggi dan diiringi penurunan yang tinggi juga pada tahun 2021.

b. Density plot Sebaran Kasus Malaria Tertinggi Tahun 2020-2022

d <- rbind(subset(Top10, tahun==2020),
           subset(Top10, tahun==2021),
           subset(Top10, tahun==2022))
ggplot(d)+
  geom_density(aes(x=jumlah_kasus,fill = factor(tahun), color= factor(tahun)),alpha = 0.5, size = 1.2)+
  labs(title = "Sebaran Kasus Malaria Tertinggi\n Tahun 2020-2022",
       x="Jumlah Kasus",
       y="Frekuensi")+scale_fill_manual(values = c("#535C91", "#1B1A55", "#070F2B"))+scale_color_manual(values = c("#535C91", "#1B1A55", "#070F2B"))+
  theme(plot.title = element_text(hjust = 0.5))

Pada diagram density diatas, tahun 2022 memiliki tinggi sebaran yang paling rendah, ini berarti bahwa kasus malaria tertinggi terjadi di tahun ini. Berbeda dengan tahun 2021 dengan sebaran tertinggi yang menandakan bahwa kasus malaria terendah terjadi di tahun ini. Tak hanya itu, pencilan pun muncul di dua tahun tersebut. Namun, tinggi sebaran pada tahun 2020 tak setinggi tahun 2021, ini membuktikan bahwa kasus malaria di tahun 2020 cukup tinggi dan diikuti penurunan pada tahun 2021 kemudian meningkat dengan drastis di tahun 2022.

3. Visualisasi Proporsi

a. Treemap Proporsi Kasus Malaria di Jawa Barat Tahun 2016-2022

library(treemap)
## Warning: package 'treemap' was built under R version 4.3.2
# Pastikan 'jumlah_kasus' adalah numerik
malaria$jumlah_kasus <- as.numeric(malaria$jumlah_kasus)

# Hitung jumlah kasus Malaria untuk setiap kabupaten/kota
aggregated_data <- aggregate(jumlah_kasus ~ nama_kabupaten_kota, data = malaria, FUN = sum)

# Hitung total jumlah kasus Malaria di semua kabupaten/kota
total_cases <- sum(aggregated_data$jumlah_kasus)

# Hitung proporsi relatif setiap kabupaten/kotanya
aggregated_data$proporsi <- aggregated_data$jumlah_kasus / total_cases * 100

tm <- treemap(aggregated_data,
              index = "nama_kabupaten_kota",
              vSize = "proporsi", 
              vColor = "proporsi",  
              title = "  Proporsi Kasus Malaria di Jawa Barat Tahun 2016-2022",
              fontsize.labels = c(12),  
              fontsize.title = 11,  
              palette = "Reds"
)+theme(plot.title = element_text(hjust = 0.5))

# 3 kota dengan proporsi paling tinggi
top_3_proporsi <- head(aggregated_data[order(aggregated_data$proporsi, decreasing = TRUE), ], 3)
top_3_proporsi
##      nama_kabupaten_kota jumlah_kasus proporsi
## 25            KOTA DEPOK          440 24.00436
## 16    KABUPATEN SUKABUMI          195 10.63830
## 18 KABUPATEN TASIKMALAYA          190 10.36552

Dapat dilihat pada diagram diatas bahwa Kota Depok menjadi Kota dengan proporsi kasus malaria paling banyak di Jawa Barat. Posisi kedua adalah Kabupaten Sukabumi dan Tasikmalaya dengan proporsi yang cukup mirip. Proporsi terbanyak selanjutnya adalah kota Cimahi, kota Bogor dan Bandung. Dan jika diperhatikan, proporsi kota Depok hampir mendekati jumlah proporsi kota/kabupaten dengan proporsi yang kecil-kecil, seperti kabupaten Indramayu, Bekasi, dan lainnya.

b. Donut plot Proporsi Kasus Malaria per Tahun

# Pastikan 'jumlah_kasus' adalah dalam bentuk numerik
malaria$jumlah_kasus <- as.numeric(malaria$jumlah_kasus)

# Hitung jumlah kasus Malaria untuk setiap tahun
aggregated_data <- aggregate(jumlah_kasus ~ tahun, data = malaria, FUN = sum)

# Hitung total jumlah kasus Malaria di seluruh dataset
total_cases <- sum(aggregated_data$jumlah_kasus)

# Hitung proporsi relatif kasus Malaria untuk setiap tahun
aggregated_data$proporsi <- aggregated_data$jumlah_kasus / total_cases * 100

#  tahun dengan proporsi tertinggi
top_7_proporsi <- head(aggregated_data[order(aggregated_data$proporsi, decreasing = TRUE), ], 7)
top_7_proporsi
##   tahun jumlah_kasus  proporsi
## 7  2022          498 27.168576
## 5  2020          329 17.948718
## 1  2016          250 13.638843
## 4  2019          233 12.711402
## 3  2018          216 11.783961
## 6  2021          181  9.874523
## 2  2017          126  6.873977
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
data <- top_7_proporsi

# Plot diagram donat 3D
plot_ly(data, labels = ~tahun, values = ~proporsi, type = 'pie', hole = 0.6) %>%
  layout(title = "Proporsi Kasus Malaria per Tahun", 
         scene = list(aspectmode = "cube", 
                      xaxis = list(title = ""),
                      yaxis = list(title = ""),
                      zaxis = list(title = "")))

Berdasarkan diagram diatas, bahwa tahun 2022 memiliki proporsi kasus malaria terbanyak yaitu 27.2%. Proporsi terbanyak berikutnya adalah di tahun 2020 dengan 17.9%. Namun, tahun 2021 adalah tahun yang memiliki proporsi terendah kedua. Hal ini membuktikan bahwa terjadi peningkatan dan penurunan secara drastis sepanjang tahun 2020 hingga 2022. Kemudian, proporsi terendah kasus malaria terjadi di tahun 2017.