Koneksi Data

library(DBI)
koneksi<-DBI::dbConnect(odbc::odbc(),
                          Driver = "MySQL ODBC 8.0 ANSI Driver",
                          Server = "127.0.0.1",
                          Database = "coffechain",
                          UID = "root",
                          PWD = "080391",
                          Port = 3306)

Analisis konsistensi profit terhadap komponen-komponen pembentuk profit

Dalam konsep akuntansi, profit suatu penjualan tidak berdiri sendiri atau data secara tiba-tiba tanpa asal yang jelas, melainkan profit merupakan hasil perhitungan antara pendapatan dan biaya. Dari data coffechain yang diberikan terdapat beberapa indikator yang mempengaruhi profit seperti sales, COGS, dan total expenses, sehingga \[Profit=Sales-COGS-Expenses\]

Mengambil data yang sesuai

Mengambil variabel yang sesuai dengan yang dipakai dalam analisis dari dataset yang ada. Variabel yang digunakan disini adalah profit, sales, COGS, dan expenses. Kemduian buat sebuah kolom baru untuk menghitung nilai profit berdasarkan komponen pembentuknya.

data1<-dbGetQuery(koneksi,"select sales, profit, COGS, `Total Expenses`
from facttable")
data1$kalkulasi_profit<-data1$sales-data1$COGS-data1$`Total Expenses`

Eksplorasi Data

Setelah mendapat data yang dibutuhkan akan dilakukan eksplorasi untuk melihat dtuktur data dari data yang dipakai.

summary(data1[, c("sales", "COGS", "Total Expenses", "profit")])
##      sales          COGS        Total Expenses       profit      
##  Min.   : 17   Min.   :  0.00   Min.   : 10.00   Min.   :-638.0  
##  1st Qu.:100   1st Qu.: 43.00   1st Qu.: 33.00   1st Qu.:  17.0  
##  Median :138   Median : 60.00   Median : 46.00   Median :  40.0  
##  Mean   :193   Mean   : 84.43   Mean   : 54.06   Mean   :  61.1  
##  3rd Qu.:230   3rd Qu.:100.00   3rd Qu.: 65.00   3rd Qu.:  92.0  
##  Max.   :912   Max.   :364.00   Max.   :190.00   Max.   : 778.0

Data menunjukkan bahwa Sales, COGS, dan Expenses cenderung tidak merata (banyak nilai sedang, sedikit yang sangat tinggi), terlihat dari rata-rata yang lebih besar dari median. Profit memiliki variasi paling besar, bahkan ada nilai negatif yang sangat rendah, yang berarti beberapa transaksi mengalami kerugian besar. Selain itu, adanya COGS bernilai 0 perlu diperhatikan karena bisa menandakan kejanggalan data. Secara umum, data cukup beragam dan mengandung nilai ekstrem.

Visualisasi Data

Untuk melihat bagaimana bentuk persebaran data dan juga sebagai bahan pertimbangan untuk analisis apakah profit sesuai, dilakukan visualisasi data menggunakan visualisasi scatter plot karena visualisasi ini dapat menggambarkan bagaimana persebaran data.

library(ggplot2)

ggplot(data1, aes(x = kalkulasi_profit, y = profit)) +
  geom_point(alpha = 0.6) +
  geom_abline(slope = 1, intercept = 0) +
  labs(
    title = "Perbandingan Profit Tercatat vs Profit Kalkulasi",
    x = "kalkulasi Profit",
    y = "Profit tercatat"
  ) +
  theme_minimal()

Grafik menunjukkan bahwa profit tercatat memiliki hubungan linear yang sangat kuat dengan profit hasil perhitungan , yang mengindikasikan bahwa struktur data secara umum konsisten dengan konsep dasar pembentukan profit. Namun, adanya penyimpangan dari garis ideal menunjukkan bahwa terdapat faktor lain yang mempengaruhi profit atau ada perbedaan definisi dalam pencatatan variabel, sehingga model perhitungan sederhana belum sepenuhnya menampilkan nilai profit aseli.

Uji Statistik

Untuk memvalidasi pengamatan dari struktur data dan visualisasi data , dilakukan uji statistik dengan menggunakan uji t satu sampel. namun sebelum menguji data, terlebih dahulu dibuat sebuah variabel yang berisi perbedaan profit asli dan kalkulasi atau (nilai error) dengan mencari selisih dari 2 data tersebut. setelah mendapat data error dilakukan uji normalitas data debelum uji hipotesis.

data1$error<-data1$profit-data1$kalkulasi_profit
uji_normal<-function(x){
  uji<-shapiro.test(x)
  print(uji)
if (uji$p.value >= 0.05) {
  cat("Karena p-value =", uji$p.value, 
      ">= 0.05, maka data berdistribusi normal")
} else {
  cat("Karena p-value =", uji$p.value, 
      "< 0.05, maka data tidak berdistribusi normal")
}
}
uji_normal(data1$error)
## 
##  Shapiro-Wilk normality test
## 
## data:  x
## W = 0.60999, p-value < 2.2e-16
## 
## Karena p-value = 3.7816e-71 < 0.05, maka data tidak berdistribusi normal

Uji normalitas dilakukan terhadap variabel error menggunakan uji Shapiro-Wilk. Hasil menunjukkan bahwa data tidak memenuhi asumsi normalitas. Namun, mengingat ukuran sampel yang besar, uji t dapat digunakan berdasarkan prinsip Central Limit Theorem.

Hipotesis

\(H_0\):rata-rata error\(=0\) atau tidak terdapat perbedaan signifikan antara profit aktual dengan profit kalkulasi

\(H_1\):rata-rata error\(\ne 0\) atau terdapat perbedaan signifikan antara profit aktual dengan profit kalkulasi

Hasil uji

test1<-t.test(data1$error,mu=0)
test1
## 
##  One Sample t-test
## 
## data:  data1$error
## t = 18.225, df = 4247, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  5.896157 7.317590
## sample estimates:
## mean of x 
##  6.606874
if (test1$p.value < 0.05) {
  cat("Karena p-value =", test1$p.value, 
      "< 0.05, maka H0 ditolak")
} else {
  cat("Karena p-value =", test1$p.value, 
      ">= 0.05, maka H0 gagal ditolak")
}
## Karena p-value = 1.625349e-71 < 0.05, maka H0 ditolak

Interpretasi

Berdasarkan hasil uji t satu sampel, diperoleh p-value yang sangat kecil (≈ 10⁻¹⁷), sehingga H0 ditolak. Hal ini menunjukkan bahwa terdapat perbedaan yang signifikan antara profit aktual dan profit hasil perhitungan.

Kesimpulan

Berdasarkan eksplorasi data, variabel Sales, COGS, Total Expenses, dan Profit menunjukkan distribusi yang tidak merata dengan adanya nilai ekstrem, terutama pada Profit yang sangat bervariasi hingga bernilai negatif besar. Visualisasi memperlihatkan hubungan linear yang kuat antara profit aktual dan profit yang diperoleh dari hasil perhitungan, yang berarti secara umum data mengikuti konsep dasar pembentukan profit. Namun, adanya penyebaran titik dari garis ideal menunjukkan terdapat perbedaan yang tidak bisa diabaikan.

Hasil uji t menunjukkan p-value yang sangat kecil (\(\approx 10^{-17}\)), sehingga dapat disimpulkan bahwa perbedaan antara profit aktual dan hasil perhitungan signifikan secara statistik. Dengan demikian, meskipun profit dipengaruhi oleh Sales, COGS, dan Total Expenses, model sederhana tersebut belum sepenuhnya menjelaskan profit secara akurat, sehingga kemungkinan terdapat faktor lain yang mempengaruhi profit tersebut.

Analisis Perbandingan Total Penjualan Bulanan

naik turunnya penjualan merupakan suatu hal yang wajar dalam sebuah bisnis. Penjualan merupakan salah satu faktor penting sebuah usaha atau bisnis dikatakan berkembang. Oleh karena itu, akan dianalisis total penjualan perbulan selama 2 tahun dari dataset coffechain untuk memperoleh suatu informasi terkait peforma bisnis dari dataset.

Pengambilan Data dan Persiapan Data

sebelum menganalisis data, terlebih dahulu dilakukan pengambilan data yang dibutuhkan yaitu data penjualan perbulan selama tahun 2012 dan tahun 2013. dilakukan juga penambahan faktor level pada variabel bulan supaya saat visualisasi urutan bulannya tidak berantakan.

data2<-dbGetQuery(koneksi,"select monthname(Date) as bulan,
    sum(case when year(Date) = 2012 then sales else 0 end) as penjualan_2012,
    sum(case when year(Date) = 2013 then sales else 0 end) as penjualan_2013
from facttable
group by monthname(Date)")
data2$bulan <- factor(data2$bulan,
 levels = c("January","February","March","April","May","June",
            "July","August","September","October","November","December"))
data2
##        bulan penjualan_2012 penjualan_2013
## 1    January          31555          35316
## 2   February          32092          34192
## 3      March          32245          34355
## 4      April          32943          35112
## 5        May          33692          33394
## 6       June          35125          34807
## 7       July          36161          35830
## 8     August          36029          35707
## 9  September          33092          35269
## 10   October          32849          34987
## 11  November          32003          34103
## 12  December          33373          35580

Eksplorasi

Setelah mendapat data yag dibutuhkan, dilakukan eksplorasi data dengan melihat struktur data yang ada.

summary(data2[,c("penjualan_2012","penjualan_2013")])
##  penjualan_2012  penjualan_2013 
##  Min.   :31555   Min.   :33394  
##  1st Qu.:32207   1st Qu.:34314  
##  Median :33018   Median :35050  
##  Mean   :33430   Mean   :34888  
##  3rd Qu.:34050   3rd Qu.:35382  
##  Max.   :36161   Max.   :35830

Dari eksplorasi yang dilakukan, diperloleh beberapa hal diantaranya penjualan bulanan di tahun 2013 secara umum lebih tinggi dibanndingkan dengan tahun 2012, terlihat dari nilai minimum, median, rata-rata dan quartilnya yang lebih besar dari tahun sebelumnya. rata rata penjualan di tahun 2013 sebesar 34.888 yang lebih tinggi dari rart rata dari tahun 2012 yakni sebesar 33.430 yang mengindikasikan adanya pertumbuhan penjualan. selain itu, ditemukan rentang penjualan antar bulan di 2 tahun yang tdaik begitu jauh sehingga dapat di indikasikan bahwa kondisi penjulan cenderung stabil meskipun tetap mengalami fluktuasi,

visualisasi

library(ggplot2)
ggplot(data2, aes(x = bulan)) +
  #garis
  geom_line(aes(y = penjualan_2012,group=1),color = "skyblue", linewidth = 1) +
  geom_line(aes(y = penjualan_2013,group=1), color = "orange", linewidth = 1) +
  #titik
  geom_point(aes(y = penjualan_2012), color = "skyblue",size=2) +
  geom_point(aes(y = penjualan_2013), color = "orange",size=2)+
  #label
  geom_text(aes(y = penjualan_2012, label = penjualan_2012),
            vjust = -1, size = 3,color="black") +
  geom_text(aes(y = penjualan_2013, label = penjualan_2013),
            vjust = 1.5, size = 3,color = "black") +
  theme_minimal()+ theme(axis.text.x = element_text(angle = 45, hjust = 1))+
  labs(title = "Perbandingan Total Penjualan Bulanan (2012 vs 2013)",x = "Bulan",y = "Total Penjualan") 

Dari grafik diatas, pada tahun 2012 terlihat bahwa terdapat kenaikan penjualan pada awal tahun hingga mencapai puncak pada bulan juli-agustus yang kemudian mengalami penurunan tajam pada bulan september hingga november. sedangkan pada tahun 2013, grafik cenderung lebih stabil dan menunjukkan peforma yang lebih baik secara keseluruhan dari tahun sebelumnya meskipun sempat dibawah tahun 2012 du unterval waktu tertntu yang tidak terlalu signifikan. sehingga dapat dikatakan bahwa penjualan ditahun 2013 lebih konsisten dibandingkan dengan penjualan ditahun 2012.

Uji statistik

Untuk memperkuat analisis, akan dilakukan uji statistik terhadap perbedaan profit tahun 2012 dan 2013. apakah terdapat perbedaan yang signifikan antara penjualan tahun 2012 dan 2013.

Hipotesis

\(H_0\):Tidak terdapat perbedaan antara penjualan tahun 2012 dengan 2013

\(H_1\):Terdapat perbedaan antara penjualan tahun 2012 dengan 2013

Uji Normalitas

Sebelum di uji, akan dilakukan pengecekan terhadap jenis distribusi data guna menentukan metode analisis yang digunakan.

selisih<-data2$penjualan_2013-data2$penjualan_2012
uji_normal<-function(x){
  uji<-shapiro.test(x)
  print(uji)
if (uji$p.value >= 0.05) {
  cat("Karena p-value =", uji$p.value, 
      ">= 0.05, maka data berdistribusi normal")
} else {
  cat("Karena p-value =", uji$p.value, 
      "< 0.05, maka data tidak berdistribusi normal")
}
}
uji_normal(selisih)
## 
##  Shapiro-Wilk normality test
## 
## data:  x
## W = 0.77812, p-value = 0.00534
## 
## Karena p-value = 0.005339639 < 0.05, maka data tidak berdistribusi normal

Karena data tidak berdistribusi normal, maka akan digunakan wilcoxon signed-rank test sebagai uji non-parametrik untuk data ini.

Hasil Uji

test2<-wilcox.test(data2$penjualan_2012,data2$penjualan_2013,paired = TRUE)
## Warning in wilcox.test.default(data2$penjualan_2012, data2$penjualan_2013, :
## cannot compute exact p-value with ties
test2
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  data2$penjualan_2012 and data2$penjualan_2013
## V = 10, p-value = 0.02531
## alternative hypothesis: true location shift is not equal to 0
if (test2$p.value < 0.05) {
  cat("Karena p-value =", test2$p.value, 
      "< 0.05, maka H0 ditolak")
} else {
  cat("Karena p-value =", test2$p.value, 
      ">= 0.05, maka H0 gagal ditolak")
}
## Karena p-value = 0.02531352 < 0.05, maka H0 ditolak

Interpretasi

Berdasarkan hasil uji wilcoxon, diperoleh p-value yakni sebesar 0.02531352, sehingga \(H_0\) ditolak. maka, terdapat perbedaan penjualan bulanan yang signifikan antara tahun 2012 dan 2013.

Kesimpulan

Dari hasil eksplorasi data, didapat bahwa penjualan tahun 2013 secara umum lebih tinggi diabndingakn dengan tahun 2012, hal ini ditunjukkan oleh nilai mean, min, dan median yang lebih besar. Dari visualisasi grafik, terlihat bahwa tahun 2013 memiliki pola penjualan yang cenderung lebih stabil dan konsisten, sedangkan tahun 2012 mengalami perubahan yang cukup tajam meskipun mencapai puncak penjualan tertinggi pada pertengahan tahun. Selanjutnya pembuktian dengan uji hibotesis menunjukkan bahwa terdapat perbedaan yang signifikan antara penjualan tahun 2012 dan 2013. dengan demikian berdasarkan hasil ekplorasi data, visualisasi data dan uji hipotesis, dapat disimpulkan bahwa penjualan tahun 2013 mengalami peningkatan dibandingkan dengan tahun 2012.