Prediksi Harga Emas

Pendahuluan

Latar Belakang

Investasi sempat menjadi hal yang tabu di Indonesia. Di era digital saat ini, Informasi bisa tersebar dengan cepat kepada masyarakat umum. Masyarakat bisa mengakses Informasi yang mereka inginkan dengan mudah melalui gawai yang dimiliki. Salah satu manfaat yang cukup dirasakan oleh masyarakat adalah semakin meleknya masyarakat terhadap investasi dan segala instumennya.

Sebelum maraknya investasi, masyarakat Indonesia banyak yang berinvestasi pada bidang property dimana investasi dalam bidang property pada umumnya membutuhkan modal yang cukup besar dan memiliki likuiditas yang rendah. Semakin maraknya investasi di kalangan masyarakat, semakin banyak pula pilihan instumen investasi yang bisa dipilih. Akan tetapi tidak luput pula menjamurnya investasi bodong di kalangan masyarakat. Maka dari itu perlu dipertimbangkan dengan matang untuk menentukan instrument investasi apa yang akan diambil, salah satunya dengan menyesuaikan profil resiko masing-masing.

Investasi emas pada mulanya belum banyak dikenal oleh masyarakat Indonesia. Hal itu karena emas lebih dikenal sebagai perhiasan atau logam mulia. Namun saat ini emas sudah menjadi salah satu instrument investasi yang sudah cukup dikenal oleh masyarakat. Selain itu, masyarakat Indonesia sudah cukup banyak yang berinvestasi pada emas.

Emas merupakan instrumen investasi yang cukup likuid jika dibandingkan dengan property dan bisa dibeli dengan modal kecil. Selain itu, emas juga memiliki harga yang relatif stabil dan tidak terpengaruh oleh inflasi, sehingga emas bisa menjadi alternatif investasi dengan resiko rendah dan bisa menjadi alternatif untuk mengamankan kekayaan.

Dari setiap instrument investasi, selalu menawarkan kelebihan dan tidak lepas dari kekurangan juga. Kekurangan dari investasi emas adalah jangka waktu untuk merasakan keuntungan dibutuhkan waktu yang Panjang, minimal satu tahun.

Dengan adanya time series forecasting untuk harga emas, akan lebih meyakinkan para calon investor untuk memilih emas sebagai pilihan portofolio investasi mereka dan memperkirakan dalam berapa lama akan mengambil keuntungan dari investasi emas.

Business Impact

Semakin banyak masyarakat yang berinvestasi pada emas, akan memberikan rasa aman akan uang mereka yang diinvestasikan pada emas. Stabilnya harga emas juga bisa mempertahankan kekayaan para investor emas. Harga emas setiap tahunnya cenderung mengalami kenaikan 5 sampai 20 persen sehingga bisa menambah kekayaan dari para investor emas.

Selain itu, para penyedia jasa investasi emas juga akan keuntungan yang lebih besar dengan semakin banyaknya masyarakat yang berinvestasi pada emas.

Target User

Terdapat dua target user utama, yaitu masyarakat umum yang ingin berinvestasi emas dan para penyedia jasa investasi emas yang mana saat ini sudah cukup banyak penyedia jasa investasi emas. Bagi masyarakat umum, dengan melakukan investasi emas, mereka dapat mempertahankan bahkan menambah kekayaan karena kestabilan dari harga emas sendiri dan bahkan cenderung mengalami kenaikan. Dari sisi penyedia jasa investasi emas, kenaikan jumlah investor emas akan menambah jumlah market mereka yang akan berpengaruh pada keuntungannya.

Implementasi Bisnis Serupa

Terdapat beberapa macam instrument investasi saat ini dengan karakteristik potensi dan resiko yang berbeda-beda. Time series forecasting harga emas ini bisa diimplemetasikan untuk instrument investasi yang lain, seperti deposito, saham atau reksadana. Tetapi dalam berinvestasi perlu diperhatikan factor profil dari investasi tersebut, terutama potensi dan resikonya.

Problem Scope

