Anda di halaman 1dari 35

LAPORAN PEMROGRAMAN KOMPUTER

PROJEK TOPIK STATISTIKA

Anggota Kelompok 9:
Evelyn Christina (6162001013)
Brian Buya Supendi (6162001096)
Karel Dwinugroho Bowosebua (6162001184)

PROGRAM STUDI MATEMATIKA


FAKULTAS TEKNOLOGI INFORMASI DAN SAINS
UNIVERSITAS KATOLIK PARAHYANGAN
BANDUNG
2021
DAFTAR ISI

BAB I PENDAHULUAN 3

BAB II ANALISIS DATA 4


2.1 Menginstal Library dan Membaca Data COVID-19 4
2.2 PERTANYAAN 1 6
2.3 PERTANYAAN 2 11
2.4 PERTANYAAN 3 18
2.5 PERTANYAAN 4 24
2.6 HASIL PROGRAM 32

BAB III KESIMPULAN 34

2
BAB I

PENDAHULUAN

Pada projek dengan topik statistika ini, diminta untuk menganalisis data COVID-19
dengan melakukan visualisasi data COVID-19 dari hasil perhitungan sederhana
menggunakan bahasa pemrograman Python. Hasil visualisasi data tersebut kemudian akan
dianalisis sesuai dengan pertanyaan-pertanyan yang tertera pada soal.

Data yang diambil dan dianalisis pada program ini adalah data COVID-19 yang
berasal dari Our World in Data. Set data tersebut menyajikan data COVID-19 dari tanggal 24
Februari 2018 hingga 28 April 2021 dan disajikan di dalam file “.xlsx” yang berjudul
“owid-covid-data.xlsx.” Terdapat dua halaman pada file excel tersebut, yang pertama
merupakan set data yang terdiri dari 84.759 baris dan 59 kolom dan yang kedua merupakan
deskripsi singkat masing-masing kolom dari 59 kolom data yang ada. Daftar dan deskripsi
singkat dari semua variabel pada set data tersebut yang digunakan di dalam laporan ini di
antara lain:
continent: benua dari letak geografis
location: letak geografis
new_cases: kasus COVID-19 baru terkonfirmasi
new_deaths: kematian akibat COVID-19 baru
people_vaccinated: jumlah orang yang telah menerima vaksinasi dosis pertama

Laporan ini ditulis dengan tujuan untuk menjelaskan dengan baik pertanyaan dan
permasalahan yang diberikan pada soal yaitu memvisualisasikan dan menganalisis data
mengenai kasus COVID-19 yang terkonfirmasi serta bertujuan untuk memenuhi penilaian
proyek mata kuliah Pemrograman Komputer sebagai salah satu nilai komponen Ujian Akhir
Semester Genap 2020/2021.

3
BAB II

ANALISIS DATA

2.1 Menginstal Library dan Membaca Data COVID-19

Langkah pertama, untuk membuat solusi berdasarkan soal yang telah diberikan, yaitu
python harus sudah menginstal library pandas untuk analisis data, library pygal dan
pygal_maps_world untuk visualisasi data, kemudian library xlrd==1.2.0 untuk membuka file
excel. Untuk menginstal semua library tersebut cukup ketikan “pip install ‘nama library’” di
command prompt, kemudian enter. Khusus untuk library pygal, pygal_maps_world dan
xlrd==1.2.0, di command prompt akan ditampilkan alamat penyimpanan file yang disimpan
dalam bentuk folder, yaitu file hasil dari menginstal semua library tersebut dan semua folder
tersebut harus disimpan di direktori sama dengan direktori saat menjalankan program nanti.
Lihat Gambar 2.1.1 dan Gambar 2.1.2.

pip install pygal


pip install pygal_maps_world
pip install xlrd==1.2.0

Gambar 2.1.1: Perintah untuk menginstal library yang dibutuhkan pada command prompt

Gambar 2.1.2: Daftar semua folder library yang harus dipindahkan ke direktori yang sama
dengan direktori program

Langkah kedua, setelah menginstal semua library tersebut dan menyimpan semua
folder hasil penginstalan, aplikasi spyder lalu dibuka. Agar semua library tersebut dapat
digunakan, maka seluruh library tersebut harus dipanggil terlebih dahulu dengan perintah
import (nama library). Khusus untuk library pandas disimpan sebagai pd dan untuk
library xlrd==1.2.0 tidak perlu dipanggil. Lihat Gambar 2.1.3.

import pygal

4
import pygal.maps
import pandas as pd

Gambar 2.1.3: Pemanggilan semua library untuk digunakan pada program

Langkah ketiga, karena file yang akan dianalisis adalah file excel dengan nama file
“owid-covid-data.xlsx” dan data yang akan diambil hanya di sheet yang bernama “Sheet1”,
maka perintah untuk membaca file tersebut adalah
pd.read_excel(“owid-covid-data.xlsx”, sheet_name = “Sheet1”)
dan disimpan dalam variabel df. Lihat Gambar 2.1.4.

# pemanggilan data excel menggunakan modul pandas


df = pd.read_excel("owid-covid-data.xlsx",sheet_name="Sheet1")
print("\n===== Data Excel COVID =====")
print(df)

Gambar 2.1.4: Pemanggilan dan pembacaan data COVID-19 dalam format .xlsx
menggunakan library pandas

5
2.2 PERTANYAAN 1

Pada pertanyaan 1, diminta untuk memvisualisasikan data yang terkonfirmasi dan


tercatat pada data “owid-covid-data.xlsx” berdasarkan total kasus COVID-19 pada tiap
benua. Dari visualisasi tersebut, akan dianalisa benua mana yang memiliki kasus COVID-19
terkonfirmasi paling banyak dibandingkan dengan benua-benua lainnya.

Metode yang digunakan untuk memvisualisasikan data sesuai dengan pertanyaan


nomor 1 yaitu dengan menjumlahkan kasus baru yang terkonfirmasi setiap harinya pada tiap
benua sehingga dapat diketahui total nilai kasus COVID-19 di setiap benua. Untuk itu,
variabel yang digunakan adalah new_cases dan bergantung pada variabel continent.
Setelah mendapatkan data hasil penjumlahan variabel new_cases berdasarkan variabel
continent, data kemudian digambarkan dalam bentuk peta dunia yang ditunjukan pada
Gambar 2.2.5.

