# Membaca data
simpan <- read.table("C:/Users/ASUS/Downloads/Tugas_Bab_3_CSV/data3.1.csv",
                     header = TRUE,
                     sep = ",")

names(simpan)
## [1] "jeniskelamin" "pendapatan"   "pengeluaran"
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
# Scatter Plot
plot(simpan[2:3],
     main = "Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan Rupiah")

# Memisahkan Variabel Pendapatan dan Pengeluaran
Pendapatan <- simpan$pendapatan
Pengeluaran <- simpan$pengeluaran

plot(Pendapatan, Pengeluaran)

# Menggunakan ggplot2
library(ggplot2)

PENDAPATAN <- simpan$pendapatan
PENGELUARAN <- simpan$pengeluaran

# Catatan: qplot() sudah deprecated pada ggplot2 versi baru.
# Bentuk yang disarankan menggunakan ggplot() ada di bawah.

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.

# Menampilkan Berdasarkan Jenis Kelamin
jenis <- simpan$jeniskelamin

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

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

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

grafik

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

grafik

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

# Mengubah Bentuk Titik
grafik +
  scale_shape_manual(values = c(16, 5))

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

# Memisahkan Grafik Berdasarkan Jenis Kelamin
grafik +
  facet_grid(. ~ jeniskelamin)

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)

grafik +
  geom_vline(xintercept = 1:5)

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

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

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

# ============================================================
# 2. MENYAJIKAN DATA DENGAN GRAFIK GARIS
# ============================================================

# Membaca data
simpan <- read.table("C:/Users/ASUS/Downloads/Tugas_Bab_3_CSV/data3.2.csv",
                     header = TRUE,
                     sep = ",")

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
# Menyimpan Variabel
Tahun <- simpan$tahun
Jumlah_A <- simpan$jenis.barang.A
Jumlah_B <- simpan$jenis.barang.B
Jumlah_C <- simpan$jenis.barang.C

# Grafik Awal
plot(Tahun, Jumlah_A)

# Grafik Garis
plot(Tahun,
     Jumlah_A,
     type = "o")

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

# Menambahkan Barang B dan 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")

# Menambahkan Legend
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")

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

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

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
simpan <- read.table("C:/Users/ASUS/Downloads/Tugas_Bab_3_CSV/data3.3.csv",
                     header = TRUE,
                     sep = ",")

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
# Menyimpan Variabel
Tahun <- simpan$tahun
Jumlah_A <- simpan$jenis.barang.A

# Grafik Batang
barplot(Jumlah_A,
        names.arg = c("2001",
                      "2002",
                      "2003",
                      "2004",
                      "2005",
                      "2006",
                      "2007"))

# ============================================================
# 4. MENYAJIKAN DATA DENGAN GRAFIK BATANG
#    (BAGIAN KEDUA)
# ============================================================

# Membaca data
simpan <- read.table("C:/Users/ASUS/Downloads/Tugas_Bab_3_CSV/data3.4.csv",
                     header = TRUE,
                     sep = ",")

simpan
##   Jenis.Kelamin     Hobi Jumlah
## 1     Laki-Laki Olahraga     90
## 2     Laki-Laki  Memasak     10
## 3     Perempuan Olahraga     25
## 4     Perempuan  Memasak     75
# Grafik Batang
frekuensi <- c(90, 10, 25, 75)

barplot(t(matrix(frekuensi,
                 ncol = 2,
                 byrow = TRUE,
                 dimnames = list(
                   c("Laki-Laki", "Perempuan"),
                   c("Olahraga", "Memasak")
                 ))),
        col = c("darkblue", "orange"),
        beside = TRUE,
        ylim = c(0, 150),
        legend.text = TRUE,
        args.legend = list(x = "topright"))

# Menggunakan ggplot2
library(ggplot2)

data <- simpan

# Grafik batang bertumpuk
ggplot(data,
       aes(x = Jenis.Kelamin,
           y = Jumlah,
           fill = Hobi)) +
  geom_bar(stat = "identity")

# Grafik batang berdampingan
ggplot(data,
       aes(x = Jenis.Kelamin,
           y = Jumlah,
           fill = Hobi)) +
  geom_bar(stat = "identity",
           position = "dodge")

# Grafik batang bertumpuk
ggplot(data,
       aes(x = Jenis.Kelamin,
           y = Jumlah,
           fill = Hobi)) +
  geom_bar(stat = "identity",
           position = "stack")

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

# Membaca data
simpan <- read.table("C:/Users/ASUS/Downloads/Tugas_Bab_3_CSV/data3.5.csv",
                     header = TRUE,
                     sep = ",")

simpan
##   Produk Jumlah
## 1      A     12
## 2      B      5
## 3      C      8
## 4      D     20
# Diagram Lingkaran
pie(simpan$Jumlah,
    labels = simpan$Produk,
    main = "Data Penjualan Produk A, B, C, dan D")

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

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

# ============================================================
# 6. MENYAJIKAN DATA DENGAN HISTOGRAM
# ============================================================

# Membaca data
simpan <- read.csv("C:/Users/ASUS/Downloads/Tugas_Bab_3_CSV/IQ.csv",
                   header = TRUE)

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

# Histogram
hist(simpan_skor_IQ)

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

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

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

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