Membuat Kelas Objek dengan Class System S4 dan Variasi Grafik

Dinda Khamila Nurfatimah

2023-05-31

Working Directory

setwd("D:/DINDA K N/SEMESTER 4/KOMPUTASI STATISTIKA/uas")

Nomor 1 : membuat kelas objek dengan Class System S4

#Kelas BangunDatar
setClass("BangunDatar", representation())

#Kelas Poligon (warisan dari BangunDatar)
setClass("Poligon", contains = "BangunDatar", slots = c(jumlah_sisi = "integer"))    

#Kelas Lingkaran (warisan dari BangunDatar)
setClass("Lingkaran", contains = "BangunDatar", slots = c(jari_jari = "numeric"))

#Kelas Persegi (warisan dari Poligon)
setClass("Persegi", contains = "Poligon", slots = c(panjang = "numeric", 
                   lebar = "numeric"))

#Kelas Segitiga (warisan dari Poligon)
setClass("Segitiga", contains = "Poligon", slots = c(alas = "numeric", tinggi = "numeric"))
#Tambah Show Method untuk kelas Lingkaran
setMethod("show", "Lingkaran", function(object){ 
            cat(" Bagun Ruang Lingkaran dengan:\n",
                "Jari-jari   =",object@jari_jari,"\n\n")
          }
)

#Tambah Show Method untuk kelas Persegi
setMethod("show", "Persegi", function(object) { 
            cat(" Bagun Ruang Persegi dengan:\n",
                "panjang   =",object@panjang,"\n")
            cat(" lebar =", object@lebar, "\n\n")
          }
)

#Tambah Show Method untuk kelas Segitiga
setMethod("show", "Segitiga", function(object) {
            cat(" Bagun Ruang Segitiga dengan:\n",
                "alas   =",object@alas,"\n")
            cat(" tinggi =", object@tinggi, "\n\n")
          }
)
# Membuat objek dari masing-masing kelas
Lingkaran <- new("Lingkaran", jari_jari = 3) 

Persegi <- new("Persegi", 
                jumlah_sisi = as.integer(4), panjang = 7, lebar= 7) 

Segitiga <- new("Segitiga", #Nama kelas
                jumlah_sisi = as.integer(3), 
                alas = 7, 
                tinggi = 9) 
#Memeriksa S4
isS4(Lingkaran)
## [1] TRUE
isS4(Persegi)
## [1] TRUE
isS4(Segitiga)
## [1] TRUE
#Method show untuk setiap object
show(Lingkaran)
##  Bagun Ruang Lingkaran dengan:
##  Jari-jari   = 3
show(Persegi)
##  Bagun Ruang Persegi dengan:
##  panjang   = 7 
##  lebar = 7
show(Segitiga)
##  Bagun Ruang Segitiga dengan:
##  alas   = 7 
##  tinggi = 9

Nomor 2 : membuat variasi grafik

library(readxl)
data <- read_excel("D:/DINDA K N/SEMESTER 4/KOMPUTASI STATISTIKA/uas/DataTugas.xlsx", sheet = 1)
View(data)
str(data)
## tibble [35 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Provinsi     : chr [1:35] "ACEH" "SUMATERA UTARA" "SUMATERA BARAT" "RIAU" ...
##  $ 2021_Februari: num [1:35] 6.3 6.01 6.67 4.96 4.76 ...
##  $ 2021_Agustus : num [1:35] 6.3 6.33 6.52 4.42 5.09 4.98 3.65 4.69 5.03 9.91 ...
##  $ 2022_Februari: num [1:35] 5.97 5.47 6.17 4.4 4.7 4.74 3.39 4.31 4.18 8.02 ...
##  $ 2022_Agustus : num [1:35] 6.17 6.16 6.28 4.37 4.59 4.63 3.59 4.52 4.77 8.23 ...
data <- data[-nrow(data),] #Menghapus baris terakhir, yaitu baris Indonesia
tahun21 <- data[,1:3] #Data tahun 2021 
tahun22 <- data[,c(1,4:5)] #Data tahun 2022
#Mengganti nama kolom
colnames(tahun21) <- c("provinsi","Februari21","Agustus21")
colnames(tahun22) <- c("provinsi","Februari22","Agustus22")

Sebaran Data TPTMP Tahun 2021

library(ggplot2)
#Data TPTMP di Februari Tahun 2021
ggplot(data=tahun21, aes(x=`Februari21`, y='')) +
  geom_boxplot(fill="blue", color='black', alpha=0.7)  

#Data TPTMP di Agustus Tahun 2021
ggplot(data=tahun21, aes(x=`Agustus21`, y='')) +
  geom_boxplot(fill="green", color='black', alpha=0.7)    

# Sebaran Data TPTMP Tahun 2022

#Data TPTMP Februari Tahun 2022
ggplot(data=tahun22, aes(x=`Februari22`, y='')) +
  geom_boxplot(fill="red", color='black', alpha=0.7)     

#Data TPTMP di Agustus Tahun 2022
ggplot(data=tahun22, aes(x=`Agustus22`, y='')) +
  geom_boxplot(fill="yellow", color='black', alpha=0.7)