Pendahuluan

Dalam dunia bisnis, kemampuan untuk memahami faktor-faktor yang memengaruhi keuntungan (profit) menjadi hal yang sangat penting dalam pengambilan keputusan. Salah satu indikator utama yang sering dianalisis adalah sales (penjualan), karena secara logis peningkatan penjualan diharapkan dapat meningkatkan keuntungan perusahaan. Namun, dalam praktiknya, hubungan antara sales dan profit tidak selalu sederhana, karena dapat dipengaruhi oleh berbagai faktor lain seperti biaya operasional, strategi harga, hingga efisiensi bisnis.

Berdasarkan hasil eksplorasi data yang telah dilakukan, ditemukan adanya pola hubungan antara variabel sales dan profit yang cukup menarik untuk dianalisis lebih lanjut. Dari beberapa kemungkinan insight yang muncul, dipilih satu insight utama yaitu hubungan antara sales dan profit, karena terlihat adanya kecenderungan bahwa perubahan nilai sales diikuti oleh perubahan profit.

Oleh karena itu, analisis difokuskan pada hubungan kedua variabel tersebut dengan menggunakan pendekatan statistik seperti korelasi, regresi linear, serta visualisasi data. Melalui analisis ini, diharapkan dapat diperoleh pemahaman yang lebih jelas mengenai pola hubungan sales dan profit serta seberapa besar kontribusi sales dalam menjelaskan variasi profit.

