Email:
RPubs: https://rpubs.com/sherlytaurin/


1 Latar Belakang

Andikan Anda adalah seorang Manajer dibidang projek Data Scince, ingin melakukan analisis perilaku pelanggan menggunakan data transaksi perusahaan ritel online di Inggris (yang memperoleh dataset dalam kurung waktu antara 01/12/2010 dan 09/12/2011). Diketahui dari data tersebut banyak pelanggan perusahaan adalah grosir (pemasok). Selain itu, ada beberapa hal penting yang perlu diperhatikan mengenai data tersebut adalah sebagai berikut:

Variabel Deskripsi
invoice_no Nomor invoice terdiri dari 6 digit unik untuk setiap transaksi. Jika diawali dengan huruf C, ini menandakan bahwa transaksi tersebut berstatus Batal
stock_code Kode produk yang unik untuk setiap produk, terdiri dari 5 digit angka yang unik untuk setiap produk (Deskripsi Nama Produk).
quantity Jumlah produk yang dibeli
invoice_date Tanggal dan waktu transaksi
unit_price Harga produk per unit
customer_id ID Pelanggan terdiri dari 5 digit angka yang unik untuk setiap pelanggan.
country Negara pelanggan

Anda dapat mengunduh data yang digunakan dalam kasus ini di Google Classrom atau klik Retail.xlsx dan Retail.rds.

2 Tugas 1

Import kedua data tersebut ke Rstudio Anda sesuai dengan jenis file masing-masing (Proses import mana yang lebih baik menurut Anda?).

##   InvoiceNo StockCode                        Description Quantity
## 1    536365    85123A WHITE HANGING HEART T-LIGHT HOLDER        6
## 2    536365     71053                WHITE METAL LANTERN        6
## 3    536365    84406B     CREAM CUPID HEARTS COAT HANGER        8
##           InvoiceDate UnitPrice CustomerID        Country
## 1 2010-12-01 08:26:00      2.55      17850 United Kingdom
## 2 2010-12-01 08:26:00      3.39      17850 United Kingdom
## 3 2010-12-01 08:26:00      2.75      17850 United Kingdom
## # A tibble: 3 x 8
##   InvoiceNo StockCode Description Quantity InvoiceDate         UnitPrice
##   <chr>     <chr>     <chr>          <dbl> <dttm>                  <dbl>
## 1 536365    85123A    WHITE HANG~        6 2010-12-01 08:26:00      2.55
## 2 536365    71053     WHITE META~        6 2010-12-01 08:26:00      3.39
## 3 536365    84406B    CREAM CUPI~        8 2010-12-01 08:26:00      2.75
## # ... with 2 more variables: CustomerID <dbl>, Country <chr>

Argumen Anda: Menurut saya proses import yang lebih baik adalah readRDS/ Retail.rds karena untuk mengimportnya tidak diperlukan package lagi lantaran function yang ada sudah berasal dari R base. Sehingga proses Import akan lebih cepat dibandingkan menggunakan file xlsx yang membutuhkan package readxl

3 Tugas 2

Ubah nama variabel data tersebut agar lebih mudah dipelajari oleh pembaca.

## # A tibble: 541,909 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <dbl> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 541,899 more rows, and 2 more variables: ID_Customer <dbl>,
## #   Negara <chr>

Argumen Anda: Saya mengganti semua nama variabel menjadi bahasa yang biasa digunakan di Indonesia untuk mempermudah dibaca oleh pembaca apabila pembaca orang Indonesia.

4 Tugas 3

Lakukan pemeriksaan struktur data untuk mengubah jenis kumpulan data (jika ada yang perlu diubah).

