Sumber Data: Pegadaian, Logam mulia, Kaggle

Link: www.kaggle.com pegadaian.co.id www.logammulia.com

Analisis dilakukan menggunakan bahasa pemrograman R dengan beberapa jenis visualisasi data Data yang digunakan terdiri dari beberapa variabel yaitu: Tanggal (Numerik) Tempat (Kategorik) Jenis Emas (Kategorik) Harga/gram (Numerik)

Mengaktifkan packages

library(ggplot2)
library(ggthemes)
library(modeest)
library(gridExtra)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(scales)
library(readxl)

Import Data

Mengambil data dari Excel

setwd("C:\\Users\\sarah nabilah\\Downloads")
data <- read_excel ("DATA HARGA EMAS NUM.xlsx")
data$Tanggal <- as.Date(data$Tanggal, format="%d/%m/%Y")
head(data, 28)
## # A tibble: 28 × 4
##    Tanggal    Tempat    `Jenis Emas` `Harga/gram`
##    <date>     <chr>     <chr>               <dbl>
##  1 2025-01-01 Pegadaian Ubs               1502000
##  2 2025-01-01 Pegadaian Antam             1553000
##  3 2025-02-01 Pegadaian Ubs               1596000
##  4 2025-02-01 Pegadaian Antam             1661000
##  5 2025-03-01 Pegadaian Ubs               1651000
##  6 2025-03-01 Pegadaian Antam             1672000
##  7 2025-04-01 Pegadaian Ubs               1820000
##  8 2025-04-01 Pegadaian Antam             1852000
##  9 2025-05-01 Pegadaian Ubs               1930000
## 10 2025-05-01 Pegadaian Antam             2044000
## # ℹ 18 more rows

Membuat grafik data numerik

Bar Chart

ggplot(data, aes(x=`Tanggal`, y=`Harga/gram`, fill=`Jenis Emas`)) +
  geom_bar(stat="identity", position="dodge" ) +
  scale_y_continuous(labels = comma) +
  labs(title=" Bar Chart Perbandingan Harga Emas per Bulan",
       x="`Tanggal`",
       y="`Harga/gram`",
       fill="`Jenis Emas`")

deskriptif: selama periode pengamatan serta menunjukkan harga Antam lebih tinggi di bandingkan UBS inferensia: pola perbedaan tinggi batang antara kedua jenis emas dapat menjadi indikasi adanya perbedaan rata-rata harga.

Histogram

ggplot(data, aes(x=`Harga/gram`)) +
  geom_histogram(binwidth=500000, fill="pink", color="cyan") +
  labs(title="Distribusi Harga Emas",
       x="`Harga/gram`",
       y="Frekuensi") +
  theme_classic()

Secara statistik deskriptif, histogram membantu memahami bentuk distribusi data, apakah data cenderung simetris, miring (skewed), atau memiliki penyebaran tertentu. Dari sudut pandang statistik inferensia, distribusi data yang terlihat pada histogram dapat digunakan untuk menilai apakah data memenuhi asumsi distribusi normal, yang merupakan salah satu syarat dalam beberapa metode inferensia seperti uji t atau analisis regresi.

Density Plot

ggplot(data, aes(x=`Harga/gram`, fill=`Jenis Emas`)) +
  geom_density(alpha=0.5) +
  scale_y_continuous(labels = comma) +
  labs(title="Distribusi Kepadatan Harga Emas",
       x="`Harga/gram`",
       y="Density")

Dari grafik terlihat kedua jenis emas memiliki pola distribusi yang relatif serupa, namun kurva harga emas Antam cenderung berada pada nilai yang lebih tinggi. Secara statistik deskriptif, density plot memberikan gambaran mengenai pola distribusi dan kepadatan data harga emas. Dari perspektif statistik inferensia, perbedaan posisi kurva antara kedua jenis emas dapat menjadi indikasi adanya perbedaan rata-rata distribusi harga

Box Plot

Boxplot menunjukkan ringkasan statistik harga emas yang meliputi nilai minimum, kuartil pertama (Q1), median, kuartil ketiga (Q3), dan nilai maksimum.

