File ini berisi template untuk mejawab pertanyaan 5W+1H saat briefing Capstone Data Visualization sebagai langkah awal sebelum membuat Dashboard. Silakan Bapak/Ibu mengisi jawaban di bawah.
File ini tidak akan dinilai namun Bapak/Ibu WAJIB disubmit ke dalam classroom pada hari H briefing Capstone Data Visualization.
Tentukan tujuan atau informasi yang ingin ditampilkan dalam dashboard
Jawab Tujuan yang ingin dicapai atau informasi yang ingin disampaikan: - Memberikan informasi brand terhadap first-jobber (orang yang baru pertama kali pekerja) terkait mobil bekas namun tetap value for economic (masih berada pada tahun yang cukup baru, dengan performance yang cukup tinggi (horse power))
Untuk siapa dashboard ini dibuat? Siapa target pembaca dari dashboard ini?
Jawab First Jobber (Orang yang baru pertama kali bekerja bekerja)
Apakah data yang dibuat relevan atau sesuai dengan tujuan? Mengapa?
Jawab Relevan, karna orang yang pertama kali bekerja cenderung memiliki budget pas-pasan, namun kebutuhan terhadap mobil tetap ada sehingga mobil bekas bisa dijadikan sebagai salah satu opsi. Preferensi mobil bekas : a. Harga Rendah b. Horse Power (Performance) Tinggi c. Kilometer Rendah Opsional d. Matic Transmission e. Belum pernah rusak
Apakah data yang digunakan masih up to date atau masih relevan dengan kondisi sekarang? Apakah ada informasi tentang tanggal update terakhir dari data tersebut?
Jawab Benar, data yang digunakan masih berada di range 2018 terakhir
Bagaimana Bapak/Ibu menggunakan visualisasi untuk menjawab tujuan yang telah disebutkan?
Jawab -> Boxplot, untuk visualisasi persebaran rata-rata harga/ HorsePower : Menggali brand dengan Price/HorsePower paling murah - Direkomendasikan ke first jobber yang murah namun tetap handal -> Selanjutnya Harga/Power di consider dengan umur mobil (preferensi mobil dengan umur termuda sejak pembuatan)
#seleksi kolom yang akan digunakan dalam pengolahan
df2 <- df %>%
select(dateCreated,
brand,
yearOfRegistration,
kilometer,
price,
fuelType,
powerPS,
gearbox,
notRepairedDamage) %>%
#merubah tanggal kedalam format Date
mutate(
Registered = as.integer(yearOfRegistration),
Created_at = ymd(as.Date(dateCreated))
) %>%
select(-c("dateCreated", "yearOfRegistration"))
str(df2)## 'data.frame': 189349 obs. of 9 variables:
## $ brand : Factor w/ 40 levels "alfa_romeo","audi",..: 39 2 15 39 32 3 26 39 11 39 ...
## $ kilometer : int 150000 125000 125000 150000 90000 150000 150000 40000 30000 150000 ...
## $ price : int 480 18300 9800 1500 3600 650 2200 0 14500 999 ...
## $ fuelType : Factor w/ 8 levels "","andere","benzin",..: 3 5 5 3 5 3 3 3 3 1 ...
## $ powerPS : int 0 190 163 75 69 102 109 50 125 101 ...
## $ gearbox : Factor w/ 3 levels "","automatik",..: 3 3 2 3 3 3 3 3 3 3 ...
## $ notRepairedDamage: Factor w/ 3 levels "","ja","nein": 1 2 1 3 3 2 3 3 1 1 ...
## $ Registered : int 1993 2011 2004 2001 2008 1995 2004 1980 2014 1998 ...
## $ Created_at : Date, format: "2016-03-24" "2016-03-24" ...
Kesimpulan
Diperoleh kesimpulan bahwa data tersebar secara dominan di range under 200,000 sehingga data diatas 200,000 perlu dihilangkan
Kesimpulan
Diperoleh salah satu kesimpulan bahwa ada data outlier, perlu dihilangkan nilai ‘Registered’ setelah 2020 dan sebelum 1800
Kesimpulan
Terdapat mobil yang masih terhitung baru, namun sudah dijual oleh pembilnya, potensi untuk direkomendasikan kepada pembeli
Kesimpulan
Mobil dengan transmisi automatis cenderung lebih mahal dibandingkan dengan mobil dengan transmisi manual
Kesimpulan
Mobil yang memiliki kerusakan berat memiliki harga rendah dibandingkan mobil yang belum mengalami kerusakan berat
Sehingga dari EDA pada bagian sebelumnya serta beberapa kesimpulan diatas diperoleh informasi bahwa:
df2 <- df2%>%
filter(gearbox == "manuell" | gearbox == "automatik",
fuelType %in% c("andere","benzin","cng","diesel","elektro","hybrid","lpg"),
notRepairedDamage %in% c("nein","ja"),
powerPS != 0,
price <= 200000 & price >0,
Registered > 1800 & Registered < 2020,
powerPS <= 400
) %>%
mutate(
valformon = price/ powerPS,
age = 2020 - Registered, # umur kendaraan
vfmpy = valformon/age #harga setiap power per tahun
) %>%
arrange(Registered, desc=TRUE)
#cek hasil seleksi
head(df2)Cocok bagi mereka yang hanya mempertimbangkan ketersediaan budget
dv1 <- df2 %>%
dplyr::group_by(brand) %>%
summarise(price = mean(price),
age = mean(age)) %>%
mutate(price = round(price,2)) %>%
ungroup() %>%
arrange(price) %>%
slice(1:10) %>%
print()## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 10 x 3
## brand price age
## <fct> <dbl> <dbl>
## 1 daewoo 1121. 18
## 2 daihatsu 2087. 17.6
## 3 rover 2155. 19.4
## 4 trabant 2517. 36.6
## 5 renault 2906. 16.5
## 6 fiat 3360. 16.2
## 7 opel 3488. 17.1
## 8 lancia 3535. 19.2
## 9 peugeot 3701. 15.7
## 10 mitsubishi 3825. 17.4
Cocok bagi mereka yang tidak hanya mempertimbangkan ketersediaan budget namun juga performa mesin
dv2 <- df2 %>%
dplyr::group_by(brand) %>%
summarise(price = mean(price),
age = mean(age),
power_rate = mean(valformon)) %>%
mutate(price = round(price,2)) %>%
ungroup() %>%
arrange(power_rate) %>%
slice(1:10) %>%
print()## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 10 x 4
## brand price age power_rate
## <fct> <dbl> <dbl> <dbl>
## 1 daewoo 1121. 18 13.4
## 2 rover 2155. 19.4 16.4
## 3 chrysler 4787. 18.1 26.2
## 4 saab 4350. 20.0 26.9
## 5 daihatsu 2087. 17.6 28.8
## 6 mitsubishi 3825. 17.4 30.0
## 7 renault 2906. 16.5 31.0
## 8 opel 3488. 17.1 32.4
## 9 lancia 3535. 19.2 32.5
## 10 subaru 5118. 18.2 33.2
#Theme Inisialization
theme_visualization <- theme(
panel.background = element_rect(fill = "darkblue"),
panel.grid.major = element_line(colour = "gray80"),
panel.grid.minor = element_blank(),
plot.title = element_text(family = "helvetica",
size = 18)
)vis1 <- dv1 %>%
ggplot( aes(x = price,
y = reorder(brand,price,desc=TRUE),
color = brand,
group = brand,
fill = brand,
text = glue("Average Price : {price}
Average Car Age : {round(age,2)}")
)
) +
geom_col() +
labs(title = "10 Brand dengan Rata-Rata Harga Mobil Bekas Terendah",
x = "brand",
y = "Average Price",
color = "Brand"
) +
theme_visualization
ggplotly(vis1, tooltip = "text") ## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
## Please use `group_by()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
vis2 <- dv2 %>%
ggplot( aes(x = power_rate,
y = reorder(brand,power_rate),
color = brand,
group = brand,
fill = brand,
text = glue("Power Rate : {power_rate}
Average Price : {price}
Average Car Age : {round(age,2)}")
)
) +
geom_col() +
labs(title = "TOP 10 Brand dengan Average Power Rate Terendah",
x = "Power Rate",
y = "Brand",
color = "Brand"
) +
theme_visualization
ggplotly(vis2, tooltip = "text")