library(ggplot2)
library(ggthemes)
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(readxl)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
library(scales)
Menginput data dari excel menggunakan path dan namafile.xlsx yang menyimpan data harga emas dari januari 2025 - Februari 2026
setwd("C:\\Users\\User\\Downloads")
data <- read_excel("DATA HARGA EMAS NUM.xlsx")
head(data, 32)
## # A tibble: 28 × 4
## Tanggal Tempat `Jenis Emas` `Harga/gram`
## <dttm> <chr> <chr> <dbl>
## 1 2025-01-01 00:00:00 Pegadaian Ubs 1502000
## 2 2025-01-01 00:00:00 Pegadaian Antam 1553000
## 3 2025-02-01 00:00:00 Pegadaian Ubs 1596000
## 4 2025-02-01 00:00:00 Pegadaian Antam 1661000
## 5 2025-03-01 00:00:00 Pegadaian Ubs 1651000
## 6 2025-03-01 00:00:00 Pegadaian Antam 1672000
## 7 2025-04-01 00:00:00 Pegadaian Ubs 1820000
## 8 2025-04-01 00:00:00 Pegadaian Antam 1852000
## 9 2025-05-01 00:00:00 Pegadaian Ubs 1930000
## 10 2025-05-01 00:00:00 Pegadaian Antam 2044000
## # ℹ 18 more rows
Menginterpretasikan nilai harga emas terhadap densitas yang dimiliki untuk mengetahui pengaruh seberapa tinggi nilai emas pada bulan januari 2025 - februari 2026
density_plot <- ggplot(data, aes(x = `Harga/gram`,fill = `Jenis Emas`)) +
geom_density(alpha = 0.5)+
scale_y_continuous(labels = comma) +
labs(title = "Distribusi Tren Harga Emas Antam vs UBS", x = "Harga Emas per Gram", y = "Density")
density_plot
Jika kita lihat pada grafik density plot harga emas pada jenis antam
memiliki nilai yang lebih tinggi dikisaran harga 1,9 juta - 2 juta
dibanding UBS. grafik menunjukkan positive skew.
Grafik ini dapat menggambarkan perbandingan distribusi harga emas per gram antara Antam dn UBS. bisa kita lihat jika median antam sedikit lebih tinggi dibanding USB, tetapi rentang harga UBS jauh lebih tinggi yaitu mendekati 3 juta.
ggplot(data, aes(x = `Jenis Emas`, y = `Harga/gram`, fill = `Jenis Emas`)) +
geom_boxplot(alpha = 0.6) +
scale_y_continuous(labels = scales::comma) +
labs(title = "Tren Harga Emas Antam vs UBS ", x = "Jenis Emas", y = "Harga per Gram") +
theme_bw()
Kesimpulannya harga jenis emas antam dan UBS tidak ada perbedaan yang
signifikan.
Data harga emas paling banyak muncul pada rentang 1,9 juta - 2,25 juta.
ggplot(data, aes(x = `Harga/gram`)) +
geom_histogram(binwidth = 500000, fill = "gold", color = "black") +
labs(title = "Frekuensi Harga Emas Antam vs UBS", x = "Harga", y = "frekuensi")
kesimpulan: bentuk grafik menunjukkan bahwa cenderung ke kanan maka
grafik tersebut potive skew, kemudian harga emas akan cenderung berada
pada angka 2 juta dan berpotensi untuk terus melebihi 2 juta.
Menunjukkan data mentah yang disajikan dalam bentuk dahan daun, dimana 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.
Pada 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.
dot_plot <- ggplot(data, aes(x = `Tanggal` , y = `Harga/gram`)) +
geom_point(color = "black", 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
Kesimpulannya variabel tanggal dan harga merupakan indikator terhadap
kenaikan harga emas, grafik akhir menunjukkan harga emas akan terus
naik.
Mengganti data numeric menjadi kategorik yaitu Harga menjadi bentuk kategori yang membedakan tinggi rendahnya harga tersebut.
data$Jenis_Emas <- as.factor(data$`Jenis Emas`)
# Membuat data kategorik baru berdasarkan level harga (Binning)
data$Status_Harga <- cut(data$`Harga/gram`,
breaks = c(0, 1600000, 2500000, Inf),
labels = c("Rendah", "Sedang", "Tinggi"))
# Melihat hasil pengelompokan
table(data$Status_Harga)
##
## Rendah Sedang Tinggi
## 3 21 4
Jika harga > Rp1.600.000 = Rendah, > Rp2.000.000 = Sedang, > Rp2.500.000 = TinggI,
ggplot(data, aes(x = Status_Harga, fill = Status_Harga)) +
geom_bar() +
scale_fill_manual(values = c("Rendah" = "#228B50", "Sedang" = "#FFD400", "Tinggi" = "#FF0000")) +
labs(
title = "Distribusi Frekuensi Tingkat Harga Emas",
x = "Kategori Harga",
y = "Jumlah Hari (Frekuensi)"
) +
theme_minimal()
dapat dilihat dari grafik bahwa kategori sedang yaitu rentang harga 2
juta - 2,5 juta sangat tinggi, maka harga emas dapat dipastikan dapat
naik ke arah yang lebih tinggi lagi hingga 3 juta.
df_status <- as.data.frame(table(data$Status_Harga))
colnames(df_status) <- c("Kategori", "Frekuensi")
ggplot(df_status, aes(x = "", y = Frekuensi, fill = Kategori)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
scale_fill_manual(values = c("Rendah" = "#228B30", "Sedang" = "#FFD100", "Tinggi" = "#FF0000")) +
labs(title = "Proporsi Tingkat Harga Emas") +
theme_void() +
geom_text(aes(label = paste0(round(Frekuensi/sum(Frekuensi)*100), "%")),
position = position_stack(vjust = 0.5))
75% data terdapat pada kategori sedang dengan rentang harga 2 juta
Rata-rata dari keseluruhan harga emas.
mean(data$`Harga/gram`)
## [1] 2082418
Maka Rata-rata data = Rp2.082.418
Nilai tengah (median) dari nilai keseluruhan harga emas
median(data$`Harga/gram`)
## [1] 1954500
modus adalah nilai yang sering keluar di dalam data
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 sama di sampel data harga emas.
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
var(data$`Harga/gram`)
## [1] 161539455971
sd(data$`Harga/gram`)
## [1] 401919.7