Deskripsi Data

Dataset Sakila merupakan database simulasi rental film yang disediakan oleh MySQL. Dataset ini memiliki berbagai tabel relasional seperti film, customer, payment, rental, inventory, category, dan store. Melalui analisis data ini, perusahaan rental film dapat memahami kategori film paling menguntungkan perilaku pelanggan pola transaksi strategi peningkatan pendapatan dan loyalitas customer

Insight utama yang diambil dalam laporan ini adalah:

Kategori Film dengan Jumlah Rental Tertinggi Belum Tentu Menghasilkan Pendapatan Terbesar”

Import Library

library(DBI)
library(odbc)
## Warning: package 'odbc' was built under R version 4.5.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## 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(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
library(knitr)
## Warning: package 'knitr' was built under R version 4.5.2

Koneksi data

con <- dbConnect(
  odbc(),
  Driver = "MySQL ODBC 8.0 ANSI Driver",
  Server = "127.0.0.1",
  Database = "sakila",
  UID = "root",
  PWD = "141206",
  Port = 3306
)

query <- "

SELECT

    c.name AS category,
    p.amount,
    r.rental_id

FROM payment p

JOIN rental r
ON p.rental_id = r.rental_id

JOIN inventory i
ON r.inventory_id = i.inventory_id

JOIN film f
ON i.film_id = f.film_id

JOIN film_category fc
ON f.film_id = fc.film_id

JOIN category c
ON fc.category_id = c.category_id

"

data_sakila <- dbGetQuery(con, query)

head(data_sakila)
##   category amount rental_id
## 1   Action   0.99     10895
## 2   Action   0.99     12268
## 3   Action   0.99      3150
## 4   Action   3.99      5072
## 5   Action   1.99      9080
## 6   Action   1.99     14603

Struktur Dataset

str(data_sakila)
## 'data.frame':    16044 obs. of  3 variables:
##  $ category : chr  "Action" "Action" "Action" "Action" ...
##  $ amount   : num  0.99 0.99 0.99 3.99 1.99 1.99 0.99 0.99 0.99 0.99 ...
##  $ rental_id: int  10895 12268 3150 5072 9080 14603 588 2867 6030 7788 ...

Interpretasi

Berdasarkan hasil str(data_sakila), dataset terdiri dari beberapa variabel utama yang digunakan untuk menganalisis transaksi rental film pada database Sakila. Variabel yang digunakan antara lain: category bertipe karakter (chr) yang menunjukkan kategori atau genre film. amount bertipe numerik (num) yang menunjukkan jumlah pembayaran pada setiap transaksi rental. rental_id bertipe integer (int) yang berfungsi sebagai identitas unik setiap transaksi rental. Struktur dataset menunjukkan bahwa data telah tersusun dengan format yang sesuai untuk analisis statistik dan visualisasi. Tipe data numerik pada variabel amount memungkinkan dilakukan perhitungan seperti rata-rata, total pendapatan, dan korelasi. Sementara variabel kategori dapat digunakan untuk pengelompokan data berdasarkan genre film.


Ringkasan Dataset

summary(data_sakila)
##    category             amount         rental_id    
##  Length:16044       Min.   : 0.000   Min.   :    1  
##  Class :character   1st Qu.: 2.990   1st Qu.: 4014  
##  Mode  :character   Median : 3.990   Median : 8026  
##                     Mean   : 4.201   Mean   : 8025  
##                     3rd Qu.: 4.990   3rd Qu.:12037  
##                     Max.   :11.990   Max.   :16049

Interpretasi

Berdasarkan hasil summary(data_sakila), terlihat gambaran umum data transaksi rental film. Variabel amount menunjukkan variasi pembayaran pelanggan melalui nilai minimum, maksimum, median, dan rata-rata transaksi. Sementara variabel category menunjukkan beragam kategori film yang tersedia dalam dataset. Ringkasan ini membantu memahami pola umum transaksi sebelum dilakukan analisis lebih lanjut pada database Sakila.


Pengolahan Data

Menghitung Total Rental dan Total Pendapatan per Kategori Film

kategori_summary <- data_sakila %>%
  group_by(category) %>%
  summarise(
    jumlah_rental = n(),
    total_pendapatan = sum(amount),
    rata_pembayaran = mean(amount)
  ) %>%
  arrange(desc(jumlah_rental))