## tibble [541,909 x 8] (S3: tbl_df/tbl/data.frame)
##  $ No_Invoice       : chr [1:541909] "536365" "536365" "536365" "536365" ...
##  $ Kode_Barang      : chr [1:541909] "85123A" "71053" "84406B" "84029G" ...
##  $ Nama_Barang      : chr [1:541909] "WHITE HANGING HEART T-LIGHT HOLDER" "WHITE METAL LANTERN" "CREAM CUPID HEARTS COAT HANGER" "KNITTED UNION FLAG HOT WATER BOTTLE" ...
##  $ Kuantitas        : num [1:541909] 6 6 8 6 6 2 6 6 6 32 ...
##  $ Tanggal_Transaksi: POSIXct[1:541909], format: "2010-12-01 08:26:00" "2010-12-01 08:26:00" ...
##  $ Harga_Satuan     : num [1:541909] 2.55 3.39 2.75 3.39 3.39 7.65 4.25 1.85 1.85 1.69 ...
##  $ ID_Customer      : num [1:541909] 17850 17850 17850 17850 17850 ...
##  $ Negara           : chr [1:541909] "United Kingdom" "United Kingdom" "United Kingdom" "United Kingdom" ...
##   invoice_unique kode_barang_unique nama_barang_unique negara_unique
## 1          25900               4070               4212            38
##   customer_unique
## 1            4373
## # A tibble: 541,909 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 541,899 more rows, and 2 more variables: ID_Customer <int>,
## #   Negara <fct>

Argumen Anda: Berdasarkan pemeriksaan struktur data, semua strukturnya sudah sesuai. Tetapi dengan mencari total variabelnya, country hanya berjumlah 38 sehingga cocok untuk diubah menjadi factor. Karena datanya sudah pasti seperti variabel tetap.

5 Tugas 4

Pembersihan data atau disebut juga data scrubbing adalah proses menganalisis kualitas data dengan cara mengubah. Anda sebagai Manajer juga dapat memperbaiki atau menghapus data tersebut. Beberapa hal yang mungkin dilakukan dalam projek ini adalah:

5.1 Transaksi yang dibatalkan

## # A tibble: 532,621 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 532,611 more rows, and 2 more variables: ID_Customer <int>,
## #   Negara <fct>

Argumen Anda: Diketahui ada 9.288 transaksi yang dibatalkan dilihat dari Invoicenya. Dengan itu saya menghapus data yang dibatalkan ini. Sisa datanya menjadi 532621 dari 541909

5.2 Faktur tidak valid

## # A tibble: 3 x 8
##   No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##   <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
## 1 A563185    B           Adjust bad~         1 2011-08-12 14:50:00       11062.
## 2 A563186    B           Adjust bad~         1 2011-08-12 14:51:00      -11062.
## 3 A563187    B           Adjust bad~         1 2011-08-12 14:52:00      -11062.
## # ... with 2 more variables: ID_Customer <int>, Negara <fct>
## # A tibble: 532,618 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 532,608 more rows, and 2 more variables: ID_Customer <int>,
## #   Negara <fct>

Argumen Anda: Faktur / No Invoice yang valid terdiri dari 6 angka, tetapi saat di chek, terdapat 3 data yang Invoicenya lebih dari 6 digit sehingga data itu tidak valid dan saya hapus. Sehingga data akan berkurang dari 532621 menjadi 532618.

5.3 Kuantitas tidak valid

## [1] 1336
## # A tibble: 531,282 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 531,272 more rows, and 2 more variables: ID_Customer <int>,
## #   Negara <fct>

Argumen Anda: Dalam transaksi, seharusnya Kuantitas > 0. Sedangkan pada data terdapat 1336 data yang kuantitasnya <=0 yang berarti tidak valid. Oleh karena itu data tersebut saya hapus (saya filter untuk mendapatkan data yang kuantitasnya > 0 ). Data berkurang 532618 menjadi 531282.

5.4 Harga Satuan Tidak Valid

## [1] 1179
## # A tibble: 530,103 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 530,093 more rows, and 2 more variables: ID_Customer <int>,
## #   Negara <fct>

Argumen Anda: Ada 1181 data Harga Satuan yang tidak valid, dengan itu saya memfilter data sehingga yang ditampilkan hanya data yang Harga Satuannya > 0 . Data berkurang dari 531282 menjadi 530103.

5.5 Produk Tidak Valid

