Install Libary

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)

Input Data

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

Pie Chart

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.

Bar Chart

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.

Dot Plot

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.

Boxplot

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.

Histogram

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.

Density Plot

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.

Summary

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