library(readxl)
## Warning: package 'readxl' was built under R version 4.5.2
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data <- read_excel("1. Tugas SIM 2025B - Coffee Chain Datasets.xlsx")
getwd()
## [1] "C:/Users/lenovo/OneDrive/Documents/Perkuliahan/Semester 2/Sistem Informasi Manajemen"
head(data)
## # A tibble: 6 × 20
##   `Area Code` Date                Market  `Market Size` Product   `Product Line`
##         <dbl> <dttm>              <chr>   <chr>         <chr>     <chr>         
## 1         719 2012-01-01 00:00:00 Central Major Market  Amaretto  Beans         
## 2         970 2012-01-01 00:00:00 Central Major Market  Colombian Beans         
## 3         970 2012-01-01 00:00:00 Central Major Market  Decaf Ir… Beans         
## 4         303 2012-01-01 00:00:00 Central Major Market  Green Tea Leaves        
## 5         303 2012-01-01 00:00:00 Central Major Market  Caffe Mo… Beans         
## 6         720 2012-01-01 00:00:00 Central Major Market  Decaf Es… Beans         
## # ℹ 14 more variables: `Product Type` <chr>, State <chr>, Type <chr>,
## #   `Budget COGS` <dbl>, `Budget Margin` <dbl>, `Budget Profit` <dbl>,
## #   `Budget Sales` <dbl>, COGS <dbl>, Inventory <dbl>, Margin <dbl>,
## #   Marketing <dbl>, Profit <dbl>, Sales <dbl>, `Total Expenses` <dbl>
str(data)
## tibble [4,248 × 20] (S3: tbl_df/tbl/data.frame)
##  $ Area Code     : num [1:4248] 719 970 970 303 303 720 970 719 970 719 ...
##  $ Date          : POSIXct[1:4248], format: "2012-01-01" "2012-01-01" ...
##  $ Market        : chr [1:4248] "Central" "Central" "Central" "Central" ...
##  $ Market Size   : chr [1:4248] "Major Market" "Major Market" "Major Market" "Major Market" ...
##  $ Product       : chr [1:4248] "Amaretto" "Colombian" "Decaf Irish Cream" "Green Tea" ...
##  $ Product Line  : chr [1:4248] "Beans" "Beans" "Beans" "Leaves" ...
##  $ Product Type  : chr [1:4248] "Coffee" "Coffee" "Coffee" "Tea" ...
##  $ State         : chr [1:4248] "Colorado" "Colorado" "Colorado" "Colorado" ...
##  $ Type          : chr [1:4248] "Regular" "Regular" "Decaf" "Regular" ...
##  $ Budget COGS   : num [1:4248] 90 80 100 30 60 80 140 50 50 40 ...
##  $ Budget Margin : num [1:4248] 130 110 140 50 90 130 160 80 70 70 ...
##  $ Budget Profit : num [1:4248] 100 80 110 30 70 80 110 20 40 20 ...
##  $ Budget Sales  : num [1:4248] 220 190 240 80 150 210 300 130 120 110 ...
##  $ COGS          : num [1:4248] 89 83 95 44 54 72 170 63 60 58 ...
##  $ Inventory     : num [1:4248] 777 623 821 623 456 ...
##  $ Margin        : num [1:4248] 130 107 139 56 80 108 171 87 80 72 ...
##  $ Marketing     : num [1:4248] 24 27 26 14 15 23 47 57 19 22 ...
##  $ Profit        : num [1:4248] 94 68 101 30 54 53 99 0 33 17 ...
##  $ Sales         : num [1:4248] 219 190 234 100 134 180 341 150 140 130 ...
##  $ Total Expenses: num [1:4248] 36 39 38 26 26 55 72 87 47 55 ...
summary(data)
##    Area Code          Date                        Market         
##  Min.   :203.0   Min.   :2012-01-01 00:00:00   Length:4248       
##  1st Qu.:417.0   1st Qu.:2012-06-23 12:00:00   Class :character  
##  Median :573.0   Median :2012-12-16 12:00:00   Mode  :character  
##  Mean   :582.3   Mean   :2012-12-15 22:00:00                     
##  3rd Qu.:772.0   3rd Qu.:2013-06-08 12:00:00                     
##  Max.   :985.0   Max.   :2013-12-01 00:00:00                     
##  Market Size          Product          Product Line       Product Type      
##  Length:4248        Length:4248        Length:4248        Length:4248       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##     State               Type            Budget COGS     Budget Margin   
##  Length:4248        Length:4248        Min.   :  0.00   Min.   :-210.0  
##  Class :character   Class :character   1st Qu.: 30.00   1st Qu.:  50.0  
##  Mode  :character   Mode  :character   Median : 50.00   Median :  70.0  
##                                        Mean   : 74.83   Mean   : 100.8  
##                                        3rd Qu.: 90.00   3rd Qu.: 130.0  
##                                        Max.   :450.00   Max.   : 690.0  
##  Budget Profit      Budget Sales         COGS          Inventory      
##  Min.   :-320.00   Min.   :   0.0   Min.   :  0.00   Min.   :-3534.0  
##  1st Qu.:  20.00   1st Qu.:  80.0   1st Qu.: 43.00   1st Qu.:  432.0  
##  Median :  40.00   Median : 130.0   Median : 60.00   Median :  619.0  
##  Mean   :  60.91   Mean   : 175.6   Mean   : 84.43   Mean   :  749.4  
##  3rd Qu.:  80.00   3rd Qu.: 210.0   3rd Qu.:100.00   3rd Qu.:  910.5  
##  Max.   : 560.00   Max.   :1140.0   Max.   :364.00   Max.   : 8252.0  
##      Margin          Marketing          Profit           Sales    
##  Min.   :-302.00   Min.   :  0.00   Min.   :-638.0   Min.   : 17  
##  1st Qu.:  52.75   1st Qu.: 13.00   1st Qu.:  17.0   1st Qu.:100  
##  Median :  76.00   Median : 22.00   Median :  40.0   Median :138  
##  Mean   : 104.29   Mean   : 31.19   Mean   :  61.1   Mean   :193  
##  3rd Qu.: 132.00   3rd Qu.: 39.00   3rd Qu.:  92.0   3rd Qu.:230  
##  Max.   : 613.00   Max.   :156.00   Max.   : 778.0   Max.   :912  
##  Total Expenses  
##  Min.   : 10.00  
##  1st Qu.: 33.00  
##  Median : 46.00  
##  Mean   : 54.06  
##  3rd Qu.: 65.00  
##  Max.   :190.00
names(data)
##  [1] "Area Code"      "Date"           "Market"         "Market Size"   
##  [5] "Product"        "Product Line"   "Product Type"   "State"         
##  [9] "Type"           "Budget COGS"    "Budget Margin"  "Budget Profit" 
## [13] "Budget Sales"   "COGS"           "Inventory"      "Margin"        
## [17] "Marketing"      "Profit"         "Sales"          "Total Expenses"

VISUALISASI

Scatter Plot

