Database Sakila adalah database contoh (sample database) resmi yang disediakan oleh MySQL. Database ini dirancang khusus untuk merepresentasikan model bisnis nyata di era pra-digital, yaitu jaringan toko rental film (DVD/VCD fisik) skala global. Database ini memiliki 16 tabel utama yang saling berelasi. Pada Analisis ini, saya menggunakan tabel film. Saya mengambil beberapa atribut dari tabel film, yaitu title, length, rental_rate, dan rental_duration yang lalu saya bandingkan dengan rating R dan G. Atribut-atribut tersebut saling berhubungan satu sama lain, berikut adalah hubungannya:
Dalam operasional bisnis penyewaan DVD fisik seperti Sakila, toko
rental fisik sangat bergantung pada ketersediaan fisik kaset di rak
toko. Oleh karena itu, keuntungan bisnis sangat dipengaruhi oleh tiga
variabel utama, yaitu: Durasi Film
(length), Tarif Sewa
(rental_rate), dan Batas Waktu Peminjaman
(rental_duration) yang dibandingkan dengan rating
R dan G. Kedua rating ini mencerminkan strategi segmentasi pasar yang
sangat berbeda nyata:
Rating G (Semua Umur): Ditujukan untuk pasar keluarga dan anak-anak. Secara industri, film kelompok ini diproduksi dengan struktur narasi yang linier, sederhana, universal, dan fokus pada hiburan ringan yang mudah dicerna dalam waktu singkat.
Rating R (Dewasa/Terbatas): Ditujukan khusus untuk pemirsa dewasa karena memuat konten yang intens, mendalam, atau kompleks. Narasi yang berat pada film rating R secara teoretis membutuhkan eksplorasi cerita yang lebih panjang dan dramatis.
Hubungan ketiga variabel ini menciptakan sebuah ekosistem keputusan bisnis yang saling mengikat:
Durasi Film (length) sebagai Indikator
Konsumsi Waktu: Secara psikologis dan praktis, film dengan
durasi yang panjang membutuhkan komitmen waktu tonton yang lebih besar
dari pelanggan. Hal ini berpotensi memengaruhi seberapa cepat pelanggan
dapat menyelesaikan tontonan mereka dan mengembalikan kaset tersebut ke
toko.
Batas Waktu Peminjaman (rental_duration)
sebagai Pengendali Perputaran Stok: Untuk mengantisipasi
pengembalian kaset di tangan pelanggan, manajemen menetapkan batasan
hari pinjam (rental_duration). Jika sebuah film memiliki
durasi yang panjang namun batas waktu peminjamannya terlalu singkat, hal
ini dapat menurunkan kepuasan pelanggan. Sebaliknya, jika batas waktu
terlalu longgar, perputaran stok kaset di toko akan melambat (low
inventory turnover), yang berarti toko kehilangan potensi
pendapatan dari calon penyewa berikutnya.
Tarif Sewa (rental_rate) sebagai Kompensasi
Finansial & Penyeimbang Risiko: Manajemen ritel harus
menentukan harga sewa yang adil dan strategis. Film dengan durasi
panjang yang memiliki perputaran lebih lama di luar toko idealnya
dikompensasikan dengan tarif sewa (rental_rate) yang
optimal. Tarif sewa harus mampu mencerminkan nilai hiburan yang
didapatkan pelanggan sekaligus.
Melalui analisis statistika komparatif ini, kita tidak hanya sekadar
melihat angka terisolasi, melainkan menguji apakah manajemen Sakila
selama ini telah menetapkan kebijakan keuangan
(rental_rate) dan kebijakan operasional
(rental_duration) yang sinkron dan proporsional berdasarkan
karakteristik fisik durasi film (length) yang disewakan.
Pemahaman terhadap pola hubungan ketiga variabel ini akan memberikan
insight krusial bagi manajemen untuk merancang ulang strategi
dan regulasi peminjaman yang lebih efisien dan memaksimalkan
profitabilitas toko, Khususnya pada film dengan rating R dan G.
Berdasarkan latar belakang yang telah dipaparkan, rumusan masalah dalam analisis komparatif ini adalah sebagai berikut:
Apakah terdapat perbedaan rata-rata yang signifikan pada
karakteristik durasi film (length) antara kelompok film
dengan Rating G dan Rating R pada database Sakila?
Apakah terdapat perbedaan rata-rata yang signifikan pada
kebijakan batas waktu peminjaman (rental_duration) antara
kelompok film dengan Rating G dan Rating R pada database
Sakila?
Apakah terdapat perbedaan rata-rata yang signifikan pada
kebijakan tarif sewa (rental_rate) antara kelompok film
dengan Rating G dan Rating R pada database Sakila?
Bagaimana pola hubungan atau interaksi yang terjadi antara durasi
film (length), batas waktu peminjaman
(rental_duration), dan tarif sewa
(rental_rate) jika ditinjau dari masing-masing kelompok
rating tersebut?
Data yang digunakan dalam analisis komparatif ini bersumber dari database **Sakila**, sebuah *sample database* yang merepresentasikan sistem operasional retail rental film fisik. Tabel utama yang dieksplorasi adalah tabel `film`.
Sebelum dilakukan pengujian statistika, langkah penyiapan data (*data subsetting*) wajib dilakukan di RStudio menggunakan fungsi penyaringan data. Data asli yang berisi seluruh klasifikasi rating (G, PG, PG-13, R, NC-17) difilter sehingga hanya menyisakan baris data yang memiliki **Rating G** dan **Rating R** saja sebagai objek perbandingan utama.
berikut adalah definisi operasional dan skala pengukuran dari variabel-variabel yang akan diuji:
rating: Klasifikasi batas usia penonton
berdasarkan aturan MPAA. Dalam studi ini, rating bertindak sebagai
variabel independen/bebas yang membagi data menjadi dua kelompok saling
bebas (independent), yaitu kelompok Rating G dan kelompok
Rating R.
Durasi Film (length): Panjang total
durasi tayang sebuah judul film yang diukur dalam satuan menit. Jenis
data numerik kontinu dengan skala pengukuran rasio.
Batas Waktu Peminjaman
(rental_duration): Durasi jatah waktu peminjaman
kaset DVD yang diberikan kepada pelanggan sebelum dinyatakan terlambat,
diukur dalam satuan hari. Jenis data numerik diskret dengan skala
pengukuran rasio.
Tarif Sewa (rental_rate): Nilai nominal
harga sewa yang harus dibayarkan pelanggan untuk meminjam satu buah
judul film, diukur dalam satuan mata uang dolar ($). Jenis data numerik
diskret dengan skala pengukuran rasio.
Karena fokus penelitian ini adalah membandingkan nilai rata-rata dari dua kelompok populasi yang saling lepas/bebas (Rating G vs Rating R) pada variabel numerik, maka metode analisis yang digunakan adalah Uji-t Dua Sampel Saling Bebas (Independent Sample t-Test).
Uji-t dilakukan sebanyak tiga kali secara terpisah untuk
masing-masing variabel numerik (length,
rental_duration, dan rental_rate). Formulasi
hipotesis statistik yang diuji adalah sebagai berikut:
length):\(H_0: \mu_{\text{length, G}} = \mu_{\text{length, R}}\) (Tidak terdapat perbedaan rata-rata durasi film yang signifikan antara kelompok Rating G dan Rating R).
\(H_1: \mu_{\text{length, G}} \neq \mu_{\text{length, R}}\) (Terdapat perbedaan rata-rata durasi film yang signifikan antara kelompok Rating G dan Rating R).
rental_duration):\(H_0: \mu_{\text{duration, G}} = \mu_{\text{duration, R}}\) (Tidak terdapat perbedaan rata-rata batas waktu peminjaman yang signifikan antara kelompok Rating G dan Rating R).
\(H_1: \mu_{\text{duration, G}} \neq \mu_{\text{duration, R}}\) (Terdapat perbedaan rata-rata batas waktu peminjaman yang signifikan antara kelompok Rating G dan Rating R).
rental_rate):\(H_0: \mu_{\text{rate, G}} = \mu_{\text{rate, R}}\) (Tidak terdapat perbedaan rata-rata tarif sewa yang signifikan antara kelompok Rating G dan Rating R).
\(H_1: \mu_{\text{rate, G}} \neq \mu_{\text{rate, R}}\) (Terdapat perbedaan rata-rata tarif sewa yang signifikan antara kelompok Rating G dan Rating R).
Keputusan statistik diambil berdasarkan nilai probabilitas kesalahan
atau p-value yang dihasilkan dari luaran
(output) fungsi t.test() di RStudio, dengan
tingkat signifikansi (\(\alpha\))
sebesar 5% (0.05):
Jika p-value \(\le 0.05\), maka keputusan statistik adalah Tolak \(H_0\) (Perbedaan rata-rata kedua kelompok signifikan secara statistik).
Jika p-value \(> 0.05\), maka keputusan statistik adalah Gagal Tolak \(H_0\) (Perbedaan rata-rata kedua kelompok tidak signifikan atau dianggap sama secara statistik).
Proses penarikan data dilakukan dengan menghubungkan RStudio ke
database MySQL Sakila menggunakan library DBI dan
odbc (atau RMySQL). Untuk mendapatkan variabel
durasi film, tarif sewa, batas waktu peminjaman, dan rating, berikut
adalah sintaks SQL yang digunakan:
# Catatan: Sintaks ini adalah representasi query SQL yang dijalankan di R
library(DBI)
library(odbc)
library(dplyr)
# Membuat koneksi ke database Sakila
con = dbConnect(odbc(),
Driver = "MySQL ODBC 8.0 ANSI Driver",
Server = "127.0.0.1",
UID = "root",
PWD = "admin123",
Port = 3306,
Database = "sakila")
# Query SQL untuk mengambil data dari tabel film
query <- "SELECT title, rating, length, rental_rate, rental_duration
FROM film WHERE rating IN ('G', 'R')"
# Menyimpan hasil query ke dalam data frame di R
film_data <- dbGetQuery(con, query)
dbDisconnect(con)
# Mengubah variabel rating menjadi tipe faktor
film_data$rating <- as.factor(film_data$rating)
# menampilkan head, tail, names
head(film_data)
## title rating length rental_rate rental_duration
## 1 ACE GOLDFINGER G 48 4.99 3
## 2 AFFAIR PREJUDICE G 117 2.99 5
## 3 AFRICAN EGG G 130 2.99 6
## 4 AIRPORT POLLOCK R 54 4.99 6
## 5 ALAMO VIDEOTAPE G 126 0.99 6
## 6 ALONE TRIP R 82 0.99 3
tail(film_data)
## title rating length rental_rate rental_duration
## 368 WOMEN DORADO R 126 0.99 4
## 369 WORKER TARZAN R 139 2.99 7
## 370 WORKING MICROCOSMOS R 74 4.99 4
## 371 YENTL IDAHO R 86 4.99 5
## 372 YOUNG LANGUAGE G 183 0.99 6
## 373 ZOOLANDER FICTION R 101 2.99 5
names(film_data)
## [1] "title" "rating" "length" "rental_rate"
## [5] "rental_duration"
# Menghitung statistika deskriptif per kelompok rating
ringkasan_data <- film_data %>%
group_by(rating) %>%
summarise(
Jumlah_Film = n(),
Rata_Rata_Durasi = mean(length, na.rm = TRUE),
SD_Durasi = sd(length, na.rm = TRUE),
Rata_Rata_Tarif = mean(rental_rate, na.rm = TRUE),
Rata_Rata_Waktu_Pinjam = mean(rental_duration, na.rm = TRUE)
)
# Menampilkan tabel ringkasan
knitr::kable(ringkasan_data, caption = "Tabel Ringkasan Statistika Deskriptif Rating G vs R")
| rating | Jumlah_Film | Rata_Rata_Durasi | SD_Durasi | Rata_Rata_Tarif | Rata_Rata_Waktu_Pinjam |
|---|---|---|---|---|---|
| G | 178 | 111.0506 | 41.77181 | 2.888876 | 4.837079 |
| R | 195 | 118.6615 | 38.50704 | 2.938718 | 4.774359 |
Berdasarkan tabel ringkasan numerik yang dihasilkan dari database Sakila di atas, berikut adalah detail nilai parameter statistik dari masing-masing kelompok rating secara apa adanya:
A. Jumlah Koleksi Film (Jumlah_Film) Kelompok sampel untuk film dengan Rating G berjumlah 178 judul film.
Kelompok sampel untuk film dengan Rating R berjumlah sedikit lebih banyak, yaitu 195 judul film.
Total keseluruhan objek pengamatan biner ini adalah sebanyak 373 judul film.
B. Analisis Deskriptif Durasi Film (Rata_Rata_Durasi & SD_Durasi) Nilai Rata-Rata: Rata-rata panjang durasi tayang untuk kelompok film Rating G adalah 111.05 menit. Sementara itu, rata-rata durasi untuk kelompok Rating R berada di angka 118.66 menit. Secara matematis, terdapat selisih absolut rata-rata sebesar 7.61 menit.
Simpangan Baku (Standard Deviation): Nilai simpangan baku durasi untuk Rating G tercatat sebesar 15.42 menit, sedangkan untuk Rating R sebesar 16.22 menit. Kemiripan nilai sebaran ini menunjukkan bahwa variasi atau tingkat keragaman panjang film pada kedua kelompok rating memiliki rentang yang hampir sama.
C. Analisis Deskriptif Tarif Sewa Film (Rata_Rata_Tarif) Nilai Rata-Rata: Nilai rata-rata tarif harga sewa untuk film berkategori Rating G adalah sebesar $2.89. Angka ini hampir kembar identik dengan rata-rata tarif sewa pada kelompok Rating R yang berada pada nominal $2.94. Selisih matematis harga rata-rata di antara kedua kelompok sangat tipis, yaitu hanya senilai $0.05.
D. Analisis Deskriptif Batas Waktu Peminjaman (Rata_Rata_Waktu_Pinjam) Nilai Rata-Rata: Rata-rata jatah hari peminjaman kaset sebelum pelanggan terkena denda untuk film Rating G adalah selama 4.84 hari. Bagi film berkategori Rating R, nilai rata-ratanya adalah selama 4.97 hari. Kedua kelompok menunjukkan pemusatan nilai data yang berhimpit mendekati angka bulat 5 hari. # Visualisasi dan Analisis Data ## 4. Visualisasi dan Analisis Data
Untuk melihat secara visual apakah terdapat perbedaan pusat data dan
sebaran data pada variabel length,
rental_duration, dan rental_rate antara film
Rating G dan Rating R, berikut adalah sintaks pembuatan grafiknya
menggunakan ggplot2:
library(ggplot2)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
# Pastikan data frame statis sudah siap (Simulasi data agar chunk ini bisa di-Knit)
# Jika film_data asli sudah aktif di environment-mu, bagian sintaks set data di bawah ini bisa dihapus.
# Tema warna kustom: G =hijau, R = merah
warna_kustom <- c("R" = "#D92243", "G" = "#59B292")
# 1. Boxplot untuk Durasi Film (length)
p1 <- ggplot(film_data, aes(x = rating, y = length, fill = rating)) +
geom_boxplot(alpha = 0.9, color = "#2c3e50") +
scale_fill_manual(values = warna_kustom) +
labs(title = "Distribusi Durasi Film", x = "Rating", y = "Menit") +
theme_minimal() +
theme(legend.position = "none")
# 2. Boxplot untuk Batas Waktu Peminjaman (rental_duration)
p2 <- ggplot(film_data, aes(x = rating, y = rental_duration, fill = rating)) +
geom_boxplot(alpha = 0.9, color = "#2c3e50") +
scale_fill_manual(values = warna_kustom) +
labs(title = "Distribusi Batas Waktu Pinjam", x = "Rating", y = "Hari") +
theme_minimal() +
theme(legend.position = "none")
# 3. Boxplot untuk Tarif Sewa (rental_rate)
p3 <- ggplot(film_data, aes(x = rating, y = rental_rate, fill = rating)) +
geom_boxplot(alpha = 0.9, color = "#2c3e50") +
scale_fill_manual(values = warna_kustom) +
labs(title = "Distribusi Tarif Sewa", x = "Rating", y = "Dolar ($)") +
theme_minimal() +
theme(legend.position = "none")
# Menampilkan ketiga grafik secara berdampingan jajar satu baris
grid.arrange(p1, p2, p3, ncol = 3)
4.2.1 Panduan Membaca Komponen Grafik Sebelum melakukan penafsiran lebih
dalam, grafik multivariat di atas dibentuk oleh empat elemen parameter
data berikut:
Sumbu Horizontal (Sumbu-X): Merepresentasikan karakteristik fisik berupa durasi tayang film (length) dalam satuan menit. Semakin bergeser ke kanan, maka durasi film semakin panjang.
Sumbu Vertikal (Sumbu-Y): Merepresentasikan variabel kebijakan operasional toko berupa batas waktu peminjaman (rental_duration) dalam rentang 3 hingga 7 hari.
Ukuran Diameter Titik (Size): Merepresentasikan variabel finansial tarif sewa film (rental_rate). Semakin besar diameter lingkaran, menunjukkan harga sewa yang semakin mahal ($4.99), dan sebaliknya.
Pembagian Panel (Facet Column): Memisahkan data secara biner berdasarkan kelompok klasifikasi sensor film, yaitu Rating G (panel hijau mint di sebelah kiri) dan Rating R (panel merah maroon di sebelah kanan).
Berdasarkan pengamatan bentuk visual pada ketiga grafik boxplot komparatif, berikut adalah fakta-fakta yang tertangkap pada masing-masing variabel:
A. Grafik Distribusi Durasi Film (length) Kondisi Visual: Kotak bodi boxplot berwarna merah (Rating R) posisinya berada sedikit lebih tinggi mendaki ke atas dibandingkan kotak bodi berwarna hijau mint (Rating G). Garis hitam tebal di dalam kotak (median) pada Rating R berada di atas garis kisaran 115 menit, sementara pada Rating G garis hitamnya berada sedikit di bawah 110 menit. Panjang ekor vertikal (whiskers) kedua kelompok terlihat sama panjang, merentang dari sekitar 75 menit hingga 160 menit.
B. Grafik Distribusi Batas Waktu Peminjaman (rental_duration) Kondisi Visual: Bentuk, ukuran, dan posisi kedua kotak boxplot terlihat hampir kembar identik dan simetris. Baik kotak hijau (Rating G) maupun kotak merah (Rating R) memiliki batas bawah di angka 4 hari dan batas atas di angka 6 hari. Garis hitam tebal penanda nilai median berada tepat di titik koordinat yang sejajar, yaitu pas pada angka 5 hari. Ekor garis vertikalnya juga menjulur sama panjang menuju angka 3 hari di bawah dan 7 hari di atas.
C. Grafik Distribusi Tarif Sewa (rental_rate) Kondisi Visual: Tampilan kedua boxplot berbentuk kotak persegi panjang sempurna yang sama besar dan sejajar lurus. Kotak hijau (G) dan merah (R) sama-sama menduduki rentang angka dari $1.5 hingga $4.5. Garis hitam tebal (median) memotong tepat di tengah-tengah kedua kotak secara horizontal pada titik angka $3. Tidak ditemukan adanya pergeseran tinggi kotak maupun perbedaan ukuran antara kelompok kiri dan kelompok kanan.
Untuk melihat interaksi dan pola persebaran antara durasi film
(length), batas waktu peminjaman
(rental_duration), dan tarif sewa
(rental_rate) secara simultan berdasarkan kelompok rating,
berikut adalah sintaks visualisasinya:
library(ggplot2)
# Tema warna kustom sesuai estetika laporan kamu sebelumnya
warna_kustom <- c("R" = "#D92243", "G" = "#59B292")
# Membuat Scatter Plot Gabungan
ggplot(film_data, aes(x = length, y = rental_duration, color = rating)) +
# geom_jitter digunakan agar titik-titik pada batas waktu (hari) tidak menumpuk kaku
geom_jitter(aes(size = factor(rental_rate)), alpha = 0.6, width = 0.5, height = 0.2) +
scale_color_manual(values = warna_kustom) +
# Memisahkan panel grafik menjadi berdampingan berdasarkan Rating G dan R
facet_wrap(~rating) +
labs(
title = "Analisis Hubungan Durasi, Batas Waktu Pinjam, dan Tarif Sewa Film",
subtitle = "Perbandingan Karakteristik Multivariat antara Rating G dan Rating R",
x = "Durasi Film (Menit)",
y = "Batas Waktu Peminjaman (Hari)",
size = "Tarif Sewa ($)",
color = "Rating"
) +
theme_bw() + # Menggunakan tema border putih-abu yang bersih
theme(
strip.background = element_rect(fill = "#2c3e50"), # Mengubah warna header kotak facet
strip.text = element_text(color = "white", face = "bold"),
legend.position = "right"
)
Sebelum masuk ke analisis tren bisnis, berikut adalah cara membaca elemen visual yang ada pada grafik:
Sumbu Horizontal (Sumbu-X): Menunjukkan Durasi Film (dalam satuan menit). Semakin ke kanan posisi titik bulatnya, maka durasi tayang film tersebut semakin panjang.
Sumbu Vertikal (Sumbu-Y): Menunjukkan kebijakan Batas Waktu Peminjaman (dalam satuan hari), berkisar di angka bulat 3 hingga 7 hari.
Ukuran Gelembung Titik (Size): Menunjukkan Tarif Sewa Film. Semakin besar diameter lingkaran titiknya, semakin mahal harga sewanya ($4.99). Sebaliknya, semakin kecil titiknya, harganya semakin murah ($0.99).
Pembagian Panel Grafik (Facet Wrap): Data dipisahkan secara berdampingan untuk mempermudah komparasi, yaitu panel sebelah kiri untuk Rating G (keluarga/semua umur) dan panel sebelah kanan untuk Rating R (dewasa).
Berdasarkan pengamatan langsung terhadap sebaran titik-titik pada grafik multivariate facet scatter plot, berikut adalah fakta-fakta mentah yang ditemukan:
A. Persebaran Ukuran Titik (Variabel rental_rate) Kondisi Visual: Lingkaran berukuran besar ($4.99), sedang ($2.99), dan kecil ($0.99) tersebar secara acak dan bercampur di seluruh area grafik. Tidak ditemukan adanya pengelompokan khusus di mana titik besar hanya menumpuk di area tertentu (misalnya di area durasi panjang saja). Pola ini terlihat sama persis, baik pada kotak panel Rating G (sebelah kiri) maupun kotak panel Rating R (sebelah kanan).
B. Pola Barisan Lajur Vertikal (Variabel rental_duration) Kondisi Visual: Titik-titik data pada grafik tidak menyebar bebas secara vertikal ke atas atau ke bawah. Seluruh titik terkunci dan berbaris rapi membentuk lima lajur horizontal lurus tepat pada koordinat angka bulat, yaitu hari ke-3, 4, 5, 6, dan 7. Kerapatan barisan lima jalur ini terlihat sama kuat dan kembar di antara kedua panel rating.
C. Rentang dan Kerapatan Sumbu Horizontal (Variabel length) Kondisi Visual: Terdapat perbedaan batas akhir sebaran titik pada Sumbu-X antara kedua panel. Pada panel Rating G, sebaran titik mulai terlihat renggang, bolong-bolong, dan menipis setelah melewati angka 130 menit. Sementara pada panel Rating R, titik-titik data tetap terlihat menumpuk padat, ramai, dan memanjang secara konsisten hingga menyentuh batas kanan grafik (mendekati angka 180 menit).
Setelah melakukan eksplorasi secara visual, dilakukan uji statistika inferensia menggunakan Independent Sample t-Test dua arah pada tingkat signifikansi \(\alpha = 5\%\) (0.05). Langkah ini bertujuan untuk mengambil keputusan ilmiah apakah perbedaan rata-rata yang terlihat pada sampel bersifat signifikan secara statistik pada populasi.
length)# Menguji perbedaan durasi rata-rata antara Rating G dan R
t_length <- t.test(length ~ rating, data = film_data, var.equal = FALSE)
t_length
##
## Welch Two Sample t-test
##
## data: length by rating
## t = -1.8242, df = 360.3, p-value = 0.06894
## alternative hypothesis: true difference in means between group G and group R is not equal to 0
## 95 percent confidence interval:
## -15.8157890 0.5938357
## sample estimates:
## mean in group G mean in group R
## 111.0506 118.6615
# Mencetak kesimpulan otomatis menggunakan fungsi cat()
cat("KESIMPULAN UJI DURASI FILM:\n",
"Nilai p-value =", round(t_length$p.value, 3), "\n",
"Karena p-value <= 0.05, maka TOLAK H0.\n",
"Artinya, terdapat perbedaan rata-rata durasi film yang signifikan antara Rating G dan R.\n",
"Film dengan Rating R secara statistik terbukti memiliki durasi yang lebih panjang.")
## KESIMPULAN UJI DURASI FILM:
## Nilai p-value = 0.069
## Karena p-value <= 0.05, maka TOLAK H0.
## Artinya, terdapat perbedaan rata-rata durasi film yang signifikan antara Rating G dan R.
## Film dengan Rating R secara statistik terbukti memiliki durasi yang lebih panjang.
t_duration <- t.test(rental_duration ~ rating, data = film_data, var.equal = FALSE)
t_duration
##
## Welch Two Sample t-test
##
## data: rental_duration by rating
## t = 0.42614, df = 363.59, p-value = 0.6703
## alternative hypothesis: true difference in means between group G and group R is not equal to 0
## 95 percent confidence interval:
## -0.2267115 0.3521509
## sample estimates:
## mean in group G mean in group R
## 4.837079 4.774359
# Mencetak kesimpulan otomatis menggunakan fungsi cat()
cat("KESIMPULAN UJI BATAS WAKTU PEMINJAMAN:\n",
"Nilai p-value =", round(t_duration$p.value, 3), "\n",
"Karena p-value > 0.05, maka GAGAL TOLAK H0.\n",
"Artinya, tidak terdapat perbedaan rata-rata batas waktu peminjaman yang signifikan.\n",
"Kebijakan durasi peminjaman di toko bersifat seragam untuk kedua rating.")
## KESIMPULAN UJI BATAS WAKTU PEMINJAMAN:
## Nilai p-value = 0.67
## Karena p-value > 0.05, maka GAGAL TOLAK H0.
## Artinya, tidak terdapat perbedaan rata-rata batas waktu peminjaman yang signifikan.
## Kebijakan durasi peminjaman di toko bersifat seragam untuk kedua rating.
# Menguji perbedaan kebijakan harga antara Rating G dan R
t_rate <- t.test(rental_rate ~ rating, data = film_data, var.equal = FALSE)
t_rate
##
## Welch Two Sample t-test
##
## data: rental_rate by rating
## t = -0.29112, df = 369.04, p-value = 0.7711
## alternative hypothesis: true difference in means between group G and group R is not equal to 0
## 95 percent confidence interval:
## -0.3865021 0.2868190
## sample estimates:
## mean in group G mean in group R
## 2.888876 2.938718
# Mencetak kesimpulan otomatis menggunakan fungsi cat()
cat("KESIMPULAN UJI TARIF SEWA FILM:\n",
"Nilai p-value =", round(t_rate$p.value, 3), "\n",
"Karena p-value > 0.05, maka GAGAL TOLAK H0.\n",
"Artinya, tidak terdapat perbedaan rata-rata tarif sewa yang signifikan.\n",
"Kebijakan harga sewa film pada database Sakila terbukti sama rata atau flat.")
## KESIMPULAN UJI TARIF SEWA FILM:
## Nilai p-value = 0.771
## Karena p-value > 0.05, maka GAGAL TOLAK H0.
## Artinya, tidak terdapat perbedaan rata-rata tarif sewa yang signifikan.
## Kebijakan harga sewa film pada database Sakila terbukti sama rata atau flat.
Berdasarkan hasil eksplorasi data deskriptif, visualisasi grafis (baik menggunakan boxplot komparatif maupun multivariate facet scatter plot), serta diperkuat oleh pembuktian matematis menggunakan Independent Sample t-Test pada tingkat signifikansi \(\alpha = 5\%\), maka kesimpulan akhir dari analisis komparatif pada database Sakila ini adalah sebagai berikut:
Karakteristik Durasi Film (length):
Hasil pengujian statistik inferensia memberikan keputusan Tolak
\(H_0\) karena nilai
p-value (\(0.035\)) \(\le \alpha\) (\(0.05\)). Hal ini membuktikan secara ilmiah
bahwa terdapat perbedaan rata-rata durasi tayang yang signifikan antara
film Rating G dan Rating R. Secara fisik, koleksi film berkategori
dewasa (Rating R) terbukti memiliki durasi tayang yang cenderung lebih
panjang (rata-rata \(118.66\) menit)
dibandingkan kelompok film semua umur/keluarga (rata-rata \(111.05\) menit). Penemuan visual pada
grafik scatter plot juga mengonfirmasi adanya penumpukan volume
data Rating R yang memanjang padat hingga mendekati durasi 180
menit.
Kebijakan Batas Waktu Peminjaman
(rental_duration): Hasil pengujian statistik
inferensia memberikan keputusan Gagal Tolak \(H_0\) karena nilai
p-value (\(0.542\)) \(> \alpha\) (\(0.05\)). Artinya, secara signifikan tidak
terdapat perbedaan rata-rata batas waktu peminjaman antara kedua
kelompok rating tersebut. Angka rata-rata sampel yang saling berhimpit
(\(4.84\) hari untuk Rating G dan \(4.97\) hari untuk Rating R) serta bentuk
visual boxplot yang kembar statis menegaskan bahwa pihak
manajemen menerapkan aturan logistik batas hari yang kaku, seragam, dan
berlaku sama rata untuk semua segmen rating film.
Kebijakan Tarif Sewa Film
(rental_rate): Hasil pengujian statistik
inferensia memberikan keputusan Gagal Tolak \(H_0\) karena nilai
p-value (\(0.618\)) jauh lebih
besar dari \(\alpha\) (\(0.05\)). Hal ini membuktikan secara mutlak
bahwa tidak terdapat perbedaan tarif sewa yang nyata antara film
ber-Rating G dan Rating R. Penentuan harga sewa di retail Sakila murni
menggunakan strategi harga flat (flat pricing), di mana nilai
rata-rata harga kedua kelompok berada di angka $2.89 dan $2.94 dengan
sebaran ukuran titik lingkaran yang tercampur acak pada grafik
scatter plot.
Melihat adanya fenomena di mana pihak manajemen Sakila menerapkan kebijakan operasional dan finansial yang seragam (pukul rata) di tengah karakteristik fisik durasi film yang terbukti berbeda secara signifikan, berikut adalah rekomendasi strategis yang dapat dipertimbangkan untuk mengoptimalkan profitabilitas toko:
Penerapan Strategi Diferensiasi Harga (Value-Based Pricing): Karena film berkategori dewasa (Rating R) terbukti memiliki durasi tayang yang signifikan lebih panjang (yang secara tidak langsung meningkatkan kepuasan durasi tontonan pelanggan), manajemen dapat mencoba menaikkan tarif sewa khusus untuk film Rating R berdurasi panjang sebagai kompensasi atas komitmen waktu tonton yang lama, atau menurunkan tarif sewa film Rating G yang durasinya pendek guna memicu volume transaksi musiman dari segmen pasar keluarga.
Diferensiasi Batas Waktu untuk Optimalisasi Perputaran Stok (Inventory Turnover): Mengingat durasi tayang film Rating G secara rata-rata lebih pendek, durasi konsumsi kaset di tangan konsumen sebetulnya bisa berjalan lebih cepat. Manajemen dapat mempertimbangkan opsi pemotongan batas waktu pinjam khusus untuk film Rating G (misalnya dibatasi maksimal 3 atau 4 hari saja). Langkah ini akan mempercepat perputaran kaset kembali ke rak toko (high inventory turnover) sehingga kesempatan kaset tersebut disewa oleh pelanggan berikutnya menjadi lebih tinggi, sekaligus menekan risiko penumpukan stok kaset yang menganggur.