Pada dashboard ini akan digunakan data harga emas dari beberapa negara yang dikelompokkan menjadi 3 kelompok, negara dengan mata uang Key Currencies, negara sebagai Major Consumer Countries, dan negara sebagai Major produces countries. Dataset yang ada mengandung informasi sebagai berikut:

  • Date: Tanggal
  • US.dollar.USD: Harga emas di US dengan mata uang USD.
  • Euro.EUR: Harga emas di Eropa dengan mata uang EUR.
  • Japanese.yen.KPY: Harga emas di Jepang dengan mata uang YEN (KPY).
  • Pound.sterling.GBP: Harga emas di Britania Raya dengan mata uang GBP.
  • Canadian.dollar.CAD: Harga emas di Canada dengan mata uang CAD.
  • Swiss.franc.CHF: Harga emas di Swiss dan Prancis dengan mata uang CHF.
  • Indian.rupee.INR: Harga emas di India dengan mata uang INR.
  • Chinese.renmimbi.CNY: Harga emas di China dengan mata uang CNY.
  • US.dollar.USD.1: Harga emas di US dengan mata uang USD.
  • Turkish.lira.TRY: Harga emas di Turki dengan mata uang TRY.
  • Saudi.riyal.SAR: Harga emas di Saudi Arabia dengan mata uang SAR.
  • Indonesian.rupiah.IDR: Harga emas di Indonesia dengan mata uang IDR.
  • UAE.dirham.AED: Harga emas di Uni Emirat Arab dengan mata uang AED.
  • Thai.baht.THB: Harga emas di Thailand dengan mata uang THB.
  • Vietnamese.dong.VND: Harga emas di Vietnam dengan mata uang VND.
  • Egyptian.pound.EGP: Harga emas di Mesir dengan mata uang EGP.
  • Korean.won.KRW: Harga emas di Korea dengan mata uang KRW.
  • Euro.EUR.1: Harga emas di Eropa dengan mata uang EUR.
  • Russian.ruble.RUB: Harga emas di Rusia dengan mata uang RUB.
  • US.dollar.UDS: Harga emas di US dengan mata uang USD.
  • South.African.rand.ZAR: Harga emas di Afrika Selatan dengan mata uang ZAR.
  • Chinese.renmimbi.CNY.1: Harga emas di China dengan mata uang CNY.
  • Canadian.dollar.CAD.1: Harga emas di Canada dengan mata uang CAD.
  • Australian.dollar.AUD: Harga emas di Australia dengan mata uang AUD.

Dari data tersebut, akan dibuat model machine learning menggunakan Time Series Forecasting, baik model Simple Moving Average, Exponential Smoothing dan ARIMA.

Output

Output dari dashboard ini adalah hasil analisis dari Exploratory Data tentang harga emas dari tahun 1999 sampai tahun 2022, sehingga bisa dijadikan dasar para calon investor untuk memutuskan berinvestasi pada emas. Dashboard juga akan menampilkan prediksi harga emas kedepannya, sehingga semakin meyakinkan para calon investor untuk berinvestasi pada emas.

Import Library

library(tidyverse)
library(tseries)
library(lubridate)
library(forecast)
library(ggplot2)
library(padr)
library(zoo)
library(GGally)

Read Dataset

Data yang digunakan adalah tren harga emas dari tahun 1978 sampai tahun 2022 di beberapa negara. Harga yang dipakai, adalah harga setiap hari pada hari perdagangan yaitu senin-kamis.

gold <- read.csv("data_input/daily_gold.csv")