## # A tibble: 16 x 2
##    Kode_Barang  Nama_Barang                       
##    <chr>        <chr>                             
##  1 15056bl      EDWARDIAN PARASOL BLACK           
##  2 15056BL      EDWARDIAN PARASOL BLACK           
##  3 AMAZONFEE    AMAZON FEE                        
##  4 BANK CHARGES Bank Charges                      
##  5 DCGS0003     BOXED GLASS ASHTRAY               
##  6 DCGS0004     HAYNES CAMPER SHOULDER BAG        
##  7 DCGS0069     OOH LA LA DOGS COLLAR             
##  8 DCGS0070     CAMOUFLAGE DOG COLLAR             
##  9 DCGS0076     SUNJAR LED NIGHT NIGHT LIGHT      
## 10 DCGSSBOY     BOYS PARTY BAG                    
## 11 DCGSSGIRL    GIRLS PARTY BAG                   
## 12 gift_0001_10 Dotcomgiftshop Gift Voucher £10.00
## 13 gift_0001_20 Dotcomgiftshop Gift Voucher £20.00
## 14 gift_0001_30 Dotcomgiftshop Gift Voucher £30.00
## 15 gift_0001_40 Dotcomgiftshop Gift Voucher £40.00
## 16 gift_0001_50 Dotcomgiftshop Gift Voucher £50.00
## # A tibble: 527,734 x 8
##    No_Invoice Kode_Barang Nama_Barang Kuantitas Tanggal_Transaksi   Harga_Satuan
##    <chr>      <chr>       <chr>           <int> <dttm>                     <dbl>
##  1 536365     85123A      WHITE HANG~         6 2010-12-01 08:26:00         2.55
##  2 536365     71053       WHITE META~         6 2010-12-01 08:26:00         3.39
##  3 536365     84406B      CREAM CUPI~         8 2010-12-01 08:26:00         2.75
##  4 536365     84029G      KNITTED UN~         6 2010-12-01 08:26:00         3.39
##  5 536365     84029E      RED WOOLLY~         6 2010-12-01 08:26:00         3.39
##  6 536365     22752       SET 7 BABU~         2 2010-12-01 08:26:00         7.65
##  7 536365     21730       GLASS STAR~         6 2010-12-01 08:26:00         4.25
##  8 536366     22633       HAND WARME~         6 2010-12-01 08:28:00         1.85
##  9 536366     22632       HAND WARME~         6 2010-12-01 08:28:00         1.85
## 10 536367     84879       ASSORTED C~        32 2010-12-01 08:34:00         1.69
## # ... with 527,724 more rows, and 2 more variables: ID_Customer <int>,
## #   Negara <fct>

Argumen Anda: Saya menghapus Kode Barang yang digitnya kurang dari 5, karena sudah pasti salah kalau berdasarkan keterangan yang ada. Lalu saya mencari Kode barang yang digitnya lebih dari 5 dan menyesuaikannya dengan Nama Barang. Saya juga menggunakan distinct untuk menghilangkan data yang berganda. Dari data yang didapat, bisa dilihat ada beberapa Kode Barang yang bukan menyatakan Nama Barang yang dijual. Kode Barang itulah yang saya hapus. Sehingga data berkurang dari 530103 menjadi 527734.

5.6 Deskripsi Ganda & Stok

##   kode_barang_unique nama_barang_unique kode_nama_unique
## 1               3905               3999             4141
## # A tibble: 217 x 2
##    Kode_Barang description_count
##    <chr>                   <int>
##  1 16156L                      2
##  2 17107D                      3
##  3 20622                       2
##  4 20725                       2
##  5 20914                       2
##  6 21109                       2
##  7 21112                       2
##  8 21175                       2
##  9 21232                       2
## 10 21243                       2
## # ... with 207 more rows
## # A tibble: 1 x 3
##   stock_code_unique description_unique stock_description_unique
##               <int>              <int>                    <int>
## 1              3905               3770                     3905
## # A tibble: 1 x 3
##   stock_code_unique description_unique stock_description_unique
##               <int>              <int>                    <int>
## 1              3770               3770                     3770

Argumen Anda: Jumlah Kode barang seharusnya sama dengan Nama barang dan sama dengan kode barang digabung dengan nama barang. Tetapi saat di cek, jumlahnya berbeda. Maka ada Deskripsi Ganda disana.Saat di cek, terdapat 217 kode barang yang memiliki lebih dari 1 nama barang. Oleh karena itu harus disesuaikan dan dibersihkan dengan menyesuaikan nama barang dari setiap produk menggunakan nama barang pada transaksi terakhir setiap produk. Sehingga pada akhirnya Kode barang dan Nama barang masing masing ada 3370. Pada proses ini, setiap nama barang, memiliki kodenya masing masing dan tidak ada barang yang kodenya ganda, atau sebaliknya.

