#Distribusi Poisson
set.seed(123)
data_poisson <- rpois(n = 100, lambda = 5)
head(data_poisson)
## [1] 4 7 4 8 9 2
## [1] 4 7 4 8 9 2
hist(data_poisson, main = "Distribusi Poisson", col = "pink")

#Distribusi Binomial
y=rpois(n=10, lambda=4)
print(y)
## [1] 4 3 4 8 4 7 7 4 3 2
## [1] 4 3 4 8 4 7 7 4 3 2
x=rpois(n=10,lambda=4)
print(x)
## [1] 7 3 1 7 5 2 4 8 4 3
## [1] 7 3 1 7 5 2 4 8 4 3
set.seed(123)
y=rpois(n=10, lambda=4)
print(y)
## [1] 3 6 3 6 7 1 4 7 4 4
## [1] 3 6 3 6 7 1 4 7 4 4
x=rpois(n=10,lambda=4)
print(x)
## [1] 8 4 5 4 2 7 3 1 3 8
## [1] 8 4 5 4 2 7 3 1 3 8
# n = jumlah percobaan, size = jumlah trial, prob = peluang sukses
set.seed(123)
data_binom <- rbinom(n = 100, size = 10, prob = 0.5)
print(data_binom)
## [1] 4 6 5 7 7 2 5 7 5 5 8 5 6 5 3 7 4 2 4 8 7 6 6 9 6 6 5 5 4 3 8 7 6 6 2 5 6
## [38] 4 4 4 3 5 5 4 3 3 4 5 4 7 2 5 6 3 5 4 3 6 7 4 6 3 5 4 6 5 6 6 6 5 6 6 6 0
## [75] 5 4 5 5 4 3 4 6 5 6 3 5 8 7 7 4 3 6 4 6 4 4 6 3 5 5
## [1] 4 6 5 7 7 2 5 7 5 5 8 5 6 5 3 7 4 2 4 8 7 6 6 9 6 6 5 5 4 3 8 7 6 6 2 5 6
## [38] 4 4 4 3 5 5 4 3 3 4 5 4 7 2 5 6 3 5 4 3 6 7 4 6 3 5 4 6 5 6 6 6 5 6 6 6 0
## [75] 5 4 5 5 4 3 4 6 5 6 3 5 8 7 7 4 3 6 4 6 4 4 6 3 5 5
table(data_binom)
## data_binom
## 0 2 3 4 5 6 7 8 9
## 1 4 12 20 24 24 10 4 1
## data_binom
## 0 2 3 4 5 6 7 8 9
## 1 4 12 20 24 24 10 4 1
# Visualisasi
barplot(table(data_binom), main = "Distribusi Binomial",
xlab = "Nilai", ylab = "Frekuensi", col = "skyblue")

#Distribusi Poisson
# lambda = rata-rata kejadian
set.seed(123)
data_pois <- rpois(n = 100, lambda = 3)
print(data_pois)
## [1] 2 4 2 5 6 0 3 5 3 3 6 3 4 3 1 5 2 0 2 6 5 4 3 8 4 4 3 3 2 1 6 5 4 4 0 3 4
## [38] 2 2 2 1 2 2 2 1 1 2 3 2 5 0 3 4 1 3 2 1 4 5 2 4 1 2 2 4 3 4 4 4 3 4 3 4 0
## [75] 3 2 2 3 2 1 2 4 2 4 1 3 7 5 5 1 1 4 2 4 2 1 4 1 3 3
## [1] 2 4 2 5 6 0 3 5 3 3 6 3 4 3 1 5 2 0 2 6 5 4 3 8 4 4 3 3 2 1 6 5 4 4 0 3 4
## [38] 2 2 2 1 2 2 2 1 1 2 3 2 5 0 3 4 1 3 2 1 4 5 2 4 1 2 2 4 3 4 4 4 3 4 3 4 0
## [75] 3 2 2 3 2 1 2 4 2 4 1 3 7 5 5 1 1 4 2 4 2 1 4 1 3 3
table(data_pois)
## data_pois
## 0 1 2 3 4 5 6 7 8
## 5 14 24 20 22 9 4 1 1
## data_pois
## 0 1 2 3 4 5 6 7 8
## 5 14 24 20 22 9 4 1 1
barplot(table(data_pois), main = "Distribusi Poisson",
xlab = "Nilai", ylab = "Frekuensi", col = "red")