Pada Gambar 2.2.1 dibawah ini, ditunjukan algoritma yang digunakan untuk
menunjukan visualisasi data yang diminta. Langkah pertama yang dilakukan adalah dengan
memasukkan semua library yang diperlukan seperti pandas yang digunakan untuk membaca
data excel dan library pygal.maps serta pygal yang digunakan untuk menampilakan
visualisasi data dalam hal ini yaitu peta dunia. Setelah itu, program akan membaca data
“owid-covid-data.xls” yang dibutuhkan untuk mengetahui kasus COVID-19 yang
terkonfirmasi. Karena data yang dibutuhkan hanya total kasus COVID-19 pada tiap benua,
maka dilakukan penjumlahan variabel new_cases yang telah dikelompokan berdasarkan
benua dan menyesuaikan penulisan nilai untuk memudahkan pembaca. Kemudian, peta dunia
dibuat beserta dengan label judul dan akan disimpan ke dalam file “Benua.svg”.

6
Gambar 2.2.1: Algoritma pembuatan visualisasi total kasus COVID-19 setiap benua
menggunakan peta dunia

7
Pada Gambar 2.2.2 – 2.2.4 dibawah ini, terlampir kode program yang digunakan
untuk menampilkan visualisasi yang diminta. Langkah pertama yang dilakukan pada
Gambar 2.2.2 yaitu mengelompokan data excel yang telah didefinisikan menjadi df
berdasarkan benua lalu variabel new_cases akan dijumlahkan. Hasil perhitungan tersebut
akan didefinisikan menjadi variabel df_continent dan ditampilkan dalam bentuk tabel
yang memuat benua dan jumlah new_cases tiap benua.

# penjumlahan data kasus baru COVID berdasarkan pengelompokan data benua


df_continent = df.groupby(["continent"]).new_cases.sum()
print("\n===== Data Total Kasus COVID Benua =====")
print(df_continent)

Gambar 2.2.2: Kode pengelompokan dan perhitungan data

Selanjutnya pada Gambar 2.2.3, data hasil perhitungan jumlah kasus baru
terkonfirmasi pada setiap baris akan dimasukan ke dalam variabel-variabel baru yang sesuai
dengan nama benua masing-masing (Africa, Asia, Europe, North_America,
Oceania, dan South_America) serta dilakukan pemberian tanda koma pada data hasil
perhitungan untuk memisahkan angka tiap ribuan agar memudahkan pembaca membaca data.

# pemisahan angka ribuan dengan tanda koma


Africa = "{:,.0f}".format(df_continent[0])
Asia = "{:,.0f}".format(df_continent[1])
Europe = "{:,.0f}".format(df_continent[2])
North_America = "{:,.0f}".format(df_continent[3])
Oceania = "{:,.0f}".format(df_continent[4])
South_America = "{:,.0f}".format(df_continent[5])

Gambar 2.2.3: Kode untuk memasukan data benua ke dalam variabel dan penulisan angka
ribuan

Setelah mendapatkan data yang diperlukan, pada Gambar 2.2.4 dilampirkan perintah
yang akan memanggil visualisasi peta dunia yang telah tersedia pada library pygal.maps
dengan menggunakan variabel worldmap. Visualisasi peta dunia tersebut kemudian diberi
judul “Total Confirmed COVID Cases Per Continent” melalui perintah
worldmap.title. Peta dunia yang disediakan oleh library pygal telah mendefinisikan
area benua yang sesuai gambaran pada peta melalui variabel africa, north_amercia,
oceania, south_america, asia dan europe. Oleh karena itu, untuk memasukan data
pada peta, dapat digunakan perintah worldmap.add yang sesuai dengan variabel benua
pada peta serta variabel-variabel yang berisi jumlah kasus pada tiap benua. Terakhir, peta

8
dunia akan dihasilkan dan disimpan dalam file “Benua.svg” melalui perintah
worldmap.render_to_file.

# pembuatan peta dunia


worldmap = pygal.maps.world.SupranationalWorld()

# penjudulan
worldmap.title = 'Total Confirmed COVID Cases Per Continent'

# memasukkan data total kasus COVID setiap benua


worldmap.add('Africa', [('africa', Africa)])
worldmap.add('North America', [('north_america', North_America)])
worldmap.add('Oceania', [('oceania', Oceania)])
worldmap.add('South America', [('south_america', South_America)])
worldmap.add('Asia', [('asia', Asia)])
worldmap.add('Europe', [('europe', Europe)])

# menyimpan visualisasi peta dunia ke dalam file .svg


worldmap.render_to_file('Benua.svg')

Gambar 2.2.4 : Kode untuk membuat visualisasi total kasus COVID-19 terkonfirmasi setiap
benua dalam bentuk peta dunia

Pada Gambar 2.2.5 ditunjukan hasil visualisasi program dengan file “Benua.svg”
yang dapat ditemukan pada folder yang sama dengan penyimpanan file program python.
Jumlah kasus COVID-19 yang terkonfirmasi dapat ditunjukan dengan mengarahkan pointer
sesuai dengan benua yang ingin dituju.

Dari visualisasi data, dapat dilihat bahwa jumlah kasus COVID-19 pada Benua
Afrika, Asia, Eropa, Amerika Utara, Oseania, dan Amerika Selatan secara berurutan adalah
sebesar 4.532.581, 3.766.930, 44.575.562, 37.370.599, 43.444, dan 24.607.245 kasus.
Sehingga dapat disimpulkan bahwa benua dengan total kasus COVID-19 yang terkonfirmasi
terbesar sampai tanggal 28 April 2021 adalah Benua Eropa yaitu sebesar 44.575.562 kasus
yang ditunjukkan pada Gambar 2.2.6.

9
Gambar 2.2.5: Visualisasi total kasus COVID-19 terkonfirmasi setiap Benua

Gambar 2.2.6: Visualisasi benua dengan total kasus COVID-19 terkonfirmasi terbanyak

10
2.3 PERTANYAAN 2

