Analisis Data Film Tahun 2015–2020 dengan Metode Web Scraping menggunakan R Studio

Dhea Laksmita Arsya Primananda
12 min readNov 17, 2020

--

Assalamualaikum Wr.Wb. teman-teman data enthusiast….

Apakah kalian sudah tau tentang apa itu web scraping? Kalau belum tau, mari simak artikel dibawah ini. Selamat membaca!!!!

Apa itu web scraping?

Dalam menjalankan bisnis online pastinya kita pernah melakukan pendataan kompetitor-kompetitor kita beserta informasi penting tentang produk atau layanan mereka. Kemudian, kita menyimpan data tersebut di dalam sebuah spreadsheet baik menggunakan Microsoft Excel, Google Sheet maupun aplikasi sejenisnya. Proses inilah yang disebut web scraping.

Dengan kata lain, web scraping dapat didefinisikan sebagai proses pengambilan data dari sebuah website. Secara umum, ada dua cara yang bisa kita gunakan untuk melakukannya, yaitu:

  1. Manual merupakan metode dimana kita menyalin data dengan cara copy paste dari sebuah website.
  2. Otomatis merupakan metode yang menggunakan koding, aplikasi atau extension browser.

Teknik-Teknik Web Scraping

Web scraping sekarang sudah dimudahkan dengan adanya bantuan browser extension atau aplikasi. Namun, hasilnya masih belum seefektif cara manual dan koding. Dalam artikel ini akan membahas enam teknik web scraping yang umum dilakukan, yaitu:

  1. Menyalin data secara manual.
  2. Menggunakan regular expression.
  3. Parsing Hyper Text Markup Language (HTML).
  4. Menganalisis DOM.
  5. Menggunakan XPath.
  6. Menggunakan Google Sheet.

Pada kesempatan kali ini saya akan mencoba berbagi ilmu terkait menganalisis data dengan menggunakan metode web scraping. Disini saya akan mengambil data dari IMDB (Internet Movie Database) yang disusun berdasarkan popularitas film selama tahun 2015–2020 dengan melakukan scraping menggunakan RStudio, kemudian membuat grafik untuk rata-rata pendapatan kotor (gross) pada film. Setelah itu, ingin melihat genre film apa yang paling digemari masyarakat selama 5 tahun berturut-turut, serta memberikan masukan pada produser film terkait seperti apakah film yang sebaiknya diproduksi.

Kalau kalian penasaran, ayo disimak artikel berikut!!!!!

Studi Kasus 1: Grafik Rata-rata Pendapatan Kotor Film

Disini saya akan mengambil data yakni 100 film terpopuler berdasarkan tanggal rilis pada tahun 2015–2020 versi IMDb. Untuk melihat daftar-daftar filmnya dapat melalui tautan ini.

Sebelum melakukan web scraping, siapkan R terlebih dahulu dan install package yang akan digunakan yaitu ‘xml2’ dan ‘rvest’ dan aktifkan packages tersebut.

install.packages(“xml2”)
library(xml2)
install.packages(“rvest”)
library(rvest)

Setelah packages tersebut ter-install, selanjutnya memasukkan alamat dari halaman website IMDb ke dalam RStudio dengan menggunakan sintaks sebagai berikut:

alamatweb1 <- “https://www.imdb.com/search/title/?title_type=feature&release_date=2015-01-01,2015-12-31&ref_=adv_prv'”
lamanweb1 <- read_html(alamatweb1)
lamanweb1

Hasilnya akan muncul seperti berikut:

Tampilan Memasukkan Alamat Website IMDb Tahun 2015

Selanjutnya, saya akan mengambil data pertama yaitu pendapatan kotor (gross) yang ada pada halaman website. Pada langkah ini kita menggunakan “SelectorGadget”. Selector gadget digunakan untuk mengetahui posisi letak pendapatan kotor (gross) dalam halaman html. Aplikasi tersebut dapat diunduh dan ditambahkan ke extension Chrome. Jika aplikasi tersebut telah ditambahkan, maka akan muncul ikon kaca pembesar pada kanan atas halaman Chrome yang artinya aplikasi tersebut telah ditambahkan.

Tampilan Ikon SelectorGadget

Klik ikon tersebut dan arahkan pada gross.

Melihat Variabel Gross menggunakan SelectorGadget

Selanjutnya, memasukkan perintah kedalam R dengan menuliskan sintaks berikut:

