Laporan ini dibuat untuk menunjukkan angka kasus sekaligus mengenalkan terminologi baru seperti SUSPEK, PROBABLE, PELAKU PERJALANAN, KONTAK ERAT, dan DISCARDED, dengan harapan pembaca menjadi lebih waspada dan berhati-hati dalam menjaga diri, melakukan jaga jarak, memakai masker, dan tidak keluar rumah apabila tidak mendesak.
Data yang akan digunakan diambil dari situs Open Data Covid-19 DKI Jakarta yang diperbarui setiap hari. Namun, pada dashboard yang akan dibuat hanya akan memakai data per 12 September 2020. Apabila memungkinkan, penulis akan update data ke dashboard secara berkala. Dashboard dapat dikunjungi di sini
Dilansir dari sehatq.com, berikut perbedaan terminologi kasus Corona:
Kasus Suspek Kasus suspek adalah pengganti istilah ODP dan PDP. Seseorang dikatakan memiliki kasus suspek apabila mengalami Infeksi Saluran Pernapasan Akut (ISPA), demam (≥38 derajat Celsius) atau riwayat demam; dan disertai salah satu gejala atau tanda penyakit pernapasan, seperti batuk, sesak napas, sakit tenggorokan, pilek, serta pneumonia ringan hingga berat. Selain itu, pada 14 hari terakhir sebelum timbul gejala penyakit memiliki riwayat perjalanan atau tinggal di negara/wilayah Indonesia yang terdapat kasus konfirmasi Covid-19, dan atau memiliki riwayat kontak dengan kasus probable atau kasus konfirmasi Covid-19. Anda juga dikatakan berstatus kasus suspek apabila mengalami ISPA berat atau pneumonia berat yang membutuhkan pengobatan di rumah sakit dan tidak ada penyebab lain yang mendasari timbulnya gejala Covid-19.
Kasus Probable Kasus probable adalah kasus suspek dengan ISPA berat atau Acute Respiratory Disease System (ARDS) atau meninggal dunia dengan diagnosis yang diyakini sebagai Covid-19. Namun, belum ada hasil pemeriksaan laboratorium rapid test (RT) dan Polymerase Chain Reaction (PCR) swab test.
Pelaku Perjalanan Pelaku perjalanan adalah seseorang yang melakukan perjalan dari dalam negeri (domestik) maupun luar negeri dalam kurun waktu 14 hari terakhir.
Kontak Erat Kontak erat adalah istilah yang diberikan bagi orang yang memiliki riwayat kontak dengan kasus probable atau konfirmasi COVID-19. Riwayat kontak yang dimaksud antara lain: Kontak tatap muka atau berdekatan dengan kasus probable atau kasus konfirmasi dalam radius 1 meter dan dalam jangka waktu 15 menit atau lebih. Sentuhan fisik langsung dengan kasus probable atau konfirmasi. Misalnya, bersalaman, berpegangan tangan, berpelukan, berciuman, dan lain-lain. Orang yang memberikan perawatan langsung terhadap seseorang dengan kasus probable atau konfirmasi tanpa menggunakan alat pelindung diri (APD) yang sesuai standar. Situasi lainnya yang mengindikasikan adanya kontak berdasarkan penilaian risiko lokal yang ditetapkan oleh tim penyelidikan epidemiologi setempat. Untuk menemukan seseorang yang berstatus kontak erat pada kasus probable atau konfirmasi yang bergejala (simtomatik), periode kontak dapat dihitung dari 2 hari sebelum timbul gejala hingga 14 hari setelah muncul gejala penyakit. Sedangkan, untuk menemukan seseorang yang berstatus kontak erat pada kasus probable atau konfirmasi yang tidak bergejala (asimptomatik), periode kontak dapat dihitung dari 2 hari sebelum dan 14 hari setelah tanggal pengambilan spesimen kasus konfirmasi.
Discarded Seseorang dikatakan discarded apabila memenuhi salah satu kriteria sebagai berikut: Orang dengan status kasus suspek yang hasil pemeriksaan RT-PCR 2 kali negatif selama 2 hari berturut-turut dengan selang waktu >24 jam. Orang dengan status kontak erat yang telah menyelesaikan masa karantina selama 14 hari.
Kasus Konfirmasi/Positif Seseorang dapat dikategorikan dalam kasus konfirmasi apabila ia positif terinfeksi virus Covid-19 yang dibuktikan dengan pemeriksaan laboratorium rapid test dan PCR. Kasus konfirmasi dibagi menjadi dua jenis, yakni kasus konfirmasi dengan gejala (simtomatik) dan kasus konfirmasi tanpa gejala (asimtomatik).
Memanggil Library
# package for data wrangling & vis
library(tidyverse)
library(glue)
library(scales)
# package for spatial environment in R
library(sf)
# package for visualization
library(leaflet)
library(plotly)
# package for creating table
library(DT)Memanggil Data
Pembersihan data
#dki <- dki[-1,] # menghilangkan baris TOTAL
DKI <- dki %>%
dplyr::filter(nama_kota != "PROSES UPDATE DATA",
nama_kota != "LUAR DKI JAKARTA") %>%
dplyr::select(nama_kota, nama_kecamatan, SUSPEK, PROBABLE, PELAKU.PERJALANAN, KONTAK.ERAT, DISCARDED, POSITIF) %>%
mutate(
nama_kota = recode(nama_kota,
"JAKARTA TIMUR" = "Jakarta Timur",
"JAKARTA PUSAT" = "Jakarta Pusat",
"JAKARTA BARAT" = "Jakarta Barat",
"JAKARTA SELATAN" = "Jakarta Selatan",
"JAKARTA UTARA" = "Jakarta Utara",
"KAB.ADM.KEP.SERIBU" = "Kepulauan Seribu"
),
nama_kecamatan = recode(nama_kecamatan,
"CAKUNG" = "Cakung",
"CEMPAKA PUTIH" = "Cempaka Putih",
"CENGKARENG" = "Cengkareng",
"CILANDAK" = "Cilandak",
"CILINCING" = "Cilincing",
"CIPAYUNG" = "Cipayung",
"CIRACAS" = "Ciracas",
"DUREN SAWIT" = "Duren Sawit",
"GAMBIR" = "Gambir",
"GROGOL PETAMBURAN" = "Grogolpetamburan",
"JAGAKARSA" = "Jagakarsa",
"JATINEGARA" = "Jatinegara",
"JOHAR BARU" = "Johar Baru",
"KALI DERES" = "Kalideres",
"KEBAYORAN BARU" = "Kebayoran Baru",
"KEBAYORAN LAMA" = "Kebayoran Lama",
"KEBON JERUK" = "Kebonjeruk",
"KELAPA GADING" = "Kelapa Gading",
"KEMAYORAN" = "Kemayoran",
"KEMBANGAN" = "Kembangan",
"KEP. SERIBU SELATAN" = "Kepulauan Seribu Selatan",
"KEP. SERIBU UTARA" = "Kepulauan Seribu Utara",
"KOJA" = "Koja",
"KRAMAT JATI" = "Kramatjati",
"MAKASAR" = "Makasar",
"MAMPANG PRAPATAN" = "Mampang Prapatan",
"MATRAMAN" = "Matraman",
"MENTENG" = "Menteng",
"PADEMANGAN" = "Pademangan",
"PALMERAH" = "Palmerah",
"PANCORAN" = "Pancoran",
"PASAR MINGGU" = "Pasar Minggu",
"PASAR REBO" = "Pasarrebo",
"PENJARINGAN" = "Penjaringan",
"PESANGGRAHAN" = "Pesanggrahan",
"PULO GADUNG" = "Pulogadung",
"SAWAH BESAR" = "Sawah Besar",
"SENEN" = "Senen",
"SETIA BUDI" = "Setiabudi",
"TAMAN SARI" = "Tamansari",
"TAMBORA" = "Tambora",
"TANAH ABANG" = "Tanahabang",
"TANJUNG PRIOK" = "Tanjung Priok",
"TEBET" = "Tebet")
)
# head(DKI)
write_csv(DKI, "data/coronadki.csv")
DKI <- read.csv("data/coronadki.csv")Menggabungkan Data Corona dengan Peta Indonesia
#> Reading layer `idn' from data source `/Users/dinnah/Documents/Workshop R Geospatial/rgeo-intro-master/shp' using driver `ESRI Shapefile'
#> Simple feature collection with 6694 features and 16 fields
#> geometry type: MULTIPOLYGON
#> dimension: XY
#> bbox: xmin: 95.0097 ymin: -11.00762 xmax: 141.0194 ymax: 6.076941
#> CRS: 4326
# coding ini untuk mengintip data membantu proses regex
# idn %>% as.data.frame() %>%
# dplyr::filter(NAME_1 == "Jakarta Raya") %>%
# dplyr::select("NAME_3", "NAME_2")
# Menggabungkan Data
cordki <- DKI %>%
left_join(idn, by = c("nama_kota" = "NAME_2", "nama_kecamatan" = "NAME_3"))
# head(cordki)Mengubah data menjadi objek sf
#> Geometry set for 44 features
#> geometry type: MULTIPOLYGON
#> dimension: XY
#> bbox: xmin: 106.3831 ymin: -6.370783 xmax: 106.9728 ymax: -5.184322
#> CRS: 4326
#> First 5 geometries:
Pada heatmap berikut, intensitas warna ditentukan oleh banyaknya kasus Positif Covid-19, namun label heatmap akan menunjukkan data kasus dengan terminologi baru lebih detail.
warna <- colorNumeric(palette = "Reds", domain = cordki$POSITIF)
labels <- glue::glue("
<b>{cordki$nama_kecamatan}, {cordki$nama_kota}</b>:<br> Positif: {cordki$POSITIF} <br> Suspek: {cordki$SUSPEK} <br> Probable: {cordki$PROBABLE} <br> Pelaku Perjalanan: {cordki$PELAKU.PERJALANAN} <br> Kontak Erat: {cordki$KONTAK.ERAT} <br> Discarded: {cordki$DISCARDED}"
) %>% lapply(htmltools::HTML)
leaflet(cordki) %>%
addProviderTiles(providers$CartoDB.DarkMatter) %>%
addPolygons(
label = labels,
fillColor = ~warna(POSITIF),
fillOpacity = .8,
weight = 2,
color = "white",
highlight = highlightOptions(
weight = 5,
color = "black",
bringToFront = TRUE,
opacity = 0.8
)
) %>%
addLegend(
pal = warna,
values = ~POSITIF,
opacity = 1,
title = "Positif",
position = "bottomright"
) %>%
fitBounds(106.686211, -6.370783, 106.972824, -6.089036)tabel <- cordki %>%
as.data.frame() %>%
arrange(desc(POSITIF)) %>%
select(nama_kota, nama_kecamatan, POSITIF, SUSPEK, PROBABLE, PELAKU.PERJALANAN, KONTAK.ERAT, DISCARDED) %>%
mutate(POSITIF = number(POSITIF, big.mark = ","),
SUSPEK = number(SUSPEK, big.mark = ","),
PROBABLE = number(PROBABLE, big.mark = ","),
PELAKU.PERJALANAN = number(PELAKU.PERJALANAN, big.mark = ","),
KONTAK.ERAT = number(KONTAK.ERAT, big.mark = ","),
DISCARDED = number(DISCARDED, big.mark = ",")
) %>%
rename(
Kota = nama_kota,
Kecamatan = nama_kecamatan,
Positif = POSITIF,
Suspek = SUSPEK,
Probable = PROBABLE,
`Pelaku Perjalanan` = PELAKU.PERJALANAN,
`Kontak Erat` = KONTAK.ERAT,
Discarded = DISCARDED
)
DT::datatable(
tabel,
extensions = "Buttons",
options = list(
pageLength = 25,
dom = 'Bfrtip',
buttons = c('csv','excel','pdf')
)
)Demikian laporan ini dibuat untuk mempelajari Geospatial menggunakan R. Terima kasih atas kunjungannya. Kontak penulis di LinkedIn.