Pada pertanyaan 2, diminta untuk memvisualisasikan data mengenai total kasus


COVID-19 yang terkonfirmasi pada negara-negara di Benua Asia. Metode yang digunakan
untuk memvisualisasikan data tersebut yaitu dengan menjumlahkan kasus baru yang
terkonfirmasi setiap harinya pada negara-negara di Benua Asia. Dengan kata lain, variabel
yang digunakan adalah new_cases dan bergantung pada variabel location yang berada
pada Benua Asia.

Pertama-tama, program akan mengambil data berikutnya dan memeriksa benua pada
tersebut adalah Asia atau tidak. Jika ya, program akan mengelompokan data berdasarkan
location dan menjumlahkan data tersebut berdasarkan new_cases. Setelah
mendapatkan data hasil penjumlahan variabel new_cases berdasarkan variabel
location, data kemudian digambarkan dalam bentuk peta dunia yang ditunjukan pada
Gambar 2.3.4. Kemudian, peta dunia yang semulanya kosong akan dibuat dan dijudulkan.
Selanjutnya program akan mengambil data negara berikutnya, yakni negara yang ada di Asia,
dan menambahkan data negara tersebut ke dalam visualisasi peta dunia yang telah dibuat.
Program akan melakukan penambahan data ini ke dalam visualisasi peta dunia untuk setiap
negara di Asia. Algoritma dari pembuatan program untuk pertanyaan ke-2 ini dapat dilihat
pada Gambar 2.3.1 di bawah ini.

11
Gambar 2.3.1: Algoritma pembuatan peta dunia total kasus COVID-19 terkonfirmasi pada
setiap negara di Asia

12
Pada Gambar 2.3.2 dan 2.3.3 ditunjukan kode program yang akan menjawab
pertanyaan 2. Langkah pertama untuk menyelesaikan pertanyaan 2 adalah bagian memfilter
data, pertama-tama program diminta untuk mengambil data continent dari data frame
yang sudah dibaca sebelumnya dan memfilternya berdasarkan data Benua Asia. Hal ini
dikarenakan pada pertanyaan 2 disebutkan “untuk setiap negara di Benua Asia”, maka
perintahnya adalah df[“continent”] == “Asia” dan disimpan dalam variabel
is_Asia. Tipe data dari variabel is_Asia adalah boolean, dimana nilai True menandakan
bahwa data tersebut sama dengan nama benua yang sudah difilter sebelumnya yaitu “Asia,”
sedangkan nilai False menandakan bahwa data tersebut tidak sama. Nilai boolean ini
berfungsi untuk mengindeks data. Setelah itu, data sebelumnya yaitu data yang disimpan
dalam variabel df diindeks oleh hasil filter sebelumnya yaitu nilai dari variabel is_Asia
(bernilai True) dengan perintah df[is_Asia] dan ditampung dalam variabel df_asia.
Selanjutnya, hasil filter tersebut dikelompokkan berdasarkan nama negara dan dihitung total
tiap negara dari data new_cases dan disimpan dalam variabel df_asialoc. Lihat
Gambar 2.3.2.

# mengambil data benua Asia


is_Asia = df["continent"] == "Asia"
df_asia = df[is_Asia]

# penjumlahan data kasus baru COVID berdasarkan pengelompokan data negara


df_asialoc = df_asia.groupby(['location']).new_cases.sum()
print("\n===== Data Total Kasus COVID Negara Asia =====")
print(df_asialoc)

Gambar 2.3.2: Pemfilteran data Asia dan penjumlahan data kasus baru COVID-19
berdasarkan pengelompokan data negara

Setelah memfilter data dan menjumlahkan data kasus baru COVID-19 berdasarkan
pengelompokan data negara, data tersebut akan divisualisasikan menggunakan peta dunia,
seperti pada pertanyaan pertama. Namun, oleh karena pada pertanyaan ke-2 ini akan dibuat
visualisasi data dari negara-negara yang ada di Asia, maka terdapat sedikit perbedaan dalam
kode pemrogramannya. Untuk pertanyaan ke-2, kode yang digunakan untuk mendaftarkan
data-data ke dalam visualisasi peta dunia bukan kode benua, melainkan kode negara yang
sudah ada di dalam library pygal.maps. Kode visualisasi data ini dimulai dengan pembuatan
peta kosong terlebih dahulu, dan penjudulan peta yaitu “Total Confirmed COVID Cases Per
Country in Asia.” Semua data untuk 49 negara di Asia lalu ditambahkan ke dalam visualisasi

13
peta dunia menggunakan worldmap_Asia.add, seperti terlihat pada Gambar 2.3.3.
Pemanggilan data untuk setiap negara dapat dilakukan dengan menggunakan nomor indeks
dari variabel df_asialoc, di mana indeks ke-0 akan menunjukkan data pada baris
pertama, indeks ke-1 akan menunjukkan data pada baris kedua, dan seterusnya. Sebagai
contoh, untuk memanggil data jumlah kasus COVID-19 baru di Indonesia yang berada pada
baris ke-13, perintah yang digunakan adalah df_asialoc[12]. Setelah semua data negara
telah dimasukkan, visualisasi peta dunia akan disimpan ke dalam file dengan format “.svg”
yang berjudul “Negara-Negara Asia.svg.”

# pembuatan peta dunia


worldmap_Asia = pygal.maps.world.World()

# penjudulan
worldmap_Asia.title = 'Total Confirmed COVID Cases Per Country in Asia'

# memasukkan data total kasus COVID setiap negara di Asia


