#================================================
# MEMANGGIL LIBRARY
#================================================
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(knitr)

#================================================
# MEMASUKKAN DATA
#================================================

nama_provinsi <- c("JAWA BARAT","JAWA BARAT","JAWA BARAT","JAWA BARAT",
                   "JAWA BARAT","JAWA BARAT","JAWA BARAT","JAWA BARAT",
                   "JAWA BARAT","JAWA BARAT")

kabupaten <- c("BOGOR","BOGOR","BOGOR","BOGOR",
               "SUKABUMI","SUKABUMI","SUKABUMI","SUKABUMI",
               "TASIKMALAYA","TASIKMALAYA")

status_kelahiran <- c("HIDUP","HIDUP","MATI","MATI",
                      "HIDUP","HIDUP","MATI","MATI",
                      "HIDUP","HIDUP")

jenis_kelamin <- c("LAKI-LAKI","PEREMPUAN","LAKI-LAKI","PEREMPUAN",
                   "LAKI-LAKI","PEREMPUAN","LAKI-LAKI","PEREMPUAN",
                   "LAKI-LAKI","PEREMPUAN")

jumlah_kelahiran <- c(61740,49720,36,47,22812,22849,75,63,18968,18271)

tahun <- rep(2012,10)

data_kelahiran <- data.frame(
  nama_provinsi,
  kabupaten,
  status_kelahiran,
  jenis_kelamin,
  jumlah_kelahiran,
  tahun
)

kable(data_kelahiran,
caption="Data Kelahiran Jawa Barat Tahun 2012")
Data Kelahiran Jawa Barat Tahun 2012
nama_provinsi kabupaten status_kelahiran jenis_kelamin jumlah_kelahiran tahun
JAWA BARAT BOGOR HIDUP LAKI-LAKI 61740 2012
JAWA BARAT BOGOR HIDUP PEREMPUAN 49720 2012
JAWA BARAT BOGOR MATI LAKI-LAKI 36 2012
JAWA BARAT BOGOR MATI PEREMPUAN 47 2012
JAWA BARAT SUKABUMI HIDUP LAKI-LAKI 22812 2012
JAWA BARAT SUKABUMI HIDUP PEREMPUAN 22849 2012
JAWA BARAT SUKABUMI MATI LAKI-LAKI 75 2012
JAWA BARAT SUKABUMI MATI PEREMPUAN 63 2012
JAWA BARAT TASIKMALAYA HIDUP LAKI-LAKI 18968 2012
JAWA BARAT TASIKMALAYA HIDUP PEREMPUAN 18271 2012
#================================================
# PIE CHART STATUS KELAHIRAN
#================================================

pie_data <- data_kelahiran %>%
  group_by(status_kelahiran) %>%
  summarise(total=sum(jumlah_kelahiran))

ggplot(pie_data,aes(x="",y=total,fill=status_kelahiran))+
  geom_bar(stat="identity",width=1)+
  coord_polar("y")+
  theme_void()+
  labs(title="Proporsi Status Kelahiran")

#================================================
# BAR CHART JUMLAH KELAHIRAN PER KABUPATEN
#================================================

ggplot(data_kelahiran,
       aes(x=kabupaten,
           y=jumlah_kelahiran,
           fill=jenis_kelamin))+
  geom_bar(stat="identity",
           position="dodge")+
  labs(title="Jumlah Kelahiran Berdasarkan Kabupaten",
       x="Kabupaten",
       y="Jumlah Kelahiran")+
  theme_minimal()

#================================================
# HISTOGRAM
#================================================

ggplot(data_kelahiran,
       aes(x=jumlah_kelahiran))+
  geom_histogram(fill="skyblue",
                 bins=6,
                 color="black")+
  labs(title="Histogram Distribusi Kelahiran",
       x="Jumlah Kelahiran",
       y="Frekuensi")+
  theme_minimal()

#================================================
# DENSITY PLOT
#================================================

ggplot(data_kelahiran,
       aes(x=jumlah_kelahiran))+
  geom_density(fill="lightgreen")+
  labs(title="Density Plot Jumlah Kelahiran",
       x="Jumlah Kelahiran",
       y="Density")+
  theme_minimal()

#================================================
# BOXPLOT
#================================================

ggplot(data_kelahiran,
       aes(x=jenis_kelamin,
           y=jumlah_kelahiran,
           fill=jenis_kelamin))+
  geom_boxplot()+
  labs(title="Boxplot Jumlah Kelahiran Berdasarkan Jenis Kelamin",
       x="Jenis Kelamin",
       y="Jumlah Kelahiran")+
  theme_minimal()

#================================================
# STATISTIK DESKRIPTIF
#================================================

modus <- function(x){
  uniqv <- unique(x)
  uniqv[which.max(tabulate(match(x,uniqv)))]
}

Mean <- mean(data_kelahiran$jumlah_kelahiran)
Median <- median(data_kelahiran$jumlah_kelahiran)
Modus <- modus(data_kelahiran$jumlah_kelahiran)

Q1 <- quantile(data_kelahiran$jumlah_kelahiran,0.25)
Q3 <- quantile(data_kelahiran$jumlah_kelahiran,0.75)

Range <- max(data_kelahiran$jumlah_kelahiran) -
         min(data_kelahiran$jumlah_kelahiran)

Varians <- var(data_kelahiran$jumlah_kelahiran)

Std_Deviation <- sd(data_kelahiran$jumlah_kelahiran)

tabel_statistik <- data.frame(
Mean,
Median,
Modus,
Q1,
Q3,
Range,
Varians,
Standard_Deviation = Std_Deviation
)

kable(tabel_statistik,
caption="Statistik Deskriptif Jumlah Kelahiran")
Statistik Deskriptif Jumlah Kelahiran
Mean Median Modus Q1 Q3 Range Varians Standard_Deviation
25% 19458.1 18619.5 61740 66 22839.75 61704 470424573 21689.27
#================================================
# STATISTIK INFERENSIA (UJI KORELASI)
#================================================

jk_index <- ifelse(data_kelahiran$jenis_kelamin=="LAKI-LAKI",1,2)

hasil_korelasi <- cor.test(jk_index,
                           data_kelahiran$jumlah_kelahiran)

hasil_korelasi
## 
##  Pearson's product-moment correlation
## 
## data:  jk_index and data_kelahiran$jumlah_kelahiran
## t = -0.17465, df = 8, p-value = 0.8657
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.6654345  0.5909270
## sample estimates:
##        cor 
## -0.0616293