============================================================

1. MEMPLOT DATA DALAM R (SCATTER PLOT)

============================================================

membaca data file

simpan = read.table("latihan komstat1.txt", header = TRUE)
simpan
##    jeniskelamin pendapatan pengeluaran
## 1     laki-laki          1         0.5
## 2     laki-laki          2         0.9
## 3     laki-laki          3         1.1
## 4     laki-laki          4         2.0
## 5     laki-laki          5         4.0
## 6     laki-laki          6         5.0
## 7     laki-laki          7         6.2
## 8     laki-laki          8         5.5
## 9     laki-laki          9         5.8
## 10    laki-laki         10         4.5
## 11    perempuan          1         0.7
## 12    perempuan          2         1.4
## 13    perempuan          3         2.8
## 14    perempuan          4         3.3
## 15    perempuan          5         4.3
## 16    perempuan          6         5.0
## 17    perempuan          7         6.7
## 18    perempuan          8         5.9
## 19    perempuan          9         5.7
## 20    perempuan         10         8.0

membuat scatter plot

plot(simpan[2:3], main="pendapatan dan pengeluaran per-bulan kedalam jutaan rupiah")

memisahkan 2 variabel (pendapatan dan pengeluaran) kedalam scatter plot

pendapatan=simpan$pendapatan
pengeluaran=simpan$pengeluaran
plot(pendapatan, pengeluaran)

jeniskelamin=simpan$jeniskelamin

mengaktifkan package ggplot2

membuat variabel

membuat grafik

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
pendapatan=simpan$pendapatan
pengeluaran=simpan$pengeluaran

qplot(pendapatan, pengeluaran, main="pendapatan dan pengeluaran per-bulan, dalam jutaan", xlab="pendapatan per-bulan", ylab="pengeluaran per-bulan")
## Warning: `qplot()` was deprecated in ggplot2 3.4.0.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

membuat grafik menggunakan titik berbeda

qplot(pendapatan, pengeluaran, main="pendaptan dan pengeluaran per-bulan, dalam jutaan", xlab="pendapatan", ylab="pengeluaran", color=jeniskelamin, shape=jeniskelamin)

library(ggplot2)
ggplot(simpan,
       aes(pendapatan, pengeluaran)) +
  geom_point()

ggplot(simpan, aes(pendapatan, pengeluaran)) + geom_point(aes(color = jeniskelamin, shape= jeniskelamin))

membuat objek grafik

grafik <- ggplot(simpan,
                 aes(pendapatan, pengeluaran)) +
  geom_point(aes(color=jeniskelamin,
                 shape=jeniskelamin))
grafik

mengubah warna

grafik + scale_colour_manual(values=c("blue","orange"))

mengubah bentuk titik

grafik + scale_shape_manual(values=c(6,16))

mengubah warna sekaligus bentuk

grafik + scale_colour_manual(values=c("blue","orange")) +scale_shape_manual(values=c(5,5))

membuat facet berdasarkan jenis kelamin

grafik + facet_grid(~ jeniskelamin)

facet sekaligus pengaturan warna

grafik + facet_grid(~ jeniskelamin) + scale_colour_manual(values=c("blue","orange"))

menambahkan garis vertikal

grafik + geom_vline(xintercept=2.5)

grafik +
  geom_vline(xintercept=2.5) +
  geom_vline(xintercept=5)

beberapa garis vertikal

grafik + geom_vline(xintercept=1:5)

grafik + geom_vline(xintercept=c(2.5,5,7.5))

garis vertikal dengan warna dan tipe garis

grafik + geom_vline(xintercept=c(2.5,5,7.5),colour="green", linetype="longdash")

Garis vertikal dan horizontal

grafik +
  geom_vline(xintercept=c(2.5,5,7.5),
             colour="green",
             linetype="longdash") +
  geom_hline(yintercept=c(2,4,6),
             colour="red",
             linetype="longdash")

