#Import library
library(readxl)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## 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(lubridate)
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
#Load data
harga_beras_jakarta <- read_excel("harga beras jakarta.xlsx")
head(harga_beras_jakarta)
## # A tibble: 6 × 2
## Beras Time
## <dbl> <chr>
## 1 13781. December 30, 2019
## 2 13950 January 6, 2020
## 3 14004. January 13, 2020
## 4 13967. January 20, 2020
## 5 13934. January 27, 2020
## 6 13943. February 3, 2020
#Struktur data
str(harga_beras_jakarta)
## tibble [86 × 2] (S3: tbl_df/tbl/data.frame)
## $ Beras: num [1:86] 13781 13950 14004 13967 13934 ...
## $ Time : chr [1:86] "December 30, 2019" "January 6, 2020" "January 13, 2020" "January 20, 2020" ...
#Membersihkan dan format data
harga_beras_jakarta <- harga_beras_jakarta %>%
mutate(
Time = as.Date(Time, format= "%B %d, %Y"),
Beras = as.numeric(Beras)
)
#Cek format data kembali
str(harga_beras_jakarta)
## tibble [86 × 2] (S3: tbl_df/tbl/data.frame)
## $ Beras: num [1:86] 13781 13950 14004 13967 13934 ...
## $ Time : Date[1:86], format: "2019-12-30" "2020-01-06" ...
head(harga_beras_jakarta)
## # A tibble: 6 × 2
## Beras Time
## <dbl> <date>
## 1 13781. 2019-12-30
## 2 13950 2020-01-06
## 3 14004. 2020-01-13
## 4 13967. 2020-01-20
## 5 13934. 2020-01-27
## 6 13943. 2020-02-03
#Visualisasi Tren Harga
library(ggplot2)
ggplot(harga_beras_jakarta, aes(x=Time, y=Beras))+
geom_line(color='blue', size=1)+
geom_point(color='red',size=1)+
labs(title="Tren Harga Beras di Jakarta",
x= "Waktu",
y= "Harga Beras (Rp/kg)")+
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Grafik tersebut menunjukkan pergerakan harga beras dari akhir 2019 hingga pertengahan 2021. Secara umum, harga beras relatif stabil di kisaran Rp 13.500 - Rp 14.000 per kg selama tahun 2020. Namun, terjadi penurunan tajam sekitar awal 2021, dimana harga turun signifikan dari sekitar Rp 13.800 menjadi Rp 12.000 per kg. Setelah penurunan tersebut, harga cenderung stabil kembali pada level yang lebih rendah. Penurunan harga yang tajam pada awal 2021 kemungkinan besar disebabkan oleh panen raya sehingga pasokan beras meningkat tajam, lonjakan pasokan ini menyebabkan harga beras turun signifikan di tingkat produsen dan konsumen. Selain itu kebijakan stabilitas harga melalui Badan Pangan Nasional yang melakukan operasi pasar dan penyerapan gabah petani dalam rangka stabilisasi harga. Tindakan tersebut sempat menekan harga beras di pasar untuk menjaga keterjangkauan harga bagi masyarakat. Dan kondisi ekonomi akibat pandemi covid-19, yang menyebabkan permintaan tidak terlalu tinggi sementara pasokan meningkat, sehingga harga beras cenderung turun tajam.
#Menghitung statistika deskriptive
mean(harga_beras_jakarta$Beras)
## [1] 13398.95
median(harga_beras_jakarta$Beras)
## [1] 13727.55
sd(harga_beras_jakarta$Beras)
## [1] 833.2874
Nilai rata-rata dan median yang relatif berdekatan menunjukkan bahwa distribusi harga beras cukup seimbang, meskipun terdapat sedikit perbedaan yang menandakan adanya fluktuasi harga di beberapa periode tertentu. Sedangkan untuk standar deviasi sebesar 833.29 rupiah mengindikasikan bahwa variasi harga beras antar waktu cukup besar, artinya harga beras di Jakarta mengalami perubahan yang signifikan antar minggu, tidak sepenuhnya stabil selama periode pengamatan.
#Melihat Perubahan Mingguan
harga_beras_jakarta <- harga_beras_jakarta %>%
arrange(Time) %>%
mutate(Perubahan = (Beras - lag(Beras))/lag(Beras)*100)
harga_beras_jakarta$Perubahan[is.na(harga_beras_jakarta$Perubahan)] <- 0
harga_beras_jakarta
## # A tibble: 86 × 3
## Beras Time Perubahan
## <dbl> <date> <dbl>
## 1 13781. 2019-12-30 0
## 2 13950 2020-01-06 1.23
## 3 14004. 2020-01-13 0.390
## 4 13967. 2020-01-20 -0.267
## 5 13934. 2020-01-27 -0.236
## 6 13943. 2020-02-03 0.0635
## 7 14004. 2020-02-10 0.437
## 8 14035. 2020-02-17 0.221
## 9 14045. 2020-02-24 0.0703
## 10 14070. 2020-03-02 0.182
## # ℹ 76 more rows
#Visualisasi
ggplot(harga_beras_jakarta, aes(x = Time, y = Perubahan)) +
geom_col(fill = "steelblue") +
labs(title = "Persentase Perubahan Harga Beras Mingguan",
x = "Waktu",
y = "Perubahan (%)") +
theme_minimal()
Grafik persentase perubahan harga beras mingguan menunjukkan bahwa pergerakan harga beras di Jakarta relatif stabil dengan fluktuasi yang kecil di sebagian besar periode pengamatan. Sebagian besar perubahan mingguan berada di kisaran -0.5% hingga +0.5%, yang menandakan pasar beras cenderung stabil dan terkendali. Namun, terlihat adanya penurunan tajam pada awal 2021, dengan perubahan lebih dari -8% dalam 1 minggu. Penurunan drastis ini kemungkinan besar disebabkan oleh intervensi pemerintah melalui kebijakan stabilisasi harga, peningkatan stok cadangan beras nasional, atau penurunan permintaan akibat pandemi COVID-19 yang memengaruhi rantai distribusi dan konsumsi rumah tangga. Hal ini menjadi indikasi adanya faktor eksternal yang kuat memengaruhi pasar. Oleh karena itu, pelaku industri pangan dan pengambil kebijakan perlu memantau tren harga secara berkala serta menyiapkan strategi mitigasi, seperti diversifikasi sumber pasokan atau peningkatan efisiensi logistik, untuk menjaga kestabilan harga pada masa mendatang.
#Analisis Tren (Regresi Linier Sederhana)
model <- lm(Beras~Time, data=harga_beras_jakarta)
summary(model)
##
## Call:
## lm(formula = Beras ~ Time, data = harga_beras_jakarta)
##
## Residuals:
## Min 1Q Median 3Q Max
## -784.93 -491.98 13.85 324.41 829.48
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 86190.2729 5486.6250 15.71 <2e-16 ***
## Time -3.9225 0.2956 -13.27 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 476.4 on 84 degrees of freedom
## Multiple R-squared: 0.677, Adjusted R-squared: 0.6731
## F-statistic: 176 on 1 and 84 DF, p-value: < 2.2e-16
Berdasarkan hasil analisis regresi linier sederhana dengan variabel time (waktu) sebagai prediktor dan beras sebagai variabel respon,diperoleh model –> Harga beras = 86190.27 - 3.92Time. Artinya, setiap satu satuan peningkatan waktu, harga beras cenderung menurun sebesar 3.92 rupiah. Nilai koefisien determinasi sebesar 0.677 menunjukkan bahwa sekitar 67.7% variasi harga dapat dijelaskan oleh variabel waktu, sedangkan sisanya 32.3% dijelaskan oleh faktor lain di luar model, seperti kondisi pasar, cuaca, kebijakan pemerintah atau biaya retribusi. Nilai p-value (<2.2e-16) untuk variabel time menunjukkan bahwa pengaruh waktu terhadap harga beras sangat signifikan secara statistik (p < 0,001). Dengan demikian, dapat disimpulkan bahwa perubahan waktu memiliki hubungan yang signifikan dengan perubahan harga beras.
Kesimpulan:
Model ini menunjukkan bahwa harga beras di Jakarta cenderung mengalami tren penurunan seiring waktu selama periode pengamatan. Meskipun demikian, karena hanya sekitar dua pertiga variasi harga yang dapat dijelaskan oleh waktu, maka faktor eksternal lain seperti kebijakan stabilisasi harga, musim panen, dan dinamika pasokan-pemintaan juga berperan penting dalam memengaruhi harga beras.