head(gold)
#>         Date US.dollar.USD Euro.EUR Japanese.yen.KPY Pound.sterling.GBP
#> 1 12/29/1978         226.0    137.1             #N/A              110.7
#> 2   1/1/1979         226.0    137.1             #N/A              110.7
#> 3   1/2/1979         226.8    137.3         43,164.9              111.5
#> 4   1/3/1979         218.6    134.0         43,717.9              108.0
#> 5   1/4/1979         223.2    136.8         43,674.9              110.7
#> 6   1/5/1979         225.5    138.4         44,582.5              111.6
#>   Canadian.dollar.CAD Swiss.franc.CHF Indian.rupee.INR Chinese.renmimbi.CNY
#> 1                #N/A            #N/A             #N/A                 #N/A
#> 2                #N/A            #N/A             #N/A                 #N/A
#> 3               263.7           359.6          1,792.9                 #N/A
#> 4               264.4           365.9          1,802.2                 #N/A
#> 5               264.1           366.4          1,811.7                 #N/A
#> 6               268.4           373.7          1,843.6                 #N/A
#>   US.dollar.USD.1 Turkish.lira.TRY Saudi.riyal.SAR Indonesian.rupiah.IDR
#> 1           226.0             #N/A            #N/A                  #N/A
#> 2           226.0             #N/A            #N/A                  #N/A
#> 3           226.8             #N/A           735.6             138,160.5
#> 4           218.6             #N/A           739.4             138,877.0
#> 5           223.2             #N/A           743.4             139,616.3
#> 6           225.5             #N/A           756.4             142,069.1
#>   UAE.dirham.AED Thai.baht.THB Vietnamese.dong.VND Egyptian.pound.EGP
#> 1           #N/A          #N/A                #N/A               #N/A
#> 2           #N/A          #N/A                #N/A               #N/A
#> 3          851.3       4,454.6                #N/A               #N/A
#> 4          855.7       4,477.7                #N/A               #N/A
#> 5          860.3       4,501.5                #N/A               #N/A
#> 6          875.4       4,580.6                #N/A               #N/A
#>   Korean.won.KRW Euro.EUR.1 Russian.ruble.RUB US.dollar.UDS
#> 1           #N/A      137.1              #N/A         226.0
#> 2           #N/A      137.1              #N/A         226.0
#> 3      107,470.0      137.3              #N/A         226.8
#> 4      108,027.4      134.0              #N/A         218.6
#> 5      108,602.5      136.8              #N/A         223.2
#> 6      110,510.4      138.4              #N/A         225.5
#>   South.African.rand.ZAR Chinese.renmimbi.CNY.1 Canadian.dollar.CAD.1
#> 1                   #N/A                   #N/A                  #N/A
#> 2                   #N/A                   #N/A                  #N/A
#> 3                  194.6                   #N/A                 263.7
#> 4                  192.2                   #N/A                 264.4
#> 5                  193.0                   #N/A                 264.1
#> 6                  196.4                   #N/A                 268.4
#>   Australian.dollar.AUD
#> 1                  #N/A
#> 2                  #N/A
#> 3                 193.6
#> 4                 193.0
#> 5                 194.6
#> 6                 197.9
  • Date: Tanggal
  • US.dollar.USD: Harga emas di US dengan mata uang USD.
  • Euro.EUR: Harga emas di Eropa dengan mata uang EUR.
  • Japanese.yen.KPY: Harga emas di Jepang dengan mata uang YEN (KPY).
  • Pound.sterling.GBP: Harga emas di Britania Raya dengan mata uang GBP.
  • Canadian.dollar.CAD: Harga emas di Canada dengan mata uang CAD.
  • Swiss.franc.CHF: Harga emas di Swiss dan Prancis dengan mata uang CHF.
  • Indian.rupee.INR: Harga emas di India dengan mata uang INR.
  • Chinese.renmimbi.CNY: Harga emas di China dengan mata uang CNY.
  • US.dollar.USD.1: Harga emas di US dengan mata uang USD.
  • Turkish.lira.TRY: Harga emas di Turki dengan mata uang TRY.
  • Saudi.riyal.SAR: Harga emas di Saudi Arabia dengan mata uang SAR.
  • Indonesian.rupiah.IDR: Harga emas di Indonesia dengan mata uang IDR.
  • UAE.dirham.AED: Harga emas di Uni Emirat Arab dengan mata uang AED.
  • Thai.baht.THB: Harga emas di Thailand dengan mata uang THB.
  • Vietnamese.dong.VND: Harga emas di Vietnam dengan mata uang VND.
  • Egyptian.pound.EGP: Harga emas di Mesir dengan mata uang EGP.
  • Korean.won.KRW: Harga emas di Korea dengan mata uang KRW.
  • Euro.EUR.1: Harga emas di Eropa dengan mata uang EUR.
  • Russian.ruble.RUB: Harga emas di Rusia dengan mata uang RUB.
  • US.dollar.UDS: Harga emas di US dengan mata uang USD.
  • South.African.rand.ZAR: Harga emas di Afrika Selatan dengan mata uang ZAR.
  • Chinese.renmimbi.CNY.1: Harga emas di China dengan mata uang CNY.
  • Canadian.dollar.CAD.1: Harga emas di Canada dengan mata uang CAD.
  • Australian.dollar.AUD: Harga emas di Australia dengan mata uang AUD.

Data Preprocessing

