# 1. Bangkitkan data Poisson sebanyak 10 dengan lambda 4
data_poisson <- rpois(n = 10, lambda = 4)
set.seed(0)
# 2. Masukkan data yang sama ke variabel x dan y
x <- data_poisson
y <- data_poisson
# 3. Cetak hasilnya (sekarang x dan y pasti bernilai sama)
print(x)
## [1] 4 5 3 7 4 9 3 3 6 8
print(y)
## [1] 4 5 3 7 4 9 3 3 6 8
# 4. Membangkitkan data kustom berdistribusi diskrit (100 sampel)
data_kustom <- sample(c(1, 2, 3), size = 100, replace = TRUE, prob = c(0.2, 0.5, 0.3))
print(data_kustom)
## [1] 1 2 2 3 1 2 1 1 3 3 2 2 2 3 2 3 2 3 1 2 3 1 2 3 2 2 2 2 2 1 2 2 3 2 2 1 3
## [38] 3 2 3 2 1 3 3 3 3 3 2 2 3 3 2 1 2 2 2 2 2 3 3 2 1 2 2 2 3 2 2 3 2 1 2 1 2
## [75] 2 2 1 1 2 3 1 2 3 2 2 3 2 3 2 2 2 2 2 3 1 3 3 2 2 1
# 1. Atur seed di atas agar hasil acaknya konsisten
set.seed(1)
# 2. Bangkitkan data Bernoulli (n=10, size=1, prob=0.5)
z = rbinom(n = 10, size = 1, prob = 0.5)
# 3. Cetak hasil data z ke console
print("Data Bernoulli z:")
## [1] "Data Bernoulli z:"
print(z)
## [1] 0 0 1 1 0 1 1 1 1 0
# 4. MENAMPILKAN GRAFIK GARIS DAN TITIK (LINE & SCATTER PLOT)
plot(z,
type = "b", # "b" artinya both (menampilkan titik DAN garis penghubung)
pch = 19, # Mengubah bentuk titik menjadi bulatan penuh
col = "blue", # Memberikan warna biru pada grafik
lwd = 2, # Mengatur ketebalan garis
main = "Grafik Tren Kemunculan Data Bernoulli (z)",
xlab = "Sampel Ke- (Urutan Data)",
ylab = "Nilai Data (0 atau 1)",
yaxt = "n") # Menghilangkan sumbu Y bawaan agar bisa dikustomisasi
# Kustomisasi sumbu Y agar hanya memunculkan angka 0 dan 1 saja
axis(2, at = c(0, 1), labels = c("0 (Gagal)", "1 (Sukses)"))

# Menggunakan titik (.) untuk angka desimal 0.7
z = rbinom(n = 10, size = 1, prob = 0.5)
set.seed(1)
# Menampilkan hasil variabel z
print(z)
## [1] 0 0 1 0 1 0 1 1 0 1
# Menampilkan Diagram
# 1. Atur seed di paling atas agar hasil konsisten
set.seed(1)
# 2. Bangkitkan data Bernoulli (probabilitas diganti 0.5 sesuai kode Anda)
z = rbinom(n = 10, size = 1, prob = 0.5)
# 3. Menampilkan hasil variabel z ke console
print("Data z:")
## [1] "Data z:"
print(z)
## [1] 0 0 1 1 0 1 1 1 1 0
# 4. Membuat tabel frekuensi untuk menghitung jumlah 0 dan 1
tabel_z <- table(z)
# 5. MENAMPILKAN DIAGRAM BATANG
barplot(tabel_z,
main = "Diagram Batang Distribusi Bernoulli (z)",
xlab = "Nilai (0 = Gagal, 1 = Sukses)",
ylab = "Frekuensi / Jumlah Muncul",
col = c("tomato", "skyblue"),
names.arg = c("0 (Gagal)", "1 (Sukses)"))

