1. Latar Belakang

Berikut ini merupakan data dari daftar video games dengan penjualan lebih dari 100.00 eksemplar.

Dengan data berikut saya akan menampilkan sebuah visualisasi dalam bentuk grafik/plot dengan hasil yaitu:

Analisis 1 : Jumlah Penjualan Global (Global Sales) berdasarkan dari Genre game yang dimainkan

Analisis 2 : Hubungan antara Penjualan Global (Global Sales) dengan Tahun Penerbitan

2. Set Up

Import Data

vgsales <- read.csv("vgsales.csv", sep=",", na.strings = c("N/A"))
head(vgsales)

Aktifkan library

library(tidyverse)
library(scales)
library(ggrepel)

3. Inspeksi Data

Mengecek tipe data

glimpse(vgsales)
## Rows: 16,598
## Columns: 11
## $ Rank         <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,...
## $ Name         <chr> "Wii Sports", "Super Mario Bros.", "Mario Kart Wii", "...
## $ Platform     <chr> "Wii", "NES", "Wii", "Wii", "GB", "GB", "DS", "Wii", "...
## $ Year         <int> 2006, 1985, 2008, 2009, 1996, 1989, 2006, 2006, 2009, ...
## $ Genre        <chr> "Sports", "Platform", "Racing", "Sports", "Role-Playin...
## $ Publisher    <chr> "Nintendo", "Nintendo", "Nintendo", "Nintendo", "Ninte...
## $ NA_Sales     <dbl> 41.49, 29.08, 15.85, 15.75, 11.27, 23.20, 11.38, 14.03...
## $ EU_Sales     <dbl> 29.02, 3.58, 12.88, 11.01, 8.89, 2.26, 9.23, 9.20, 7.0...
## $ JP_Sales     <dbl> 3.77, 6.81, 3.79, 3.28, 10.22, 4.22, 6.50, 2.93, 4.70,...
## $ Other_Sales  <dbl> 8.46, 0.77, 3.31, 2.96, 1.00, 0.58, 2.90, 2.85, 2.26, ...
## $ Global_Sales <dbl> 82.74, 40.24, 35.82, 33.00, 31.37, 30.26, 30.01, 29.02...

Terdapat kolom dengan tipe data yang tidak sesuai, yaitu kolom “Platform”, “Year”, “Genre”, dan “Publisher”.

Tetapi karena data yang dibutuhkan untuk analisis visualisasi hanya berfokus pada “Year” dan “Genre”, maka hanya 2 kolom itu saja yang diubah tipe datanya sekaligus sebagai efesiensi metode pengerjaan dan efektifitas waktu pengerjaan.

Mengubah tipe data kolom menjadi lebih sesuai

vgsales$Year <- as.factor(vgsales$Year)
vgsales$Genre <- as.factor(vgsales$Genre)
glimpse(vgsales)
## Rows: 16,598
## Columns: 11
## $ Rank         <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,...
## $ Name         <chr> "Wii Sports", "Super Mario Bros.", "Mario Kart Wii", "...
## $ Platform     <chr> "Wii", "NES", "Wii", "Wii", "GB", "GB", "DS", "Wii", "...
## $ Year         <fct> 2006, 1985, 2008, 2009, 1996, 1989, 2006, 2006, 2009, ...
## $ Genre        <fct> Sports, Platform, Racing, Sports, Role-Playing, Puzzle...
## $ Publisher    <chr> "Nintendo", "Nintendo", "Nintendo", "Nintendo", "Ninte...
## $ NA_Sales     <dbl> 41.49, 29.08, 15.85, 15.75, 11.27, 23.20, 11.38, 14.03...
## $ EU_Sales     <dbl> 29.02, 3.58, 12.88, 11.01, 8.89, 2.26, 9.23, 9.20, 7.0...
## $ JP_Sales     <dbl> 3.77, 6.81, 3.79, 3.28, 10.22, 4.22, 6.50, 2.93, 4.70,...
## $ Other_Sales  <dbl> 8.46, 0.77, 3.31, 2.96, 1.00, 0.58, 2.90, 2.85, 2.26, ...
## $ Global_Sales <dbl> 82.74, 40.24, 35.82, 33.00, 31.37, 30.26, 30.01, 29.02...

Mengecek data yang missing

colSums(is.na(vgsales))
##         Rank         Name     Platform         Year        Genre    Publisher 
##            0            0            0          271            0           58 
##     NA_Sales     EU_Sales     JP_Sales  Other_Sales Global_Sales 
##            0            0            0            0            0