Dari harga emas di beberapa negara berdasarkan mata uang, akan dipilih 4 negara dengan mata uang, yaitu USD dan EUR yang merupakan 2 dari mata uang key currencies, IDR yang merupakan salah satu dari Major consumer countries dan ZAR yang merupakan salah satu Major produces countries.

golds <- gold %>% 
  select(Date, US.dollar.USD, Euro.EUR, Indonesian.rupiah.IDR, South.African.rand.ZAR)

head(golds)
#>         Date US.dollar.USD Euro.EUR Indonesian.rupiah.IDR
#> 1 12/29/1978         226.0    137.1                  #N/A
#> 2   1/1/1979         226.0    137.1                  #N/A
#> 3   1/2/1979         226.8    137.3             138,160.5
#> 4   1/3/1979         218.6    134.0             138,877.0
#> 5   1/4/1979         223.2    136.8             139,616.3
#> 6   1/5/1979         225.5    138.4             142,069.1
#>   South.African.rand.ZAR
#> 1                   #N/A
#> 2                   #N/A
#> 3                  194.6
#> 4                  192.2
#> 5                  193.0
#> 6                  196.4
glimpse(golds)
#> Rows: 11,421
#> Columns: 5
#> $ Date                   <chr> "12/29/1978", "1/1/1979", "1/2/1979", "1/3/1979…
#> $ US.dollar.USD          <chr> "226.0", "226.0", "226.8", "218.6", "223.2", "2…
#> $ Euro.EUR               <chr> "137.1", "137.1", "137.3", "134.0", "136.8", "1…
#> $ Indonesian.rupiah.IDR  <chr> "#N/A", "#N/A", "138,160.5", "138,877.0", "139,…
#> $ South.African.rand.ZAR <chr> "#N/A", "#N/A", "194.6", "192.2", "193.0", "196…

Dari data yang ada, untuk harga emas menggunakan koma sebagai tanda pemisah setiap 3 angka, akan tetapi karena ketika diubah menjadi numerik, maka akan menghasilkan N/A, maka perlu dihilangkan dahulu koma dari semua nilai di masing-masing mata uang. Setelah dihilangkan koma, maka tipe data mata uang yang masih karakter akan diubah menjadi numerik.

golds <- golds %>% 
  mutate(Date = mdy(Date)) %>% 
  mutate(US.dollar.USD = gsub(",", "", US.dollar.USD)) %>% 
  mutate(Euro.EUR = gsub(",", "", Euro.EUR)) %>% 
  mutate(Indonesian.rupiah.IDR = gsub(",", "", Indonesian.rupiah.IDR)) %>% 
  mutate(South.African.rand.ZAR = gsub(",", "", South.African.rand.ZAR)) %>%
  mutate_if(is.character, as.numeric)

glimpse(golds)
#> Rows: 11,421
#> Columns: 5
#> $ Date                   <date> 1978-12-29, 1979-01-01, 1979-01-02, 1979-01-03…
#> $ US.dollar.USD          <dbl> 226.0, 226.0, 226.8, 218.6, 223.2, 225.5, 223.1…
#> $ Euro.EUR               <dbl> 137.1, 137.1, 137.3, 134.0, 136.8, 138.4, 136.4…
#> $ Indonesian.rupiah.IDR  <dbl> NA, NA, 138160.5, 138877.0, 139616.3, 142069.1,…
#> $ South.African.rand.ZAR <dbl> NA, NA, 194.6, 192.2, 193.0, 196.4, 197.2, 195.…

Data yang akan digunakan adalah data setelah tahun 1998, dimana pada tahun 1998 terdapat krisis moneter di Indonesia.

gold_99 <- golds %>% filter(Date >= as.Date("1999-01-01"))

head(gold_99)
#>         Date US.dollar.USD Euro.EUR Indonesian.rupiah.IDR
#> 1 1999-01-01         287.8    245.1               2288009
#> 2 1999-01-04         287.2    243.4               2297199
#> 3 1999-01-05         287.2    243.7               2261306
#> 4 1999-01-06         287.7    245.4               2283221
#> 5 1999-01-07         290.0    248.4               2297853
#> 6 1999-01-08         290.9    251.8               2319927
#>   South.African.rand.ZAR
#> 1                 1693.1
#> 2                 1688.1
#> 3                 1656.1
#> 4                 1635.3
#> 5                 1697.7
#> 6                 1688.7