#Distribusi Multinomial
set.seed(123)
y=rpois(n=10, lambda=4)
print(y)
## [1] 3 6 3 6 7 1 4 7 4 4
## [1] 3 6 3 6 7 1 4 7 4 4
set.seed(123)
x=rpois(n=10, lambda=4)
print(x)
## [1] 3 6 3 6 7 1 4 7 4 4
## [1] 3 6 3 6 7 1 4 7 4 4
set.seed(2)
y=rpois(n=10, lambda=4)
print(y)
## [1] 2 5 4 2 7 7 2 6 4 4
## [1] 2 5 4 2 7 7 2 6 4 4
set.seed(2)
x=rpois(n=10, lambda=4)
print(x)
## [1] 2 5 4 2 7 7 2 6 4 4
## [1] 2 5 4 2 7 7 2 6 4 4
set.seed(0)
y=rpois(n=10, lambda=4)
print(y)
## [1] 7 3 3 4 7 2 7 7 5 5
## [1] 7 3 3 4 7 2 7 7 5 5
set.seed(0)
x=rpois(n=10, lambda=4)
print(x)
## [1] 7 3 3 4 7 2 7 7 5 5
## [1] 7 3 3 4 7 2 7 7 5 5
set.seed(0123)
y=rpois(n=10, lambda=4)
print(y)
## [1] 3 6 3 6 7 1 4 7 4 4
## [1] 3 6 3 6 7 1 4 7 4 4
set.seed(0123)
x=rpois(n=10, lambda=4)
print(x)
## [1] 3 6 3 6 7 1 4 7 4 4
## [1] 3 6 3 6 7 1 4 7 4 4
set.seed(23)
y=rpois(n=10, lambda=4)
print(y)
## [1] 4 2 3 5 6 3 8 8 6 10
## [1] 4 2 3 5 6 3 8 8 6 10
set.seed(23)
x=rpois(n=10, lambda=4)
print(x)
## [1] 4 2 3 5 6 3 8 8 6 10
## [1] 4 2 3 5 6 3 8 8 6 10
set.seed(123)
# Membangkitkan data multinomial
# Misal: 3 kategori (A, B, C) dengan probabilitas masing-masing 0.5, 0.3, 0.2
# size = jumlah percobaan per sampel, n = jumlah sampel yang dibangkitkan
hasil <- rmultinom(n = 1, size = 100, prob = c(0.5, 0.3, 0.2))
print(hasil)
## [,1]
## [1,] 49
## [2,] 31
## [3,] 20
## [,1]
## [1,] 49
## [2,] 31
## [3,] 20
# Beri nama baris supaya lebih jelas
rownames(hasil) <- c("Kategori A", "Kategori B", "Kategori C")
print(hasil)
## [,1]
## Kategori A 49
## Kategori B 31
## Kategori C 20
## [,1]
## Kategori A 49
## Kategori B 31
## Kategori C 20
# Ambil nilai frekuensi masing-masing kategori
frekuensi <- as.vector(hasil)
label_kategori <- c("Kategori A", "Kategori B", "Kategori C")
# Hitung persentase untuk ditampilkan di label
persentase <- round(100 * frekuensi / sum(frekuensi), 1)
label_lengkap <- paste(label_kategori, " (", persentase, "%)", sep = "")
# Buat pie chart
pie(frekuensi,
labels = label_lengkap,
main = "Distribusi Multinomial",
col = c("skyblue", "lightgreen", "orange"))

#Simulasi Distribusi Jenjang Pendidikan Responden
# Ambil nilai frekuensi masing-masing kategori
frekuensi <- as.vector(hasil)
label_kategori <- c("Kategori A", "Kategori B", "Kategori C")
# Hitung persentase untuk ditampilkan di label
persentase <- round(100 * frekuensi / sum(frekuensi), 1)
label_lengkap <- paste(label_kategori, " (", persentase, "%)", sep = "")
# Buat pie chart
pie(frekuensi,
labels = label_lengkap,
main = "Distribusi Multinomial",
col = c("skyblue", "lightgreen", "orange"))

set.seed(123)
# 4 kategori jenjang pendidikan
kategori <- c("SD", "SMP", "SMA", "Perguruan Tinggi")
# Probabilitas asumsi tiap kategori (ganti sesuai kebutuhan studi kasus)
prob_kategori <- c(0.20, 0.25, 0.35, 0.20) # total harus = 1
# Simulasi 150 responden dengan distribusi multinomial
hasil_simulasi <- rmultinom(n = 1, size = 150, prob = prob_kategori)
# Gabungkan jadi data frame
df_simulasi <- data.frame(
Kategori = kategori,
Jumlah = as.vector(hasil_simulasi)
)
print(df_simulasi)
## Kategori Jumlah
## 1 SD 30
## 2 SMP 32
## 3 SMA 52
## 4 Perguruan Tinggi 36
## Kategori Jumlah
## 1 SD 30
## 2 SMP 32
## 3 SMA 52
## 4 Perguruan Tinggi 36
df_simulasi$Persentase <- round(100 * df_simulasi$Jumlah / sum(df_simulasi$Jumlah), 1)
print(df_simulasi)
## Kategori Jumlah Persentase
## 1 SD 30 20.0
## 2 SMP 32 21.3
## 3 SMA 52 34.7
## 4 Perguruan Tinggi 36 24.0
## Kategori Jumlah Persentase
## 1 SD 30 20.0
## 2 SMP 32 21.3
## 3 SMA 52 34.7
## 4 Perguruan Tinggi 36 24.0
label_pie <- paste(df_simulasi$Kategori, "\n(", df_simulasi$Persentase, "%)", sep = "")
pie(df_simulasi$Jumlah,
labels = label_pie,
main = "Simulasi Distribusi Jenjang Pendidikan Responden",
col = c("skyblue", "lightgreen", "orange", "salmon"))

