Pendahuluan

Laporan ini berisi tentang analisis profit dari sumber data Coffee Chain . Terdapat 4 variabel data yang digunakan yaitu: Date, Product Type, Profit, dan Budget Profit. Analisis dan visualisasi dilakukan menggunakan RStudio dengan menghubungkan ke data yang tersimpan di database MySQL Workbench.

Deskripsi Insight

Menggunakan keempat variabel, akan dianalisis perbandingan profit pada tahun 2012 dan 2013 berdasarkan tipe produk, serta selisih antara target profit (budget profit) dengan profit yang didapat.

Perbandingan profit ini diperlukan untuk melihat tipe produk mana yang paling berkontribusi terhadap market. Setelah kita melihat profit dari setiap tipe produk, kita membandingkannya dengan budget profit sehingga kita dapat mengetahui apakah profit yang didapat itu sudah mencapai target atau ternyata masih dibawah target. Dari analisa ini, perusahaan dapat melakukan:

  1. Pembuatan keputusan untuk meningkatkan penjualan tipe produk yang paling untung, misal dengan memasifkan marketing atau membuat variasi produk baru
  2. Menilai apakah target profit sudah realistis dan bagaimana perencanaan target profit kedepannya
  3. Menyesuaikan strategi bisnis berdasarkan kombinasi profit dan akurasi target

1. Membuat Koneksi R dengan Database

Sebelum melakukan koneksi, perlu untuk menginstall beberapa packages yang memuat fungsi koneksi kemudian mengaktifkannya.Selanjutnya, gunakan fungsi dbConnect() untuk membuat koneksi dengan memasukkan password user SQL kita dan database yang akan digunakan.

library("DBI")
library("odbc")
## Warning: package 'odbc' was built under R version 4.5.2
odbc::odbcListDrivers() #memastikan sudah terhubung dengan mysql
con3 = dbConnect(odbc(), #membuat koneksi dengan database
                     
                     Driver = "MySQL ODBC 8.0 ANSI Driver",
                     
                     Server = "127.0.0.1",
                     
                     UID = "root",
                     
                     PWD = "Datalks1122!",
                     
                     Port = 3306,
                     Database = "coffee")

2. Melihat Perbandingan dan Pencapaian Target Profit

Setelah terbentuk koneksi ke SQL, kita akan melihat perbandingan profit dengan menjumlah seluruh profit per tipe produk pada tahun 2012 dan 2013. Pertama-tama, kita menggunakan fungsi dbGetQuery() untuk mengambil data yang diperlukan, yaitu dengan menggabungkan tabel facttable dengan product serta membuat kolom berisi tahun transaksi dengan mengubah dari bentuk string ke date dan mengelompokkan berdasarkan tipe produk.Selanjutnya, kita membuat visualisasi menggunakan fungsi ggplot() untuk membuat bar chart berpasangan berisi total profit.