Karena model yang akan digunakan nanti menggunakan Times Series, maka harus dipastikan bahwa tidak ada tanggal atau waktu yang terlewat. Dari data yang sudah ada, perlu dicek apakah ada data Date yang terlewat atau tidak.

gold_99 %>% 
  pad(start_val = min(gold_99$Date), end_val = max(gold_99$Date)) %>% 
  anyNA()
#> [1] TRUE

Karena terdapat tanggal yang terlewat, maka untuk tanggal yang terlewat akan diisi dengan nilai sebelumnya.

gold_clean <- gold_99 %>% 
  pad(start_val = min(gold_99$Date), end_val = max(gold_99$Date)) %>% 
  mutate(US.dollar.USD = na.locf(US.dollar.USD, fromLast = F)) %>% 
  mutate(Euro.EUR = na.locf(Euro.EUR, fromLast = F)) %>% 
  mutate(Indonesian.rupiah.IDR = na.locf(Indonesian.rupiah.IDR, fromLast = F)) %>% 
  mutate(South.African.rand.ZAR = na.locf(South.African.rand.ZAR, fromLast = F))

Exploratory Data Analysis

Cek korelasi

Dari masing-masing kolom mata uang, dicek korelasi dari masing-masing.

ggcorr(gold_clean, label = T)

Mata uang dari masing-masing negara, memiliki kurs atau nilai terhadap mata uang negara lain. Hasil korelasi menunjukkan bahwa harga emas dari setiap negara dengan mata uang tersebut memiliki korelasi yang kuat terhadap masing-masing perubahan harga, sehingga bisa dikatakan bahwa perubahan harga emas berlaku secara global atau internasional.

Cek Fluktuasi Harga Emas dengan Lineplot

Dari dataset harga emas yang sudah ada, bisa dilihat fluktuasi untuk harga emas pada masing-masing mata uang dengan menggunakan lineplot.

Lineplot Mata Uang USD (Amerika Serikat)

gold_clean %>% 
  ggplot(mapping = aes(y = US.dollar.USD,
                       x = Date,
                       )) + 
  geom_line()

Sejak tahun 1999 sampai tahun 2012, harga emas di US mengalami tren naik yang signifikan, akan tetapi terjadi trend penurununan yang cukup panjang pada rentang 2012-2016 dan mulai masuk tren naik setelahnya.

Periode Harga Terendah dan Tertinggi

low_usd <- gold_clean %>% 
  select(Date, US.dollar.USD) %>% 
  filter(US.dollar.USD == min(US.dollar.USD)) %>% 
  rename(price = US.dollar.USD)

high_usd <- gold_clean %>% 
  select(Date, US.dollar.USD) %>% 
  filter(US.dollar.USD == max(US.dollar.USD)) %>% 
  rename(price = US.dollar.USD)

data.frame(label = c("Lowest", "Highest"),
           rbind(low_usd, high_usd))
#>     label       Date  price
#> 1  Lowest 1999-07-20  252.8
#> 2 Highest 2020-08-06 2067.2

Lineplot Mata Uang EUR (Eropa)

gold_clean %>% 
  ggplot(mapping = aes(y = Euro.EUR,
                       x = Date,
                       )) + 
  geom_line()

Fase tren naik dan turun dari harga emas di Eropa hampir sama dengan di US, dimana pada rentang 1999-2012 mengalami tren naik, 2012-2015 mengalami fase tren turun dan setelahnya mulai naik kembali.

Periode Harga Terendah dan Tertinggi

low_eur <- gold_clean %>% 
  select(Date, Euro.EUR) %>% 
  filter(Euro.EUR == min(Euro.EUR)) %>% 
  rename(price = Euro.EUR)

high_eur <- gold_clean %>% 
  select(Date, Euro.EUR) %>% 
  filter(Euro.EUR == max(Euro.EUR)) %>% 
  rename(price = Euro.EUR)

data.frame(label = c("Lowest", "Lowest", "Highest"),
           rbind(low_eur, high_eur))
#>     label       Date  price
#> 1  Lowest 1999-07-29  237.0
#> 2  Lowest 1999-08-05  237.0
#> 3 Highest 2022-03-08 1874.6

Lineplot Mata Uang IDR (Indonesia)

gold_clean %>% 
  ggplot(mapping = aes(y = Indonesian.rupiah.IDR,
                       x = Date,
                       )) + 
  geom_line()

