Import Data

car_sales <- read_xlsx("car sales.xlsx")
head(car_sales)
## # A tibble: 6 × 16
##   Car_id  Date                `Customer Name` Gender `Annual Income` Dealer_Name
##   <chr>   <dttm>              <chr>           <chr>            <dbl> <chr>      
## 1 C_CND_… 2022-01-02 00:00:00 Geraldine       Male             13500 Buddy Stor…
## 2 C_CND_… 2022-01-02 00:00:00 Gia             Male           1480000 C & M Moto…
## 3 C_CND_… 2022-01-02 00:00:00 Gianna          Male           1035000 Capitol KIA
## 4 C_CND_… 2022-01-02 00:00:00 Giselle         Male             13500 Chrysler o…
## 5 C_CND_… 2022-01-02 00:00:00 Grace           Male           1465000 Chrysler P…
## 6 C_CND_… 2022-01-02 00:00:00 Guadalupe       Male            850000 Classic Ch…
## # ℹ 10 more variables: Company <chr>, Model <chr>, Engine <chr>,
## #   Transmission <chr>, Color <chr>, `Price ($)` <dbl>, Dealer_No <chr>,
## #   `Body Style` <chr>, Phone <dbl>, Dealer_Region <chr>
str(car_sales)
## tibble [23,906 × 16] (S3: tbl_df/tbl/data.frame)
##  $ Car_id       : chr [1:23906] "C_CND_000001" "C_CND_000002" "C_CND_000003" "C_CND_000004" ...
##  $ Date         : POSIXct[1:23906], format: "2022-01-02" "2022-01-02" ...
##  $ Customer Name: chr [1:23906] "Geraldine" "Gia" "Gianna" "Giselle" ...
##  $ Gender       : chr [1:23906] "Male" "Male" "Male" "Male" ...
##  $ Annual Income: num [1:23906] 13500 1480000 1035000 13500 1465000 ...
##  $ Dealer_Name  : chr [1:23906] "Buddy Storbeck's Diesel Service Inc" "C & M Motors Inc" "Capitol KIA" "Chrysler of Tri-Cities" ...
##  $ Company      : chr [1:23906] "Ford" "Dodge" "Cadillac" "Toyota" ...
##  $ Model        : chr [1:23906] "Expedition" "Durango" "Eldorado" "Celica" ...
##  $ Engine       : chr [1:23906] "Double Overhead Camshaft" "Double Overhead Camshaft" "Overhead Camshaft" "Overhead Camshaft" ...
##  $ Transmission : chr [1:23906] "Auto" "Auto" "Manual" "Manual" ...
##  $ Color        : chr [1:23906] "Black" "Black" "Red" "Pale White" ...
##  $ Price ($)    : num [1:23906] 26000 19000 31500 14000 24500 12000 14000 42000 82000 15000 ...
##  $ Dealer_No    : chr [1:23906] "06457-3834" "60504-7114" "38701-8047" "99301-3882" ...
##  $ Body Style   : chr [1:23906] "SUV" "SUV" "Passenger" "SUV" ...
##  $ Phone        : num [1:23906] 8264678 6848189 7298798 6257557 7081483 ...
##  $ Dealer_Region: chr [1:23906] "Middletown" "Aurora" "Greenville" "Pasco" ...
summary(car_sales)
##     Car_id               Date                        Customer Name     
##  Length:23906       Min.   :2022-01-02 00:00:00.00   Length:23906      
##  Class :character   1st Qu.:2022-09-20 00:00:00.00   Class :character  
##  Mode  :character   Median :2023-03-13 00:00:00.00   Mode  :character  
##                     Mean   :2023-03-01 14:28:10.81                     
##                     3rd Qu.:2023-09-08 00:00:00.00                     
##                     Max.   :2023-12-31 00:00:00.00                     
##     Gender          Annual Income      Dealer_Name          Company         
##  Length:23906       Min.   :   10080   Length:23906       Length:23906      
##  Class :character   1st Qu.:  386000   Class :character   Class :character  
##  Mode  :character   Median :  735000   Mode  :character   Mode  :character  
##                     Mean   :  830840                                        
##                     3rd Qu.: 1175750                                        
##                     Max.   :11200000                                        
##     Model              Engine          Transmission          Color          
##  Length:23906       Length:23906       Length:23906       Length:23906      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##    Price ($)      Dealer_No          Body Style            Phone        
##  Min.   : 1200   Length:23906       Length:23906       Min.   :6000101  
##  1st Qu.:18001   Class :character   Class :character   1st Qu.:6746495  
##  Median :23000   Mode  :character   Mode  :character   Median :7496198  
##  Mean   :28090                                         Mean   :7497741  
##  3rd Qu.:34000                                         3rd Qu.:8248146  
##  Max.   :85800                                         Max.   :8999579  
##  Dealer_Region     
##  Length:23906      
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

Data Preparation

car_sales <- car_sales %>%
  mutate(Date = as.Date(Date))

Visualisasi 1: Tren Penjualan dari Waktu ke Waktu

sales_trend <- car_sales %>%
  group_by(Date) %>%
  summarise(Total_Sales = sum(`Price ($)`, na.rm = TRUE))

ggplot(sales_trend,
       aes(x = Date, y = Total_Sales)) +
  geom_line() +
  labs(title = "Tren Total Penjualan",
       x = "Tanggal",
       y = "Total Penjualan")

Visualisasi 2: Total Penjualan Berdasarkan Company

company_sales <- car_sales %>%
  group_by(Company) %>%
  summarise(Total_Sales = sum(`Price ($)`, na.rm = TRUE)) %>%
  arrange(desc(Total_Sales))

ggplot(company_sales,
       aes(x = reorder(Company, Total_Sales),
           y = Total_Sales)) +
  geom_col() +
  coord_flip() +
  labs(title = "Total Penjualan Berdasarkan Company",
       x = "Company",
       y = "Total Penjualan")

Visualisasi 3: Distribusi Body Style

ggplot(car_sales,
       aes(x = `Body Style`)) +
  geom_bar() +
  labs(title = "Distribusi Body Style",
       x = "Body Style",
       y = "Jumlah Mobil")

Visualisasi 4: Perbandingan Transmisi

ggplot(car_sales,
       aes(x = Transmission)) +
  geom_bar() +
  labs(title = "Distribusi Transmisi",
       x = "Transmission",
       y = "Jumlah Mobil")

Visualisasi 5: Penjualan Berdasarkan Gender

gender_sales <- car_sales %>%
  group_by(Gender) %>%
  summarise(Total_Sales = sum(`Price ($)`, na.rm = TRUE))

ggplot(gender_sales,
       aes(x = Gender,
           y = Total_Sales,
           fill = Gender)) +
  geom_col() +
  labs(title = "Total Penjualan Berdasarkan Gender",
       x = "Gender",
       y = "Total Penjualan")