# ------------------------------------------------------------
# Gambar 3.4 - 
# ------------------------------------------------------------
simpan=read.table("data3.1.csv",header=TRUE, sep=";", dec=",")
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
# ------------------------------------------------------------
# Gambar 3.6 - Scatter Plot Pendapatan dan Pengeluaran
# ------------------------------------------------------------

plot(simpan[2:3],
     main="Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan Rupiah")

# ------------------------------------------------------------
# Gambar 3.6 / Gambar 3.7
# Membuat variabel Pendapatan dan Pengeluaran
# ------------------------------------------------------------

Pendapatan=simpan$pendapatan
Pengeluaran=simpan$pengeluaran

plot(Pendapatan, Pengeluaran)

# ------------------------------------------------------------
# Gambar 3.8 / Gambar 3.9
# Menggunakan package ggplot2 dan qplot()
# ------------------------------------------------------------

library(ggplot2)

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 every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# ------------------------------------------------------------
# Gambar 3.10 / Gambar 3.11
# Memberikan warna berdasarkan jenis kelamin
# ------------------------------------------------------------

jenis=simpan$jeniskelamin

qplot(PENDAPATAN, PENGELUARAN,
      main="Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan",
      xlab="PENDAPATAN",
      ylab="PENGELUARAN",
      color=jenis)

# ------------------------------------------------------------
# Gambar 3.10 / Gambar 3.11
# Memberikan warna dan bentuk berdasarkan jenis kelamin
# ------------------------------------------------------------

qplot(PENDAPATAN, PENGELUARAN,
      main="Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan",
      xlab="PENDAPATAN",
      ylab="PENGELUARAN",
      color=jenis,
      shape=jenis)

# ------------------------------------------------------------
# Gambar 3.12 / Gambar 3.13
# Menggunakan ggplot() + geom_point()
# ------------------------------------------------------------

library(ggplot2)

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

# ============================================================
# Gambar 3.14
# Kumpulan contoh ggplot(), warna, bentuk, facet,
# garis vertikal, dan garis horizontal
# ============================================================

# Membuat grafik dasar dengan warna dan bentuk
ggplot(simpan,
       aes(pendapatan, pengeluaran)) +
  geom_point(aes(color=jenis, shape=jenis))

# Menyimpan grafik ke dalam variabel grafik
grafik <- ggplot(simpan,
                 aes(pendapatan, pengeluaran)) +
  geom_point(aes(color=jenis, shape=jenis))


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

# Mengubah bentuk titik
grafik +
  scale_shape_manual(values=c(16,5))

# Mengubah warna dan bentuk sekaligus
grafik +
  scale_colour_manual(values=c("blue","orange")) +
  scale_shape_manual(values=c(5,5))

# Membagi grafik berdasarkan jenis kelamin
grafik +
  facet_grid(. ~ jeniskelamin)

# Membagi grafik berdasarkan jenis kelamin
# sekaligus mengatur warna
grafik +
  facet_grid(. ~ jeniskelamin) +
  scale_colour_manual(values=c("blue","orange"))

# ------------------------------------------------------------
# Gambar 3.18
# Satu garis vertikal
# ------------------------------------------------------------

grafik +
  geom_vline(xintercept=2.5)

# ------------------------------------------------------------
# Gambar 3.19
# Dua garis vertikal
# ------------------------------------------------------------

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

# ------------------------------------------------------------
# Gambar 3.20
# Beberapa garis vertikal
# ------------------------------------------------------------

grafik +
  geom_vline(xintercept=1:5)

# Beberapa garis vertikal tertentu
grafik +
  geom_vline(xintercept=c(2.5,5,7.5))

# ------------------------------------------------------------
# Gambar 3.21
# Garis vertikal berwarna hijau dan putus-putus
# ------------------------------------------------------------

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

# ------------------------------------------------------------
# Gambar 3.22
# Garis vertikal + garis 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"
  )

# ------------------------------------------------------------
# Gambar 3.25
# Membaca data penjualan barang A, B, dan C
# ------------------------------------------------------------

simpan=read.table("data3.2.csv",header=TRUE, sep=";", dec=",")

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
Tahun=simpan$tahun

Jumlah_A=simpan$jenis.barang.A
Jumlah_B=simpan$jenis.barang.B
Jumlah_C=simpan$jenis.barang.C


# Menampilkan masing-masing jumlah
Jumlah_A
## [1]  90 110 115 130 140 155 160
Jumlah_B
## [1]  85  90 105 110 120 125 130
Jumlah_C
## [1] 50 55 60 65 75 80 85
# ------------------------------------------------------------
# Gambar 3.25
# Grafik titik
# ------------------------------------------------------------