Pada tren harga emas di Indonesia, cukup berbeda pada fase rentang 1999-2012, dimana di Indonesia harga emas mengalami penurunan cukup signifikan di tahun 2013 dan penurunannya tidak sebesar di US dan Eropa dan rentang waktu penurunannya juga tidak sepanjang di US dan Eropa. Tren penurunan yang cukup signifikan baru terjad pada fase setelah tahun 2020.

Periode Harga Terendah dan Tertinggi

low_idr <- gold_clean %>% 
  select(Date, Indonesian.rupiah.IDR) %>% 
  filter(Indonesian.rupiah.IDR == min(Indonesian.rupiah.IDR)) %>% 
  rename(price = Indonesian.rupiah.IDR)

high_idr <- gold_clean %>% 
  select(Date, Indonesian.rupiah.IDR) %>% 
  filter(Indonesian.rupiah.IDR == max(Indonesian.rupiah.IDR)) %>% 
  rename(price = Indonesian.rupiah.IDR)

data.frame(label = c("Lowest", "Highest"),
           rbind(low_idr, high_idr))
#>     label       Date    price
#> 1  Lowest 1999-07-13  1689603
#> 2 Highest 2020-08-06 30149381

Lineplot Mata Uang ZAR (Afrika Selatan)

gold_clean %>% 
  ggplot(mapping = aes(y = South.African.rand.ZAR,
                       x = Date,
                       )) + 
  geom_line()

Tren harga emas di Afrika Selatan cenderung sama dengan di Indonesia dibandingkan US dan Eropa, tidak terjadi tren penurunan harga yang signifikan dalam jangka waktu panjang. Tren penurunan signifikan baru terjadi pada fase setelah tahun 2020.

Periode Harga Terendah dan Tertinggi

low_zar <- gold_clean %>% 
  select(Date, South.African.rand.ZAR) %>% 
  filter(South.African.rand.ZAR == min(South.African.rand.ZAR)) %>% 
  rename(price = South.African.rand.ZAR)

high_zar <- gold_clean %>% 
  select(Date, South.African.rand.ZAR) %>% 
  filter(South.African.rand.ZAR == max(South.African.rand.ZAR)) %>% 
  rename(price = South.African.rand.ZAR)

data.frame(label = c("Lowest", "Lowest", "Lowest", "Highest"),
           rbind(low_zar, high_zar))
#>     label       Date   price
#> 1  Lowest 1999-09-03  1529.7
#> 2  Lowest 1999-09-04  1529.7
#> 3  Lowest 1999-09-05  1529.7
#> 4 Highest 2020-08-06 36232.0

Perbandingan Trend Harga Emas

Dari analisis tren harga emas pada masing-masing negara, akan lebih presisi untuk dibandingkan jika dilakukan scale terhadap harga emas dengan masing-masing mata uang.

gold_scale <- scale(gold_clean[,2:5])
gold_scale <- data.frame(Date = gold_clean[,1], gold_scale)
gold_scale  %>%  rename(USD = US.dollar.USD,
                        EUR = Euro.EUR,
                        IDR = Indonesian.rupiah.IDR,
                        ZAR = South.African.rand.ZAR) %>% 
  pivot_longer(cols = c("USD", "EUR", "IDR", "ZAR")) %>% 
  ggplot(mapping = aes(x=Date, y=value,
                       group=name))+
  geom_line(aes(color=name),position = "dodge")

Dari lineplot harsil scaling harga emas pada masing-masing mata uang, bisa dilihat bahwa dari tahun 1999-2012 keempat negara tersebut mengalami tren naik, akan tetapi di Eropa dan US kenaikan harga emas cenderung lebih tinggi dibandingkan di Indonesia dan di Afrika Selatan. Masuk di fase 2012-2015 terjadi tren penurunan, penurunan di Indonesia dan Afrika Selatan tidak sebesar di US dan Eropa lebih dikarenakan pada fase sebelumnya, kenaikannya tidak sebesar di US dan Eropa.

Trend Harga Emas Selama Pandemi

Berdasarkan keputusan WHO, COVID-19 dinyatakan sebagai pandemi sejak tanggal 11 maret 2020, sehingga data harga emas akan diambil dari tanggal 11 Maret 2022 sampai data terbaru.

gold_cov <- gold_clean %>% filter(Date >= as.Date("2020-03-11"))

