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.
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:
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")
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.
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.
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.