title: “Visualisasi Data Dasar Dengan R” author:
date: “2025-10-17”
output: html_document:
Data berikut merupakan data pariwisata daerah di indonesia yang berisi informasi mengenai berbagai destinasi wisata di berbagai daerah terkenal.
Tujuan dari data ini adalah untuk mengammbarkan jumlah wisatawan,pendapatan yang dihasilkan serta tingkat kepuasan pengunjung berdasarkan jenis wisata yang ditawarkan di tiap daerah
Data set ini terdiri dari 10 daerah wisata utama,mencakup berbagai jenis wisata seperti pantai,budaya,alam,kuliner,bahari,dan sejarah.
setiap daerah memiliki karakteriistik berbeda yang tercermin melalui banyaknya wisatawan yang berkunjung dan pendapatan yang diperoleh dari kegiatan pariwisata.
Tujuan dari penyusunan data pariwisata daerah ini dengan Visualisasi adalah untuk:
1.Menyajikan data pariwisata secara informatik dan menarik
2.Meningkatkan pemahaman terhadap hubungan antar faktor
3.Mendukung pengambilan keputusan dan evaluasi
library(knitr)
library(DT)
tanggal <- seq(from = as.Date("2024-02-02"),
to = as.Date("2024-11-02"),
by = "month")
nama_daerah <- c("Bali","Yogyakarta","Lombok","Bandung","labuan Bajo","Medan","Makasar","Malang","Raja Ampat","Danau Toba")
nama_daerah<- factor(nama_daerah)
jenis_wisata<-c("Pantai","Budaya","Alam","Kuliner","Bahari","Sejarah","Bahari","Alam","Bahari","Alam")
jenis_wisata<-factor(jenis_wisata)
jumlah_wisatawan<- c(500000,320000,210000,280000,150000,175000,200000,240000,120000,160000)
pendapatan_jualan<- c(1250.5,870.3,645.8,710.6,530.4,590.7,640.2,720.5,450.3,510.9)
tingkat_kepuasan<-c("Sangat Tinggi","Tinggi","Sedang","Tinggi","Sedang","Tinggi","Sedang","Tinggi","Sangat Tinggi","Sedang")
tingkat_kepuasan<-factor(tingkat_kepuasan,
levels = c("Sangat Tinggi","Tinggi","Sedang"),
ordered = TRUE)
Data_Pariwisata_Daerah<-data.frame(tanggal,nama_daerah,jenis_wisata,jumlah_wisatawan,pendapatan_jualan,tingkat_kepuasan)
datatable(Data_Pariwisata_Daerah,caption = "Data Pariwisata Daerah")
Definisi
Bar chart adalah grafik dengan batang persegi panjang.
Tinggi/panjang batang menunjukkan nilai dari setiap kategori.
Digunakan untuk membandingkan data kategorikal atau diskrit.
Aturan Penggunaan
Gunakan untuk data kategorikal atau diskrit (misal: nama daerah, jenis produk).
Batang harus proporsional dengan nilai yang ditampilkan.
Urutkan kategori jika memungkinkan (misal dari tinggi ke rendah).
Berikan label sumbu dan teks batang agar mudah dibaca.
Gunakan warna/pola untuk membedakan kategori, tapi jangan berlebihan.
Kelebihan
Mudah dipahami secara visual.
Memudahkan perbandingan antar kategori.
Fleksibel: bisa vertikal atau horizontal, bisa diwarnai.
Bisa menampilkan banyak kategori dengan jelas (terutama horizontal).
Kekurangan
Tidak cocok untuk data kontinu (gunakan histogram).
Terlalu banyak kategori bisa membuat sumbu sulit dibaca.
Skala batang yang tidak proporsional bisa menyesatkan.
Kurang tepat untuk menunjukkan tren waktu (gunakan line chart).
library(ggplot2)
ggplot(Data_Pariwisata_Daerah,
aes(x = reorder(nama_daerah,jumlah_wisatawan),
y = jumlah_wisatawan,
fill = jenis_wisata))+
geom_col() +
geom_text(aes(label = jumlah_wisatawan),
vjust = -0.3, # Tujuan nya agar teks di atas batang
size = 3.5)+ #ini untuk ukuran teks
labs(
title = "Jumlah Wisatawan Per Daerah di Indonesia (Urut dari tertinggi)",
x = "Nama Daerah",
y = "Jumlah Wisatawan",
fill = "Jenis Wisata")+
theme_minimal()+
theme(axis.text.x = element_text(angle=45,hjust = 1),
plot.title = element_text (face = "bold",size = 14 ))
Definisi Histogram
Histogram adalah grafik batang yang digunakan untuk menampilkan distribusi frekuensi data numerik/kuantitatif.
Sumbu X dibagi menjadi interval (bin), dan sumbu Y menunjukkan jumlah data dalam tiap interval.
Cocok untuk melihat pola data, seperti distribusi normal, skew, atau outlier.
Aturan Penggunaan
Gunakan untuk data numerik/kuantitatif (misal: tinggi badan, umur, nilai ujian).
Pilih jumlah bin yang sesuai agar distribusi data terlihat jelas (tidak terlalu banyak atau sedikit).
Batang harus bersentuhan (tidak ada jarak antar batang) karena menunjukkan kontinuitas data.
Label sumbu harus jelas, dan beri judul yang menggambarkan data.
Kelebihan
Memudahkan untuk melihat distribusi data secara cepat.
Bisa mendeteksi outlier atau pola data (misal simetris, skew, dsb).
Berguna untuk analisis statistik awal sebelum melakukan perhitungan lebih lanjut.
Kekurangan
Tidak cocok untuk data kategorikal.
Pilihan jumlah bin yang tidak tepat bisa menyembunyikan pola atau menyesatkan.
Tidak langsung menunjukkan nilai individual, hanya frekuensi per interval.
library(ggplot2)
ggplot(Data_Pariwisata_Daerah, aes(x = pendapatan_jualan)) +
geom_histogram(binwidth = 100, fill = "orange", color = "black") +
labs(
title = "Pendapatan Pariwisata per Daerah",
x = "Pendapatan (Juta Rupiah)",
y = "Frekuensi"
) +
theme_minimal()
Box plot adalah grafik yang digunakan untuk menunjukkan distribusi data numerik berdasarkan median, kuartil, dan outlier.
Box (kotak) menunjukkan Q1 sampai Q3, garis di dalam box menunjukkan median, dan garis “whisker” menunjukkan rentang data.
Cocok untuk mendeteksi outlier dan membandingkan distribusi antar kategori.
Gunakan untuk data numerik (misal: pendapatan, tinggi badan, nilai ujian).
Bisa dibedakan per kategori (misal: per daerah, jenis wisata).
Pastikan sumbu Y sesuai skala data, dan berikan label jelas.
Cocok untuk membandingkan distribusi antar grup, tidak untuk jumlah data per kategori.
Menunjukkan median, kuartil, dan outlier secara jelas.
Membandingkan distribusi antar kategori dengan mudah.
Ringkas, tidak memerlukan terlalu banyak ruang.
Tidak menampilkan frekuensi tiap nilai secara detail.
Kurang intuitif bagi pemula dibanding bar chart atau histogram.
Tidak cocok untuk dataset yang sangat kecil.
library(ggplot2)
ggplot(Data_Pariwisata_Daerah, aes(x = jenis_wisata, y = pendapatan_jualan, fill = jenis_wisata)) +
geom_boxplot() +
labs(
title = "Sebaran Pendapatan Pariwisata berdasarkan Jenis Wisata",
x = "Jenis Wisata",
y = "Pendapatan (Juta Rupiah)"
) +
theme_minimal()
Definisi:
Grafik berbentuk lingkaran.
Menampilkan proporsi atau persentase tiap kategori.
Setiap irisan (slice) menunjukkan kontribusi kategori terhadap total.
Aturan Penggunaan:
Cocok untuk data kategori, bukan data numerik kontinu.
Total data sebaiknya 100% agar proporsi jelas.
Batasi jumlah kategori, idealnya 6–8 slice.
Sertakan label atau persentase tiap slice untuk memudahkan interpretasi.
Kelebihan:
Mudah melihat perbandingan proporsi antar kategori.
Memberikan gambaran langsung tentang kategori dominant dan minoritas.
Visualisasi intuitif dan menarik.
Kekurangan:
Sulit dibaca jika jumlah kategori terlalu banyak.
Tidak menampilkan distribusi numerik detail.
Sulit membandingkan slice yang ukurannya mirip secara akurat.
library(ggplot2)
# Hitung total wisatawan per jenis data
data_pie <- aggregate(jumlah_wisatawan ~ jenis_wisata, data = Data_Pariwisata_Daerah, sum)
ggplot(data_pie, aes(x = "", y = jumlah_wisatawan, fill = jenis_wisata)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
labs(
title = "Persentase Jumlah Wisatawan per Jenis Wisata",
fill = "Jenis Wisata"
) +
theme_void() +
theme(plot.title = element_text(hjust = 0.5))
# Menambahkan Persentase
data_pie$persen <- round(
(data_pie$jumlah_wisatawan / sum(data_pie$jumlah_wisatawan)) * 100, 1)
ggplot(data_pie, aes(x = "", y = jumlah_wisatawan, fill = jenis_wisata)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
geom_text(aes(label = paste0(persen, "%")),
position = position_stack(vjust = 0.5)) +
labs(
title = "Persentase Jumlah Wisatawan per Jenis Wisata",
fill = "Jenis Wisata"
) +
theme_void() +
theme(plot.title = element_text(hjust = 0.5))
Scatter Plot
Definisi:
Grafik yang menampilkan hubungan antara dua variabel numerik.
Setiap titik (point) mewakili pasangan nilai dari dua variabel.
Berguna untuk melihat tren, pola, atau korelasi antar variabel.
Aturan Penggunaan:
Gunakan untuk dua variabel numerik.
Setiap titik harus mewakili satu observasi atau data unik.
Bisa ditambahkan garis tren (trend line) untuk melihat pola hubungan.
Tidak cocok untuk data kategorik tunggal.
Kelebihan:
Menunjukkan hubungan atau korelasi antar variabel secara jelas.
Bisa mendeteksi outlier atau pencilan.
Mempermudah melihat pola distribusi dan sebaran data.
Kekurangan:
Tidak cocok untuk data besar jika terlalu banyak titik, bisa sulit dibaca.
Hanya menampilkan hubungan dua variabel; informasi kategori tambahan perlu diberi warna atau simbol berbeda.
Tidak menunjukkan proporsi total atau kontribusi persentase.
library(ggplot2)
ggplot(Data_Pariwisata_Daerah, aes(x = jumlah_wisatawan, y = pendapatan_jualan, color = jenis_wisata)) +
geom_point(size = 3, alpha = 0.7) + # Titik dengan warna berdasarkan jenis wisata
geom_smooth(method = "lm", se = FALSE, linetype = "dashed", color = "black") + # Garis regresi umum
geom_text(aes(label = nama_daerah), vjust = -1, size = 3, color = "black") + # Label nama daerah
labs(
title = "Hubungan Jumlah Wisatawan dan Pendapatan Pariwisata per Jenis Wisata",
x = "Jumlah Wisatawan",
y = "Pendapatan (Juta Rupiah)",
color = "Jenis Wisata"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"), # Judul rata tengah
legend.position = "right"
)
## `geom_smooth()` using formula = 'y ~ x'
Definisi:
Grafik yang menggunakan garis untuk menghubungkan titik-titik data.
Menampilkan perubahan nilai suatu variabel numerik terhadap variabel lain (biasanya waktu atau urutan).
Berguna untuk melihat tren, pola, atau perubahan data secara kontinu.
Aturan Penggunaan:
Cocok untuk data numerik berurutan, misal waktu (time series).
Setiap titik harus merepresentasikan observasi yang berurutan.
Bisa menambahkan beberapa garis untuk membandingkan kategori.
Tidak disarankan untuk data kategori tunggal tanpa urutan.
Kelebihan:
Memudahkan melihat tren atau perubahan seiring waktu.
Dapat membandingkan beberapa kategori dalam satu grafik.
Visualisasi sederhana dan mudah dipahami.
Kekurangan:
Tidak cocok untuk data kategori acak.
Terlalu banyak garis bisa membuat grafik ramai dan sulit dibaca.
Tidak menampilkan distribusi titik data secara detail (hanya tren).
library(ggplot2)
ggplot(Data_Pariwisata_Daerah,
aes(x = tanggal, y = pendapatan_jualan, group = 1)) +
geom_line(linewidth = 1.2, color = "steelblue") +
geom_point(size = 3, color = "red") +
labs(
title = "Perubahan Pendapatan Pariwisata per Daerah",
x = "Tanggal",
y = "Pendapatan (Juta Rupiah)"
) +
theme_minimal()
Definisi:
Grafik yang digunakan untuk menampilkan distribusi probabilitas dari variabel numerik kontinu.
Menunjukkan kepadatan (density) data pada setiap rentang nilai.
Bentuknya seperti kurva halus, mirip histogram, tetapi lebih mulus dan mudah dibandingkan antar distribusi.
Aturan Penggunaan:
Digunakan untuk data numerik kontinu, bukan data kategorik.
Cocok untuk melihat bentuk distribusi, misal apakah data normal, skewed, atau multimodal.
Dapat digunakan lebih dari satu variabel atau kategori dengan warna berbeda untuk membandingkan distribusi.
Jangan digunakan jika jumlah data sangat sedikit, karena kurva density bisa tidak stabil.
Kelebihan:
Menunjukkan bentuk distribusi data dengan jelas.
Lebih halus dan mudah dibandingkan daripada histogram.
Bisa membandingkan beberapa distribusi dalam satu grafik dengan mudah.
Kekurangan:
Tidak menunjukkan frekuensi aktual seperti histogram.
Kurva bisa menyesatkan jika jumlah data kecil.
Interpretasi nilai absolut lebih sulit dibanding histogram.
library(ggplot2)
ggplot(Data_Pariwisata_Daerah,
aes(x = reorder(nama_daerah,jumlah_wisatawan),
y = jumlah_wisatawan,fill = jenis_wisata)) +
geom_col()+
labs(
title = "Jumlah Wisatawan Per Daerah Di Indonesia(urut dari tertinggi)",
x ="Nama Daerah",
y = "Jumlah Wisatawan",
fill ="jenis wisata")+
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5,face = "bold"),
axis.text.x = element_text(angle = 45,hjust = 1))+
coord_flip()
Definisi:
Grafik yang digunakan untuk menampilkan distribusi variabel numerik pada beberapa kategori sekaligus.
Bentuknya beberapa kurva density bertumpuk atau berlapis, sehingga terlihat seperti “pegunungan” atau ridges.
Mempermudah perbandingan distribusi antar kategori.
Aturan Penggunaan:
Cocok untuk data numerik kontinu yang dikelompokkan berdasarkan kategori.
Jumlah kategori sebaiknya tidak terlalu banyak agar kurva tetap jelas.
Bisa digabungkan dengan warna berbeda untuk tiap kategori agar lebih informatif.
Pastikan skala sumbu Y konsisten agar perbandingan antar distribusi valid.
Kelebihan:
Menunjukkan bentuk distribusi tiap kategori secara jelas.
Bisa membandingkan beberapa distribusi sekaligus dalam satu grafik.
Lebih visual dan menarik dibanding histogram atau density plot biasa.
Kekurangan:
Kurva bisa menjadi sulit dibaca jika jumlah kategori terlalu banyak.
Interpretasi angka absolut sulit karena fokus pada bentuk distribusi.
Membutuhkan package khusus (misal ggridges) di R.
# Memuat library yang dibutuhkan
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(ggridges)
# Membuat data simulasi distribusi pendapatan per daerah
data_ridges <- Data_Pariwisata_Daerah %>%
group_by(nama_daerah) %>%
slice(rep(1:n(), each = 10)) %>%
mutate(pendapatan_jualan = pendapatan_jualan + rnorm(n(), 0, 50)) # ✅ perbaikan di sini
# Membuat grafik ridgeline (joyplot)
ggplot(data_ridges, aes(x = pendapatan_jualan, y = nama_daerah, fill = nama_daerah)) +
geom_density_ridges(alpha = 0.8, color = "white", scale = 1.2) +
labs(
title = "Distribusi Pendapatan Pariwisata per Daerah (Simulasi)",
x = "Pendapatan (Juta Rupiah)",
y = "Nama Daerah"
) +
theme_minimal() +
theme(
legend.position = "none",
plot.title = element_text(size = 14, face = "bold"),
axis.text.y = element_text(size = 10)
)
## Picking joint bandwidth of 20.4
Tujuan: Melihat kepadatan data dan pola distribusi antar kelompok.
Bali, Bandung, dan Yogyakarta adalah tiga besar destinasi paling populer sekaligus paling menguntungkan.
Jenis wisata alam dan bahari menjadi daya tarik utama pariwisata Indonesia.
Ada hubungan positif antara jumlah wisatawan dan pendapatan, tetapi efisiensi ekonomi antar daerah berbeda.
Pemerataan pariwisata masih menjadi tantangan besar, banyak daerah potensial yang belum tergarap optimal.
(Insight sudah tertera di visualisasi masing-masing)