5.7 Kewarganegaraan Tidak Valid

## # A tibble: 1 x 2
##   customer_unique customer_negara_unique
##             <int>                  <int>
## 1            4335                   4335

Argumen Anda: Berdasarkan informasi variabel Country, seharusnya setiap customer seharusnya memiliki 1 negara. Jika lebih dari 1, maka statusnya tidak valid. Bisa diasumsikan misalkan ada customer yang berpindah negara, sehingga kita bisa menyesuaikan negaranya berdasarkan negara terakhir customer tersebut melakukan transaksi. Sehingga setiap customer memiliki 1 negara.

5.8 Pemutusan Berkala

## # A tibble: 502,704 x 8
##    No_Invoice Kuantitas Tanggal_Transaksi   Harga_Satuan ID_Customer Nama_Barang
##    <chr>          <int> <dttm>                     <dbl>       <int> <chr>      
##  1 536365             6 2010-12-01 08:26:00         2.55       17850 CREAM HANG~
##  2 536365             6 2010-12-01 08:26:00         3.39       17850 WHITE MORO~
##  3 536365             8 2010-12-01 08:26:00         2.75       17850 CREAM CUPI~
##  4 536365             6 2010-12-01 08:26:00         3.39       17850 KNITTED UN~
##  5 536365             6 2010-12-01 08:26:00         3.39       17850 RED WOOLLY~
##  6 536365             2 2010-12-01 08:26:00         7.65       17850 SET 7 BABU~
##  7 536365             6 2010-12-01 08:26:00         4.25       17850 GLASS STAR~
##  8 536366             6 2010-12-01 08:28:00         1.85       17850 HAND WARME~
##  9 536366             6 2010-12-01 08:28:00         1.85       17850 HAND WARME~
## 10 536367            32 2010-12-01 08:34:00         1.69       13047 ASSORTED C~
## # ... with 502,694 more rows, and 2 more variables: Kode_Barang <chr>,
## #   Negara <fct>

Argumen Anda: Data transaksi yang ada mulai dari 2010-12-01 sampai 2011-12-09. Karena data pada Desember 2011 tidak lengkap, maka lebih baik data di hapus dan transaksi yang digunakan adalah transaksi dari Desember 2010 sampai November 2011 atau dengan kata lain full satu tahun.

5.9 Data Duplikat

##   row_of_data row_of_unique_data
## 1      502704             497681
## # A tibble: 497,681 x 8
##    No_Invoice Kuantitas Tanggal_Transaksi   Harga_Satuan ID_Customer Nama_Barang
##    <chr>          <int> <dttm>                     <dbl>       <int> <chr>      
##  1 536365             6 2010-12-01 08:26:00         2.55       17850 CREAM HANG~
##  2 536365             6 2010-12-01 08:26:00         3.39       17850 WHITE MORO~
##  3 536365             8 2010-12-01 08:26:00         2.75       17850 CREAM CUPI~
##  4 536365             6 2010-12-01 08:26:00         3.39       17850 KNITTED UN~
##  5 536365             6 2010-12-01 08:26:00         3.39       17850 RED WOOLLY~
##  6 536365             2 2010-12-01 08:26:00         7.65       17850 SET 7 BABU~
##  7 536365             6 2010-12-01 08:26:00         4.25       17850 GLASS STAR~
##  8 536366             6 2010-12-01 08:28:00         1.85       17850 HAND WARME~
##  9 536366             6 2010-12-01 08:28:00         1.85       17850 HAND WARME~
## 10 536367            32 2010-12-01 08:34:00         1.69       13047 ASSORTED C~
## # ... with 497,671 more rows, and 2 more variables: Kode_Barang <chr>,
## #   Negara <fct>

Argumen Anda: Dengan membandingkan banyak data dan Data yang sudah di distinct, dapat dilihat terdapat data yang duplikat. Sehingga Data yang tidak memberikan informasi yang penting saha hapus.

