A. Pendahuluan

Profit merupakan indikator utama dalam menilai kinerja bisnis. Dalam industri retail seperti Coffee Chain, profit dipengaruhi oleh berbagai faktor seperti jenis produk, wilayah penjualan, dan tingkat penjualan.

Oleh karena itu, analisis ini dilakukan untuk mengidentifikasi faktor-faktor yang paling berpengaruh terhadap profit.

B. Deskripsi Insight

Insight utama yang dianalisis dalam laporan ini adalah bagaimana profit dipengaruhi oleh tiga faktor utama, yaitu Product Type, Market, dan Sales.

Pertama, analisis dilakukan untuk melihat apakah terdapat perbedaan profit antar jenis produk, yang dapat menunjukkan produk mana yang lebih menguntungkan.

Kedua, analisis terhadap market dilakukan untuk mengetahui apakah terdapat perbedaan performa profit antar wilayah, sehingga dapat mengindikasikan potensi pasar tertentu.

Ketiga, hubungan antara sales dan profit dianalisis untuk melihat apakah peningkatan penjualan secara langsung berdampak pada peningkatan profit.

Dengan memahami ketiga aspek tersebut, perusahaan dapat menentukan strategi yang lebih efektif dalam meningkatkan profit.

C. Koneksi Database

Pada tahap ini dilakukan koneksi ke database MySQL yang berisi Coffee Chain Dataset. Koneksi ini diperlukan agar data dapat diakses dan dianalisis menggunakan R.

library(DBI)
library(odbc)

dbConnect(odbc(),
          Driver = "MySQL ODBC 8.0 ANSI Driver",
          Server = "127.0.0.1",
          UID = "root",
          PWD = "admin123",
          Port = 3306)
## <OdbcConnection> root@127.0.0.1 via TCP/IP
##   Database: null
##   MySQL Version: 8.0.39
coffeection = dbConnect(odbc(),
                         Driver = "MySQL ODBC 8.0 ANSI Driver",
                         Server = "127.0.0.1",
                         UID = "root",
                         PWD = "admin123",
                         Port = 3306,
                         Database = "coffee")

library(ggplot2)

D. Pengambilan Data Query SQL

Data diambil dari beberapa tabel yang saling berhubungan, yaitu factTable, Product, dan Location. Penggabungan dilakukan menggunakan JOIN untuk mendapatkan informasi yang lengkap.