#Mengambil data gross
gross_data_laman1 <- html_nodes(lamanweb1,’.ghost~ .text-muted+ span’)
gross_data1 <- html_text(gross_data_laman1)
gross_data1

#Menghilangkan huruf M dan $
gross_data1 <- gsub(“M”,””,gross_data1)
gross_data1 <- substring(gross_data1, 2, 6)
gross_data1

#Cek jumlah data gross_data, karena tidak semua film memuat gross
#Data
length(gross_data1)

Sehingga diperoleh hasilnya sebagai berikut:

Tampilan Hasil Data Gross Setelah Scraping

Berdasarkan hasil diatas, pada tahun 2015 hanya 91 film yang memuat nilai pendapatan kotor (gross), sehingga nilai yang kosong harus didefinisikan terlebih dahulu dengan NA. Nilai yang kosong direkap secara manual dengan menggunakan sintaks berikut:

# Missing data diganti dengan nilai NA
for (i in c(3, 14, 35, 47, 49, 63, 68, 72, 76, 85, 94, 95)){
a <- gross_data1[1:(i-1)]
b <- gross_data1[i:length(gross_data1)]
gross_data1<-append(a, list(“NA”))
gross_data1<-append(gross_data1, b)}

Setelah itu, diubah tipe datanya menjadi numerik. Kemudian, periksa kembali panjang dari data pendapatan kotor (gross) setelah mengisikan nilai yang hilang. Selanjutnya, mencari nilai rata-rata dari hasil beberapa ukuran pemusatan datanya (summary) dengan menggunakan sintaks berikut :

#Data gross dikonversi menjadi numerik
gross_data1 <- as.numeric(gross_data1)
length(gross_data1)
summary(gross_data1)

Sehingga diperoleh hasilnya sebagai berikut:

Tampilan Pengisian Nilai Missing pada Data Kosong

Berdasarkan hasil diatas, diperoleh nilai dari rata-rata pendapatan kotor (gross) film pada tahun 2015 sebesar 91.44.

Kemudian untuk tahun 2016–2020, ulangi kembali langkah-langkah diatas dengan mengganti datanya di dalam sintaks sebagai berikut:

Data film tahun 2016 dapat diakses disini.

Data film tahun 2017 dapat diakses disini.

Data film tahun 2018 dapat diakses disini.

Data film tahun 2019 dapat diakses disini.

Data film tahun 2020 dapat diakses disini.

Tahun 2016

#masukan alamat web 2016
alamatweb2 <- “https://www.imdb.com/search/title/?count=100&release_date=2016,2016&title_type=feature"
lamanweb2 <- read_html(alamatweb2)
lamanweb2

#Mengambil data gross
gross_data_laman2 <- html_nodes(lamanweb2,’.ghost~ .text-muted+ span’)
gross_data2 <- html_text(gross_data_laman2)
gross_data2

#menghilangkan huruf M dan $
gross_data2 <- gsub(“M”,””,gross_data2)
gross_data2 <- substring(gross_data2,2,6)
gross_data2

#cek jumlah data gross_data, karena tidak semua film memuat gross
#data
length(gross_data2)

#Missing data diganti dengan nilai NA
for (i in c(9, 14, 21, 53, 57, 61, 62, 77, 96, 98)){
a <- gross_data2[1:(i-1)]
b <- gross_data2[i:length(gross_data2)]
gross_data2 <- append(a, list(“NA”))
gross_data2 <- append(gross_data2, b)}

#data gross dikonversi menjadi numerik
gross_data2 <- as.numeric(gross_data2)
length(gross_data2)
summary(gross_data2)

Tahun 2017

#masukan alamat web 2017
alamatweb3 <- “https://www.imdb.com/search/title/?count=100&release_date=2017,2017&title_type=feature"
lamanweb3 <- read_html(alamatweb3)
lamanweb3

#Mengambil data gross
gross_data_laman3 <- html_nodes(lamanweb3,’.ghost~ .text-muted+ span’)
gross_data3 <- html_text(gross_data_laman3)
gross_data3

#menghilangkan huruf M dan $
gross_data3 <- gsub(“M”,””, gross_data3)
gross_data3 <- substring(gross_data3, 2, 6)
gross_data3

#cek jumlah data gross_data, karena tidak semua film memuat gross
#data
length(gross_data3)