worldmap_Asia.add('Total Cases', {
'af': df_asialoc[0],
'am': df_asialoc[1],
'az': df_asialoc[2],
'bh': df_asialoc[3],
'bd': df_asialoc[4],
'bt': df_asialoc[5],
'bn': df_asialoc[6],
'kh': df_asialoc[7],
'cn': df_asialoc[8],
'ge': df_asialoc[9],
'hk': df_asialoc[10],
'in': df_asialoc[11],
'id': df_asialoc[12],
'ir': df_asialoc[13],
'iq': df_asialoc[14],
'il': df_asialoc[15],
'jp': df_asialoc[16],
'jo': df_asialoc[17],
'kz': df_asialoc[18],
'kw': df_asialoc[19],
'kg': df_asialoc[20],
'la': df_asialoc[21],
'lb': df_asialoc[22],
'mo': df_asialoc[23],
'my': df_asialoc[24],
'mv': df_asialoc[25],
'mn': df_asialoc[26],
'mm': df_asialoc[27],
'np': df_asialoc[28],

14
'cy': df_asialoc[29],
'om': df_asialoc[30],
'pk': df_asialoc[31],
'ps': df_asialoc[32],
'ph': df_asialoc[33],
'qt': df_asialoc[34],
'sa': df_asialoc[35],
'sg': df_asialoc[36],
'kr': df_asialoc[37],
'lk': df_asialoc[38],
'sy': df_asialoc[39],
'tw': df_asialoc[40],
'tj': df_asialoc[41],
'th': df_asialoc[42],
'tl': df_asialoc[43],
'tr': df_asialoc[44],
'ae': df_asialoc[45],
'uz': df_asialoc[46],
'vn': df_asialoc[47],
'ye': df_asialoc[48]
})

# menyimpan visualisasi peta dunia ke dalam file .svg


worldmap_Asia.render_to_file('Negara-Negara Asia.svg')

Gambar 2.3.3: Kode untuk membuat visualisasi total kasus COVID-19 terkonfirmasi setiap
negara di Asia dalam bentuk peta dunia

Pada Gambar 2.3.4 dibawah ini, ditampilkan hasil visualisasi peta dunia yang
menunjukan data kasus COVID-19 yang terkonfirmasi pada negara-negara di Benua Asia.
Dalam visualisasi ini area Benua Asia ditandai pemberian warna pada setiap negara yang
menunjukan jika semakin besar kasus COVID-19 yang terkonfirmasi maka akan ditandai
dengan warna merah yang lebih tua. Dengan itu, dapat disimpulkan bahwa negara dengan
kasus COVID-19 terkonfirmasi paling besar adalah India. Hasil visualisasi program dengan
file “Negara-Negara Asia.svg” ini dapat ditemukan pada folder yang sama dengan
penyimpanan file program python.

15
Gambar 2.3.4: Visualisasi total kasus COVID-19 terkonfirmasi pada seluruh negara di Asia
sebelum ditunjuk

Pada Gambar 2.3.5 dilampirkan visualisasi peta dunia yang telah ditunjuk sehingga
dapat menampilkan keterangan total kasus pada tiap negara di Benua Asia. Dari gambar
tersebut, ditunjukan bahwa negara dengan total kasus COVID-19 terkonfirmasi paling besar
di Benua Asia adalah India dengan jumlah kasus sebesar 18.376.421 kasus.

16
Gambar 2.3.5: Visualisasi total kasus COVID-19 terkonfirmasi pada suatu negara di Asia
setelah ditunjuk

17
2.4 PERTANYAAN 3

Pada pertanyaan 3, diminta untuk menentukan negara dengan total kematian paling
rendah akibat COVID-19 di ASEAN dan memvisualisasikannya. Untuk menyelesaikan
pertanyaan ini, akan didaftarkan negara-negara yang masuk dalam ASEAN, diantaranya
negara Indonesia, Singapura, Thailand, Malaysia, Brunei, Kamboja, Laos, Vietnam, Filipina,
dan Myanmar. Setelah itu, file yang sudah dibaca sebelumnya akan di filter berdasarkan
negara yang sudah didaftarkan sebelumnya dan akan dihitung total kematian tiap negara
akibat COVID-19. Kemudian, data tersebut akan divisualisasikan agar terlihat perbandingan
banyaknya total kematian tiap negara akibat COVID-19 di ASEAN.

Langkah pertama pada algoritma yang digunakan pada program ini adalah dengan
mengimpor terlebih dahulu library pandas, pygal dan pygal.maps, kemudian program
diperintahkan untuk membaca file yang sudah diberikan sebelumnya. Setelah itu, data di filter
berdasarkan negara-negara yang masuk dalam ASEAN lalu mengelompokkannya dan
kemudian akan dihitung total kematian dari data new_deaths. Bagian visualisasi data
dilakukan dengan pembuatan treemap dan pemberian judul. Setelah itu, data hasil filter
sebelumnya dimasukkan ke peta yang kemudian hasilnya disimpan ke dalam file dengan
format “.svg” dan program selesai. Visualisasi untuk algoritma pembuatan program
pertanyaan 3 dapat dilihat pada Gambar 2.4.1.

18
Gambar 2.4.1: Algoritma pembuatan visualisasi total kematian setiap negara akibat
COVID-19 di ASEAN

19
Pada Gambar 2.4.2 dan 2.4.3 ditunjukan adalah kode program untuk pertanyaan
ke-3. Langkah pertama adalah bagian dari memfilter data, pertama-tama program diminta
untuk mengambil data location dari data frame yang sudah dibaca sebelumnya dan
memfilternya berdasarkan negara-negara yang masuk dalam ASEAN (Indonesia, Singapura,
Thailand, Malaysia, Brunei Darussalam, Kamboja, Laos, Vietnam, Filipina dan Myanmar).
Langkah tersebut dilakukan melalui perintah
f[“location”].isin([“Indonesia”, “Singapore”, “Thailand”,
“Malaysia”, “Brunei”, “Cambodia”, “Laos”, “Vietnam”,
“Philippines”, “Myanmar”]) dan ditampung dalam variabel is_ASEAN. Tipe data
dari variabel ini adalah boolean, dimana nilai True menandakan bahwa data tersebut sama
dengan nama negara yang didaftarkan sebelumnya, sedangkan nilai False menandakan
bahwa data tersebut tidak sama dengan nama negara yang didaftarkan sebelumnya. Nilai
boolean ini berfungsi untuk mengindeks data. Setelah itu, data sebelumnya yaitu data yang
disimpan dalam variabel df diindeks oleh hasil filter sebelumnya yang merupakan nilai dari
variabel is_ASEAN (bernilai True) dengan perintah df[is_ASEAN] kemudian ditampung
dalam variabel df_ASEAN. Selanjutnya, hasil filter tersebut dikelompokkan berdasarkan
nama negara dan dihitung total tiap negara dari data new_deaths dan disimpan dalam
variabel df_ASEANdeaths. Lihat Gambar 2.4.2.