============================================================

2. MENYAJIKAN DATA DENGAN GRAFIK GARIS

============================================================

Membaca data dari file

simpan=read.table("latihan komstat2.txt", header=TRUE)
simpan
##   tahun jenis.barang.A jenis.barang.B jenis.barang.C
## 1  2001             90             85             50
## 2  2002            110             90             55
## 3  2003            115            105             60
## 4  2004            130            110             65
## 5  2005            140            120             75
## 6  2006            155            125             80
## 7  2007            160            130             85
# Membuat Variabel
tahun=simpan$tahun
jumlah_A=simpan$jenis.barang.A
jumlah_B=simpan$jenis.barang.B
jumlah_C=simpan$jenis.barang.C

# Menampilkan data jumlah barang A
jumlah_A
## [1]  90 110 115 130 140 155 160
# Menampilkan data jumlah barang B
jumlah_B
## [1]  85  90 105 110 120 125 130
# Menampilkan data jumlah barang C
jumlah_C
## [1] 50 55 60 65 75 80 85
# Membuat grafik dasar antara tahun dan jumlah barang A
plot(tahun, jumlah_A)

# Membuat grafik dengan titik dan garis
# type="o" digunakan untuk menampilkan titik sekaligus garis
plot(tahun, jumlah_A, type="o")

# Mengubah warna grafik menjadi biru
plot(tahun, jumlah_A, type="o", col="blue")

# Mengubah warna grafik menjadi kuning
plot(tahun, jumlah_A, type="o", col="yellow")

# Mengubah warna grafik menjadi merah
plot(tahun, jumlah_A, type="o", col="red")

# Menambahkan data barang B ke dalam grafik
# lines() digunakan untuk menambahkan garis pada grafik yang sudah ada
plot(tahun, jumlah_A, type="o", col="red")
lines(tahun, jumlah_B, type="o", col="blue")

# Mengatur batas sumbu Y dari 70 sampai 180
plot(tahun, jumlah_A, type="o", col="red", ylim=c(70, 180))

# Menambahkan grafik barang B dengan warna biru
lines(tahun, jumlah_B, type="o", col="blue")

# Mengatur batas sumbu Y dari 40 sampai 180
plot(tahun, jumlah_A, type="o", col="red", ylim=c(40, 180))

# Menambahkan grafik barang B
lines(tahun, jumlah_B, type="o", col="blue")

# Menambahkan grafik barang C dengan warna kuning
lines(tahun, jumlah_C, type="o", col="yellow")

# Mengatur bentuk titik barang A menggunakan pch=22
plot(tahun, jumlah_A, type="o", col="red", ylim=c(40, 180))

# Menambahkan barang B dengan bentuk titik pch=22
lines(tahun, jumlah_B, type="o", pch=22, col="blue")

# Mengatur tipe garis barang A menggunakan lty=2
# lty=2 digunakan untuk membuat tipe garis tertentu
plot(tahun, jumlah_A, type="o", pch=22, lty=2, col="red", ylim=c(40, 180))

# Menambahkan barang B dengan bentuk dan tipe garis yang sama
lines(tahun, jumlah_B, type="o", pch=22, lty=2, col="blue")

# Menambahkan barang C dengan bentuk dan tipe garis yang sama
lines(tahun, jumlah_C, type="o",pch=22, lty=2,  col="yellow")

# Menggunakan type="p" untuk menampilkan titik
plot(tahun, jumlah_A, type="p", pch=22, lty=2, col="red", ylim=c(40, 180))

# Menampilkan titik untuk barang B
lines(tahun, jumlah_B, type="p", pch=22, lty=2, col="blue")

# Menampilkan titik untuk barang C
lines(tahun, jumlah_C, type="p",pch=22, lty=2,  col="yellow")

# Membandingkan penggunaan type yang berbeda
# Barang A menggunakan type="o" yaitu titik dan garis
plot(tahun, jumlah_A, type="o", pch=22, lty=2, col="red", ylim=c(40, 180))