plot(Tahun,Jumlah_A)

# Grafik titik dan garis
plot(Tahun,Jumlah_A,type="o")

# Mengubah warna menjadi biru
plot(Tahun,Jumlah_A,type="o",col="blue")

# Mengubah warna menjadi hijau
plot(Tahun,Jumlah_A,type="o",col="green")

# Mengubah warna menjadi merah
plot(Tahun,Jumlah_A,type="o",col="red")


# Menambahkan garis barang B
plot(Tahun,Jumlah_A,type="o",col="red")

lines(Tahun,Jumlah_B,type="o",col="blue")

# Mengatur batas sumbu Y
plot(Tahun,Jumlah_A,
     type="o",
     col="red",
     ylim=c(70,180))

lines(Tahun,Jumlah_B,
      type="o",
      col="blue")

# Menambahkan barang C
plot(Tahun,Jumlah_A,
     type="o",
     col="red",
     ylim=c(40,180))

lines(Tahun,Jumlah_B,
      type="o",
      col="blue")

lines(Tahun,Jumlah_C,
      type="o",
      col="green")

# ------------------------------------------------------------
# Gambar 3.26 - Mengubah bentuk titik dan jenis garis
# ------------------------------------------------------------

plot(Tahun,Jumlah_A,
     type="o",
     col="red",
     ylim=c(40,180))

lines(Tahun,Jumlah_B,
      type="o",
      pch=22,
      lty=2,
      col="blue")

lines(Tahun,Jumlah_C,
      type="o",
      col="green")

# Bentuk titik pch=22 dan garis putus-putus
plot(Tahun,Jumlah_A,
     type="o",
     pch=22,
     lty=2,
     col="red",
     ylim=c(40,180))

lines(Tahun,Jumlah_B,
      type="o",
      pch=22,
      lty=2,
      col="blue")

lines(Tahun,Jumlah_C,
      pch=22,
      lty=2,
      type="p",
      col="green")

# ------------------------------------------------------------
# Gambar 3.27
# Menggunakan type="p"
# ------------------------------------------------------------

plot(Tahun,Jumlah_A,
     type="p",
     pch=22,
     lty=2,
     col="red",
     ylim=c(40,180))

lines(Tahun,Jumlah_B,
      type="p",
      pch=22,
      lty=2,
      col="blue")

lines(Tahun,Jumlah_C,
      pch=22,
      lty=2,
      type="p",
      col="green")

# ------------------------------------------------------------
# Gambar 3.27
# Menambahkan judul
# ------------------------------------------------------------

plot.new()

plot(Tahun,Jumlah_A,
     type="o",
     col="red",
     ylim=c(40,180))

lines(Tahun,Jumlah_B,
      type="o",
      col="blue")

lines(Tahun,Jumlah_C,
      type="o",
      col="green")

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

# ------------------------------------------------------------
# Gambar 3.27
# Menggunakan Total
# ------------------------------------------------------------

Total=Jumlah_A

plot.new()

plot(Tahun,Total,
     type="o",
     col="red",
     ylim=c(40,180))

lines(Tahun,Jumlah_B,
      type="o",
      col="blue")

lines(Tahun,Jumlah_C,
      type="o",
      col="green")

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

# ------------------------------------------------------------
# Gambar 3.27
# Menambahkan legenda
# ------------------------------------------------------------

Total=Jumlah_A

plot.new()

plot(Tahun,Total,
     type="o",
     col="red",
     ylim=c(40,180),
     lty=23)

lines(Tahun,Jumlah_B,
      type="o",
      col="blue",
      lty=23)

lines(Tahun,Jumlah_C,
      type="o",
      col="green",
      lty=23)

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

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

# ------------------------------------------------------------
# Gambar 3.28
# Mengubah jenis garis
# ------------------------------------------------------------

Total=Jumlah_A

plot.new()

plot(Tahun,Total,
     type="o",
     col="red",
     ylim=c(40,180),
     lty=23)

lines(Tahun,Jumlah_B,
      type="l",
      col="blue",
      lty=23)

lines(Tahun,Jumlah_C,
      type="o",
      col="green",
      lty=23)

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

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

# ------------------------------------------------------------
# Gambar 3.28
# Contoh berikutnya
# ------------------------------------------------------------

Total=Jumlah_A

plot.new()

plot(Tahun,Total,
     type="o",
     col="red",
     ylim=c(40,180),
     lty=23)

