knitr::opts_chunk$set(warning = FALSE)
library(gtrendsR)
trend <- gtrends(
keyword = c("BCA", "BNI", "Bank BRI"),
geo = "ID",
time = "today 12-m" # Perbaikan ada di sini
)
#View(trend$interest_over_time) # data frame 159x7
#View(trend$interest_by_region) # data frame 102x5
#View(trend$interest_by_city) # data frame 600x5
#View(trend$related_queries) # data frame 1x6
# Lihat struktur data yang dihasilkan
str(trend)
## List of 7
## $ interest_over_time :'data.frame': 159 obs. of 7 variables:
## ..$ date : POSIXct[1:159], format: "2025-05-11" "2025-05-18" ...
## ..$ hits : int [1:159] 80 83 88 86 81 80 86 93 85 88 ...
## ..$ keyword : chr [1:159] "BCA" "BCA" "BCA" "BCA" ...
## ..$ geo : chr [1:159] "ID" "ID" "ID" "ID" ...
## ..$ time : chr [1:159] "today 12-m" "today 12-m" "today 12-m" "today 12-m" ...
## ..$ gprop : chr [1:159] "web" "web" "web" "web" ...
## ..$ category: int [1:159] 0 0 0 0 0 0 0 0 0 0 ...
## $ interest_by_country: NULL
## $ interest_by_region :'data.frame': 102 obs. of 5 variables:
## ..$ location: chr [1:102] "Special Capital Region of Jakarta" "Banten" "Riau Islands" "Bali" ...
## ..$ hits : int [1:102] 100 76 61 59 58 54 47 41 36 36 ...
## ..$ keyword : chr [1:102] "BCA" "BCA" "BCA" "BCA" ...
## ..$ geo : chr [1:102] "ID" "ID" "ID" "ID" ...
## ..$ gprop : chr [1:102] "web" "web" "web" "web" ...
## $ interest_by_dma : NULL
## $ interest_by_city :'data.frame': 400 obs. of 5 variables:
## ..$ location: chr [1:400] "Karimunjawa" "Jakarta" "Sukaraja" "Tangerang" ...
## ..$ hits : logi [1:400] NA NA NA NA NA NA ...
## ..$ keyword : chr [1:400] "BCA" "BCA" "BCA" "BCA" ...
## ..$ geo : chr [1:400] "ID" "ID" "ID" "ID" ...
## ..$ gprop : chr [1:400] "web" "web" "web" "web" ...
## $ related_topics : NULL
## $ related_queries : NULL
## - attr(*, "class")= chr [1:2] "gtrends" "list"
# Plot data yang sudah diambil
plot(trend)

# Pre-Processing Data
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
df_time <- trend$interest_over_time %>%
select(date, hits, keyword) %>%
mutate(hits = as.numeric(ifelse(hits == "<1", 0, hits)))
#Data Minat Berdasarkan Provinsi
# Ambil data regional
library(ggplot2)
df_region <- trend$interest_by_region %>%
filter(location != "") %>%
group_by(keyword) %>%
mutate(hits = as.numeric(ifelse(hits == "<1", 0, hits)))
head(df_region)
## # A tibble: 6 × 5
## # Groups: keyword [1]
## location hits keyword geo gprop
## <chr> <dbl> <chr> <chr> <chr>
## 1 Special Capital Region of Jakarta 100 BCA ID web
## 2 Banten 76 BCA ID web
## 3 Riau Islands 61 BCA ID web
## 4 Bali 59 BCA ID web
## 5 West Java 58 BCA ID web
## 6 East Java 54 BCA ID web
# Plot batang
ggplot(df_region, aes(x = reorder(location, hits), y = hits, fill = keyword)) +
geom_bar(stat = "identity", position = "dodge") +
coord_flip() +
labs(title = "Minat Berdasarkan Provinsi",
x = "Provinsi", y = "Tren (0–100)") +
theme_minimal()

#Rata-Rata Popularitas Masing-Masing Kata Kunci
df_avg <- df_time %>%
group_by(keyword) %>%
summarise(avg_hits = mean(hits))
ggplot(df_avg, aes(x = reorder(keyword, -avg_hits), y = avg_hits, fill = keyword)) +
geom_col() +
labs(title = "Rata-rata Popularitas per Brand",
x = "Brand", y = "Rata-rata Skor Pencarian") +
theme_minimal()