# Barang B menggunakan type="p" yaitu titik
lines(tahun, jumlah_B, type="p", pch=22, lty=2, col="blue")

# Barang C menggunakan type="l" yaitu garis
lines(tahun, jumlah_C, type="l",pch=22, lty=2,  col="yellow")

# Membuat bidang grafik baru
# plot.new() digunakan untuk membuat plot kosong
plot.new()

# Membuat grafik barang A
plot(tahun, jumlah_A, type="o", col="red", ylim=c(40, 180))

# Menambahkan barang B
lines(tahun, jumlah_B, type="o", col="blue")

# Menambahkan barang C
lines(tahun, jumlah_C, type="o", col="yellow")

# Menambahkan judul grafik
# col.main digunakan untuk mengatur warna judul
# font.main digunakan untuk mengatur jenis/gaya font judul
title(main="data penjuyalan baranng A, B, C dari tahun 2001-2001", col.main="red", font.main=4)

# Membuat objek total dengan isi jumlah_A
total=jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik berdasarkan objek total
plot(tahun, total, type="o", col="red", ylim=c(40, 180))

# Menambahkan data barang B
lines(tahun, jumlah_B, type="o", col="blue")

# Menambahkan data barang C
lines(tahun, jumlah_C, type="o", col="yellow")

# Menambahkan judul grafik
title(main="data penjuyalan baranng A, B, C dari tahun 2001-2001", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
# R membedakan huruf besar dan huruf kecil
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180))

# Menambahkan grafik barang B
lines(tahun, jumlah_B, type="o", col="blue")

# Menambahkan grafik barang C dengan warna hijau
lines(tahun, jumlah_C, type="o", col="green")

# Membuat legenda untuk menjelaskan masing-masing garis
# c() digunakan untuk membuat kumpulan nilai
# cex digunakan untuk mengatur ukuran teks legenda
# col digunakan untuk menentukan warna legenda
# pch digunakan untuk menentukan bentuk simbol legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), pch=21)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180))

# Menambahkan barang B
lines(tahun, jumlah_B, type="o", col="blue")

# Menambahkan barang C
# lty=23 digunakan untuk menentukan tipe garis
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
# lty digunakan untuk menentukan tipe garis pada legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A dengan tipe garis tertentu
plot(tahun,Total, type="o", col="red", ylim=c(40,180), lty=23)

# Membuat grafik barang B dengan lty=23
lines(tahun, jumlah_B, type="o", col="blue", lty=23)

# Membuat grafik barang C dengan lty=23
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A dengan type="o"
plot(tahun,Total, type="o", col="red", ylim=c(40,180), lty=23)

# Membuat grafik barang B dengan type="s"
# type="s" digunakan untuk membuat grafik berbentuk step
lines(tahun, jumlah_B, type="s", col="blue", lty=23)

# Membuat grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180), lty=23)

# Membuat grafik barang B dengan type="l"
# type="l" digunakan untuk menampilkan garis
lines(tahun, jumlah_B, type="l", col="blue", lty=23)

# Membuat grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180))

# Membuat grafik barang B dengan type="l"
lines(tahun, jumlah_B, type="l", col="blue", lty=23)

# Membuat grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat grafik tanpa menampilkan sumbu X secara otomatis
# xaxt="n" digunakan untuk menonaktifkan sumbu X
plot(tahun,Total, type="o", col="red", ylim=c(40,180), xaxt="n")

# Membuat sumbu X secara manual
# at menentukan posisi sumbu
# side=1 menunjukkan sumbu bagian bawah
# labels menentukan label yang ditampilkan
Axis(at=2001:2007, side = 1, labels = c("A","B","C","D","E","F","G"))

# Menambahkan grafik barang B
lines(tahun, jumlah_B, type="l", col="blue", lty=23)

# Menambahkan grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180), lty=23)