# Hitung frekuensi kemunculan setiap angka pada data Poisson
tabel_poisson <- table(data_poisson)
# Buat label yang menunjukkan Angka beserta Persentase/Jumlahnya
persen <- round(100 * tabel_poisson / sum(tabel_poisson), 1)
label_pie <- paste("Angka", names(tabel_poisson), "\n(", persen, "%)", sep="")
# Tampilkan Pie Chart
pie(tabel_poisson,
labels = label_pie,
main = "Pie Chart Distribusi Poisson",
col = rainbow(length(tabel_poisson))) # Warna-warni otomatis sesuai jumlah kategori

# 1. Bangkitkan data
data_multinomial <- rmultinom(n = 1, size = 100, prob = c(0.2, 0.5, 0.3))
# 2. Buat tabelnya (PASTIKAN BARIS INI IKUT TER-RUN)
tabel_multinomial <- as.table(setNames(as.vector(data_multinomial), c("Kategori A", "Kategori B", "Kategori C")))
# 3. Cetak dan buat Pie Chart
print(tabel_multinomial)
## Kategori A Kategori B Kategori C
## 17 53 30
label_multinomial <- paste(names(tabel_multinomial), "\n(", tabel_multinomial, " Sampel)", sep="")
pie(tabel_multinomial,
labels = label_multinomial,
main = "Pie Chart Distribusi Multinomial",
col = c("#ff9999", "#66b3ff", "#99ff99"))

# =====================================================================
# 1. PENGATURAN AWAL & PEMBANGKITAN DATA PENDIDIKAN
# =====================================================================
# Mengunci seed agar hasil acak selalu sama saat di-run ulang
set.seed(42)
# Membuat 4 kategori pendidikan
kategori_pendidikan <- c("SD", "SMP", "SMA", "S1")
# Membangkitkan data pendidikan untuk 10 orang di Kutai Barat
data_kampung <- sample(kategori_pendidikan, size = 10, replace = TRUE,
prob = c(0.2, 0.2, 0.4, 0.2))
# =====================================================================
# 2. PEMBANGKITAN DATA PEKERJAAN BERDASARKAN PENDIDIKAN
# =====================================================================
# Menentukan pekerjaan secara otomatis berdasarkan latar belakang pendidikan
pekerjaan_responden <- sapply(data_kampung, function(edu) {
if (edu == "S1") {
# Lulusan S1 berpeluang besar jadi Guru/PNS (Mengajar)
return(sample(c("PNS/Guru (Mengajar)", "Swasta"), size = 1, prob = c(0.8, 0.2)))
} else if (edu == "SMA") {
# Lulusan SMA bisa Swasta, Petani, atau Belum Bekerja
return(sample(c("Swasta", "Petani", "Belum Bekerja"), size = 1, prob = c(0.5, 0.3, 0.2)))
} else {
# Lulusan SD dan SMP mayoritas Petani atau Swasta
return(sample(c("Petani", "Swasta", "Belum Bekerja"), size = 1, prob = c(0.7, 0.1, 0.2)))
}
})
# =====================================================================
# 3. MENAMPILKAN RINGKASAN DATA & TABEL SILANG KE CONSOLE
# =====================================================================
print("--- DATA MENTAH 10 RESPONDEN KUTAI BARAT ---")
## [1] "--- DATA MENTAH 10 RESPONDEN KUTAI BARAT ---"
df_hasil <- data.frame(Responden = 1:10, Pendidikan = data_kampung, Pekerjaan = pekerjaan_responden)
print(df_hasil)
## Responden Pendidikan Pekerjaan
## 1 1 SD Petani
## 2 2 SD Belum Bekerja
## 3 3 SMA Belum Bekerja
## 4 4 SD Petani
## 5 5 S1 PNS/Guru (Mengajar)
## 6 6 SMP Swasta
## 7 7 S1 Swasta
## 8 8 SMA Swasta
## 9 9 S1 PNS/Guru (Mengajar)
## 10 10 S1 PNS/Guru (Mengajar)
print("--- TABEL SILANG: HUBUNGAN PENDIDIKAN VS PEKERJAAN ---")
## [1] "--- TABEL SILANG: HUBUNGAN PENDIDIKAN VS PEKERJAAN ---"
tabel_silang <- table(df_hasil$Pendidikan, df_hasil$Pekerjaan)
print(tabel_silang)
##
## Belum Bekerja Petani PNS/Guru (Mengajar) Swasta
## S1 0 0 3 1
## SD 1 2 0 0
## SMA 1 0 0 1
## SMP 0 0 0 1
# =====================================================================
# 4. VISUALISASI DATA (PENDIDIKAN = PIE CHART, PEKERJAAN = DIAGRAM BATANG)
# =====================================================================
# Mengatur agar layar plot menampilkan 2 grafik sekaligus berdampingan (1 baris, 2 kolom)
par(mfrow = c(1, 2))
# --- A. Pie Chart Pendidikan ---
tabel_pendidikan <- table(data_kampung)
label_pendidikan <- paste(names(tabel_pendidikan), "\n(", tabel_pendidikan, " Orang)", sep="")
pie(tabel_pendidikan,
labels = label_pendidikan,
main = "Sebaran Responden\nBerdasarkan Pendidikan",
col = c("#ff9999", "#66b3ff", "#99ff99", "#ffcc99"))
# --- B. Diagram Batang Pekerjaan ---
tabel_pekerjaan <- table(pekerjaan_responden)
barplot(tabel_pekerjaan,
main = "Sebaran Responden\nBerdasarkan Pekerjaan",
xlab = "Jenis Pekerjaan",
ylab = "Frekuensi (Orang)",
col = c("#b3e2cd", "#fdb462", "#cbd5e8", "#f4cae4"),
las = 2, # Membuat teks label sumbu X menjadi vertikal agar tidak bertumpuk
cex.names = 0.8, # Mengecilkan sedikit ukuran teks label pekerjaan agar muat
ylim = c(0, max(tabel_pekerjaan) + 1)) # Memberikan ruang di atas batang agar grafik rapi