datakopi = dbGetQuery(coffeection, "SELECT
f.Profit,
f.Sales,
f.Marketing,
p.Product, 
p.`Product Type`,
l.Market,
l.`Market Size`
FROM factTable f
JOIN Product p ON f.ProductId = p.ProductId 
JOIN Location l ON f.`Area Code` = l.`Area Code`")

E. Eksplorasi Data

Eksplorasi data dilakukan untuk memahami struktur dataset, tipe data, nama kolom, serta ringkasan statistik dari setiap variabel sebelum dilakukan analisis lebih lanjut.

head(datakopi)
##   Profit Sales Marketing           Product Product Type  Market  Market Size
## 1     94   219        24          Amaretto       Coffee Central Major Market
## 2     68   190        27         Colombian       Coffee Central Major Market
## 3    101   234        26 Decaf Irish Cream       Coffee Central Major Market
## 4     30   100        14         Green Tea          Tea Central Major Market
## 5     54   134        15       Caffe Mocha     Espresso Central Major Market
## 6     53   180        23    Decaf Espresso     Espresso Central Major Market
tail(datakopi)
##      Profit Sales Marketing           Product Product Type Market  Market Size
## 4243     68   128        13             Lemon   Herbal Tea   West Small Market
## 4244     19    60         7       Caffe Latte     Espresso   West Small Market
## 4245     34   155        24       Caffe Mocha     Espresso   West Small Market
## 4246     76   188        24    Decaf Espresso     Espresso   West Small Market
## 4247     86   188        23         Colombian       Coffee   West Small Market
## 4248     30   266        95 Decaf Irish Cream       Coffee   West Small Market
str(datakopi)
## 'data.frame':    4248 obs. of  7 variables:
##  $ Profit      : int  94 68 101 30 54 53 99 0 33 17 ...
##  $ Sales       : int  219 190 234 100 134 180 341 150 140 130 ...
##  $ Marketing   : int  24 27 26 14 15 23 47 57 19 22 ...
##  $ Product     : chr  "Amaretto" "Colombian" "Decaf Irish Cream" "Green Tea" ...
##  $ Product Type: chr  "Coffee" "Coffee" "Coffee" "Tea" ...
##  $ Market      : chr  "Central" "Central" "Central" "Central" ...
##  $ Market Size : chr  "Major Market" "Major Market" "Major Market" "Major Market" ...
colnames(datakopi) = c("Profit", "Sales", "Marketing", "Product", "Product_Type", "Market", "Market_Size")
colnames(datakopi)
## [1] "Profit"       "Sales"        "Marketing"    "Product"      "Product_Type"
## [6] "Market"       "Market_Size"
summary(datakopi)
##      Profit           Sales       Marketing        Product         
##  Min.   :-638.0   Min.   : 17   Min.   :  0.00   Length:4248       
##  1st Qu.:  17.0   1st Qu.:100   1st Qu.: 13.00   Class :character  
##  Median :  40.0   Median :138   Median : 22.00   Mode  :character  
##  Mean   :  61.1   Mean   :193   Mean   : 31.19                     
##  3rd Qu.:  92.0   3rd Qu.:230   3rd Qu.: 39.00                     
##  Max.   : 778.0   Max.   :912   Max.   :156.00                     
##  Product_Type          Market          Market_Size       
##  Length:4248        Length:4248        Length:4248       
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##                                                          
##                                                          
## 

F. Visualisasi Data

Visualisasi data dilakukan untuk membantu memahami pola dan hubungan antar variabel dalam dataset secara lebih intuitif. Dengan menggunakan visualisasi, perbedaan distribusi dan kecenderungan data dapat terlihat dengan lebih jelas dibandingkan hanya menggunakan tabel atau angka.

1) Visualisasi 1: Profit berdasarkan Product Type

Visualisasi ini digunakan untuk melihat distribusi profit pada setiap jenis produk serta membandingkan rata-rata profit antar kategori.

meankopi = aggregate(Profit ~ Product_Type, data = datakopi, mean)
ggplot(datakopi, aes(x = Product_Type, y = Profit, fill = Product_Type)) +
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", shape = 23, size = 3, fill = "pink") +
  geom_text(data = meankopi,
            aes(x = Product_Type, y = Profit,
                label = round(Profit,1)),
            vjust = -1) +
  labs(
    title = "Distribusi Profit berdasarkan Product Type",
    x = "Product Type",
    y = "Profit"
  ) +
  theme_minimal()

Interpretasi

Terdapat perbedaan distribusi profit antar product type. Beberapa kategori memiliki rata-rata profit yang lebih tinggi, yang menunjukkan bahwa tidak semua produk memberikan kontribusi keuntungan yang sama.

2) Visualisasi 2: Profit berdasarkan Market

Visualisasi ini bertujuan untuk melihat perbedaan distribusi profit antar wilayah (market) serta mengidentifikasi market yang memiliki performa lebih baik.

meanmarket = aggregate(Profit ~ Market, data = datakopi, mean)
ggplot(datakopi, aes(x = Market, y = Profit, fill = Market)) +
  geom_boxplot() +
  stat_summary(fun = mean, geom = "point", shape = 23, size = 3, fill = "lightblue") +
  geom_text(data = meanmarket,
            aes(x = Market, y = Profit,
                label = round(Profit,1)),
            vjust = -1) +
  labs(
    title = "Distribusi Profit berdasarkan Market",
    x = "Market",
    y = "Profit"
  ) +
  theme_minimal()

Interpretasi