# Membuat grafik barang B dengan bentuk step
lines(tahun, jumlah_B, type="s", col="blue", lty=23)

# Membuat grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat bidang grafik baru
plot.new()

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180), lty=23)

# Membuat grafik barang B dengan garis
lines(tahun, jumlah_B, type="l", col="blue", lty=23)

# Membuat grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat grafik barang A
plot(tahun,Total, type="o", col="red", ylim=c(40,180))

# Membuat grafik barang B dengan garis
lines(tahun, jumlah_B, type="l", col="blue", lty=23)

# Membuat grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# Membuat objek Total dengan isi jumlah_A
Total = jumlah_A

# Membuat grafik dengan sumbu X otomatis dinonaktifkan
plot(tahun,Total, type="o", col="red", ylim=c(40,180), xaxt="n")

# Membuat sumbu X secara manual
# Label A sampai G menggantikan angka tahun
Axis(at=2001:2007, side = 1, labels = c("A","B","C","D","E","F","G"))

# Menambahkan grafik barang B
lines(tahun, jumlah_B, type="l", col="blue", lty=23)

# Menambahkan grafik barang C
lines(tahun, jumlah_C, type="o", col="green", lty=23)

# Menambahkan legenda
legend(2001,160,c("Jenis Barang A", "Jenis Barang B", "Jenis Barang C"), cex=0.8, col=c("red","blue","green"), lty=30)

# Menambahkan judul grafik
title(main="Penjualan Barang A, B, C, dari Tahun 2001-2007", col.main="red", font.main=4)

# ============================================================ # 3. MENYAJIKAN DATA DENGAN GRAFIK BATANG (BAGIAN PERTAMA) # ============================================================

Membaca data dari file yang dipilih

header=TRUE menunjukkan bahwa baris pertama merupakan nama variabel

simpan=read.table("latihan komstat3.txt", header=TRUE)
simpan
##   tahun jenis.barang.A
## 1  2001             90
## 2  2002            110
## 3  2003            115
## 4  2004            130
## 5  2005            140
## 6  2006            155
## 7  2007            160
# Membuat variabel Tahun dari kolom tahun
# Membuat variabel Jumlah_A dari kolom jenis.barang.A
Tahun=simpan$tahun
Jumlah_A=simpan$jenis.barang.A

# Membuat grafik batang sederhana
barplot(Jumlah_A,Tahun)

# Membuat grafik batang dengan judul dan label sumbu
# names.arg digunakan untuk memberikan nama pada masing-masing batang
barplot(Jumlah_A,Tahun, main="Penjualan Barang Jenis A dari Tahun 2001-2007", xlab="Tahun",
        ylab="Jumlah Barang yang Terjual", names.arg=c("2001","2002","2003","2004","2005","2006","2007"))

# Membuat grafik batang dengan judul dan label sumbu
barplot(Jumlah_A,Tahun, main="Penjualan Barang Jenis A dari Tahun 2001-2007", xlab="Tahun",
        ylab="Jumlah Barang yang Terjual", names.arg=c("2001","2002","2003","2004","2005","2006","2007"))

# Mengubah warna garis tepi batang menjadi biru
# border digunakan untuk menentukan warna garis tepi batang
barplot(Jumlah_A,Tahun, main="Penjualan Barang Jenis A dari Tahun 2001-2007", xlab="Tahun",
        ylab="Jumlah Barang yang Terjual", names.arg=c("2001","2002","2003","2004","2005","2006","2007"), border="blue")

# Mengubah warna garis tepi batang menjadi merah
barplot(Jumlah_A,Tahun, main="Penjualan Barang Jenis A dari Tahun 2001-2007", xlab="Tahun",
        ylab="Jumlah Barang yang Terjual", names.arg=c("2001","2002","2003","2004","2005","2006","2007"), border="red")