head(gold_cov)
#>         Date US.dollar.USD Euro.EUR Indonesian.rupiah.IDR
#> 1 2020-03-11        1653.8   1466.4              23735447
#> 2 2020-03-12        1570.7   1417.4              22808919
#> 3 2020-03-13        1562.8   1411.9              23082557
#> 4 2020-03-14        1562.8   1411.9              23082557
#> 5 2020-03-15        1562.8   1411.9              23082557
#> 6 2020-03-16        1487.7   1335.6              22203922
#>   South.African.rand.ZAR
#> 1                26722.5
#> 2                25984.1
#> 3                25558.0
#> 4                25558.0
#> 5                25558.0
#> 6                24635.9

Lineplot Mata Uang USD (Amerika Serikat) Selama Pandemi

gold_cov %>% 
  ggplot(mapping = aes(y = US.dollar.USD,
                       x = Date,
                       )) + 
  geom_line()

Periode Harga Terendah dan Tertinggi

low_usd_cov <- gold_cov %>% 
  select(Date, US.dollar.USD) %>% 
  filter(US.dollar.USD == min(US.dollar.USD)) %>% 
  rename(price = US.dollar.USD)

high_usd_cov <- gold_cov %>% 
  select(Date, US.dollar.USD) %>% 
  filter(US.dollar.USD == max(US.dollar.USD)) %>% 
  rename(price = US.dollar.USD)

data.frame(label = c("Lowest", "Highest"),
           rbind(low_usd_cov, high_usd_cov))
#>     label       Date  price
#> 1  Lowest 2020-03-19 1474.3
#> 2 Highest 2020-08-06 2067.2

Lineplot Mata Uang EUR (Eropa) Selama Pandemi

gold_cov %>% 
  ggplot(mapping = aes(y = Euro.EUR,
                       x = Date,
                       )) + 
  geom_line()

Periode Harga Terendah dan Tertinggi

low_eur_cov <- gold_cov %>% 
  select(Date, Euro.EUR) %>% 
  filter(Euro.EUR == min(Euro.EUR)) %>% 
  rename(price = Euro.EUR)

high_eur_cov <- gold_cov %>% 
  select(Date, Euro.EUR) %>% 
  filter(Euro.EUR == max(Euro.EUR)) %>% 
  rename(price = Euro.EUR)

data.frame(label = c("Lowest", "Highest"),
           rbind(low_eur_cov, high_eur_cov))
#>     label       Date  price
#> 1  Lowest 2020-03-16 1335.6
#> 2 Highest 2022-03-08 1874.6

Lineplot Mata Uang IDR (Indonesia) Selama Pandemi

gold_cov %>% 
  ggplot(mapping = aes(y = Indonesian.rupiah.IDR,
                       x = Date,
                       )) + 
  geom_line()

Periode Harga Terendah dan Tertinggi

low_idr_cov <- gold_cov %>% 
  select(Date, Indonesian.rupiah.IDR) %>% 
  filter(Indonesian.rupiah.IDR == min(Indonesian.rupiah.IDR)) %>% 
  rename(price = Indonesian.rupiah.IDR)

high_idr_cov <- gold_cov %>% 
  select(Date, Indonesian.rupiah.IDR) %>% 
  filter(Indonesian.rupiah.IDR == max(Indonesian.rupiah.IDR)) %>% 
  rename(price = Indonesian.rupiah.IDR)

data.frame(label = c("Lowest", "Highest"),
           rbind(low_idr_cov, high_idr_cov))
#>     label       Date    price
#> 1  Lowest 2020-03-16 22203922
#> 2 Highest 2020-08-06 30149381

Lineplot Mata Uang ZAR (Afrika Selatan) Selama Pandemi

gold_cov %>% 
  ggplot(mapping = aes(y = South.African.rand.ZAR,
                       x = Date,
                       )) + 
  geom_line()

Periode Harga Terendah dan Tertinggi

low_zar_cov <- gold_cov %>% 
  select(Date, South.African.rand.ZAR) %>% 
  filter(South.African.rand.ZAR == min(South.African.rand.ZAR)) %>% 
  rename(price = South.African.rand.ZAR)

high_zar_cov <- gold_cov %>% 
  select(Date, South.African.rand.ZAR) %>% 
  filter(South.African.rand.ZAR == max(South.African.rand.ZAR)) %>% 
  rename(price = South.African.rand.ZAR)