Distribusi profit berbeda pada setiap market. Hal ini menunjukkan bahwa terdapat perbedaan performa antar wilayah, sehingga beberapa market lebih berpotensi menghasilkan profit yang lebih tinggi.

3) Visualisasi 3: Hubungan Sales dan Profit

Visualisasi ini digunakan untuk melihat hubungan antara sales dan profit, serta mengetahui apakah peningkatan sales berdampak pada profit.

ggplot(datakopi, aes(x = Sales, y = Profit)) +
  geom_point(color = "black", alpha = 0.6) +
  geom_smooth(method = "lm", color = "red") +
  labs(
    title = "Hubungan Sales dan Profit",
    x = "Sales",
    y = "Profit"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Interpretasi

Grafik menunjukkan adanya hubungan positif antara sales dan profit. Hal ini berarti semakin tinggi penjualan, maka profit cenderung meningkat.

G. Analisis Data

Analisis dilakukan untuk memperkuat hasil visualisasi dengan melihat rata-rata profit, hubungan antar variabel, serta tingkat variasi data.

1) Rata-rata Profit per Product Type

aggregate(Profit ~ Product_Type, data = datakopi, mean)
##   Product_Type   Profit
## 1       Coffee 70.72254
## 2     Espresso 58.35034
## 3   Herbal Tea 59.89962
## 4          Tea 55.19375

Hasil menunjukkan bahwa rata-rata profit berbeda pada setiap product type. Hal ini mengindikasikan bahwa tidak semua jenis produk memberikan kontribusi keuntungan yang sama. Produk dengan rata-rata profit lebih tinggi dapat dianggap lebih menguntungkan bagi perusahaan.

2) Rata-rata Profit per Market

aggregate(Profit ~ Market, data = datakopi, mean)
##    Market   Profit
## 1 Central 69.83036
## 2    East 66.68581
## 3   South 48.33036
## 4    West 55.05655

Terdapat perbedaan rata-rata profit antar market. Hal ini menunjukkan bahwa faktor wilayah berpengaruh terhadap kinerja profit. Perbedaan ini dapat disebabkan oleh karakteristik konsumen atau kondisi pasar yang berbeda di setiap wilayah.

3) Hubungan Sales dan Profit

cor(datakopi$Sales, datakopi$Profit)
## [1] 0.7973309

Nilai korelasi menunjukkan hubungan positif antara sales dan profit. Hal ini berarti peningkatan penjualan cenderung diikuti dengan peningkatan profit. Namun, hubungan ini tidak selalu kuat, sehingga peningkatan sales tidak selalu menghasilkan profit yang sebanding.

4) Pemodelan Pengaruh Sales terhadap Profit

model <- lm(Profit ~ Sales, data = datakopi)
summary(model)
## 
## Call:
## lm(formula = Profit ~ Sales, data = datakopi)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -606.28   -9.15   11.77   28.31  466.85 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -42.456004   1.527850  -27.79   <2e-16 ***
## Sales         0.536582   0.006233   86.08   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 61.39 on 4246 degrees of freedom
## Multiple R-squared:  0.6357, Adjusted R-squared:  0.6357 
## F-statistic:  7410 on 1 and 4246 DF,  p-value: < 2.2e-16

Hasil regresi menunjukkan bahwa Sales memiliki pengaruh positif terhadap Profit. Koefisien positif menunjukkan bahwa setiap peningkatan sales akan meningkatkan profit.

Namun, model ini masih sederhana karena hanya mempertimbangkan satu variabel. Hal ini terlihat dari kemungkinan masih adanya variasi profit yang tidak dapat dijelaskan oleh sales saja.

Dengan demikian, faktor lain seperti jenis produk dan market juga berperan dalam menentukan profit.

H. Kesimpulan

Profit dipengaruhi oleh jenis produk, market, dan tingkat penjualan. Perusahaan dapat meningkatkan profit dengan fokus pada produk dan market yang memiliki performa terbaik.

I. Penutup - Tutup Koneksi

dbDisconnect(coffeection)

```