# mengambil data negara-negara ASEAN


is_ASEAN = df["location"].isin(["Indonesia", "Singapore", "Thailand",
"Malaysia", "Brunei", "Cambodia", "Laos",
"Vietnam", "Philippines", "Myanmar"])
df_ASEAN = df[is_ASEAN]

# penjumlahan data total kematian akibat COVID berdasarkan pengelompokan data


# negara ASEAN
df_ASEANdeaths = df_ASEAN.groupby(["location"]).new_deaths.sum()
print("\n===== Data Total Kematian Akibat COVID Negara ASEAN =====")
print(df_ASEANdeaths)

Gambar 2.4.2: Kode untuk memfilter, mengelompokkan nama negara dan menghitung total
kematian akibat COVID-19 di ASEAN

Langkah kedua adalah bagian dari visualisasi data, karena visualisasi data yang akan
dipakai adalah treemap, maka perintah untuk mamanggil treemap dari library pygal adalah
pygal.treemap() kemudian disimpan dalam variabel treemap. Setelah itu, treemap
yang sudah dibuat sebelumnya akan diberi judul “Total COVID-19 Deaths Per ASEAN

20
Member State” dengan menggunakan perintah treemap.title = “Total COVID
Deaths Per ASEAN Member State”. Selanjutnya, data yang sudah didapatkan di
langkah pertama akan dimasukkan ke treemap dengan bentuk perintah
treemap.add(‘nama negara’, [df-ASEANdeaths[‘indeks nama
negara’]]), dimana ‘nama negara’ adalah negara yang masuk dalam ASEAN.
Langkah terakhir adalah menyimpan visualisasi treemap ke dalam file “.svg” dan diberi
nama file “Total Kematian ASEAN” dengan perintah
treemap.render_to_file(“Total Kematian ASEAN”) dan program selesai.
Lihat Gambar 2.4.3.

# pembuatan treemap
treemap = pygal.Treemap()

# penjudulan
treemap.title = 'Total COVID Deaths Per ASEAN Member State'

# memasukkan data total kematian akibat COVID setiap negara ASEAN


treemap.add('Brunei', [df_ASEANdeaths[0]])
treemap.add('Cambodia', [df_ASEANdeaths[1]])
treemap.add('Indonesia', [df_ASEANdeaths[2]])
treemap.add('Laos', [df_ASEANdeaths[3]])
treemap.add('Malaysia', [df_ASEANdeaths[4]])
treemap.add('Myanmar', [df_ASEANdeaths[5]])
treemap.add('Philippines', [df_ASEANdeaths[6]])
treemap.add('Singapore', [df_ASEANdeaths[7]])
treemap.add('Thailand', [df_ASEANdeaths[8]])
treemap.add('Vietnam', [df_ASEANdeaths[9]])

# menyimpan visualisasi treemap ke dalam file .svg


treemap.render_to_file('Total Kematian ASEAN.svg')

Gambar 2.4.3: Kode untuk membuat visualisasi total kematian COVID-19 setiap negara
ASEAN dalam bentuk treemap

21
Hasil visualisasi data dari program diatas ditunjukan pada Gambar 2.4.4. Jika
diperhatikan, hanya terlihat 9 warna sedangkan dalam keterangannya terdapat 10 warna,
dimana setiap warna menandakan 1 negara yang merupakan negara ASEAN. Besar kecilnya
setiap warna di treemap menunjukan bahwa semakin besar area atau terlihat warna tersebut
semakin banyak pula total kematian akibat COVID-19 di negara yang ditandai dengan warna
tersebut begitu pula sebaliknya.

Gambar 2.4.4: Visualisasi total kematian COVID-19 setiap negara ASEAN

Jika diperhatikan juga pada Gambar 2.4.5, Laos adalah negara yang total kematian
akibat COVID-19 paling rendah dibandingkan negara lain di ASEAN, yaitu tidak ada
kematian sama sekali akibat COVID-19, sehingga hal ini menyebabkan warna yang
menandakan negara Laos di Gambar 2.4.4 tidak ditunjukan dalam visualisasi treemap.

22
Gambar 2.4.5: Visualisasi total kematian COVID-19 di Laos

23
2.5 PERTANYAAN 4

Selanjutnya, pada pertanyaan ke-4 soal bertanya apakah vaksinasi membantu untuk
menurunkan kasus penyebaran COVID-19. Untuk menyelesaikan permasalahan ini, akan
dilakukan analisis sederhana dari sampel beberapa negara. Negara-negara yang diambil
sebagai sampel analisis adalah Amerika Serikat, Indonesia, Rusia, dan India. Metode analisis
yang dipakai pada penyelesaian permasalahan ini adalah melakukan observasi laju kenaikan
ataupun penurunan dari perbandingan jumlah kasus COVID-19 baru setiap harinya dengan
jumlah orang yang mendapatkan vaksinasi dosis pertama. Dalam kata lain, kedua variabel
yang dibandingkan adalah new_cases dan people_vaccinated.

Dengan kedua variabel tersebut, dapat dibuat suatu grafik untuk kemudian dianalisis
untuk menilai efektivitas dari vaksinasi. Vaksinasi dapat dinilai efektif apabila didapati bahwa
jumlah kasus COVID-19 baru setiap harinya menurun secara signifikan dengan semakin
banyaknya jumlah orang yang telah divaksinasi. Oleh karena itu, untuk kasus ini, vaksinasi
dapat dikatakan membantu menurunkan kasus penyebaran COVID-19 jika pergerakan grafik
menurun. Artinya, semakin banyak orang yang mendapatkan vaksinasi dosis pertama,
semakin sedikit jumlah kasus COVID-19 baru. Algoritma dari program yang digunakan
untuk membuat grafik dari masing-masing negara yang telah disebutkan dapat dilihat pada
Gambar 2.5.1.