# Mengubah warna garis tepi batang menjadi hijau
# density digunakan untuk mengatur kepadatan garis arsiran pada batang
barplot(Jumlah_A,Tahun, main="Penjualan Barang Jenis A dari Tahun 2001-2007", xlab="Tahun",
        ylab="Jumlah Barang yang Terjual", names.arg=c("2001","2002","2003","2004","2005","2006","2007"),
        border="green",density=c(10,20,30,40,50,60,70) )

# Mengaktifkan package ggplot2
library(ggplot2)

# Membuat grafik batang menggunakan ggplot2
# stat="identity" digunakan agar tinggi batang mengikuti nilai Jumlah_A
ggplot(data=simpan, aes(x=Tahun, y=Jumlah_A)) + geom_bar(stat="identity")

# Mengubah warna isi batang menjadi biru tua
ggplot(data=simpan, aes(x=Tahun, y=Jumlah_A)) + geom_bar(stat="identity", fill="darkblue")

# Menggunakan warna heat.colors untuk memberikan warna berbeda pada batang
ggplot(data=simpan, aes(x=Tahun, y=Jumlah_A)) + geom_bar(stat="identity", fill=heat.colors(7))

============================================================

4. MENYAJIKAN DATA DENGAN GRAFIK BATANG (BAGIAN KEDUA)

============================================================

# Membaca data dari file yang dipilih
# header=TRUE menunjukkan bahwa baris pertama merupakan nama variabel
# Membaca file data eksternal melalui jendela dialog
simpan=read.table("latihan komstat4.txt", header=TRUE)
simpan
##   Jenis.Kelamin     Hobi Jumlah
## 1     Laki-Laki Olahraga     90
## 2     Laki-Laki  Memasak     10
## 3     Perempuan Olahraga     25
## 4     Perempuan  Memasak     75
# Membuat matriks frekuensi dan barplot berdampingan (grouped barplot) menggunakan Base R
frekuensi=c(90,10,25,75)
barplot(t(matrix(frekuensi, ncol=2, byrow=TRUE, dimnames=list(c("Laki-Laki","Perempuan"), c("Olahraga","Memasak")))),
main="Hubungan antara Jenis Kelamin dan Hobi", xlab="Jenis Kelamin",
col=c("darkblue","orange"), beside=TRUE, ylim=c(0,150), legend.text=TRUE,
args.legend=list(x="topright"))

# Membuat barplot tunggal untuk distribusi nilai Matematika 1
frekuensi2=c(2,12,16,6)
barplot(frekuensi2, ylim=c(0,20), main="Jumlah Mahasiswa yang Memperoleh Nilai A, B, C, dan D, untuk
Matakuliah Matematika 1", names.arg=c("A","B","C","D"), ylab="Jumlah Mahasiswa",
xlab="Nilai Mahasiswa", cex.names=0.8, col=c("green","yellow","orange","red") )

# Membuat dataframe sederhana untuk visualisasi ggplot2
dat = data.frame(
jenis_kelamin=factor(c("Laki-Laki","Perempuan"), levels=c("Laki-Laki","Perempuan")), total=c(20,70))

dat
##   jenis_kelamin total
## 1     Laki-Laki    20
## 2     Perempuan    70
# Memanggil package ggplot2 dan membuat grafik batang dasar
library(ggplot2)
ggplot(data=dat, aes(x=jenis_kelamin, y=total))+geom_bar(stat="identity")

# Menambahkan pewarnaan (fill) berdasarkan variabel jenis_kelamin
ggplot(data=dat, aes(x=jenis_kelamin, y=total, fill=jenis_kelamin))+geom_bar(stat="identity")

# Menghilangkan legenda grafik
ggplot(data=dat, aes(x=jenis_kelamin, y=total, fill=jenis_kelamin))+geom_bar(stat="identity") + guides(fill= "none")