lines(Tahun,Jumlah_B,
      type="o",
      col="blue",
      lty=23)

lines(Tahun,Jumlah_C,
      type="o",
      col="green",
      lty=23)

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

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

# ------------------------------------------------------------
# Gambar 3.28
# Mengubah sumbu X
# ------------------------------------------------------------

Total=Jumlah_A

plot.new()

plot(
  Tahun,Total,
  type="o",
  col="red",
  ylim=c(40,180),
  lty=23
)

axis(
  at=2001:2007,
  side=1,
  labels=c("A","B","C","D","E","F","G")
)

lines(
  Tahun,Jumlah_B,
  type="o",
  col="blue",
  lty=23
)

lines(
  Tahun,Jumlah_C,
  type="o",
  col="green",
  lty=23
)

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

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

# ------------------------------------------------------------
# Gambar 3.29
# Mengubah label sumbu X menjadi Tahun 1 - Tahun 7
# ------------------------------------------------------------

Total=Jumlah_A

plot.new()

plot(
  Tahun,Total,
  type="o",
  col="red",
  ylim=c(40,180),
  lty=23
)

axis(
  at=2001:2007,
  side=1,
  labels=c(
    "Tahun 1",
    "Tahun 2",
    "Tahun 3",
    "Tahun 4",
    "Tahun 5",
    "Tahun 6",
    "Tahun 7"
  )
)

lines(
  Tahun,Jumlah_B,
  type="o",
  col="blue",
  lty=23
)

lines(
  Tahun,Jumlah_C,
  type="o",
  col="green",
  lty=23
)

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

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

# ------------------------------------------------------------
# Gambar 3.29
# Contoh pengaturan sumbu lainnya
# ------------------------------------------------------------

Total=Jumlah_A

plot(
  Tahun,Total,
  type="o",
  col="red",
  ylim=c(40,180)
)

axis(
  at=2001:2007,
  side=1,
  labels=c(
    "Tahun 1",
    "Tahun 2",
    "Tahun 3",
    "Tahun 4",
    "Tahun 5",
    "Tahun 6",
    "Tahun 7"
  )
)

lines(Tahun,Jumlah_B,
      type="o",
      col="blue",
      lty=23)

lines(Tahun,Jumlah_C,
      type="o",
      col="green",
      lty=23)

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

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

# ------------------------------------------------------------
# Gambar 3.44
# ------------------------------------------------------------

simpan=read.table("data3.3.csv",header=TRUE, sep=";", dec=",")

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
Tahun=simpan$tahun

Jumlah_A=simpan$jenis.barang.A


# Grafik batang sederhana
barplot(Jumlah_A,Tahun)

# Grafik batang dengan judul dan label
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"
  )
)

# Grafik batang dengan border biru
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"
)

# Grafik batang dengan border 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"
)

# Grafik batang dengan border hijau dan density
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)
)

# ------------------------------------------------------------
# Gambar 3.44
# Grafik batang menggunakan ggplot2
# ------------------------------------------------------------

library(ggplot2)

ggplot(
  data=simpan,
  aes(x=Tahun,y=Jumlah_A)
) +
  geom_bar(stat="identity")

# Warna darkblue
ggplot(
  data=simpan,
  aes(x=Tahun,y=Jumlah_A)
) +
  geom_bar(
    stat="identity",
    fill="darkblue"
  )

# Warna heat.colors
ggplot(
  data=simpan,
  aes(x=Tahun,y=Jumlah_A)
) +
  geom_bar(
    stat="identity",
    fill=heat.colors(7)
  )

# ------------------------------------------------------------
# Gambar 3.50
# ------------------------------------------------------------

simpan=read.table("data3.4.csv",header=TRUE, sep=";", dec=",")
simpan
##   Jenis.Kelamin     Hobi Jumlah
## 1     Laki-Laki Olahraga     90
## 2     Laki-Laki  Memasak     10
## 3     Perempuan Olahraga     25
## 4     Perempuan  Memasak     75
# Data frekuensi
frekuensi=c(90,10,25,75)


# Grafik hubungan jenis kelamin dan hobi
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")
)

# ------------------------------------------------------------
# Gambar 3.50
# Contoh nilai mahasiswa A, B, C, D
# ------------------------------------------------------------

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")
)

# ------------------------------------------------------------
# Gambar 3.50
# Menggunakan 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
library(ggplot2)


# Grafik dasar
ggplot(
  data=dat,
  aes(x=jenis_kelamin,y=total)
) +
  geom_bar(stat="identity")