Langkah pertama dalam membuat grafik ini adalah untuk melakukan pengimporan
data dahulu yang terdapat dalam bentuk excel menggunakan import pandas. Setelah itu,
program akan membaca dan memfilter data tersebut sehingga hanya akan memunculkan data
negara yang telah ditentukan oleh pengguna. Lalu, oleh karena yang dibutuhkan hanya dua
variabel, yaitu new_cases dan people_vaccinated, akan dibuat suatu variabel baru
yang hanya mengambil kolom negara dan kedua kolom variabel tersebut. Oleh karena data
vaksinasi muncul pada saat pertama kali proses vaksinasi terjadi, langkah selanjutnya adalah
untuk menghapus data pada semua tanggal sebelum adanya vaksinasi. Kemudian, grafik
dibuat beserta dengan label sumbu-x dan sumbu-y yang telah ditentukan, dan grafik akan
disimpan ke dalam file dengan format “.svg.” Untuk setiap negara yang akan dianalisis,
program ini dijalankan menggunakan proses yang sama.

24
Gambar 2.5.1: Algoritma pembuatan grafik perbandingan jumlah kasus COVID-19 baru
terhadap jumlah orang yang telah mendapatkan vaksin dosis pertama

Pada Gambar 2.5.2 di bawah, kode yang sama digunakan empat kali, yakni untuk
setiap negara yaitu Amerika Serikat, Indonesia, Rusia, dan India. Untuk mempermudah,
penjelasan program ini akan menggunakan negara yang pertama, yakni Amerika Serikat.
Pertama-tama, data harus difilter sehingga akan memunculkan data di negara Amerika
Serikat saja. Metode yang digunakan untuk memfilter data ini adalah untuk mengidentifikasi
terlebih dahulu data pada setiap barisnya menggunakan nilai boolean, terlihat pada variabel

25
is_US. Jika pada baris yang sedang ditinjau ternyata data tersebut adalah data Amerika
Serikat, nilai boolean yang akan dihasilkan adalah True. Setiap data lainnya yang tidak
menunjukkan string “United States” pada kolom “location” akan menghasilkan nilai False.

Selanjutnya, akan dibuat data frame yang hanya menampilkan data dari kedua kolom
berikut: new_cases dan people_vaccinated. Data yang baru ini disimpan dalam
variabel US_new. Langkah berikutnya adalah untuk memfilter kembali data dalam data
frame US_new agar sesuai dengan nilai boolean yang dihasilkan pada variabel is_US. Data
frame yang baru, yakni US_new2, akan terdiri dari data Amerika Serikat yang ada pada dua
kolom yang digunakan, yakni new_cases dan people_vaccinated. Namun, karena
data vaksinasi muncul pada saat pertama kali proses vaksinasi terjadi, tepatnya pada tanggal
20 Desember 2020 untuk Amerika Serikat, langkah selanjutnya adalah untuk menghapus data
pada semua tanggal sebelum adanya vaksinasi, atau data sebelum tanggal 20 Desember 2020.

Untuk menghapus data-data sebelum tanggal tersebut, perintah yang digunakan


adalah dropna dari library pandas, dan diaplikasikan pada kolom people_vaccinated.
Perintah US_new2.dropna ini akan menghilangkan baris dengan data NaN atau kosong
pada data frame US_new2. Kemudian, grafik akhirnya dapat dibuat dengan menggunakan
perintah plot dari library pandas dan disimpan dalam variabel ax. Oleh karena belum
terdapat label pada kedua sumbu pada grafik ini, akan ditambahkan terlebih dahulu label dari
sumbu-x dan sumbu-y grafik ini. Pada sumbu-x adalah jumlah orang yang telah menerima
vaksin dosis pertama, dan pada sumbu-y adalah jumlah kasus COVID-19 baru. Pelabelan
sumbu tersebut menggunakan perintah set_xlabel dan set_ylabel. Terakhir, grafik
akan dihasilkan dan disimpan ke dalam file dengan format “.svg” menggunakan perintah
get_figure dan savefig.

## United States
# mengambil data negara United States
is_US = df["location"] == "United States"

# mengambil data kolom "new_cases" dan "people_vaccinated" di United States


US_new = df[["new_cases", "people_vaccinated"]]
US_new2 = US_new[is_US]

# menghilangkan data NaN (kosong)


US_new2.dropna(subset = ["people_vaccinated"], inplace=True)

# pembuatan grafik "Number of People Vaccinated in United States"

26
ax = US_new2.plot(x='people_vaccinated', title='Number of New Cases to '
'Number of People Vaccinated in United States',
figsize=(10, 5), grid=True)

# pelabelan sumbu grafik


ax.set_xlabel("Number of People Vaccinated")
ax.set_ylabel("Number of New Cases Per Day")

# menyimpan grafik ke dalam file .svg


fig = ax.get_figure()
fig.savefig('United States.svg')

## Indonesia
# mengambil data negara Indonesia
is_Indonesia = df["location"] == "Indonesia"

# mengambil data kolom "new_cases" dan "people_vaccinated" di Indonesia


Indonesia_new = df[["new_cases", "people_vaccinated"]]
Indonesia_new2 = Indonesia_new[is_Indonesia]

# menghilangkan data NaN (kosong)


Indonesia_new2.dropna(subset = ["people_vaccinated"], inplace=True)

# pembuatan grafik "Number of People Vaccinated in Indonesia"


ax = Indonesia_new2.plot(x='people_vaccinated', title='Number of New Cases to '
'Number of People Vaccinated in Indonesia',
figsize=(10, 5), grid=True)

# pelabelan sumbu grafik


ax.set_xlabel("Number of People Vaccinated")
ax.set_ylabel("Number of New Cases Per Day")

# menyimpan grafik ke dalam file .svg


fig = ax.get_figure()
fig.savefig('Indonesia.svg')

## Russia
# mengambil data negara Rusia
is_Russia = df["location"] == "Russia"

# mengambil data kolom "new_cases" dan "people_vaccinated" di Rusia


Russia_new = df[["new_cases", "people_vaccinated"]]
Russia_new2 = Russia_new[is_Russia]

# menghilangkan data NaN (kosong)


Russia_new2.dropna(subset = ["people_vaccinated"], inplace=True)