kategori_summary
## # A tibble: 16 × 4
##    category    jumlah_rental total_pendapatan rata_pembayaran
##    <chr>               <int>            <dbl>           <dbl>
##  1 Sports               1179            5314.            4.51
##  2 Animation            1166            4656.            3.99
##  3 Action               1112            4376.            3.94
##  4 Sci-Fi               1101            4757.            4.32
##  5 Family               1096            4226.            3.86
##  6 Drama                1060            4587.            4.33
##  7 Documentary          1050            4218.            4.02
##  8 Foreign              1033            4271.            4.13
##  9 Games                 969            4281.            4.42
## 10 Children              945            3656.            3.87
## 11 Comedy                941            4384.            4.66
## 12 New                   940            4352.            4.63
## 13 Classics              939            3640.            3.88
## 14 Horror                846            3723.            4.40
## 15 Travel                837            3550.            4.24
## 16 Music                 830            3418.            4.12

Interpretasi

Tabel di atas menunjukkan jumlah rental pada setiap kategori film, total pendapatan yang dihasilkan, serta rata-rata pembayaran pelanggan. Melalui data tersebut dapat diketahui bahwa kategori dengan jumlah rental tinggi belum tentu menghasilkan total pendapatan paling besar.


Visualisasi Data

Perbandingan Jumlah Rental dan Total Pendapatan

ggplot(
  kategori_summary,
  aes(
    x = reorder(category, jumlah_rental),
    y = jumlah_rental,
    fill = total_pendapatan
  )
) +
  geom_col() +
  coord_flip() +
  labs(
    title = "Jumlah Rental dan Pendapatan per Kategori Film",
    x = "Kategori Film",
    y = "Jumlah Rental",
    fill = "Total Pendapatan"
  ) +
  theme_minimal()


Interpretasi Visualisasi

Berdasarkan visualisasi di atas, terlihat bahwa beberapa kategori film memiliki jumlah rental yang tinggi, tetapi tidak selalu menghasilkan total pendapatan terbesar.

Hal ini menunjukkan bahwa banyaknya transaksi rental tidak selalu berbanding lurus dengan keuntungan yang diperoleh perusahaan. Faktor seperti harga rental dan pola pembayaran pelanggan juga memengaruhi total pendapatan.


Analisis Data Menggunakan Korelasi

Rumus Korelasi Pearson

Hubungan antara jumlah rental dan total pendapatan dapat dianalisis menggunakan korelasi Pearson berikut Keterangan:

  • \(r\) = koefisien korelasi
  • \(x\) = jumlah rental
  • \(y\) = total pendapatan

Pengujian Korelasi

correlation <- cor(
  kategori_summary$jumlah_rental,
  kategori_summary$total_pendapatan
)

correlation
## [1] 0.8486797

Interpretasi Analisis

Nilai korelasi menunjukkan hubungan antara jumlah rental dan total pendapatan pada setiap kategori film. Jika nilai korelasi mendekati 1, maka hubungan keduanya kuat dan positif. Namun apabila tidak terlalu tinggi, maka jumlah rental bukan satu-satunya faktor yang menentukan besarnya pendapatan perusahaan. Hal ini menunjukkan bahwa kategori dengan transaksi rental tinggi belum tentu memberikan kontribusi pendapatan terbesar.


Insight Utama

Kategori film yang paling sering dirental tidak selalu menjadi kategori dengan pendapatan terbesar.

Insight ini menunjukkan bahwa perusahaan tidak hanya perlu fokus pada jumlah transaksi, tetapi juga perlu mempertimbangkan profitabilitas setiap kategori film.


Implikasi Bisnis

Berdasarkan hasil analisis, perusahaan rental film dapat menerapkan strategi berikut: memprioritaskan kategori film dengan profitabilitas tinggi, mengoptimalkan harga rental pada kategori populer, meningkatkan promosi pada kategori dengan potensi pendapatan besar, dan mengevaluasi kategori yang memiliki banyak transaksi tetapi pendapatan rendah.


Kesimpulan

Berdasarkan hasil analisis dan visualisasi data, dapat disimpulkan bahwa: jumlah rental berbeda pada setiap kategori film, kategori dengan jumlah rental tertinggi belum tentu menghasilkan pendapatan terbesar, total pendapatan dipengaruhi oleh beberapa faktor selain frekuensi rental, sehingga perusahaan perlu mempertimbangkan profitabilitas kategori film dalam pengambilan keputusan bisnis. Analisis ini menunjukkan bahwa pengolahan data menggunakan R Markdown dapat membantu perusahaan memahami pola transaksi pelanggan dan mendukung strategi bisnis berbasis data.