# =========================================
# BAB 3 - MENYAJIKAN DATA DALAM GRAFIK
# SCATTER PLOT
# =========================================

# Membaca data
simpan=read.table("data3.1.csv", header=TRUE, sep=";")
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.8
## 19    perempuan          9         5.7
## 20    perempuan         10         8.0
# Membuat scatter plot
plot(simpan[2:3],
     main="Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan Rupiah")

# Menyimpan variabel pendapatan dan pengeluaran
Pendapatan=simpan$pendapatan
Pengeluaran=simpan$pengeluaran

# Membuat scatter plot
plot(Pendapatan,Pengeluaran)

# Mengaktifkan package ggplot2
library(ggplot2)

# Menyimpan variabel
PENDAPATAN=simpan$pendapatan
PENGELUARAN=simpan$pengeluaran

# Membuat grafik dengan qplot
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.

# Berdasarkan jenis kelamin
library(ggplot2)

qplot(
  x = pendapatan,
  y = pengeluaran,
  data = simpan,
  color = jeniskelamin,
  shape = jeniskelamin,
  main = "Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan",
  xlab = "PENDAPATAN",
  ylab = "PENGELUARAN"
)

# Menggunakan ggplot
grafik=ggplot(simpan,aes(pendapatan,pengeluaran))+
  geom_point()

grafik

# Memberikan warna dan bentuk berdasarkan jenis kelamin
grafik=library(ggplot2)

grafik=ggplot(data = simpan,
       aes(x = pendapatan,
           y = pengeluaran,
           color = .data$jeniskelamin,
           shape = .data$jeniskelamin)) +
  geom_point()

grafik

# Mengatur warna secara manual
grafik+
  scale_colour_manual(values=c("blue","orange"))

# Mengatur bentuk titik secara manual
grafik+
  scale_shape_manual(values=c(16,5))

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

# Membuat grafik berdasarkan jenis kelamin
grafik+
  facet_grid(~jeniskelamin)

# Menambahkan garis vertikal
grafik+
  geom_vline(xintercept=2.5)

# Menambahkan dua garis vertikal
grafik+
  geom_vline(xintercept=2.5)+
  geom_vline(xintercept=5)

# Menambahkan beberapa garis vertikal
grafik+
  geom_vline(xintercept=1:6)

# Menentukan beberapa nilai garis vertikal
grafik+
  geom_vline(xintercept=c(2.5,5,7.5))

# Garis vertikal berwarna hijau dan putus-putus
grafik+
  geom_vline(xintercept=c(2.5,5,7.5),
             colour="green",
             linetype="longdash")

# Menambahkan garis horizontal
grafik+
  geom_hline(yintercept=4)

# Menambahkan beberapa garis horizontal
grafik+
  geom_hline(yintercept=c(2,4,6),
             colour="red",
             linetype="longdash")

# =========================================
# GRAFIK GARIS
# =========================================

# Membaca data
simpan=read.table("data3.2.csv",header=TRUE,sep=";")
simpan
##   tahun jenis.barang.A jenis.barang.B jenis.barang.C
## 1  2001             50             70             60
## 2  2002             65             80             75
## 3  2003             80             75             90
## 4  2004             95            100             85
## 5  2005            110            120            105
## 6  2006            130            115            125
## 7  2007            150            140            135
# Menyimpan variabel
Tahun=simpan$tahun
Jumlah_A=simpan$jenis.barang.A
Jumlah_B=simpan$jenis.barang.B
Jumlah_C=simpan$jenis.barang.C

# Menampilkan masing-masing data
Jumlah_A
## [1]  50  65  80  95 110 130 150
Jumlah_B
## [1]  70  80  75 100 120 115 140
Jumlah_C
## [1]  60  75  90  85 105 125 135
# Grafik titik
plot(Tahun,Jumlah_A)

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

# Menambahkan garis B
lines(Tahun,Jumlah_B,type="o",col="blue")

# Menambahkan garis C
lines(Tahun,Jumlah_C,type="o",col="green")

# Grafik A dengan warna merah
plot(Tahun,Jumlah_A,
     type="o",
     col="red")

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

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