# pembuatan grafik "Number of People Vaccinated in Russia"


ax = Russia_new2.plot(x='people_vaccinated', title='Number of New Cases to '
'Number of People Vaccinated in Russia',
figsize=(10, 5), grid=True)

27
# pelabelan sumbu grafik
ax.set_xlabel("Number of People Vaccinated")
ax.set_ylabel("Number of New Cases Per Day")

# menyimpan grafik ke dalam file .svg


fig = ax.get_figure()
fig.savefig('Russia.svg')

## India
# mengambil data negara India
is_India = df["location"] == "India"

# mengambil data kolom "new_cases" dan "people_vaccinated" di India


India_new = df[["new_cases", "people_vaccinated"]]
India_new2 = India_new[is_India]

# menghilangkan data NaN (kosong)


India_new2.dropna(subset = ["people_vaccinated"], inplace=True)

# pembuatan grafik "Number of People Vaccinated in Russia"


ax = India_new2.plot(x='people_vaccinated', title='Number of New Cases to '
'Number of People Vaccinated in India',
figsize=(10, 5), grid=True)

# pelabelan sumbu grafik


ax.set_xlabel("Number of People Vaccinated")
ax.set_ylabel("Number of New Cases Per Day")

# menyimpan grafik ke dalam file .svg


fig = ax.get_figure()
fig.savefig('India.svg')

Gambar 2.5.2: Program pembuatan grafik perbandingan jumlah kasus COVID-19 baru
terhadap jumlah orang yang telah mendapatkan vaksin dosis pertama

Hasil grafik dari program di atas dapat dilihat pada Gambar 2.5.3 – Gambar 2.5.6,
secara berurutan adalah grafik untuk Amerika Serikat, Indonesia, Rusia, dan India.
Berdasarkan grafik, jika laju grafik menurun artinya ada kemungkinan bahwa vaksinasi
membantu untuk menurunkan kasus penyebaran COVID-19. Namun, jika laju grafik
meningkat artinya ada kemungkinan bahwa vaksinasi tidak membantu untuk menurunkan
kasus penyebaran COVID-19. Vaksinasi dapat dinilai efektif dalam menurunkan kasus
penyebaran COVID-19 apabila didapati bahwa jumlah kasus COVID-19 baru setiap harinya
menurun secara signifikan dengan semakin banyaknya jumlah orang yang telah divaksinasi.
Dari empat sampel negara yang telah diambil, tiga negara memiliki laju grafik yang
menunjukkan penurunan, yaitu Amerika Serikat, Indonesia, dan Rusia.

28
Jika diperhatikan, penurunan jumlah kasus COVID-19 baru untuk ketiga negara
tersebut cukup signifikan. Penurunan jumlah kasus COVID-19 baru sejak vaksinasi pertama
kali dilakukan di Amerika Serikat dari 187.819 kasus baru menjadi 32.065 kasus baru, atau
mencapai 585,74%, di Indonesia dari 10.047 kasus baru menjadi 4.083 kasus baru, atau
mencapai 246,07%, dan di Rusia dari 26.265 kasus baru menjadi 7.729 kasus baru, atau
mencapai 339,82%. Dapat dilihat bahwa persentase penurunan jumlah kasus baru
COVID-19 untuk ketika negara tersebut cukup signifikan. Artinya, dari sampel beberapa
negara ini, vaksinasi dapat dinilai sangat membantu untuk menurunkan kasus penyebaran
COVID-19. Laju penurunan jumlah kasus COVID-19 baru untuk Amerika Serikat, Indonesia,
dan Rusia dapat dilihat pada Gambar 2.5.3, Gambar 2.5.4, dan Gambar 2.5.5 secara
berurutan.

Gambar 2.5.3: Grafik perbandingan jumlah kasus COVID-19 baru terhadap jumlah orang
yang telah mendapatkan vaksin dosis pertama di Amerika Serikat

29
Gambar 2.5.4: Grafik perbandingan jumlah kasus COVID-19 baru terhadap jumlah orang
yang telah mendapatkan vaksin dosis pertama di Indonesia

Gambar 2.5.5: Grafik perbandingan jumlah kasus COVID-19 baru terhadap jumlah orang
yang telah mendapatkan vaksin dosis pertama di Rusia

Namun, pada kenyataannya, tidak semua negara mendapatkan manfaat yang sama
dengan adanya vaksinasi. Salah satu negara yang mengalami hal sebaliknya adalah India.
Kenaikan jumlah kasus COVID-19 baru sejak vaksinasi dilakukan di India sangat besar, dari
15.158 kasus baru pada tanggal 15 Januari 2021 menjadi 379.308 kasus baru pada tanggal 28
April 2021, atau mencapai 2.502,36%. Terlihat pada Gambar 2.5.6 di bawah, grafik untuk

30
jumlah kasus COVID-19 baru terhadap jumlah orang yang telah mendapatkan vaksin dosis
pertama di India mengalami kenaikan yang sangat drastis. Berarti, vaksinasi COVID-19 di
India tidak dapat dinilai efektif sebab seharusnya jumlah kasus COVID-19 baru menurun,
bukan meningkat.

Gambar 2.5.6: Grafik perbandingan jumlah kasus COVID-19 baru terhadap jumlah orang
yang telah mendapatkan vaksin dosis pertama di India

Dari keempat grafik di atas, dapat disimpulkan bahwa vaksinasi efektif dalam
mengurangi penyebaran COVID-19 untuk kebanyakan negara. Namun, untuk sebagian
negara lainnya yang telah melakukan vaksinasi bagi warga negaranya, jumlah kasus
COVID-19 baru bukan berkurang, melainkan bertambah. Beberapa faktor yang mungkin
menjadi alasan vaksinasi tidak terlalu membantu untuk menurunkan penyebaran COVID-19
antara lain kurangnya kesadaran masyarakat atas cara kerja vaksin, rendahnya kepedulian
masyarakat terhadap dirinya dan orang lain, serta banyaknya orang yang tidak menjalani pola
hidup sehat guna menjaga imunitas tubuh.

31
2.6 HASIL PROGRAM

===== Data Excel COVID =====


