Anggota kelompok: Najwa Andara Putri (3337240083) & Risalah Keishatora (3337240041)

Memuat library

Berikut merupakan beberapa library yang diperlukan:

library(ggplot2)
library(readxl)
library(ggthemes)
library(gridExtra)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'forcats' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.2.1
## ✔ purrr     1.0.4     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::combine() masks gridExtra::combine()
## ✖ dplyr::filter()  masks stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Input Data

Data diambil dari microsoft excel dengan sintaks seperti berikut:

file_path <- "C:/Users/najwa/Downloads/Data kunjungan wisatawan fix.xlsx"
data <- read_excel(file_path)

1. Membuat Grafik

Menghitung Total Kunjungan per Negara untuk Pie Chart

data_long <- data %>%
  pivot_longer(cols = -c(Negara, Tahunan, Persentase), 
               names_to = "Bulan", 
               values_to = "Kunjungan")

a. Pie Chart (persentase kunjungan per negara dalam setahun)

Dari data yang sudah diinput, disajikan visualisasi data dalam bentuk pie chart. Berikut merupakan hasil visualisasi data mengenai persentase kunjungan per negara dalam satu tahun:

pie_data <- data %>%
  select(Negara, Tahunan) %>%
  arrange(desc(Tahunan))

pie_chart <- ggplot(pie_data, aes(x = "", y = Tahunan, fill = Negara)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  theme_void() +
  labs(title = "Persentase kunjungan negara dalam setahun") +
  theme(legend.position = "right")
pie_chart

Dari hasil visualisasi tersebut, dapat disimpulkan bahwa Malaysia merupakan negara dengan persentase kunjungan terbanyak selama setahun. Kemudian disusul oleh Singapore, Philippine, Thailand, dan Brunei.

b. Bar Chart (bulan yang paling banyak menyumbang kunjungan)

Sebelumnya tentukan urutan bulan sesuai kalender

data_long$Bulan <- factor(data_long$Bulan, 
                          levels = c("Januari", "Februari", "Maret", "April", "Mei", "Juni", 
                                     "Juli", "Agustus", "September", "Oktober", "November", "Desember"))

Dari data yang sudah diinput, disajikan visualisasi data dalam bentuk bar chart. Berikut merupakan hasil visualisasi data mengenai bulan yang paling banyak menyumbang kunjungan:

bar_chart <- ggplot(data_long, aes(x = Bulan, y = Kunjungan, fill = Bulan)) +
  geom_bar(stat = "identity", position = "dodge") +
  theme_minimal() +
  labs(title = "Kunjungan per bulan untuk semua negara", x = "Bulan", y = "Jumlah kunjungan") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
bar_chart

Dari hasil visualisasi bar chart diatas, dapat disimpulkan bahwa bulan September merupakan puncak bulan kunjungan turis mancanegara ke Indonesia di tahun 2024.

c. Histogram (distribusi kunjungan negara)

Dari data yang sudah diinput, disajikan visualisasi data dalam bentuk histogram. Berikut merupakan hasil visualisasi data mengenai distribusi kunjungan negara:

histogram <- ggplot(data_long, aes(x = Kunjungan)) +
  geom_histogram(bins = 20, fill = "pink", color = "black") +
  theme_minimal() +
  labs(title = "Distribusi kunjungan per negara", x = "Jumlah Kunjungan", y = "Frekuensi")
histogram

Dari Histogram diatas dapat ditarik kesimpulan bahwa sebagian besar negara memiliki jumlah kunjungan yang relatif rendah. Sementara beberapa negara memiliki jumlah kunjungan yang jauh lebih tinggi.

d. Density Plot (sebaran kunjungan per bulan)

Dari data yang sudah diinput, disajikan visualisasi data dalam bentuk density plot. Berikut merupakan hasil visualisasi data mengenai sebaran kunjungan per bulan:

density_plot <- ggplot(data_long, aes(x = Kunjungan, fill = Bulan)) +
  geom_density(alpha = 0.5) +
  theme_minimal() +
  labs(title = "Kepadatan kunjungan per bulan", x = "Jumlah kunjungan", y = "Kepadatan")
density_plot

Dari grafik tersebut dapat disimpulkan bahwa jumlah kunjungan bervariasi setiap bulan dengan beberapa bulan memiliki jumlah kunjungan yang lebih sering dibandingkan dengan bulan yang lain.

e. Boxplot (fluktuasi kunjungan per negara)

Dari data yang sudah diinput, disajikan visualisasi data dalam bentuk boxplot. Berikut merupakan hasil visualisasi data mengenai fluktuasi kunjungan per negara:

boxplot <- ggplot(data_long, aes(x = Negara, y = Kunjungan, fill = Negara)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "Fluktuasi kunjungan per negara", x = "Negara", y = "Jumlah kunjungan") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
boxplot

Dari boxplot diatas, dapat diketahui bahwa Malaysia dan Singapore merupakan negara yang memiliki kunjungan lebih dominan dibanding dengan negara lain. Sedangkan untuk Brunei, Thailand, dan Philippine memiliki jumlah kunjungan yang cenderung stabil.

Menampilkan semua grafik dalam satu layar

grid.arrange(pie_chart, bar_chart, histogram, density_plot, boxplot, ncol = 2)

2. Menghitung Mean, Median, Modus, Q1, Q3, Range, Varians, dan Standar Deviasi

Ukuran Pemusatan

a. Menghitung Rata-Rata (mean)

Berikut terlampir sintaks untuk menghitung rata-rata(mean) untuk jumlah pengunjung per tahunnya:

mean(data$'Tahunan')
## [1] 813094

b. Menghitung Median

Berikut terlampir sintaks untuk menghitung nilai tengah(median) dari jumlah pengunjung per tahunnya:

median(data$'Tahunan')
## [1] 239714

c. Menghitung Modus

Berikut terlampir sintaks untuk menghitung modus jumlah pengunjung per tahunnya:

modus <- function(x) {
  uniqx <- unique(x)
  uniqx[which.max(tabulate(match(x, uniqx)))]
}
modus(data$'Tahunan')
## [1] 19796

Menampilkan Ringkasan Data (statistik 5 serangkai)

Berikut terlampir sintaks untuk menghitung statistik 5 serangkai pada variabel jumlah pengunjung per tahunya:

summary(data$'Tahunan')
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   19796  119664  239714  813094 1408015 2278281

Ukuran Penyebaran Data

a. Menghitung Keragaman Data

Berikut terlampir sintaks untuk menghitung keragaman data pada variabel jumlah pengunjung per tahunnya:

var(data$'Tahunan')
## [1] 984908861829

b. Menghitung Standar Deviasi dari Data

Berikut terlampir sintaks untuk menghitung standar deviasi data pada variabel jumlah pengunjung per tahunnya:

sd(data$'Tahunan')
## [1] 992425.7