#Simulasi Distribusi Kategori Pekerjaan Responden
set.seed(123)
# 5 kategori pekerjaan
kategori <- c("PNS", "Wiraswasta", "Karyawan Swasta", "Petani/Nelayan", "Belum/Tidak Bekerja")
# Probabilitas asumsi tiap kategori (ganti sesuai kebutuhan studi kasus)
prob_kategori <- c(0.15, 0.20, 0.30, 0.15, 0.20) # total harus = 1
# Simulasi 200 responden dengan distribusi multinomial
hasil_simulasi <- rmultinom(n = 1, size = 200, prob = prob_kategori)
# Gabungkan jadi data frame
df_simulasi <- data.frame(
Kategori = kategori,
Jumlah = as.vector(hasil_simulasi)
)
print(df_simulasi)
## Kategori Jumlah
## 1 PNS 30
## 2 Wiraswasta 34
## 3 Karyawan Swasta 68
## 4 Petani/Nelayan 27
## 5 Belum/Tidak Bekerja 41
## Kategori Jumlah
## 1 PNS 30
## 2 Wiraswasta 34
## 3 Karyawan Swasta 68
## 4 Petani/Nelayan 27
## 5 Belum/Tidak Bekerja 41
df_simulasi$Persentase <- round(100 * df_simulasi$Jumlah / sum(df_simulasi$Jumlah), 1)
print(df_simulasi)
## Kategori Jumlah Persentase
## 1 PNS 30 15.0
## 2 Wiraswasta 34 17.0
## 3 Karyawan Swasta 68 34.0
## 4 Petani/Nelayan 27 13.5
## 5 Belum/Tidak Bekerja 41 20.5
## Kategori Jumlah Persentase
## 1 PNS 30 15.0
## 2 Wiraswasta 34 17.0
## 3 Karyawan Swasta 68 34.0
## 4 Petani/Nelayan 27 13.5
## 5 Belum/Tidak Bekerja 41 20.5
barplot(df_simulasi$Jumlah,
names.arg = kategori,
main = "Simulasi Distribusi Kategori Pekerjaan Responden",
col = c("skyblue", "lightgreen", "orange", "salmon", "violet"),
ylab = "Jumlah Responden",
las = 2, # supaya label sumbu x tidak terpotong/miring
cex.names = 0.7)

#Simulasi Distribusi Kategori Pekerjaan Responden
bp <- barplot(df_simulasi$Jumlah,
names.arg = kategori,
main = "Simulasi Distribusi Kategori Pekerjaan Responden",
col = c("skyblue", "lightgreen", "orange", "salmon", "violet"),
ylab = "Jumlah Responden",
ylim = c(0, max(df_simulasi$Jumlah) + 20),
las = 2,
cex.names = 0.7)
text(bp, df_simulasi$Jumlah + 5, labels = df_simulasi$Jumlah)

#Perbandingan Distribusi Pendidikan dan Pekerjaan Responden
set.seed(123)
# ===== DATA PENDIDIKAN (4 kategori, tambah "Kuliah") =====
kategori_pendidikan <- c("SD", "SMP", "SMA", "Kuliah")
prob_pendidikan <- c(0.20, 0.25, 0.35, 0.20)
hasil_pendidikan <- rmultinom(n = 1, size = 150, prob = prob_pendidikan)
# ===== DATA PEKERJAAN (5 kategori) =====
kategori_pekerjaan <- c("PNS", "Wiraswasta", "Karyawan Swasta", "Petani/Nelayan", "Belum/Tidak Bekerja")
prob_pekerjaan <- c(0.15, 0.20, 0.30, 0.15, 0.20)
hasil_pekerjaan <- rmultinom(n = 1, size = 200, prob = prob_pekerjaan)
# ===== GABUNGKAN DATA =====
# Pendidikan hanya 4 kategori, tambahkan 0 di posisi ke-5 supaya panjangnya sama
jumlah_pendidikan <- c(as.vector(hasil_pendidikan), 0)
jumlah_pekerjaan <- as.vector(hasil_pekerjaan)
# Buat matrix: baris 1 = Pendidikan, baris 2 = Pekerjaan
data_gabungan <- rbind(jumlah_pendidikan, jumlah_pekerjaan)
# Nama kolom pakai gabungan label (biar tetap informatif)
colnames(data_gabungan) <- c("Kategori 1", "Kategori 2", "Kategori 3", "Kategori 4", "Kategori 5")
rownames(data_gabungan) <- c("Pendidikan", "Pekerjaan")
print(data_gabungan)
## Kategori 1 Kategori 2 Kategori 3 Kategori 4 Kategori 5
## Pendidikan 30 32 52 36 0
## Pekerjaan 30 45 68 26 31
## Kategori 1 Kategori 2 Kategori 3 Kategori 4 Kategori 5
## Pendidikan 30 32 52 36 0
## Pekerjaan 30 45 68 26 31
barplot(data_gabungan,
beside = TRUE, # supaya batang berdampingan, bukan menumpuk
col = c("skyblue", "salmon"), # 2 warna: biru = Pendidikan, salmon = Pekerjaan
main = "Perbandingan Distribusi Pendidikan dan Pekerjaan Responden",
ylab = "Jumlah Responden",
legend.text = rownames(data_gabungan),
args.legend = list(x = "topright", bty = "n"),
las = 1)