iso_code continent ... life_expectancy human_development_index
0 AFG Asia ... 64.83 0.511
1 AFG Asia ... 64.83 0.511
2 AFG Asia ... 64.83 0.511
3 AFG Asia ... 64.83 0.511
4 AFG Asia ... 64.83 0.511
... ... ... ... ...
84754 ZWE Africa ... 61.49 0.571
84755 ZWE Africa ... 61.49 0.571
84756 ZWE Africa ... 61.49 0.571
84757 ZWE Africa ... 61.49 0.571
84758 ZWE Africa ... 61.49 0.571

[84759 rows x 59 columns]

===== Data Total Kasus COVID Benua =====


continent
Africa 4532581.0
Asia 37668930.0
Europe 44575562.0
North America 37370599.0
Oceania 43444.0
South America 24607245.0
Name: new_cases, dtype: float64

===== Data Total Kasus COVID Negara Asia =====


location
Afghanistan 59370.0
Armenia 214872.0
Azerbaijan 316521.0
Bahrain 174659.0
Bangladesh 754614.0
Bhutan 1059.0
Brunei 224.0
Cambodia 11761.0
China 101898.0
Georgia 307401.0
Hong Kong 0.0
India 18376421.0
Indonesia 1657035.0
Iran 2459906.0
Iraq 1051868.0
Israel 838323.0
Japan 580664.0
Jordan 708265.0
Kazakhstan 369704.0
Kuwait 271145.0
Kyrgyzstan 94599.0
Laos 604.0
Lebanon 524241.0

32
Macao 0.0
Malaysia 401593.0
Maldives 29052.0
Mongolia 33608.0
Myanmar 142790.0
Nepal 312699.0
Northern Cyprus 0.0
Oman 192326.0
Pakistan 815711.0
Palestine 294550.0
Philippines 1020495.0
Qatar 204289.0
Saudi Arabia 415281.0
Singapore 61086.0
South Korea 121350.0
Sri Lanka 104953.0
Syria 22513.0
Taiwan 1115.0
Tajikistan 13308.0
Thailand 61695.0
Timor 2124.0
Turkey 3927801.0
United Arab Emirates 516301.0
Uzbekistan 90008.0
Vietnam 2865.0
Yemen 6263.0
Name: new_cases, dtype: float64

===== Data Total Kematian Akibat COVID Negara ASEAN =====


location
Brunei 3.0
Cambodia 88.0
Indonesia 45116.0
Laos 0.0
Malaysia 1477.0
Myanmar 3209.0
Philippines 17031.0
Singapore 30.0
Thailand 178.0
Vietnam 35.0
Name: new_deaths, dtype: float64

33
BAB III

KESIMPULAN

Berdasarkan program yang telah dibuat, dapat disimpulkan bahwa secara keseluruhan
program berjalan sesuai yang diharapkan dan dapat menjelaskan permasalahan dan
pertanyaan yang ditanyakan.

Pada pertanyaan pertama, hasil program dapat menunjukkan visualisasi total kasus
COVID-19 yang terkonfirmasi tiap benua melalui visualisasi peta dunia. Untuk menjawab
pertanyaan benua mana yang memiliki kasus COVID-19 terkonfirmasi paling banyak,
pengguna dapat mengarahkan pointer-nya pada masing-masing benua dan menyimpulkan
kasus dengan nilai terbesar. Dengan demikian, dapat disimpulkan bahwa benua dengan kasus
COVID-19 terkonfirmasi paling banyak adalah Benua Eropa dengan jumlah kasus sebesar
44.575.562 jiwa.

Hasil dari pertanyaan kedua menyimpulkan bahwa program yang telah dibuat dapat
menunjukan visualisasi total kasus COVID-19 terkonfirmasi pada negara-negara di Benua
Asia dengan baik. Metode yang digunakan untuk mengolah data sesuai pertanyaan 2 sedikit
berbeda dengan pertanyaan 1 akan tetapi visualisasi tetap digambarkan dalam bentuk peta
dunia. Hasil visualisasi digambarkan tersebut akan menunjukan negara-negara di Benua Asia
menggunakan warna merah. Semakin tua warna merah yang ditampilkan pada suatu negara
menandakan negara tersebut memiliki kasus COVID-19 yang lebih besar dibanding dengan
negara yang ditandai dengan warna merah yang lebih muda.

Pada pertanyaan ketiga, hasil dari program yang sudah dibuat menunjukkan
visualisasi total kematian akibat COVID-19 di ASEAN dengan menggunakan visualisasi
treemap. Jika melihat treemap tersebut, maka akan terlihat bahwa warna yang tidak muncul
adalah warna kuning yang menandakan negara Laos. Karena besar kecilnya setiap warna
pada treemap menunjukan bahwa semakin besar area atau terlihat warna tersebut, semakin
banyak pula total kematian akibat COVID-19 di negara yang ditandai dengan warna tersebut,
sehingga total kematian paling rendah akibat COVID-19 di ASEAN yaitu di negara Laos
dengan total kematian 0 kasus.

Untuk pertanyaan terakhir, program menghasilkan empat buah grafik dari empat
negara berbeda, yakni Amerika Serikat, Indonesia, Rusia, dan India. Grafik dari keempat
negara tersebut menunjukkan laju penurunan ataupun kenaikan dari jumlah kasus COVID-19

34
baru terhadap jumlah orang yang telah mendapatkan vaksin dosis pertama. Melalui observasi,
grafik untuk Amerika Serikat, Indonesia, dan Rusia menunjukkan penurunan sementara
grafik untuk India menunjukkan peningkatan. Artinya, vaksinasi dapat menjadi salah satu
sarana yang dapat membantu menurunkan kasus penyebaran COVID-19 di kebanyakan
negara, tetapi belum tentu demikian untuk negara lainnya. Walaupun vaksinasi dapat
dikatakan cukup efektif untuk menurunkan kasus penyebaran COVID-19, naik atau turunnya
kasus penyebaran COVID-19 tidak seluruhnya bergantung pada jumlah orang yang telah
mendapatkan vaksinasi, tetapi juga oleh faktor-faktor lainnya.

35

Anda mungkin juga menyukai