# Menambahkan label sumbu x, sumbu y, dan judul utama
ggplot(data=dat, aes(x=jenis_kelamin, y=total, fill=jenis_kelamin))+geom_bar(stat="identity") +
xlab("Jenis Kelamin") + ylab("Jumlah Mahasiswa") + ggtitle("Universitas XYZ")

# Membuat dataframe 2 faktor (jenis kelamin & hobi)
dat = data.frame( jenis_kelamin=factor(c("Laki-Laki","Laki-Laki","Perempuan","Perempuan")),
hobi=factor(c("Olahraga","Memasak","Olahraga","Memasak"),levels=c("Olahraga","Memasak")), total=c(80,20,40,60))

dat
##   jenis_kelamin     hobi total
## 1     Laki-Laki Olahraga    80
## 2     Laki-Laki  Memasak    20
## 3     Perempuan Olahraga    40
## 4     Perempuan  Memasak    60
# Membuat stacked barplot (grafik menumpuk) beserta label angka di dalamnya
ggplot(data=dat, aes(x=hobi, y=total, fill=jenis_kelamin))+geom_bar(stat="identity") +
xlab("Hobi Mahasiswa") + ylab("Jumlah Mahasiswa") + ggtitle("Universitas XYZ") +
geom_text(aes(y=total/1.3, label=total), position="stack" )

# Membuat grouped barplot (grafik berdampingan) menggunakan position_dodge()
ggplot(data=dat, aes(x=hobi, y=total, fill=jenis_kelamin))+geom_bar(stat="identity",
position=position_dodge()) + xlab("Hobi Mahasiswa") + ylab("Jumlah Mahasiswa") +
ggtitle("Universitas XYZ")

# Grouped barplot lengkap dengan penyesuaian posisi label angka (position_dodge)
ggplot(data=dat, aes(x=hobi, y=total, fill=jenis_kelamin))+geom_bar(stat="identity",
position=position_dodge()) + xlab("Hobi Mahasiswa") + ylab("Jumlah Mahasiswa") +
ggtitle("Universitas XYZ") + geom_text(aes(y=total/4, label=total),
position=position_dodge(width=1) )

# ============================================================ # 5. MENYAJIKAN DATA DENGAN DIAGRAM LINGKARAN # ============================================================

Membaca data

simpan=read.table("latihan komstat5.txt", header=TRUE)
simpan
##   Produk Jumlah
## 1      A     12
## 2      B      5
## 3      C      8
## 4      D     20
# Diagram lingkaran berdasarkan produk
pie(simpan$Jumlah,labels=simpan$Produk, main="Data Penjualan Produk A, B, C, dan D")

# Diagram lingkaran dengan warna heat.colors
pie(simpan$Jumlah,labels=simpan$Produk, main="Data Penjualan Produk A, B, C, dan D", col=heat.colors(4) )

# Menampilkan jumlah pada diagram
pie(simpan$Jumlah,labels=simpan$Jumlah, main="Data Penjualan Produk A, B, C, dan D", col=heat.colors(4))

# Membuat warna dan legenda
colors=heat.colors(4)
legend(1,0.5, c("Produk A","Produk B","Produk C", "Produk D"), cex=0.8, fill=colors )

# Mengatur warna diagram secara manual
pie(simpan$Jumlah,labels=simpan$Jumlah, main="Data Penjualan Produk A, B, C, dan D",
col=c("darkblue","orange","yellow","red"))
colors=c("darkblue","orange","yellow","red")
legend(1,0.5, c("Produk A","Produk B","Produk C", "Produk D"), cex=0.8, fill=colors )

# Menghitung persentase
Persen=round(simpan$Jumlah/sum(simpan$Jumlah)*100,4)
Persen=paste(Persen,"%",sep="")

# Menampilkan persentase pada diagram
pie(simpan$Jumlah,labels=Persen, main="Data Penjualan Produk A, B, C, dan D",
col=c("darkblue","orange","yellow","red"))
colors=c("darkblue","orange","yellow","red")
legend(1,0.5, c("Produk A","Produk B","Produk C", "Produk D"), cex=0.8, fill=colors )