#Overlapping : Pendidikan VS Pekerjaan
set.seed(123)
# ===== DATA PENDIDIKAN (4 kategori + Kuliah) =====
kategori_pendidikan <- c("SD", "SMP", "SMA", "Kuliah")
prob_pendidikan <- c(0.20, 0.25, 0.35, 0.20)
hasil_pendidikan <- rmultinom(n = 1, size = 150, prob = prob_pendidikan)
jumlah_pendidikan <- c(as.vector(hasil_pendidikan), 0) # tambah 0 supaya panjang = 5
# ===== DATA PEKERJAAN (5 kategori) =====
kategori_pekerjaan <- c("PNS", "Wiraswasta", "Karyawan Swasta", "Petani/Nelayan", "Belum/Tidak Bekerja")
prob_pekerjaan <- c(0.15, 0.20, 0.30, 0.15, 0.20)
hasil_pekerjaan <- rmultinom(n = 1, size = 200, prob = prob_pekerjaan)
jumlah_pekerjaan <- as.vector(hasil_pekerjaan)
# ===== DIAGRAM BATANG OVERLAPPING (2 warna tumpang tindih) =====
# Batang pertama (Pendidikan) - warna biru transparan
bp <- barplot(jumlah_pendidikan,
col = rgb(0, 0, 1, alpha = 0.5), # biru transparan
ylim = c(0, max(c(jumlah_pendidikan, jumlah_pekerjaan)) + 20),
names.arg = c("Kat 1", "Kat 2", "Kat 3", "Kat 4", "Kat 5"),
main = "Overlapping: Pendidikan vs Pekerjaan",
ylab = "Jumlah Responden")
# Batang kedua (Pekerjaan) - warna merah transparan, ditumpuk di posisi x yang SAMA
barplot(jumlah_pekerjaan,
col = rgb(1, 0, 0, alpha = 0.5), # merah transparan
add = TRUE, # kunci utama: tumpang tindih di plot yang sama
axes = FALSE)
# Tambahkan legenda
legend("topright",
legend = c("Pendidikan", "Pekerjaan"),
fill = c(rgb(0,0,1,alpha=0.5), rgb(1,0,0,alpha=0.5)),
bty = "n")

#Jenis Pekerjaan Berdasarkan Tingkat Pendidikan
data <- matrix(c(
5, 3, 4, 2, # Petani
8, 6, 5, 3, # Guru
10, 8, 7, 5 # Pedagang
), nrow = 3, byrow = TRUE)
rownames(data) <- c("Petani", "Guru", "Pedagang")
colnames(data) <- c(
"SD",
"SMP",
"SMA",
"Perguruan Tinggi"
)
barplot(data,
beside = TRUE,
main = "Jenis Pekerjaan Berdasarkan Tingkat Pendidikan",
xlab = "Jenis Pekerjaan",
ylab = "Jumlah Orang",
col = c("purple", "lightblue", "pink", "green"),
legend.text = TRUE)

#Stacked Plot Tngkat Pendidikan Berdasarkan Pekerjaan"
data <- matrix(c(
5, 8, 6, 4,
7, 5, 8, 6,
9, 7, 5, 8
), nrow = 3, byrow = TRUE)
rownames(data) <- c("Petani", "Guru", "Pedagang")
colnames(data) <- c("SD", "SMP", "SMA", "Perguruan Tinggi")
barplot(t(data),
beside = FALSE,
main = "Stacked Plot Tingkat Pendidikan Berdasarkan Pekerjaan",
xlab = "Jenis Pekerjaan",
ylab = "Jumlah Orang",
col = c("#E8CFCF", "#C9DCE5", "#D5E3C8", "#E3D5C5"),
legend.text = TRUE)