boxplot_data <- ggplot(data) +
  geom_boxplot(aes(y = `Harga/gram`, fill = "Rata-rata Harga Emas"), alpha = 0.6) +
  theme_minimal() +
  labs(title = "Boxplot: Tren Harga Emas Antam vs UBS ", fill = "Jenis Emas")

boxplot_data

Dari grafik terlihat bahwa median harga emas Antam cenderung lebih tinggi dibandingkan UBS.

Stem Leaf

Menunjukkan data mentah yang disajikan dalam bentuk dahan daun. Data menunjukkan nilai yang sering muncul yaitu 18 atau sekitar 1,8 - 2 juta untuk harga emas.

stem(data$`Harga/gram`)
## 
##   The decimal point is 5 digit(s) to the right of the |
## 
##   14 | 05
##   16 | 0567
##   18 | 257901347
##   20 | 464
##   22 | 494
##   24 | 0289
##   26 | 5
##   28 | 6
##   30 | 0

pada nilai 30 berpotensi untuk menjadi harga emas selanjutnya saat terjadi harga anomali pasar.

Dot Plots

grafik akhir menunjukkan harga emas akan terus naik.

dot_plot <- ggplot(data, aes(x = `Tanggal` , y = `Harga/gram`)) +
  geom_point(color = "cyan", size = 2) +
  theme_minimal() +
  labs(title = "Tren Harga Emas Antam vs UBS Jan 25 - Feb 26", x = "Tanggal", y = "Harga Emas per gram")

dot_plot

grafik menunjukkan linear positif, seirng waktu harga emas akan terus naik, laju pertumbuhan terlihat pada bulan oktober yang meningkat tajam hingga mencapai 3 juta per gram.

Menghitung pemusatan data

antar 2 jenis

data %>%
  group_by(`Jenis Emas`) %>%
  summarise(
    Mean = mean(`Harga/gram`),
    Median = median(`Harga/gram`),
    Modus = ifelse(length(mfv(`Harga/gram`)) == n(),
                   NA,
                   mfv(`Harga/gram`)[1]),
    Q1 = quantile(`Harga/gram`, 0.25),
    Q3 = quantile(`Harga/gram`, 0.75),
    Range = max(`Harga/gram`) - min(`Harga/gram`),
    Varians = var(`Harga/gram`),
    SD = sd(`Harga/gram`)
)
## # A tibble: 2 × 9
##   `Jenis Emas`     Mean  Median Modus       Q1      Q3   Range    Varians     SD
##   <chr>           <dbl>   <dbl> <lgl>    <dbl>   <dbl>   <dbl>      <dbl>  <dbl>
## 1 Antam        2092848. 2006000 NA    1863218. 2323750 1307000    1.55e11 3.94e5
## 2 Ubs          2071989  1920500 NA    1832000  2360250 1494000    1.80e11 4.24e5

Mean / rerata

mean(data$`Harga/gram`)
## [1] 2082418

Median / nilai tengah

median(data$`Harga/gram`)
## [1] 1954500

Modus / nilai yang paling sering muncul

‘seharusnya’ tidak ada modus yang keluar karena tidak ada nilai yang sama di sampel data harga emas.

modus <- function(x) {
  uniqx <- unique(x)
  uniqx[which.max(tabulate(match(x, uniqx)))]
}
modus (data$`Harga/gram`)
## [1] 1502000

“seharusnya” tidak ada modus yang keluar karena tidak ada nilai yang sering keluar

summary 5 serangkai Nilai dari keseluruhan data memuat nilai minimal

(nilai paling kecil), Q1 (Kuartil ke satu), Median (nilai tengah), Mean = Q2 (Rata-rata nilai), Q3 (Kuartil ke tiga), dan nilai maksimal (nilai terbesar).

summary(data$`Harga/gram`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 1502000 1844000 1954500 2082418 2351750 2996000

Ukuran penyebaran data

1. keragaman data (varians)

var(data$`Harga/gram`)
## [1] 161539455971

2. standar deviasi data

sd(data$`Harga/gram`)
## [1] 401919.7