Covid-19 Cases in Indonesia With R (1)

Refinanda Nur Isfahani
6 min readJun 10, 2020

--

Bagaimana dengan perkembangan kasus di Indonesia ? Apakah sudah terjadi penururan kasus seperti yang presiden inginkan untuk penurunan kurva pada bulan Mei ? Bagaimana data yang terjadi sebenarnya ?, Yuk simak lanjutan dari tulisan saya sebelumnya mengenai Covid -19 in Worldwide With R yaa …

Source : Nasional Tempo

Bagaimana dengan yang terjadi di Indonesia saat ini ?

Menggunakan data yang berasal dari Johns Hopkins University Center for System adn Engineering (JHU CCSE), data terdapat dalam package “coronavirus” yang dapat di install pada link github . Data yang terdapat dalam packages tersebut dapat sewaktu-waktu berubah dan di update dalam sebulan atau dua bulan.

library(coronavirus)
update_dataset()
data(“coronavirus”)
Mendownload dataset terupdate pada library coronavirus
glimpse(coronavirus)
Keterangan dataset

Menggunakan function glimpse untuk melihat deskripsi dari dataset coronavirus, diperoleh informasi bahwa dataset coronavirus mempunyai tujuh variabel dengan 106.760 observasi, dengan keterangan sebagai berikut :

· date : Tanggal terjadinya kasus

· province : Provinsi atau daerah

· country : Negara terjadinya kasus

· lat : Titik latitude

· long : Titik longitude

· type : Tipe kasus ( confirmed, death, recovered)

· cases : Angka terjadinya kasus per hari

# Mengambil data negara indonesia dengan filter == 'Indonesia'
cases_indonesia <- coronavirus %>% #data coronavirus
filter(country =='Indonesia') %>% #Difilter berdasar Indonesia
select(date, country, type, cases) %>% #Mengambil col date, country, type and cases
group_by(date)

Mengambil data kasus di Indonesia hanya terdiri dari empat variabel yang akan digunakan yaitu date, country, type dan cases, serta dikelompokkan berdasar type yang terdiri dari 136 baris yang berarti juga sudah 136 hari sejak 2020–01–22 hingga 2020–06–05 dan type dengan kategori confirmed, death dan recovered hingga akan menghasilkan output seperti berkut :

Data case_indonesia

Bisa tidak merapihkan data agar tampilannya mudah dipahami dengan menjadikan baris perhari dan kolom menjai confirmed, death dan recovered ? serta menambahkan kolom, baru untuk melihat hasil kumulatifnya ? BISA, dengan menggunakan library tidyr dan dplyr serta fungsi mutate dalam dplyr digunakan untuk menambah kolom baru dan fungsi pivot_wider dalam tidyr untuk merubah baris type menjadi kolom.

pivot_cases_indonesia_day <- cases_indonesia %>%
filter(date >= '2020-03-01') %>%
group_by (date, type) %>%
summarize (total = sum(cases)) %>%
pivot_wider (names_from = type,
values_from = total) %>%
arrange (date) %>%
ungroup() %>%
mutate(active = confirmed - death,
cum_active = cumsum(active),
cum_confirm = cumsum(confirmed),
cum_death = cumsum(death),
cum_recovered = cumsum(recovered))
df <- as.data.frame(pivot_cases_indonesia_day)

Hasilnya akan seperti ini :

Pivot cases indonesia
# Vis berdasarkan kasus per hari yang terupadate
ggplot(cases_indonesia) +
geom_line(aes(x=date, y=cases, group = type, color = type)) +
ylab("Confirmed cases")+
xlab("Date")
Kasus perhari

Berdasarkan tampilan kasus perharinya, Indonesia sempat mengalami kasus terkonfirmasi covid 19 mencapai 973 kasus pada tanggal 21–05–2020 lalu. Saat tanggal 04–06–2020 sempat mengalami penurunan yang pada satu hari sebelumnya terdapat 684 kasus terkonfirmasi menjadi 585 kasus terkonfirmasi, dan mengalami kenaikan lagi pada tanggal 05–06–2020 menjadi 703 terkonfirmasi covid 19.

Bagaimana dengan gambaran kasus kumulatif covid 19 di Indonesia ?

Dengan menggunakan data df yang sebelumnya sudah di olah dari pivot_cases_indoneisa_day menjadi sebuah data frame, dapat divisualisasikan dengan menggunakan library plotly seperti berikut :

