Beberapa Libary yang perlu install sebagai berikut :
library(ggplot2)
library(ggrepel)
## Warning: package 'ggrepel' was built under R version 4.4.3
library(ggthemes)
library(csvread)
library(gridExtra)
Data diinput dari Microsoft excel dengan syntax sebagai berikut:
setwd("D:/Kuliah/Belajar/Semester 2/Matkul/Probabilitas dan Statistika/Tugas/Pertemuan 3 (03 Maret 2025)")
rawData <- read.csv("quality_of_life_indices_by_country.csv")
filterByYear <- subset(rawData, Year == 2024)
filterByRank <- subset(filterByYear, Rank >= 73 & Rank <= 78)
data <- filterByRank
head(data)
## Rank Country Quality.of.Life.Index Purchasing.Power.Index Safety.Index
## 1400 73 Kazakhstan 98.4 36.8 54.1
## 1401 74 Thailand 97.7 32.9 62.1
## 1402 75 Indonesia 94.8 25.8 53.9
## 1403 76 Vietnam 92.7 32.5 57.8
## 1404 77 Philippines 85.9 25.9 57.2
## 1405 78 Egypt 83.8 15.2 52.7
## Health.Care.Index Cost.of.Living.Index Property.Price.to.Income.Ratio
## 1400 60.1 33.5 10.4
## 1401 77.2 36.0 26.5
## 1402 60.8 28.5 18.9
## 1403 60.8 30.8 23.7
## 1404 67.4 33.6 27.0
## 1405 47.5 29.1 16.2
## Traffic.Commute.Time.Index Pollution.Index Climate.Index Year
## 1400 35.8 73.6 39.8 2024
## 1401 39.0 75.5 67.6 2024
## 1402 43.0 67.4 64.0 2024
## 1403 29.1 83.8 71.2 2024
## 1404 43.1 72.5 60.8 2024
## 1405 48.1 82.8 92.0 2024
Dari data tersebut akan disajikan visualisasi data dalam bentuk Pie Chart. berikut terlampir hasil visualisasi datanya:
pie_chart <- ggplot(data, aes(x = "", fill = Country)) +
geom_bar(width = 1, stat = "count") +
coord_polar("y", start = 0) +
theme_minimal() +
labs(title = "Kualitas Hidup di Beberapa Negara Berkembang (2024)") +
theme(axis.text.x = element_blank()) +
scale_fill_brewer(palette = "Set3")
pie_chart
Dari hasil visualisasi tersebut dapat di jelaskan bahwa Kualitas Hidup Di Negara berkembang Negara Kazakhstan merupakan Negara yang paling banyak, sedangkan paling sedikit ditempati oleh Negara Mesir.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Bar Chart. berikut terlampir hasil visualisasi datanya:
bar_chart <- ggplot(data, aes(x = Country, y = `Quality.of.Life.Index`, fill = Country)) +
geom_col() +
theme_minimal() +
labs(title = "Quality of Life Index by Country", x = "Country", y = "Quality of Life Index") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
bar_chart
Berdasarkan hasil bar chart diatas, Negara Kazakhstan menempati peringkat tertinggi dalam kualitas hidup, Sedangkan yang paling sedikit menempati peringkat terendah dalam kualitas hidup ditempati oleh Negara Mesir.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Dot Plot. berikut terlampir hasil visualisasi datanya:
dot_plot <- ggplot(data, aes(x = Safety.Index, y = Health.Care.Index)) +
geom_point(color = "blue", size = 3) +
theme_minimal() +
labs(title = "Dot Plot: Safety Index vs. Health Care Index", x = "Safety Index", y = "Health Care Index") +
geom_text(aes(label = Country), vjust = -0.5, hjust = 0.5)
dot_plot
Berdasarkan Dot plot diatas menunjukkan Indeks Keamanan dan indeks Layanan Kesehatan. Terlihat bahwa Negara Thailand memiliki indeks keamanan dan indeks layanan kesehatan tertinggi dibanding negara lain dalam grafik ini, sebaliknya Negara Mesir (Egypt) menempati peringkat terendah baik dalam indeks keamanan maupun layanan kesehatan.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Boxplot. berikut terlampir hasil visualisasi datanya:
boxplot_data <- ggplot(data, aes(y = `Property.Price.to.Income.Ratio`)) +
geom_boxplot(fill = "steelblue", alpha = 0.6) +
theme_minimal() +
labs(title = "Boxplot: Property Price to Income Ratio", y = "Property Price to Income Ratio")
boxplot_data
Boxplot di atas menggambarkan distribusi rasio harga properti terhadap pendapatan (Property Price to Income Ratio). Dari visualisasi ini, dapat diperhatikan bahwa Harga properti dibandingkan dengan pendapatan cukup bervariasi, dengan sebagian besar data berada dalam rentang yang cukup luas.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Histogram. berikut terlampir hasil visualisasi datanya:
histogram <- ggplot(data, aes(x = Cost.of.Living.Index)) +
geom_histogram(bins = 10, fill = "blue", color = "black", alpha = 0.8) +
geom_text_repel(
aes(y = 0, label = Country),
angle = 90, hjust = 1, size = 3, nudge_y = 5,
segment.color = NA
) +
theme_minimal() +
labs(
title = "Histogram: Cost Of Living Index",
x = "Cost Of Living Index",
y = "Frekuensi"
) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
histogram
Histogram menunjukkan bahwa frekuensi terbanyak adalah 2, yang berarti terdapat dua negara dalam rentang Cost of Living Index tertentu. Negara-negara tersebut adalah Kazakhstan dan Filipina.
Dari histogram yang ditampilkan, dapat disimpulkan bahwa Kazakhstan dan Filipina memiliki Cost of Living Index yang berada dalam rentang yang paling umum dibandingkan negara lainnya.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Density Plot. berikut terlampir hasil visualisasi datanya:
density_plot <- ggplot(data, aes(x = Pollution.Index)) +
geom_density(fill = "orange", alpha = 0.5) +
theme_minimal() +
labs(title = "Density Plot: Pollution Index", x = "Pollution Index", y = "Density")
density_plot
Dari Density plot di atas menggambarkan distribusi Pollution Index yang menyimpulkan bahwa Polusi udara cenderung tinggi di sebagian besar wilayah yang diamati, dengan mayoritas memiliki indeks di atas 70.
Dari data tersebut akan disajikan visualisasi data dalam bentuk deskriptif numerik berdasarkan “Quality of Life Index”, berikut terlampir hasil visualisasi datanya:
quality_of_life <- data$Quality.of.Life.Index
mean_quality <- mean(quality_of_life, na.rm = TRUE)
median_quality <- median(quality_of_life, na.rm = TRUE)
mode_quality <- as.numeric(names(which.max(table(quality_of_life))))
q1_quality <- quantile(quality_of_life, 0.25, na.rm = TRUE)
q3_quality <- quantile(quality_of_life, 0.75, na.rm = TRUE)
range_quality <- range(quality_of_life, na.rm = TRUE)
variance_quality <- var(quality_of_life, na.rm = TRUE)
sd_quality <- sd(quality_of_life, na.rm = TRUE)
stat_summary_df <- data.frame(
Statistic = c("Mean", "Median", "Mode", "Q1", "Q3", "Min", "Max", "Variance", "SD"),
Value = c(mean_quality, median_quality, mode_quality, q1_quality, q3_quality,
range_quality[1], range_quality[2], variance_quality, sd_quality)
)
print(stat_summary_df)
## Statistic Value
## 1 Mean 92.216667
## 2 Median 93.750000
## 3 Mode 83.800000
## 4 Q1 87.600000
## 5 Q3 96.975000
## 6 Min 83.800000
## 7 Max 98.400000
## 8 Variance 37.189667
## 9 SD 6.098333