5.10 Fitur ekstraksi

## # A tibble: 497,681 x 9
##    No_Invoice Tanggal_Transaksi   ID_Customer Negara Kode_Barang Nama_Barang
##    <chr>      <dttm>                    <int> <fct>  <chr>       <chr>      
##  1 536365     2010-12-01 08:26:00       17850 Unite~ 85123A      CREAM HANG~
##  2 536365     2010-12-01 08:26:00       17850 Unite~ 71053       WHITE MORO~
##  3 536365     2010-12-01 08:26:00       17850 Unite~ 84406B      CREAM CUPI~
##  4 536365     2010-12-01 08:26:00       17850 Unite~ 84029G      KNITTED UN~
##  5 536365     2010-12-01 08:26:00       17850 Unite~ 84029E      RED WOOLLY~
##  6 536365     2010-12-01 08:26:00       17850 Unite~ 22752       SET 7 BABU~
##  7 536365     2010-12-01 08:26:00       17850 Unite~ 21730       GLASS STAR~
##  8 536366     2010-12-01 08:28:00       17850 Unite~ 22633       HAND WARME~
##  9 536366     2010-12-01 08:28:00       17850 Unite~ 22632       HAND WARME~
## 10 536367     2010-12-01 08:34:00       13047 Unite~ 84879       ASSORTED C~
## # ... with 497,671 more rows, and 3 more variables: Kuantitas <int>,
## #   Harga_Satuan <dbl>, Harga_Total <dbl>

Argumen Anda: untuk mengekstrak total nilai transaksi / Harga Total, kita bisa menggunakan rumus $ quantity * price $ .

5.11 Nilai yang hilang

##        No_Invoice Tanggal_Transaksi       ID_Customer            Negara 
##                 0                 0            123540                 0 
##       Kode_Barang       Nama_Barang         Kuantitas      Harga_Satuan 
##                 0                 0                 0                 0 
##       Harga_Total 
##                 0
## # A tibble: 374,141 x 9
##    No_Invoice Tanggal_Transaksi   ID_Customer Negara Kode_Barang Nama_Barang
##    <chr>      <dttm>                    <int> <fct>  <chr>       <chr>      
##  1 536365     2010-12-01 08:26:00       17850 Unite~ 85123A      CREAM HANG~
##  2 536365     2010-12-01 08:26:00       17850 Unite~ 71053       WHITE MORO~
##  3 536365     2010-12-01 08:26:00       17850 Unite~ 84406B      CREAM CUPI~
##  4 536365     2010-12-01 08:26:00       17850 Unite~ 84029G      KNITTED UN~
##  5 536365     2010-12-01 08:26:00       17850 Unite~ 84029E      RED WOOLLY~
##  6 536365     2010-12-01 08:26:00       17850 Unite~ 22752       SET 7 BABU~
##  7 536365     2010-12-01 08:26:00       17850 Unite~ 21730       GLASS STAR~
##  8 536366     2010-12-01 08:28:00       17850 Unite~ 22633       HAND WARME~
##  9 536366     2010-12-01 08:28:00       17850 Unite~ 22632       HAND WARME~
## 10 536367     2010-12-01 08:34:00       13047 Unite~ 84879       ASSORTED C~
## # ... with 374,131 more rows, and 3 more variables: Kuantitas <int>,
## #   Harga_Satuan <dbl>, Harga_Total <dbl>

Argumen Anda: Nilai yang hilang pada Data, terdapat pada ID_Customer dimana ada 131327 data ID Customer yang hilang. Sehingga data yang hilang ini dianggap tidak valid dan akan saya hapus.

6 Tugas 5

Simpan data yang sudah Anda bersihkan ke dalam folder dalam format .json atau .xml atau .rds.

7 Tugas 6

Import data yang sudah anda simpan pada Tugas 5, silahkan pilih salah satau jenis file saja. Kemudian, lakukan Analisis Data Eksplorasi dengan menggunakan Visualisasi yang telah Anda pelajari untuk menjawab setiap pertanyaan berikut:

## # A tibble: 3 x 9
##   No_Invoice Tanggal_Transaksi   ID_Customer Negara Kode_Barang Nama_Barang
##   <chr>      <dttm>                    <int> <fct>  <chr>       <chr>      
## 1 536365     2010-12-01 08:26:00       17850 Unite~ 85123A      CREAM HANG~
## 2 536365     2010-12-01 08:26:00       17850 Unite~ 71053       WHITE MORO~
## 3 536365     2010-12-01 08:26:00       17850 Unite~ 84406B      CREAM CUPI~
## # ... with 3 more variables: Kuantitas <int>, Harga_Satuan <dbl>,
## #   Harga_Total <dbl>

7.1 banyak pelanggan yang melakukan transaksi setiap bulan

• Gunakan Bar-Chart untuk memperlihatkan berapa banyak pelanggan yang melakukan transaksi setiap bulan?

## # A tibble: 12 x 2
##    yearmonth  total
##    <date>     <int>
##  1 2010-12-01   884
##  2 2011-01-01   739
##  3 2011-02-01   757
##  4 2011-03-01   973
##  5 2011-04-01   853
##  6 2011-05-01  1054
##  7 2011-06-01   990
##  8 2011-07-01   946
##  9 2011-08-01   933
## 10 2011-09-01  1259
## 11 2011-10-01  1361
## 12 2011-11-01  1660
 Categorical Bar Chart 2

Categorical Bar Chart 2

Argumen Anda: Dari barchart dapat dilihat total customer terkecil berada di bulan januari 2011 sebanyak 739 customer dan total customer terbesar berada pada November 2011 sebanyak 1660 customer.

7.2 pertumbuhan pelanggan baru setiap bulan

• Gunakan interaktif Line-Chart untuk memperlihatkan bagaimana pertumbuhan pelanggan baru setiap bulan?

Argumen Anda: Dari grafik dapat dilihat pertambahan customer yang paling besar terjadi pada Desember 2010 sebanyak 884 customer. Sedangkan yang paling rendah terjadi pada Agustus 2010 sebanyak 169 customer. Hal ini berbanding terbalik dengan grafik sebelumnya dimana transaksinya meningkat.

7.3 Waktu pemesanan yang terbaru

• Gunakan Radar-charts untuk menganalisis Waktu pemesanan yang terbaru dalam (bulanan, harian, dan per-jam)