library(plotly)
df %>%
plot_ly( x = ~date, y= ~cum_confirm,
name = 'Confirm', type= 'scatter',
mode = 'line+marker') %>%
add_trace(y = ~cum_recovered, name = 'Recovered',fillcolor = '#E41317') %>%
add_trace(y = ~cum_death, name = 'Death',fillcolor = 'forestgreen')%>%
add_trace(y = ~cum_active, name = 'Active cases',fillcolor = ' ')%>%
layout ( title = "Total Cases Covid 19 Indonesia",
legend = list (x = 0.1, y = 0.9),
yaxis = list(title = "Total"),
xaxis = list(title = "Date")) %>%
add_annotations(x = ('2020-03-02'), y = 1,
text = paste('Kasus Pertama Diketahui'),
xref = 'x',
yref = 'y',
arrowhead = 5,
arrowhead = 3,
arrowsize = 1,
showarrow = TRUE,
ax = -10,
ay = -50 ) %>%
add_annotations(x = ('2020-06-05'), y = '29521',
text = paste('29.521 confirm cases'),
xref = 'x',
yref = 'y',
arrowhead = 1,
arrowhead = 1,
arrowsize = 1,
showarrow = TRUE,
ax = -0.5,
ay =-20) %>%
add_annotations(x = ('2020-06-05'), y = '1770',
text = paste('1.770 death cases'),
xref = 'x',
yref = 'y',
arrowhead = 1,
arrowhead = 1,
arrowsize = 1,
showarrow = TRUE,
ax = -0.5,
ay =-20) %>%
add_annotations(x = ('2020-06-05'), y = '9443',
text = paste('9.443 recovery cases'),
xref = 'x',
yref = 'y',
arrowhead = 1,
arrowhead = 1,
arrowsize = 1,
showarrow = TRUE,
ax = -0.5,
ay =-20) %>%
add_annotations(x = ('2020-06-05'), y = '27751',
text = paste('27.751 active cases'),
xref = 'x',
yref = 'y',
arrowhead = 1,
arrowhead = 1,
arrowsize = 1,
showarrow = TRUE,
ax = -0.5,
ay =-20)
Line chart cumulatif cases covid 19

Berdasarkan tampilan kasus kumulatif kasus covid 19 di Indonesia masih mengalami peningkatan dan masih belum diketahui kapan akan melewati puncak kurva, pertanggal 05–06–2020 sudah terkonfirmasi covid 19 sebanyak 29.521 jiwa terkonfirmasi, dengan kasus yang active (confirmed — death) sebanyak 27.751 kasus, serta sebanyak 1.770 kasus meninggal karena terpapar covid 19, dan melihat line kasus kesembuhan sebesar 9.443 kasus.

Bagaimana untuk melihat ratio kematian dan kesembuhan dari data tersebut ?

Mencari ratio kematian dengan cara (jumlah kasus kematian / jumlah kasus terkonfirmasi ) *100, begitupun dengan ratio kesembuhan dihitung dengan cara yang sama (jumlah kasus sembuh / jumlah kasus terkonfirmasi ) *100.

ratio <- df %>%
group_by(date) %>%
summarise(death = sum(cum_death), confirmed = sum(cum_confirm),recovered = sum(cum_recovered)) %>%
mutate(recov_rate = 100*(recovered/confirmed))%>%
mutate(death_rate = 100*(death/confirmed))
# Karena terdapat Na pada baris 1, maka dihilangkan
Ratio <- na.omit(ratio) # menghilangkan Na
ggplot(Ratio) +
geom_line(aes(x=date, y= death_rate, color = 'death_rate')) +
geom_line(aes(x=date, y= recov_rate, color = 'recov_rate')) +
labs(x = "", y = 'Rate', title = 'Ratio of Death and Recovered',
subtitle = 'Indonesia')
Ratio of Death and Recovery

Untuk ratio kesembuhan sendiri di tampilkan dengan line berwarna biru, dapat dilihat bahwa sejak akhir bulan Maret ratio kesembuhan mengalami peningkatan hingga pada tanggal 05–06–2020 ratio kesembuhan sebesar 32 %. Sedangkan untuk ratio kematian di tampilkan dengan line berwarna merah menginformasikan pada pertengahan Bulan April sudah mulai mengalami penurunan, hingga tanggal 04–06–2020 mencapai 5.97% dan mengalami kenikan pada tanggal 05–06–2020 menjadi 6% untuk ratio kematian.

Berdasarkan uraian diatas, Indonesia masih memiliki jumlah kasus terkonfirmasi covid 19 yang tinggi, ratio kematian yang masih tinggi serta ratio kesembuhan yang masih rendah .

Setelah mengetahui perkembangan kasus di Indonesia, bagaimana dengan perkembangan kasus di Negara tetangga ?, Yuk eksplor untuk mengetahui bagaimana perkembangan kasus Negara tetangga pada tulisan saya selanjutnya.

Semoga apa yang saya tuliskan bermanfaat dan dapat memberikan informasi seperti yang diharapkan. Jika berkenan dapat klik claps dan share tulisan ini, serta jika ada kekurangan pada tulisan ini bisa kontak saya untuk segera saya benarkan. Terimakasih sudah berkenan membaca tulisan ini …

Referensi :

https://github.com/RamiKrispin/coronavirus

https://medium.com/@986110101/membuat-grafik-covid-19-2-6b43ac0d68cb

https://nasional.tempo.co/read/1339763/jokowi-minta-kurva-covid-19-turun-mei-begini-prediksi-para-ahli/full&view=ok

--

--