#Missing data diganti dengan nilai NA
for (i in c(7, 10, 27, 38, 43, 60, 65, 69, 77, 79, 81, 83, 85,89,92,93,96,97,98){
a <- gross_data3[1:(i-1)]
b <- gross_data3[i:length(gross_data3)]
gross_data3 <- append(a, list(“NA”))
gross_data3 <- append(gross_data3, b)}

#data gross dikonversi menjadi numerik
gross_data3 <- as.numeric(gross_data3)
length(gross_data3)
summary(gross_data3)

Tahun 2018

#masukan alamat web 2018
alamatweb4 <- “https://www.imdb.com/search/title/?count=100&release_date=2018,2018&title_type=feature"
lamanweb4 <- read_html(alamatweb4)
lamanweb4

#Mengambil data gross
gross_data_laman4 <- html_nodes(lamanweb4,’.ghost~ .text-muted+ span’)
gross_data4 <- html_text(gross_data_laman4)
gross_data4

#menghilangkan huruf M dan $
gross_data4 <- gsub(“M”,””, gross_data4)
gross_data4 <- substring(gross_data4, 2, 6)
gross_data4

#cek jumlah data gross_data, karena tidak semua film memuat gross
#data
length(gross_data4)

#Missing data diganti dengan nilai NA
for (i in c(3, 9, 31, 46, 51, 60, 65, 67, 75, 85, 87, 94, 96){
a <- gross_data4[1:(i-1)]
b <- gross_data4[i:length(gross_data4)]
gross_data4 <- append(a, list(“NA”))
gross_data4 <- append(gross_data4, b)}

#data gross dikonversi menjadi numerik
gross_data4 <- as.numeric(gross_data4)
length(gross_data4)
summary(gross_data4)

Tahun 2019

#masukan alamat web 2019
alamatweb5 <- “https://www.imdb.com/search/title/?count=100&release_date=2019,2019&title_type=feature"
lamanweb5 <- read_html(alamatweb5)
lamanweb5

#Mengambil data gross
gross_data_laman5 <- html_nodes(lamanweb5,’.ghost~ .text-muted+ span’)
gross_data5 <- html_text(gross_data_laman5)
gross_data5

#menghilangkan huruf M dan $
gross_data5 <- gsub(“M”,””, gross_data5)
gross_data5 <- substring(gross_data5, 2, 6)
gross_data5

#cek jumlah data gross_data, karena tidak semua film memuat gross
#data
length(gross_data5)

#data gross dikonversi menjadi numerik
gross_data5 <- as.numeric(gross_data5)
length(gross_data5)
summary(gross_data5)

Tahun 2020

#masukan alamat web 2020
alamatweb6 <- “https://www.imdb.com/search/title/?count=100&release_date=2020,2020&title_type=feature"
lamanweb6 <- read_html(alamatweb6)
lamanweb6

#Mengambil data gross
gross_data_laman6 <- html_nodes(lamanweb6,’.ghost~ .text-muted+ span’)
gross_data6 <- html_text(gross_data_laman6)
gross_data6

#menghilangkan huruf M dan $
gross_data6 <- gsub(“M”,””, gross_data6)
gross_data6 <- substring(gross_data6, 2, 6)
gross_data6

#cek jumlah data gross_data, karena tidak semua film memuat gross
#data
length(gross_data6)

#Missing data diganti dengan nilai NA
for (i in c(3, 9, 31, 46, 51, 60, 65, 67, 75, 85, 87, 94, 96){
a <- gross_data6[1:(i-1)]
b <- gross_data6[i:length(gross_data6)]
gross_data6 <- append(a, list(“NA”))
gross_data6 <- append(gross_data6, b)}

#data gross dikonversi menjadi numerik
gross_data6 <- as.numeric(gross_data6)
length(gross_data6)
summary(gross_data6)

Diperoleh ringkasan data (summary) untuk tahun 2015–2020 sebagai berikut:

Tampilan Hasil Ringkasan Data Pendapatan Kotor Tahun 2015–2020

Kemudian, saya mengambil data rata-rata (mean) dari masing-masing tahun dan membuatnya kedalam data frame sebagai berikut:

ratarata_gross <- c(“95.95”,”91.77",”104.18",”103.26",”152.6",”102.79")
tahun <- c(“2015”,”2016",”2017",”2018",”2019",”2020")
kumpulan_data_gross <- data.frame(tahun, ratarata_gross)
kumpulan_data_gross

Diperoleh hasil sebagai berikut:

Tampilan Data Frame Rata-rata Pendapatan Kotor (Gross) Film Tahun 2015–2020

Setelah itu, kita akan melihat bagaimana rata-rata pendapatan kotor (gross) dari film pada tahun 2015–2020 menggunakan visualisasi data berupa plot garis dengan menggunakan sintaks berikut:

#Plot Rata-rata Pendapatan Kotor (Gross)
plot(kumpulan_data_gross, main = “Rata-rata gross pendapatan film tahun 2015–2020”, lwd= 2, col = “yellow”, xlim =c(2015,2020),type=”l”,pch=15)

Kemudian diperoleh hasil sebagai berikut:

Plot Rata-rata Pendapatan Kotor (Gross) Film Tahun 2015–2020

Berdasarkan hasil yang diperoleh, grafik garis tersebut menunjukkan bahwa rata-rata pendapatan kotor (gross) film pada setiap tahun cenderung naik dan mencapai posisi tertinggi, yaitu pada tahun 2019. Namun, pada tahun 2020 menurun secara tajam dikarenakan adanya pandemi COVID-19 yang melanda di seluruh dunia, sehingga masyarakat tidak dapat menonton film di bioskop dan pendapatan pun juga menurun secara drastis. Selain itu juga dikarenakan rata-rata pendapatan kotor yang belum dirilis pada website IMDb mengingat tahun 2020 masih belum berakhir.

Studi kasus 2: Trend Genre Film Tahun 2015–2020

Berikutnya saya akan menganalisis apakah terdapat perubahan trend genre kesukaan masyarakat terhadap film di tahun 2015–2020. Langkah pertama, klik “SelectorGadget” dan arahkan dibagian genre pada halaman website IMDb sebagai berikut:

Tampilan Website IMDb Data Genre Film Tahun 2015

Selanjutnya, kita melakukan scraping data genre pada halaman website IMDb dengan menggunakan sintaks berikut:

#mengambil data genre
genre_data_laman1 <- html_nodes(lamanweb1,’.genre’)
genre_data_laman1

Diperoleh hasil sebagai berikut:

Tampilan Hasil Scraping Data Genre Film Tahun 2015

Lalu, kita akan mengubah data tersebut menjadi data text menggunakan sintaks berikut:

#ambil data text genre
genre_data1 <- html_text(genre_data_laman1)
genre_data1

Diperoleh hasil sebagai berikut:

Tampilan Mengubah kedalam Data Text Genre Film Tahun 2015

Kemudian, merapikan data genre untuk menghilangkan tanda ‘\n’ dan jarak atau spasi yang masih kosong.

#hilangkan tanda “\n”
genre_data1 <- gsub(“\n”,””,genre_data1)

#hilangkan spasi kosong
genre_data1 <- gsub(“ “,””,genre_data1)

Diperoleh hasil sebagai berikut:

Tampilan Merapikan Data Genre Film Tahun 2015

Pada umumnya terdapat beberapa genre di satu film, sehingga untuk memudahkannya kita mengambil genre urutan pertama saja di setiap filmnya menggunakan sintaks berikut:

#karena satu film bisa beberapa genre, maka setiap film hanya
#dikategorikan pada deskripsi genre yang pertama saja
genre_data1 <- gsub(“,.*”,””,genre_data1)
genre_data1

Diperoleh hasil sebagai berikut:

Tampilan Melakukan Kategori Genre Pertama di setiap Film Tahun 2015

Kemudian, mengubah data genre yang dalam bentuk teks menjadi faktor sebagai berikut:

#mengkonversi data genre berupa text menjadi faktor
genre_data1 <- as.factor(genre_data1)
head(genre_data1)

Diperoleh hasil sebagai berikut:

Tampilan Mengubah Data Genre Film Tahun 2015 menjadi Faktor

Kalian dapat mengulang langkah-langkah tersebut untuk melakukan pengambilan dan membersihkan data genre untuk tahun 2016–2020 yang akan digunakan nanti.

Tahun 2016

#mengambil data genre
genre_data_laman2 <- html_nodes(lamanweb2,’.genre’)
genre_data_laman2

#ambil data text genre
genre_data2 <- html_text(genre_data_laman2)
genre_data2

#hilangkan tanda “\n”
genre_data2 <- gsub(“\n”,””,genre_data2)

#hilangkan spasi kosong
genre_data2 <- gsub(“ “,””,genre_data2)

#karena satu film bisa beberapa genre, maka setiap film hanya
#dikategorikan pada deskripsi genre yang pertama saja
genre_data2 <- gsub(“,.*”,””,genre_data2)
genre_data2

#mengkonversi data genre berupa text menjadi faktor
genre_data2 <- as.factor(genre_data2)
head(genre_data2)

Tahun 2017

#mengambil data genre
genre_data_laman3 <- html_nodes(lamanweb3,’.genre’)
genre_data_laman3

#ambil data text genre
genre_data3 <- html_text(genre_data_laman3)
genre_data3

#hilangkan tanda “\n”
genre_data3 <- gsub(“\n”,””,genre_data3)

#hilangkan spasi kosong
genre_data3 <- gsub(“ “,””,genre_data3)

#karena satu film bisa beberapa genre, maka setiap film hanya
#dikategorikan pada deskripsi genre yang pertama saja
genre_data3 <- gsub(“,.*”,””,genre_data3)
genre_data3

#mengkonversi data genre berupa text menjadi faktor
genre_data3 <- as.factor(genre_data3)
head(genre_data3)

Tahun 2018

#mengambil data genre
genre_data_laman4 <- html_nodes(lamanweb4,’.genre’)
genre_data_laman4

#ambil data text genre
genre_data4 <- html_text(genre_data_laman4)
genre_data4

#hilangkan tanda “\n”
genre_data4 <- gsub(“\n”,””,genre_data4)

#hilangkan spasi kosong
genre_data4 <- gsub(“ “,””,genre_data4)

#karena satu film bisa beberapa genre, maka setiap film hanya
#dikategorikan pada deskripsi genre yang pertama saja
genre_data4 <- gsub(“,.*”,””,genre_data4)
genre_data4

#mengkonversi data genre berupa text menjadi faktor
genre_data4 <- as.factor(genre_data4)
head(genre_data4)

Tahun 2019

#mengambil data genre
genre_data_laman5 <- html_nodes(lamanweb5,’.genre’)
genre_data_laman5

#ambil data text genre
genre_data5 <- html_text(genre_data_laman5)
genre_data5

#hilangkan tanda “\n”
genre_data5 <- gsub(“\n”,””,genre_data5)

#hilangkan spasi kosong
genre_data5 <- gsub(“ “,””,genre_data5)

#karena satu film bisa beberapa genre, maka setiap film hanya
#dikategorikan pada deskripsi genre yang pertama saja
genre_data5 <- gsub(“,.*”,””,genre_data5)
genre_data5

#mengkonversi data genre berupa text menjadi faktor
genre_data5 <- as.factor(genre_data5)
head(genre_data5)

Tahun 2020

#mengambil data genre
genre_data_laman6 <- html_nodes(lamanweb6,’.genre’)
genre_data_laman6

#ambil data text genre
genre_data6 <- html_text(genre_data_laman6)
genre_data6

#hilangkan tanda “\n”
genre_data6 <- gsub(“\n”,””,genre_data6)

#hilangkan spasi kosong
genre_data6 <- gsub(“ “,””,genre_data6)

#karena satu film bisa beberapa genre, maka setiap film hanya
#dikategorikan pada deskripsi genre yang pertama saja
genre_data6 <- gsub(“,.*”,””,genre_data6)
genre_data6

#mengkonversi data genre berupa text menjadi faktor
genre_data6 <- as.factor(genre_data6)
head(genre_data6)

Berikutnya, saya mengambil data rating film di halaman website IMDb pada tahun 2015 untuk mengetahui jenis genre film yang digemari masyarakat dengan menggunakan sintaks berikut:

#mengambil data rating
rating_data_laman1 <- html_nodes(lamanweb1,’.ratings-imdb-rating strong’)
rating_data_laman1

Diperoleh hasil sebagai berikut:

Tampilan Mengambil Data Rating Film Tahun 2015

Lalu, mengambil data rating berupa teks menggunakan sintaks berikut:

#mengambil data text rating
rating_data1 <- html_text(rating_data_laman1)
rating_data1

Diperoleh hasil sebagai berikut:

Tampilan Mengambil Data Rating Film Tahun 2015 berupa Text

Kemudian, mengubah data teks rating tersebut menjadi numerik menggunakan sintaks berikut:

#dikonversi dalam numerik
rating_data1 <- as.numeric(rating_data1)
rating_data1

Diperoleh hasil sebagai berikut:

Tampilan Mengubah Data Text Rating Film Tahun 2015 menjadi Numerik

Kalian dapat mengulang langkah-langkah tersebut untuk melakukan pengambilan dan membersihkan data rating untuk tahun 2016–2020 yang akan digunakan nanti atau bisa menggunakan sintaks sebagai berikut:

Tahun 2016

#mengambil data rating
rating_data_laman2 <- html_nodes(lamanweb2, ’strong’)
rating_data_laman2

#Mengambil data text rating
rating_data2 <- html_text(rating_data_laman2)
rating_data2

#Dikonversi dalam numerik
rating_data2 <- as.numeric(rating_data2)
rating_data2

Tahun 2017

#mengambil data rating
rating_data_laman3 <- html_nodes(lamanweb3,’.ratings-imdb-rating strong’)
rating_data_laman3

#mengambil data text rating
rating_data3 <- html_text(rating_data_laman3)
rating_data3

#dikonversi dalam numerik
rating_data3 <- as.numeric(rating_data3)
rating_data3

Tahun 2018

#mengambil data rating
rating_data_laman4 <- html_nodes(lamanweb4,’.ratings-imdb-rating strong’)
rating_data_laman4

#mengambil data text rating
rating_data4 <- html_text(rating_data_laman4)
rating_data4

#dikonversi dalam numerik
rating_data4 <- as.numeric(rating_data4)
rating_data4

Tahun 2019

#mengambil data rating
rating_data_laman5 <- html_nodes(lamanweb5,’.ratings-imdb-rating strong’)
rating_data_laman5

#mengambil data text rating
rating_data5 <- html_text(rating_data_laman5)
rating_data5

#dikonversi dalam numerik
rating_data5 <- as.numeric(rating_data5)
rating_data5

Tahun 2020

#mengambil data rating
rating_data_laman6 <- html_nodes(lamanweb6,’.ratings-imdb-rating strong’)
rating_data_laman6

#mengambil data text rating
rating_data6 <- html_text(rating_data_laman6)
rating_data6

#dikonversi dalam numerik
rating_data6 <- as.numeric(rating_data6)
rating_data6

Kemudian, membuat data frame dari kumpulan beberapa variabel data sebelumnya disetiap tahunnya sebagai berikut:

#data dikumpulkan menjadi data frame
kumpulan_data_film1 <- data.frame(Genre2015 = genre_data1, Rating2015 = rating_data1)
str(kumpulan_data_film1)

Diperoleh hasil sebagai berikut:

Tampilan Hasil Data Frame Kumpulan Data Film Tahun 2015

Berikutnya, membuat penyajian berupa data visualisasi menggunakan kumpulan dari data film tahun 2015–2020. Sebelumnya jika kalian belum memiliki packages ‘dplyr’ dan ‘ggplot2’ dapat dilakukan instalasi terlebih dahulu, apabila sudah selesai instalasi dapat diaktifkan packages tersebut.

Disini kita akan menggunakan dua jenis plot, pertama histogram dengan menggunakan sintaks berikut:

#membuat plot
library(dplyr)
par(mfrow = c(2,3))
plot(genre_data1, main = “Data Genre 2015”, col= “purple”)
plot(genre_data2, main = “Data Genre 2016”, col= “grey”)
plot(genre_data3, main = “Data Genre 2017”, col= “blue”)
plot(genre_data4, main = “Data Genre 2018”, col= “yellow”)
plot(genre_data5, main = “Data Genre 2019”, col= “green”)
plot(genre_data6, main = “Data Genre 2020”, col= “red”)

Maka diperoleh hasil seperti dibawah ini:

Tampilan Plot Histogram Trend Data Genre Kegemaran Masyarakat terhadap Film Tahun 2015–2020

Berdasarkan hasil visualisasi yang diperoleh diatas, dapat dilihat bahwa terjadi perubahan trend genre kegemaran masyarakat terhadap film pada tahun 2015–2020. Selain itu, terdapat hubungan antara rating dan genre dimana genre action mendominasi rating.

Selain itu, plot kedua yang dapat digunakan untuk melihat kegemaran masyarakat terhadap film pada tahun 2015–2020 berdasarkan genre adalah menggunakan scatterplot dengan sintaks sebagai berikut:

Tahun 2015

#data dikumpulkan menjadi data frame
kumpulan_data_film1 <- data.frame(Genre2015 = genre_data1, Rating2015 = rating_data1)
str(kumpulan_data_film1)

#membuat plot
library(ggplot2)
ggplot(kumpulan_data_film1,aes(x=Rating2015,y=Genre2015))+geom_point(aes(size=Rating2015,col=Genre2015))

Tahun 2016

#data dikumpulkan menjadi data frame
kumpulan_data_film2 <- data.frame(Genre2016 = genre_data2, Rating2016 = rating_data2)
str(kumpulan_data_film2)

#membuat plot
ggplot(kumpulan_data_film2,aes(x=Rating2016,y=Genre2016))+geom_point(aes(size=Rating2016,col=Genre2016))

Tahun 2017

#data dikumpulkan menjadi data frame
kumpulan_data_film3 <- data.frame(Genre2017 = genre_data3, Rating2017= rating_data3)
str(kumpulan_data_film3)

#membuat plot
ggplot(kumpulan_data_film3,aes(x=Rating2017,y=Genre2017))+geom_point(aes(size=Rating2017,col=Genre2017))

Tahun 2018

#data dikumpulkan menjadi data frame
kumpulan_data_film4 <- data.frame(Genre2018 = genre_data4, Rating2018= rating_data4)
str(kumpulan_data_film4)

#membuat plot
ggplot(kumpulan_data_film4,aes(x=Rating2018,y=Genre2018))+geom_point(aes(size=Rating2018,col=Genre2018))

Tahun 2019

#data dikumpulkan menjadi data frame
kumpulan_data_film5 <- data.frame(Genre2019 = genre_data5, Rating2019= rating_data5)
str(kumpulan_data_film5)

#membuat plot
ggplot(kumpulan_data_film5,aes(x=Rating2019,y=Genre2019))+geom_point(aes(size=Rating2019,col=Genre2019))

Tahun 2020

#data dikumpulkan menjadi data frame
kumpulan_data_film6 <- data.frame(Genre2020 = genre_data6, Rating2020= rating_data6)
str(kumpulan_data_film6)

#membuat plot
ggplot(kumpulan_data_film6,aes(x=Rating2020,y=Genre2020))+geom_point(aes(size=Rating2020,col=Genre2020))

Maka, diperoleh hasil berupa plot sebagai berikut:

Tampilan Scatterplot Trend Genre Kegemaran Masyarakat terhadap Film Tahun 2015–2020

Dapat kita lihat masyarakat yang gemar menonton film pada tahun 2015–2019 cenderung menyukai film yang dengan genre action, namun pada tahun 2016 penonton mulai menyukai film dengan genre family atau keluarga, kemudian berganti pada tahun 2017 dengan genre drama, dan berubah lagi pada tahun 2018–2019 penonton mulai menyukai genre komedi, sedangkan terjadi perubahan pada tahun 2020 dimana penonton lebih menyukai film dengan genre crime atau kriminal dan komedi.

Studi Kasus 3: Saran terkait film yang akan diproduksi

Pada kasus terakhir, diminta untuk memberikan masukan pada produser film terkait film seperti apa yang sebaiknya untuk diproduksi. Setelah dilakukan analisis diperoleh sebaran data genre kegemaran masyarakat terhadap minat film pada tahun 2015–2020 diatas dan dapat kita ambil kesimpulan bahwa kecenderungan kegemaran genre film yang disukai masyarakat, yaitu genre action. Genre tersebut paling banyak diminati masyarakat, karena termasuk dalam urutan 100 populer genre paling banyak ditonton.

Maka saran yang dapat saya berikan kepada para produser film adalah untuk lebih banyak melakukan produksi film yang bergenre action karena rating nya terlihat cenderung tinggi. Selain itu, masyarakat juga menyukai genre lainnya seperti komedi, kriminal, keluarga, dan drama. Film dengan genre tersebut memiliki prospek yang cerah untuk diproduksi dimasa depan.

Sekian dan terima kasih, semoga bermanfaat pagi para pembaca khususnya bagi kalian data enthusiast!!!:)))

Wassalamualaikum Wr.Wb.

Referensi:

  1. https://www.niagahoster.co.id/blog/web-scraping
  2. https://medium.com/@986110101/web-scraping-dengan-r-53d07fb81fc9

--

--