library("ggplot2")
## Warning: package 'ggplot2' was built under R version 4.5.2
profit<-dbGetQuery(con3,"SELECT SUM(profit) AS Profit_total , `product type`, YEAR(str_to_date(Date,'%Y-%m-%d')) AS tahun
FROM facttable
JOIN product USING (ProductId)
WHERE `Date` LIKE '2012%' OR `Date` LIKE '2013%'
GROUP BY `product type`, tahun")

profit
##   Profit_total product type tahun
## 1        30468       Coffee  2012
## 2        21605          Tea  2012
## 3        27954     Espresso  2012
## 4        25799   Herbal Tea  2012
## 5        37455   Herbal Tea  2013
## 6        31381          Tea  2013
## 7        40666     Espresso  2013
## 8        44215       Coffee  2013
bar1<-ggplot(profit, aes(x=`product type`,y= Profit_total, fill= as.factor(tahun)))+
  geom_bar(stat="identity", position = "dodge")+scale_fill_manual(values = c("#D12052","#F45B26"),name = "tahun")+theme_minimal()+theme(plot.title = element_text(hjust = 0.5)) +
  labs(title="Perbandingan Total Profit 2012 dan 2013", x="Tipe Produk",y="Profit (USD)")
bar1

Pada bar chart terlihat bahwa profit semua tipe produk mengalami peningkatan dibandingkan tahun sebelumnya. Tipe produk kopi memiliki profit paling tinggi dibandingkan tipe produk lain. Namun, apakah profit ini telah mencapai target profit? Kita akan melihat bagaimana keselarasan budget profit dengan profit yang didapatkan dengan menselisihkan budget profit dengan profit. Selisih dari setiap transaksi kemudian di rata-rata dan diubah dalam bentuk persen, kemudian dikelompokkan sesuai tipe produk.

selisih<-dbGetQuery(con3,"SELECT ROUND(AVG((`Budget Profit` - profit) / `Budget Profit`) * 100,2) AS aktualisasi_profit, `product type`
FROM facttable
JOIN product USING (ProductId)
WHERE `Budget Profit` != 0
GROUP BY `product type`")
selisih
##   aktualisasi_profit product type
## 1              24.78       Coffee
## 2             -12.07          Tea
## 3              12.08     Espresso
## 4              -1.98   Herbal Tea
bar2<-ggplot(selisih, aes(x =`product type`,y = aktualisasi_profit))+geom_bar(stat = "identity", aes(fill = aktualisasi_profit > 0))+
  scale_fill_manual(values = c("TRUE" = "#AE2448", "FALSE" = "#72BAA9"),
                    labels = c("Di atas Target", "Di bawah Target"),
                    name = "Keterangan")+theme_minimal()+theme(plot.title = element_text(hjust = 0.5)) +geom_hline(yintercept = 0, linetype = "dashed") +
  labs(title = "Persentase Akurasi Target Profit", x = "Tipe Produk", y = "Aktualisasi Profit")
bar2

Ternyata, hasil dari rata-rata selisih ini ada yang negatif dan positif. Hasil yang positif berarti profit yang didapatkan rata-rata tidak mencapai budget profit, sementara hasil yang negatif menandakan bahwa rata-rata transaksi telah mencapai bahkan melebihi budget profit. Meskipun hasil visualisasi menunjukkan bahwa meskipun produk kopi secara keseluruhan memperoleh profit paling tinggi, ternyata target dari profit tipe produk kopi masih belum dapat tercapai. Sebaliknya, meskipun tipe produk teh mendapatkan total profit yang paling rendah, ternyata teh telah mencapai target profit.

3. Melakukan Uji Statistik untuk Melihat Hubungan Antara Target dan Realisasi

Dari visualisasi-visualisasi sebelumnya, kita mengetahui bahwa ada perbedaan antara total profit yang didapatkan dengan target profit. Hal ini menimbulkan pertanyaan, apakah target yang dibuat ini sudah realistis? Bagaimana hubungan antara target dengan realisasinya? Untuk menjawab pertanyaan ini, akan dilakukan uji Korelasi Spearman antara variabel budget profit dan profit menggunakan fungsi cor.test(). Sebelumnya, kita akan melihat perbandingan total budget profit dibanding total profit per tipe produk untuk melihat apakah terdapat pola khusus di dalamnya.

perband<-dbGetQuery(con3, "SELECT SUM(profit) AS Profit_Total, SUM(`budget profit`) AS Total_budget_profit, `product type`
FROM facttable
JOIN product USING (ProductId)
GROUP BY `product type`
ORDER BY Total_budget_profit DESC")
perband
##   Profit_Total Total_budget_profit product type
## 1        74683               83880       Coffee
## 2        68620               71900     Espresso
## 3        63254               58720   Herbal Tea
## 4        52986               44260          Tea
korelasi<-dbGetQuery(con3,"SELECT profit, `budget profit`
FROM facttable")
cor.test(korelasi$profit,korelasi$`budget profit`, method = "spearman", exact = FALSE)
## 
##  Spearman's rank correlation rho
## 
## data:  korelasi$profit and korelasi$`budget profit`
## S = 850202039, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##       rho 
## 0.9334543

Berdasarkan nilai p-value dan rho, hasil dari uji tersebut menyatakan: p-value < 0.05 berarti secara statistik, terdapat hubungan antara budget profit dengan profit dan rho sebesar 0.933 (mendekati satu) menunjukkan tingkat hubungan yang kuat. Ini berarti, target profit memang realistis meskipun masih banyak yang meleset. Jika hasil uji dihubungkan dengan tabel perbandingan, terlihat pola dimana budget profit tertinggi juga diikuti oleh profit yang tinggi. Begitu pula budget profit terendah diikuti dengan profit yang rendah juga, yang menjelaskan hubungan dari budget profit dan profit.

Kesimpulan

Berdasarkan hasil analisis dan visualisasi, dapat disimpulkan bahwa seluruh tipe produk mengalami peningkatan profit. Tipe produk dengan profit tertinggi di kedua tahun adalah kopi, diikuti oleh espresso, teh herbal, dan teh. Meskipun kopi memiliki profit tertinggi, ini tidak secara otomatis mengindikasikan bahwa target profit kopi telah tercapai. Rata-rata per transaksi, kopi justru gagal memenuhi target. Namun, uji korelasi Spearman menunjukkan hubungan yang kuat antara target profit dengan aktualisasi profit (rho=0.933). Artinya, tipe produk dengan target tinggi cenderung menghasilkan profit tinggi. Hal ini menjelaskan mengapa tipe produk kopi secara keseluruhan tetap berkontribusi besar pada keuntungan perusahaan dibanding tipe produk lain meskipun targetnya sering meleset.