# Mengatur batas sumbu Y
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")

# Mengubah bentuk titik
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,
      type="o",
      pch=22,
      lty=2,
      col="green")

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

# Menambahkan legenda
legend(2006,160,
       c("Jenis Barang A",
         "Jenis Barang B",
         "Jenis Barang C"),
       col=c("red","blue","green"),
       lty=1,
       pch=22)

# =========================================
# GRAFIK TOTAL PENJUALAN
# =========================================

Total=Jumlah_A+Jumlah_B+Jumlah_C

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

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

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

legend(2006,360,
       c("Total",
         "Barang A",
         "Barang B"),
       col=c("red","blue","green"),
       lty=1,
       pch=1)

# =========================================
# GRAFIK TOTAL PENJUALAN
# =========================================

Total=Jumlah_A+Jumlah_B+Jumlah_C

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

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

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

legend(2006,360,
       c("Total",
         "Barang A",
         "Barang B"),
       col=c("red","blue","green"),
       lty=1,
       pch=1)

# =========================================
# GRAFIK BATANG
# =========================================

# Membaca data
simpan=read.table("data3.3.csv",header=TRUE,sep=";")
simpan
##   tahun jenis.barang.A
## 1  2001             50
## 2  2002             65
## 3  2003             80
## 4  2004             95
## 5  2005            110
## 6  2006            130
## 7  2007            150
# Menyimpan variabel
Tahun=simpan$tahun
Jumlah_A=simpan$jenis.barang.A

# Grafik batang
barplot(Jumlah_A,
        names.arg=Tahun,
        main="Penjualan Barang Jenis A dari Tahun 2001-2007",
        xlab="Tahun",
        ylab="Jumlah Barang yang Terjual")

# Grafik batang dengan warna
barplot(Jumlah_A,
        names.arg=Tahun,
        main="Penjualan Barang Jenis A dari Tahun 2001-2007",
        xlab="Tahun",
        ylab="Jumlah Barang yang Terjual",
        col=rainbow(7))

# Grafik batang menggunakan ggplot2
library(ggplot2)

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

# Grafik batang dengan warna
ggplot(data=simpan,
       aes(x=Tahun,y=Jumlah_A))+
  geom_bar(stat="identity",
           fill="red")

# =========================================
# GRAFIK BATANG BAGIAN KEDUA
# =========================================

# Membaca data
simpan=read.table("data3.4.csv",header=TRUE,sep=";")
simpan
##   jeniskelamin olahraga memasak
## 1    laki-laki       90      10
## 2    perempuan       25      75
# Data frekuensi
frekuensi=c(90,10,25,75)

# Membuat matriks
frekuensi
## [1] 90 10 25 75
# Grafik batang
barplot(matrix(frekuensi,
               ncol=2,
               byrow=TRUE,
               dimnames=list(
                 c("Laki-Laki","Perempuan"),
                 c("Olahraga","Memasak")
               )),
        beside=TRUE,
        col=c("blue","orange"),
        main="Hubungan antara Jenis Kelamin dan Hobi",
        xlab="Jenis Kelamin",
        ylab="Jumlah",
        legend.text=TRUE)

# =========================================
# GRAFIK BATANG BAGIAN KEDUA
# =========================================

# Membaca data
simpan=read.table("data3.4.csv",header=TRUE,sep=",")
simpan
##   jeniskelamin.olahraga.memasak
## 1               laki-laki;90;10
## 2               perempuan;25;75
# Data frekuensi
frekuensi=c(90,10,25,75)

# Membuat matriks
frekuensi
## [1] 90 10 25 75
# Grafik batang
barplot(matrix(frekuensi,
              ncol=2,
              byrow=TRUE,
              dimnames=list(
                c("Laki-Laki","Perempuan"),
                c("Olahraga","Memasak")
              )),
        beside=TRUE,
        col=c("blue","orange"),
        main="Hubungan antara Jenis Kelamin dan Hobi",
        xlab="Jenis Kelamin",
        ylab="Jumlah",
        legend.text=TRUE)