data.frame(label = c("Lowest", "Highest"),
           rbind(low_zar_cov, high_zar_cov))
#>     label       Date   price
#> 1  Lowest 2020-03-16 24635.9
#> 2 Highest 2020-08-06 36232.0

Harga Tertinggi Emas

data.frame(label = c("USD", "USD Covid", "EUR", "EUR Covid", "IDR", "IDR Covid", "ZAR", "ZAR Covid"),
           rbind(high_usd, high_usd_cov, high_eur, high_eur_cov, high_idr, high_idr_cov, high_zar, high_zar_cov))
#>       label       Date      price
#> 1       USD 2020-08-06     2067.2
#> 2 USD Covid 2020-08-06     2067.2
#> 3       EUR 2022-03-08     1874.6
#> 4 EUR Covid 2022-03-08     1874.6
#> 5       IDR 2020-08-06 30149381.3
#> 6 IDR Covid 2020-08-06 30149381.3
#> 7       ZAR 2020-08-06    36232.0
#> 8 ZAR Covid 2020-08-06    36232.0

Dari tabel diatas, merupakah perbandingan waktu dan harga tertinggi emas sampai tahun 2022. Dari keempat negara / mata uang tersebut, bisa dilihat bahwa harga tertinggi dari emas justru terjadi setelah adanya pandemi Covid-19.

Kenaikan Harga Emas per Tahun

gold_diff <- gold_clean %>% mutate(Year = year(Date)) %>% 
  group_by(Year) %>% 
  summarise(USD = round(mean(US.dollar.USD),2), 
            EUR = round(mean(Euro.EUR),2),
            IDR = mean(Indonesian.rupiah.IDR),
            ZAR = round(mean(South.African.rand.ZAR),2)) %>% 
  ungroup() %>% 
  mutate(USD.Diff = round(100*(USD - lag(USD))/lag(USD),2)) %>% 
  mutate(EUR.Diff = round(100*(EUR - lag(EUR))/lag(EUR),2)) %>% 
  mutate(IDR.Diff = round(100*(IDR - lag(IDR))/lag(IDR),2)) %>% 
  mutate(ZAR.Diff = round(100*(ZAR - lag(ZAR))/lag(ZAR),2))

gold_diff %>% select(Year, USD.Diff, EUR.Diff, IDR.Diff, ZAR.Diff)
#> # A tibble: 24 × 5
#>     Year USD.Diff EUR.Diff IDR.Diff ZAR.Diff
#>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
#>  1  1999    NA       NA       NA       NA   
#>  2  2000     0.11    15.6      6.82    13.5 
#>  3  2001    -2.86     0.19    18.9     21.0 
#>  4  2002    14.5      8.39     3.72    38.8 
#>  5  2003    17.2     -2.2      7.99   -15.8 
#>  6  2004    12.7      2.53    17.5     -3.64
#>  7  2005     8.66     8.95    18.2      7.53
#>  8  2006    35.8     34.0     27.9     44.5 
#>  9  2007    15.3      5.56    15.2     19.7 
#> 10  2008    25.1     16.8     31.5     45.9 
#> # … with 14 more rows
gold_diff %>% 
  select(Year, USD.Diff, EUR.Diff, IDR.Diff, ZAR.Diff) %>% 
  pivot_longer(cols = c("USD.Diff", "EUR.Diff", "IDR.Diff", "ZAR.Diff")) %>% 
  ggplot(mapping = aes(x=Year, y=value,
                       group=name))+
  geom_line(aes(color=name),position = "dodge") +
  geom_point(aes(color=name))

Barplot Kenaikan Harga Emas di US (USD)

gold_diff %>% 
  ggplot(mapping = aes(y = USD.Diff,
                       x = Year,
                       )) + 
  geom_col()

Barplot Kenaikan Harga Emas di Eropa (EUR)

gold_diff %>% 
  ggplot(mapping = aes(y = EUR.Diff,
                       x = Year,
                       )) + 
  geom_col()

Barplot Kenaikan Harga Emas di Indonesia (IDR)

gold_diff %>% 
  ggplot(mapping = aes(y = IDR.Diff,
                       x = Year,
                       )) + 
  geom_col()

Barplot Kenaikan Harga Emas di Afrika Selatan (ZAR)

gold_diff %>% 
  ggplot(mapping = aes(y = ZAR.Diff,
                       x = Year,
                       )) + 
  geom_col()