Pada kolom “Year” terdapat missing value sebanyak 271, dan pada kolom “Publisher” sebanyak 58. Karena terdapat missing value, maka yang saya lakukan adalah menghilangkan missing value tersebut

Menghapus missing value

vgsaless <- na.omit(vgsales)

Pengecekan missing value setelah di hapus

colSums(is.na(vgsaless))
##         Rank         Name     Platform         Year        Genre    Publisher 
##            0            0            0            0            0            0 
##     NA_Sales     EU_Sales     JP_Sales  Other_Sales Global_Sales 
##            0            0            0            0            0

4. Subsetting dan Aggregation

Subsetting dan Aggregation data dilakukan untuk memilih dan mengolah data yang akan kita gunakan untuk visualisasi

4.1 Jumlah Penjualan Global (Global Sales) berdasarkan dari Genre game yang dimainkan

Membuat variabel bernama “data1” untuk dianalisis

data1 <- vgsaless[,c("Genre","Global_Sales")]
data1 <- aggregate(Global_Sales~Genre,vgsaless,FUN=mean)
data1

4.2 Hubungan antara Penjualan Global (Global Sales) dengan Tahun Penerbitan

Membuat variabel bernama “data2” untuk dianalisis

data2 <- vgsaless[,c("Year","Global_Sales")]
data2 <- aggregate(Global_Sales~Year,vgsaless,FUN=mean)
data2

5. Visualisasi

Menampilkan data dengan visualisasi

5.1 Jumlah Penjualan Global (Global Sales) berdasarkan dari Genre game yang dimainkan

plot1 <-  ggplot(data1,aes(x=Global_Sales, y=reorder(Genre,Global_Sales))) +
          geom_col(fill="darkblue",show.legend = F) +
          geom_text(aes(label= round(Global_Sales,2)),color="white") +
          labs(title="Top Genre by Global Sales",x="Global Sales", y="Genre") +
          scale_x_continuous(labels = dollar_format(prefix="$",suffix = "M"))+
          theme_dark()
plot1

5.2 Hubungan antara Penjualan Global (Global Sales) dengan Tahun Penerbitan

plot2 <-  ggplot(data2,aes(x=Global_Sales, y=Year)) +
          geom_point(pch=15,color="darkblue") +
          geom_text_repel(data = data2[order(data2$Global_Sales, decreasing = T)[1] , ],
          aes(label = round(Global_Sales,2)), size = 3) +
          geom_text_repel(data = data2[order(data2$Global_Sales, decreasing = F)[1] , ],
          aes(label = round(Global_Sales,2)), size = 3) +
          theme_minimal()+
          labs(title = "Hubungan antara Penjualan dengan Tahun Penerbitan",
          x = "Global Sales",
          y = "Year") +
          scale_x_continuous(labels = dollar_format(prefix="$",suffix = "M"))

plot2

6. Summary

Dari data yang sudah diolah dan divisualisasi data diambil beberapa kesimpulan.

6.1 Jumlah Penjualan Global (Global Sales) berdasarkan dari Genre game yang dimainkan.

Analisis:

-Terdapat 12 Genre game dipasaran (market) pada tahun 1980 hingga 2020

-Game dengan Genre Platfrom merupakan Genre yang paling laris dengan jumlah penjualan global sebanyak $0.95 Millions

-Game dengan Genre Adventure merupakan Genre yang kurang laris dengan jumlah penjualan global sebanyak $0.18 Millions

Saran:

Berdasarkan analisis diatas dapat disarankan jika pembuat game ingin membuat game maka buatlah dengan genre Platform, karena genre tersebut merupakan genre yang paling laris/laku dipasaran.

6.2 Hubungan antara Penjualan Global (Global Sales) dengan Tahun Penerbitan.

Analisis:

-Penjualan game di analisis mulai dari tahun 1980 hingga 2020

-Penjualan tertinggi dengan nilai $4.32 Millions ada pada tahun 1989

-Penjualan tertinggi dengan nilai $0.02 Millions ada pada tahun 2017

-Nilai penjualan mulai terlihat konstan dengan nilai yang tidak begitu jauh antar tahunnya, mulai dari tahun 1993 hingga 2020

Saran:

Berdasarkan analisis diatas dapat disarankan jika pembuat game ingin membuat game yang memiliki nilai penjualan yang tinggi, maka pembuat game dapat melihat refrensi baik secara konsep ataupun tipe game dari game yang ada pada tahun 1980 sampai 1990 dan pastinya bisa dikemas secara modern