# Grafik dengan fill berdasarkan jenis kelamin
ggplot(
  data=dat,
  aes(
    x=jenis_kelamin,
    y=total,
    fill=jenis_kelamin
  )
) +
  geom_bar(stat="identity")

# Grafik dengan guides(fill=FALSE)
ggplot(
  data=dat,
  aes(
    x=jenis_kelamin,
    y=total,
    fill=jenis_kelamin
  )
) +
  geom_bar(stat="identity") +
  guides(fill=FALSE)
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

# Memberikan label sumbu dan judul
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")

# ------------------------------------------------------------
# Gambar 3.51
# Data hobi berdasarkan jenis kelamin
# ------------------------------------------------------------

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
# Grafik batang bertumpuk
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"
  )

# Grafik batang berdampingan
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")

# Grafik berdampingan dengan y negatif
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)
  )

# ------------------------------------------------------------
# Gambar 3.61
# ------------------------------------------------------------

simpan=read.table("data3.5.csv",header=TRUE, sep=";", dec=",")
simpan
##   Produk Jumlah
## 1      A     12
## 2      B      5
## 3      C      8
## 4      D     20
# Diagram lingkaran dengan label 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)
)

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


# Membuat warna
colors=heat.colors(4)


# Legenda
legend(
  1,0.5,
  c(
    "Produk A",
    "Produk B",
    "Produk C",
    "Produk D"
  ),
  cex=0.8,
  fill=colors
)

# ------------------------------------------------------------
# Menggunakan warna 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
)

# ------------------------------------------------------------
# Gambar 3.64
# Menghitung persentase
# ------------------------------------------------------------

Persen=round(
  simpan$Jumlah/sum(simpan$Jumlah)*100,
  4
)

Persen=paste(Persen,"%",sep="")


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
)

# ============================================================
# Gambar 3.62
# Diagram lingkaran menggunakan ggplot2
# ============================================================

Jumlah=simpan$Jumlah
Produk=simpan$Produk

library(ggplot2)

pie=ggplot(
  simpan,
  aes(x="",y=Jumlah,fill=Produk)
) +
  geom_bar(
    width=1,
    stat="identity"
  ) +
  coord_polar("y",start=0)

pie

# ------------------------------------------------------------
# Gambar 3.62
# Membuat tema kosong
# ------------------------------------------------------------

library(ggplot2)
library(grid)

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")
)


# Menampilkan jumlah pada diagram
library(scales)

pie +
  blank_theme +
  geom_text(
    aes(
      y=Jumlah/4 +
        c(0,cumsum(Jumlah)[-length(Jumlah)]),
      label=Jumlah
    ),
    size=5
  )

# Menambahkan warna manual
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
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))
  )

# ============================================================
# BAGIAN 6
# MENYAJIKAN DATA DENGAN HISTOGRAM
# ============================================================


# ------------------------------------------------------------
# Gambar 3.69
# ------------------------------------------------------------

simpan=read.table("IQ.csv",header=TRUE, sep=";", dec=",")
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
simpan_skor_IQ=simpan$IQ


# Histogram sederhana
hist(simpan_skor_IQ)

# Histogram dengan warna lightblue
hist(
  simpan_skor_IQ,
  col="lightblue"
)

# Histogram dengan warna darkblue
hist(
  simpan_skor_IQ,
  col="darkblue",
  ylim=c(0,40),
  main="Contoh Histogram",
  ylab="Frekuensi"
)

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

# Histogram dengan 6 warna
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)
)

# Histogram dengan breaks lebih banyak
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)
)

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

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

# freq=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),
  freq=TRUE
)
## Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle =
## angle, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'

# Breaks lebih banyak
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),
  freq=TRUE
)
## Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle =
## angle, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'

# ============================================================
# Gambar 3.70
# 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)
  )

# Histogram dengan gradient berdasarkan count
ggplot(
  data=simpan,
  aes(IQ)
) +
  geom_histogram(
    breaks=c(
      90,95,100,105,110,115,120
    ),
    col="red",
    aes(fill=after_stat(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: Removed 1 row containing missing values or values outside the scale range
## (`geom_bar()`).

# ------------------------------------------------------------
# Gambar 3.70
# Contoh histogram berikutnya
# ------------------------------------------------------------

library(ggplot2)

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=after_stat(count))
  ) +
  labs(title="Contoh Histogram") +
  labs(x="IQ",y="Jumlah") +
  xlim(c(90,125)) +
  ylim(c(0,20)) +
  scale_fill_gradient(
    "count",
    low="white",
    high="darkblue"
  )