# Mengembalikan pengaturan layar plot ke normal (1 grafik per layar)
par(mfrow = c(1, 1))
# =====================================================================
# 1. PENGATURAN DATA (Menggunakan data dari contoh sebelumnya)
# =====================================================================
set.seed(42)
kategori_pendidikan <- c("SD", "SMP", "SMA", "S1")
data_kampung <- sample(kategori_pendidikan, size = 10, replace = TRUE, prob = c(0.2, 0.2, 0.4, 0.2))
pekerjaan_responden <- sapply(data_kampung, function(edu) {
if (edu == "S1") return(sample(c("PNS/Guru (Mengajar)", "Swasta"), size = 1, prob = c(0.8, 0.2)))
else if (edu == "SMA") return(sample(c("Swasta", "Petani", "Belum Bekerja"), size = 1, prob = c(0.5, 0.3, 0.2)))
else return(sample(c("Petani", "Swasta", "Belum Bekerja"), size = 1, prob = c(0.7, 0.1, 0.2)))
})
# Membuat matriks tabel silang (Wajib untuk membuat diagram batang gabungan)
tabel_gabungan <- table(pekerjaan_responden, data_kampung)
# =====================================================================
# 2. MEMBUAT DIAGRAM GABUNGAN (STACKED BAR CHART)
# =====================================================================
# Menyiapkan warna berbeda untuk setiap kategori pekerjaan
warna_pekerjaan <- c("#ff9999", "#66b3ff", "#99ff99", "#ffcc99")
# Membuat Diagram Batang Bertumpuk
barplot(tabel_gabungan,
main = "Diagram Hubungan Pendidikan dan Pekerjaan Responden",
xlab = "Tingkat Pendidikan",
ylab = "Jumlah Orang (Frekuensi)",
col = warna_pekerjaan,
legend.text = rownames(tabel_gabungan), # Menampilkan kotak keterangan (legend) jenis pekerjaan
args.legend = list(x = "topright", bty = "n", inset = c(-0.05, 0)), # Posisi legend
ylim = c(0, max(colSums(tabel_gabungan)) + 2)) # Memberikan ruang di atas batang

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("#F2CFCF", "#C9DCE5", "#D5E3C8", "#A6D5C5"),
legend.text = 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("red", "black", "blue", "yellow"),
legend.text = TRUE)

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)