ggplot(data, aes(x = Sales, y = Profit)) +
  geom_point(color = "#28396C", alpha = 0.6) +
  geom_smooth(method = "lm", color = "#6E1A37") +
  labs(
    title = "Hubungan antara Sales dan Profit",
    x = "Sales",
    y = "Profit"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Scatter plot digunakan untuk melihat hubungan antara variabel Sales dan Profit. Setiap titik merepresentasikan satu observasi data. Garis merah merupakan garis regresi linear yang menunjukkan arah hubungan antara kedua variabel. Jika garis cenderung naik, maka terdapat hubungan positif, artinya semakin besar nilai Sales, maka Profit juga cenderung meningkat.

Berdasarkan scatter plot, terlihat bahwa hubungan antara Sales dan Profit membentuk pola linear positif, di mana titik-titik data cenderung meningkat dari kiri bawah ke kanan atas. Hal ini sejalan dengan nilai korelasi sebesar 0,7973309 yang menunjukkan hubungan kuat. Garis regresi yang terbentuk juga memiliki kemiringan positif sesuai dengan persamaan Profit = -42,456 + 0,5366(Sales), yang berarti setiap kenaikan 1 unit Sales akan meningkatkan Profit sebesar 0,5366.

Meskipun demikian, penyebaran data di sekitar garis regresi masih cukup lebar, yang tercermin dari nilai R² sebesar 0,6357. Artinya, sekitar 63,57% variasi Profit dapat dijelaskan oleh Sales, sedangkan sisanya dipengaruhi faktor lain. Selain itu, terdapat beberapa outlier, baik pada nilai Profit yang sangat tinggi maupun rendah, yang menunjukkan bahwa tidak semua peningkatan Sales selalu menghasilkan Profit yang sebanding.

Histogram

ggplot(data, aes(x = Profit)) +
  geom_histogram(bins = 30, fill = "steelblue") +
  theme_minimal() +
  labs(title = "Distribusi Profit")

Histogram digunakan untuk melihat distribusi data profit secara keseluruhan. Melalui grafik ini, dapat diamati: pola sebaran data (normal atau tidak), apakah data condong ke kiri atau ke kanan (skewness), konsentrasi nilai profit yang paling sering muncul Jika distribusi cenderung simetris, maka data mendekati distribusi normal. Namun jika condong ke satu sisi, maka terdapat ketidakseimbangan dalam distribusi profit.

Berdasarkan histogram, distribusi profit menunjukkan pola yang condong ke kanan (positively skewed). Sebagian besar nilai profit terkonsentrasi di sekitar angka dekat 0 hingga sekitar 100, yang terlihat dari tingginya frekuensi pada rentang tersebut.

Namun, terdapat sejumlah nilai profit yang menyebar hingga ke nilai yang lebih tinggi (sekitar 400 hingga 800), serta beberapa nilai negatif hingga di bawah -400. Hal ini menunjukkan adanya outlier baik di sisi positif maupun negatif.

Distribusi yang tidak simetris ini mengindikasikan bahwa sebagian besar transaksi menghasilkan profit kecil hingga sedang, sementara hanya sedikit transaksi yang menghasilkan profit sangat tinggi atau mengalami kerugian besar.

Kondisi ini menunjukkan adanya ketimpangan dalam distribusi profit, di mana performa sebagian kecil transaksi memiliki dampak yang cukup besar terhadap keseluruhan data.

Boxplot

ggplot(data, aes(y = Profit)) +
  geom_boxplot(fill = "#FFCEE3") +
  theme_minimal() +
  labs(title = "Boxplot Profit")

Berdasarkan boxplot, terlihat bahwa sebagian besar data profit terkonsentrasi pada rentang yang relatif sempit di sekitar nilai mendekati 0 hingga sekitar 100, yang ditunjukkan oleh ukuran box (interquartile range) yang tidak terlalu lebar.

Median profit berada pada kisaran positif, yang menunjukkan bahwa secara umum transaksi cenderung menghasilkan keuntungan, meskipun tidak terlalu besar.

Namun, terdapat banyak outlier baik di sisi atas maupun bawah: a. Outlier positif mencapai sekitar 700–800, menunjukkan adanya transaksi dengan profit sangat tinggi
b. Outlier negatif mencapai sekitar -400 hingga -500, menunjukkan adanya transaksi dengan kerugian cukup besar

Jumlah outlier yang cukup banyak ini memperkuat temuan pada histogram bahwa distribusi profit tidak merata dan cenderung memiliki variasi yang tinggi.

Keberadaan outlier ini juga mengindikasikan bahwa meskipun sebagian besar transaksi menghasilkan profit kecil, terdapat beberapa transaksi ekstrem yang memiliki pengaruh signifikan terhadap keseluruhan distribusi data.

ANALISIS STATISTIK

Statistik Deskriptif

summary(data$Sales)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##      17     100     138     193     230     912
summary(data$Profit)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -638.0    17.0    40.0    61.1    92.0   778.0

Berdasarkan analisis statistik deskriptif, variabel Sales memiliki nilai minimum sebesar 17, kuartil pertama (Q1) sebesar 100, median sebesar 138, mean sebesar 193, kuartil ketiga (Q3) sebesar 230, dan nilai maksimum sebesar 912. Nilai mean yang lebih besar dibandingkan median menunjukkan bahwa distribusi data Sales cenderung miring ke kanan (right-skewed), yang mengindikasikan adanya beberapa nilai penjualan yang sangat tinggi (outlier) yang memengaruhi rata-rata. Hal ini juga didukung oleh rentang data yang cukup besar, sehingga menunjukkan bahwa tingkat penjualan memiliki variasi yang tinggi.

Korelasi Pearson

cor(data$Sales, data$Profit, use = "complete.obs")
## [1] 0.7973309

Berdasarkan hasil analisis korelasi Pearson, diperoleh nilai korelasi sebesar 0,7973309 antara variabel Sales dan Profit. Nilai ini menunjukkan adanya hubungan positif yang kuat, yang berarti bahwa peningkatan nilai Sales cenderung diikuti oleh peningkatan Profit. Dengan kata lain, Sales memiliki keterkaitan yang erat dalam memengaruhi besarnya keuntungan yang diperoleh.

Regresi Linear

model <- lm(Profit ~ Sales, data = data)
summary(model)
## 
## Call:
## lm(formula = Profit ~ Sales, data = data)
## 
## 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

Selanjutnya, hasil analisis regresi linear sederhana menghasilkan persamaan model yaitu Profit = -42,456 + 0,5366(Sales). Koefisien intercept sebesar -42,456 menunjukkan bahwa ketika Sales bernilai nol, maka Profit diprediksi sebesar -42,456, yang mengindikasikan adanya kerugian akibat biaya tetap. Sementara itu, koefisien regresi Sales sebesar 0,5366 menunjukkan bahwa setiap kenaikan satu unit Sales akan meningkatkan Profit sebesar 0,5366 unit. Hasil uji signifikansi menunjukkan bahwa variabel Sales memiliki pengaruh yang sangat signifikan terhadap Profit, dengan nilai p-value < 2e-16 dan nilai t hitung sebesar 86,08, sehingga dapat disimpulkan bahwa pengaruh tersebut bukan terjadi secara kebetulan.

Selain itu, nilai koefisien determinasi (R² = 0,6357) menunjukkan bahwa sebesar 63,57% variasi dalam Profit dapat dijelaskan oleh variabel Sales, sedangkan sisanya sebesar 36,43% dipengaruhi oleh faktor lain di luar model yang tidak diteliti dalam analisis ini. Uji simultan menggunakan statistik F juga menunjukkan bahwa model regresi yang digunakan signifikan secara keseluruhan, dengan nilai F-statistic sebesar 7410 dan p-value < 2,2e-16, sehingga model layak digunakan untuk menjelaskan hubungan antara Sales dan Profit.

Interpretasi Keseluruhan

Berdasarkan hasil visualisasi dan analisis data, dapat disimpulkan bahwa terdapat hubungan yang kuat dan positif antara variabel Sales dan Profit. Hal ini terlihat dari pola pada scatter plot yang menunjukkan tren meningkat, serta didukung oleh nilai korelasi sebesar 0,7973309 yang mengindikasikan hubungan yang kuat. Selain itu, hasil regresi linear menunjukkan bahwa Sales berpengaruh positif terhadap Profit, dengan koefisien regresi sebesar 0,5366, yang berarti setiap peningkatan Sales akan diikuti peningkatan Profit.

Nilai koefisien determinasi (R² = 0,6357) menunjukkan bahwa sekitar 63,57% variasi Profit dapat dijelaskan oleh Sales, sehingga dapat dikatakan bahwa Sales merupakan faktor yang cukup dominan dalam menentukan Profit. Namun, masih terdapat sekitar 36,43% variasi lain yang dipengaruhi oleh faktor di luar model, yang juga terlihat dari adanya penyebaran data dan beberapa outlier pada visualisasi.

Dengan demikian, dapat diinterpretasikan bahwa meskipun Sales memiliki pengaruh yang signifikan terhadap Profit, hubungan tersebut tidak sepenuhnya deterministik. Artinya, peningkatan Sales memang cenderung meningkatkan Profit, tetapi perusahaan tetap perlu mempertimbangkan faktor lain agar keuntungan yang diperoleh dapat lebih optimal.