# Menghitung persentase kembali
Persen=round(simpan$Jumlah/sum(simpan$Jumlah)*100,4)
Persen=paste(Persen,"%",sep="")

# Membuat diagram dengan persentase
pie(simpan$Jumlah,labels=Persen, main="Data Penjualan Produk A, B, C, dan D",
col=c("darkblue","orange","yellow","red"))
colors=c("darkblue","orange","yellow","red")
legend(1,0.5, c("Produk A","Produk B","Produk C", "Produk D"), cex=0.8, fill=colors )

# Membuat variabel jumlah dan produk
Jumlah=simpan$Jumlah
Produk=simpan$Produk

# Mengaktifkan ggplot2
library(ggplot2)

# Membuat diagram lingkaran dengan ggplot2
pie = ggplot(simpan, aes(x="", y=Jumlah, fill=Produk))+geom_bar(width=1,stat="identity")+coord_polar("y",start=0)

# Menampilkan diagram
pie

# Mengaktifkan package
library(ggplot2)
library(grid)
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.5.3
# Membuat tema kosong
blank_theme = theme(
axis.title.x=element_blank(),
axis.title.y=element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
panel.border = element_blank(),
panel.grid=element_blank(),
axis.ticks= element_blank(),
plot.title=element_text(size=14, face="bold")
)

# Mengaktifkan package scales
library(scales)
## Warning: package 'scales' was built under R version 4.5.3
# Menambahkan jumlah pada diagram
pie + blank_theme + geom_text(aes(y=Jumlah/4 + c(0,cumsum(Jumlah)[-length(Jumlah)])), label=Jumlah, size=5)

# Menambahkan jumlah dan mengatur warna
pie + blank_theme + geom_text(aes(y=Jumlah/4 + c(0,cumsum(Jumlah)[-length(Jumlah)])), label=Jumlah, size=5) +
scale_fill_manual(values=c(heat.colors(4)))

# Menghitung persentase
Persen=round(simpan$Jumlah/sum(simpan$Jumlah)*100,2)
Persen=paste(Persen,"%",sep="")

# Menampilkan persentase pada diagram
pie + blank_theme + geom_text(aes(y=Jumlah/4 + c(0,cumsum(Jumlah)[-length(Jumlah)])),
label=Persen, size=5) +
scale_fill_manual(values=c(heat.colors(4)))

============================================================

6. MENYAJIKAN DATA DENGAN HISTOGRAM

============================================================

Membaca data

simpan=read.table("latihan komstat6.txt", header=TRUE)
simpan
##     IQ
## 1  111
## 2  111
## 3  111
## 4  111
## 5  111
## 6  111
## 7  111
## 8  110
## 9  110
## 10 110
## 11 110
## 12 110
## 13 110
## 14 110
## 15 112
## 16 112
## 17 112
## 18 112
## 19 112
## 20 112
## 21 112
## 22 113
## 23 113
## 24 113
## 25 113
## 26 113
## 27 114
## 28 114
## 29 114
## 30 114
## 31 115
## 32 115
## 33 115
## 34 116
## 35 116
## 36 117
## 37  90
## 38  91
## 39  92
## 40  92
## 41  93
## 42  93
## 43  93
## 44  94
## 45  94
## 46  94
## 47  94
## 48  95
## 49  95
## 50  95
## 51  95
## 52  95
## 53  95
## 54  96
## 55  96
## 56  96
## 57  96
## 58  97
## 59  97
## 60  97
## 61  97
## 62  97
## 63  98
## 64  98
## 65  98
## 66 101
## 67 101
## 68 101
## 69 102
## 70 102
## 71 103
## 72 104
## 73 103
## 74 102
## 75 108
## 76 109
## 77 118
# Mengambil data IQ
simpan_skor_IQ=simpan$IQ