# Bulan
Bulanan <- Retail %>% select(Tanggal_Transaksi,No_Invoice) %>% 
  distinct() %>%
  mutate(month = month(Tanggal_Transaksi),
         day = day(Tanggal_Transaksi)) %>% 
  group_by(month,day) %>% 
  summarise(total = n()) %>% 
  ungroup() %>% 
  group_by(day) %>% 
  summarise(avg_monthly_trans = as.integer(median(total))) %>% 
  ungroup() %>% 
  mutate(popup = glue("Date : {day}
                       Total Transaction: {avg_monthly_trans}")) 

Bulanan %>% 
  ggplot(aes(x=as.factor(day), y=avg_monthly_trans)) +
  geom_bar(stat="identity", aes(fill=avg_monthly_trans),show.legend = FALSE)+
  labs(title = "Transaksi Bulanan",
    x = "Tanggal", 
    y = NULL)+
  theme_minimal()+
  scale_fill_gradient(low = "#FFF8DC", high="#00008B")+
  theme(axis.title = element_blank(),
        legend.position = "none",
        plot.title = element_text(hjust = 0.5,size=12, face="bold"),
        plot.subtitle = element_text(hjust = 0.5,size=10),
        axis.text.y = element_blank(),
        axis.text.x=element_text(size=11, face="bold"))+
  coord_polar() -> Bulan

# Hari
Harian <- Retail %>% select(No_Invoice,Tanggal_Transaksi) %>% 
  distinct() %>% 
  mutate(month = month(Tanggal_Transaksi),
        wday = wday(Tanggal_Transaksi,week_start = getOption("lubridate.week.start", 1))) %>% 
  group_by(month,wday) %>% 
  summarise(total = n()) %>% 
  ungroup() %>% 
  group_by(wday) %>% 
  summarise(avg_wday_trans = as.integer(median(total))) %>% 
  ungroup() %>% 
  mutate(popup = glue("wday : {wday}
                     Total Transaction: {avg_wday_trans}")) 


Harian %>% 
    ggplot(aes(wday,avg_wday_trans))+
    geom_bar(width=1, stat="identity", show.legend = FALSE, aes(fill=avg_wday_trans))+
    labs(
      title = "Transaksi Harian",
      x = "Hari", 
      y = NULL)+
    scale_x_continuous(breaks = c(1,2,3,4,5,6,7),
                       labels = c("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"))+
    theme_minimal()+
    scale_fill_gradient(low = "#adff2f", high="#006400")+
    theme(axis.title = element_blank(),
          legend.position = "none",
          plot.title = element_text(hjust = 0.5,size=12, face="bold"),
          plot.subtitle = element_text(hjust = 0.5,size=10),
          axis.text.y = element_blank(),
          axis.text.x=element_text(size=11, face="bold"))+
    coord_polar() -> Hari



#Jam
 
Jaman <- Retail %>% select(Tanggal_Transaksi,No_Invoice) %>% 
  distinct() %>%
  mutate(day = day(Tanggal_Transaksi),
         hour = hour(Tanggal_Transaksi)) %>% 
  group_by(day,hour) %>% 
  summarise(total = n()) %>% 
  ungroup() %>% 
  group_by(hour) %>% 
  summarise(avg_hourly_trans = as.integer(median(total))) %>% 
  ungroup() %>% 
  mutate(popup = glue("Hour of Day : {hour}
                       Total Transaction: {avg_hourly_trans}")) 

time_range = data_frame(hour = c(0:23))

data_frame(hour = c(0:23)) %>% 
  left_join(Jaman ,by="hour") %>%
  mutate(hour = as.factor(hour)) %>% 
  ggplot(aes(x=hour,y=avg_hourly_trans))+
  geom_bar(stat="identity",show.legend = FALSE, aes(fill=avg_hourly_trans))+
  labs(title = "Transaksi Perjam",
    x = "Jam", 
    y = NULL)+
  theme_minimal()+
  scale_fill_gradient(low = "#FFFF00", high="#FF4500")+
  theme(axis.title = element_blank(),
        legend.position = "none",
        plot.title = element_text(hjust = 0.5,size=12, face="bold"),
        plot.subtitle = element_text(hjust = 0.5,size=10),
        axis.text.y = element_blank(),
        axis.text.x=element_text(size=11, face="bold"))+
  coord_polar() -> Jam

gridExtra::grid.arrange(Bulan,Hari,Jam, ncol = 3)

Argumen Anda: Dari hasil dapat dilihat, semakin gelap warnanya, maka semakin banyak transaksi yang terjadi. Untuk Bulanannya, Transaksi terjadi paling banyak di tanggal 30 setiap bulannya. Sedangkan untuk harian, transaksi terjai paling banyak di hari Kamis. Lalu untuk jam nya, transaksi terjadi paling banyak di jam 12 siang setiap harinya.

7.4 frekuensi transaksi setiap bulan

• Gunakan interaktif Bar-Chart untuk memperlihatkan berapa frekuensi transaksi setiap bulan?

Argumen Anda: Frekuensi transaksi terbanyak terjadi pada November 2011 sejumlah 2644, dan Frekuensi transaksi yang paling sedikit terjadi pada Januari 2011 sebanyak 989 transaksi.

7.5 10 Produk Terpopuler berdasarkan Frekuensi Transaksi

• Gunakan interaktif Bar-Chart yang horizontal untuk memperlihatkan 10 teratas dari produk terpopuler berdasarkan frekuensi transaksinya!

Argumen Anda: Menggunakan barchart interaktif dengan data yang sudah diurutkan berdasarkan tingkat transaksinya, didapat 10 produk terpopuler, dengan jumlah terbanyak 1964 transaksi yaitu Cream Hanging Heart T-light Holder.

7.6 10 Produk Paling Populer Berdasarkan Jumlah Pesanan

• Gunakan interaktif Bar-Chart yang horizontal untuk memperlihatkan 10 produk paling populer berdasarkan jumlah pesanan!

Argumen Anda: Berdasarkan permintaannya, permintaan terbanyak dipegang oleh, medium ceramic top storage jar sebanyak 77729 permintaan.

7.7 10 Produk Paling Populer Berdasarkan Total Pelanggan

• Gunakan interaktif Bar-Chart yang horizontal untuk memperlihatkan 10 produk paling populer menurut total pelanggan!

Argumen Anda: Grafik ini menunjukkan 10 data produk terpopuler berdasarkan total pelanggannya.

7.8 10 Produk Paling Populer Berdasarkan Total Harga

• Gunakan interaktif Bar-Chart yang horizontal untuk memperlihatkan 10 produk paling populer berdasarkan Nilai Mata uang!

Argumen Anda: Grafik tersebut menunjukan 10 produk terpopuler berdasarkan total harga (income)

7.9 Perubahan nilai mata uang

• Lakukan Analisa dengan menggunakan Time Series apakah penjualan berdasarkan Nilai Mata Uang Meningkat-Menurun?

Argumen Anda: Bedasarkan data, bisa dilihat pada timeseries dimana pada perbulan terlihat bahwa incomenya menurun. Begitu juga dengan perbulan-perhari. Tetapi meski menurun, bisa dibilang incomenya menjadi lebih stabil dimana naik turunnya tidak terlalu jauh tidak seperti di bulan desember 2010 hingga may 2011 yang naik turunnya begitu drastis.

7.10 Konsumen terbesar

• Gunakan Tree-Map untuk memvisualisasikan sebagian besar Konsumen menurut Negara?

Argumen Anda: sebagian besar consumer / pelanggan berasal United Kingdom.

8 Tugas 7

Berikan pandangan dan pendapat terkait kasus yang sudah anda kerjakan diatas (Apa yang akan anda lakukan sebagai Manager mengenai kasus tersebeut untuk mengembangkan bisnis perbelanjaan online tersebut berdasarkan analisa yang anda temukan!).

Argumen Anda: Dari data yang didapat, masih banyak yang harus diperbaiki lantaran banyak data yang tidak valid dan bersifat ganda. Setelah diperbaiki, didapat kesimpulan pada kasus ini dimana kita mengetahui bahwa Total transaksi pelanggan perbulan cenderung meningkat cukup drastis pada November 2011 tetapi, penambahan Customernya hanya sedikit yang berarti orang yang berbelanja hanya itu itu saja. Selain itu, terlihat pemesanan biasanya dilakukan pada weekdays, dan pada jam makan siang. Selain itu penjualan juga lebih banyak terjadi di kisaran akhir bulan dan awal bulan. Begitu juga dengan perbandingan barang barang terpopuler dimana perbarang memiliki range yang cukup jauh yang berarti produk yang dibeli itu itu saja. Selain itu dari Income kita bisa melihat bahwa income cenderung menurun meski lebih stabil.

Menurut saya, ada beberapa tindakan yang harus diambil seperti pemasaran dan pengetahuan tentang keinginan pasar. Seperti barang apa dan trend apa yang sedang ada di masyarakat. Kita harus mengembangkan pemasaran dan promosi supaya lebih banyak pelanggan yang mengetahui bisnis kita. Salah satu langkah yang bisa diambil mungkin bisa dengan mengadakan promosi di jam jam yang pembelinya sedang untuk mendapat lebih banyak pelanggan di jam / hari itu dan semakin banyak yang berarti akan semakin banyak pelanggan baru.

Lalu dari data bisa dilihat kebanyakan pembeli berasal dari United Kingdom dan perbandingannya bisa terbilang jauh dengan negara lainnya. Ini berarti kita harus memahami kebutuhan di negara lainnya sehingga penjualan bisa lebih merata di seluruh negara. Kita harus membuat agar semakin banyak orang yang tertarik dengan produk kita.

Langkah yang bisa diambil, mulai dari menentukan sasaran pemasaran. Lalu tentukan produk yang sesuai dengan minat yang menjadi sasaran kita. Kemudian adakanlah promosi seperti diskon, event, perekrutan dropshipper, atau promosi lainnya yang bisa menarik perhatian dan ketertarikan pelanggan.

Saat dilakukan mungkin revenue akan menurun tetapi akan semakin banyak pelanggan yang membeli barang barang kita.