# Membuat histogram sederhana
hist(simpan_skor_IQ)

# Mengubah warna histogram
hist(simpan_skor_IQ, col="lightblue")

# Mengatur warna, batas Y, judul, dan label Y
hist(simpan_skor_IQ, col="darkblue", ylim=c(0,40), main="Contoh Histogram", ylab="Frekuensi")

# Mengatur interval histogram
hist(simpan_skor_IQ, col="orange", ylim=c(0,40), main="Contoh Histogram", ylab="Frekuensi", breaks=c(90,100,110,120) )

# Mengatur jumlah interval, warna, sumbu, dan batas X
hist(simpan_skor_IQ, col=heat.colors(6), ylim=c(0,30), main="Contoh Histogram", ylab="Frekuensi",
breaks=c(90,95,100,105,110,115,120), xlim=c(90,125) )

# Menggunakan interval yang lebih kecil
hist(simpan_skor_IQ, col=heat.colors(6), ylim=c(0,30), main="Contoh Histogram", ylab="Frekuensi",
breaks=c(90,93,96,99,102,105,108,111,114,117,120), xlim=c(90,125) )

# Menentukan jumlah interval dengan breaks
hist(simpan_skor_IQ, breaks=6 , col=heat.colors(6), ylim=c(0,30), main="Contoh Histogram",
ylab="Frekuensi", xlim=c(90,125) )

# Menentukan batas interval tertentu
hist(simpan_skor_IQ, breaks=c(90,117,120), ylim=c(0,50),xlim=c(90,125), main="Contoh Histogram", col=heat.colors(2))

# Menggunakan ferq=TRUE
hist(simpan_skor_IQ, breaks=c(90,117,120), ylim=c(0,80),xlim=c(90,125), main="Contoh Histogram", col=heat.colors(2), ferq=TRUE)
## Warning in plot.window(xlim, ylim, "", ...): "ferq" is not a graphical
## parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...): "ferq"
## is not a graphical parameter
## Warning in axis(1, ...): "ferq" is not a graphical parameter
## Warning in axis(2, at = yt, ...): "ferq" is not a graphical parameter

# Menggunakan beberapa interval dan ferq=TRUE
hist(simpan_skor_IQ, breaks=c(90, 92, 97, 117,120), ylim=c(0,80), xlim=c(90,125), main="Contoh Histogram", col=heat.colors(4), ferq=TRUE)
## Warning in plot.window(xlim, ylim, "", ...): "ferq" is not a graphical
## parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...): "ferq"
## is not a graphical parameter
## Warning in axis(1, ...): "ferq" is not a graphical parameter
## Warning in axis(2, at = yt, ...): "ferq" is not a graphical parameter

# Membuat histogram menggunakan ggplot2
ggplot(data=simpan, aes(IQ)) + geom_histogram(breaks=c(90,95,100,105,110,115,120), col="darkblue",
fill=heat.colors(6) )

# Membuat histogram dengan gradasi berdasarkan jumlah
ggplot(data=simpan, aes(IQ)) + geom_histogram(breaks=c(90,95,100,105,110,115,120), col="red",
aes(fill=..count..)) + labs(title="Contoh Histogram") + labs(x="IQ", y="Jumlah") +
xlim(c(90,125)) + ylim(c(0,20)) + scale_fill_gradient("count", low="green", high="red")
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_bar()`).

# Mengaktifkan package ggplot2
library(ggplot2)

# Membuat histogram dengan beberapa interval dan gradasi warna
ggplot(data=simpan, aes(IQ)) + geom_histogram(breaks=c(90,93,96,99,102,105,111,114,115,120),
col="darkblue", fill=heat.colors(9), aes(fill=..count..)) + labs(title="Contoh Histogram") +
labs(x="IQ", y="Jumlah") + xlim(c(90,125)) + ylim(c(0,20)) + scale_fill_gradient("count",
low=heat.colors(9), high=heat.colors(9))