Laporan ini disusun untuk memenuhi tugas mata kuliah Sistem Informasi Manajemen. Fokus utama dari laporan analisis ini adalah mengeksplorasi dataset Coffee Chain untuk mengetahui bagaimana performa penjualan dan keuntungan perusahaan.
# Library yg diperlukan
library(DBI)
library(odbc)
library(ggplot2)
library(scales)
library(dplyr)
library(knitr)
Data yang diimpor ke R menggunakan koneksi SQL. Dengan menggunakan fungsi dbConnect()
con = dbConnect(odbc(),
Driver = "MySQL ODBC 8.0 ANSI Driver",
Server = "127.0.0.1",
UID = "root",
PWD = "glaryona8181",
Port = 3306,
database = "coffee chain"
)
Data yang akan digunakan yaitu data sales (penjualan), profit (keuntungan), margin, COGS (biaya produksi), dan marketing (biaya produksi) yang terdapat pada facttable.
data <- dbGetQuery(con, "SELECT Sales, Profit, Margin, COGS,Marketing FROM facttable")
summary(data)
## Sales Profit Margin COGS
## Min. : 17 Min. :-638.0 Min. :-302.00 Min. : 0.00
## 1st Qu.:100 1st Qu.: 17.0 1st Qu.: 52.75 1st Qu.: 43.00
## Median :138 Median : 40.0 Median : 76.00 Median : 60.00
## Mean :193 Mean : 61.1 Mean : 104.29 Mean : 84.43
## 3rd Qu.:230 3rd Qu.: 92.0 3rd Qu.: 132.00 3rd Qu.:100.00
## Max. :912 Max. : 778.0 Max. : 613.00 Max. :364.00
## Marketing
## Min. : 0.00
## 1st Qu.: 13.00
## Median : 22.00
## Mean : 31.19
## 3rd Qu.: 39.00
## Max. :156.00
Dari eksplorasi ini, diperoleh gambaran umum mengenai nilai minimum, maksimum, dan rata-rata dari setiap variabel keuangan perusahaan.
str(data)
## 'data.frame': 4248 obs. of 5 variables:
## $ Sales : int 219 190 234 100 134 180 341 150 140 130 ...
## $ Profit : int 94 68 101 30 54 53 99 0 33 17 ...
## $ Margin : int 130 107 139 56 80 108 171 87 80 72 ...
## $ COGS : int 89 83 95 44 54 72 170 63 60 58 ...
## $ Marketing: int 24 27 26 14 15 23 47 57 19 22 ...
head(data)
## Sales Profit Margin COGS Marketing
## 1 219 94 130 89 24
## 2 190 68 107 83 27
## 3 234 101 139 95 26
## 4 100 30 56 44 14
## 5 134 54 80 54 15
## 6 180 53 108 72 23
colSums(is.na(data))
## Sales Profit Margin COGS Marketing
## 0 0 0 0 0
Fungsi str() menunjukkan bahwa semua variabel bertipe numerik, sehingga siap diolah secara statistik. Pengecekan is.na menunjukkan jumlah data yang kosong (missing values) adalah nol, yang berarti kualitas data sangat baik untuk dianalisis.
cat("Total Penjualan Keseluruhan: ", sum(data$Sales), "\n")
## Total Penjualan Keseluruhan: 819811
cat("Total Keuntungan Keseluruhan: ", sum(data$Profit))
## Total Keuntungan Keseluruhan: 259543
Penjumlahn ini memberikan informas mengenai total perputaran uang dan sisa keuntungan bersih yang berhasil dikumpulkan secara akumulatif.
rata_margin <- mean(data$Margin)
cat("Rata-rata Margin Keuntungan: ", round(rata_margin, 2))
## Rata-rata Margin Keuntungan: 104.29
rasio_cogs <- (sum(data$COGS) / sum(data$Sales)) * 100
cat("Rasio COGS terhadap Total Sales: ", round(rasio_cogs, 2), "%")
## Rasio COGS terhadap Total Sales: 43.75 %
Rasio COGS yang rendah menunjukkan efisiensi operasional yang baik. Semakin kecil biaya produksi dibandingkan penjualan, maka bisnis akan semakin sehat secara finansial.
colMeans(data)
## Sales Profit Margin COGS Marketing
## 192.98752 61.09769 104.29331 84.43315 31.18503
cor(data)
## Sales Profit Margin COGS Marketing
## Sales 1.0000000 0.7973309 0.9388095 0.8866512 0.7105149
## Profit 0.7973309 1.0000000 0.9206041 0.4648382 0.2254650
## Margin 0.9388095 0.9206041 1.0000000 0.6787967 0.5319466
## COGS 0.8866512 0.4648382 0.6787967 1.0000000 0.8182707
## Marketing 0.7105149 0.2254650 0.5319466 0.8182707 1.0000000
Nilai rata-rata variabel (colMeans) memberikan standar performa harian. Sementara itu, tabel korelasi (cor) menunjukkan hubungan antar variabel dari nilai korelasi positif yang tinggi antara Sales dan Profit membuktikan bahwa peningkatan penjualan berdampak langsung pada kenaikan laba.
Bagian ini menampilkan 10 transaksi dengan tingkat keuntungan (profit) tertinggi.
top10_data <- data %>%
arrange(desc(Profit)) %>%
head(10)
kable(top10_data,
caption = "Tabel 1: Top 10 Transaksi Paling Menguntungkan",
col.names = c("Sales", "Profit", "Margin", "COGS", "Marketing"),
align = "c")
| Sales | Profit | Margin | COGS | Marketing |
|---|---|---|---|---|
| 659 | 778 | 613 | 52 | 17 |
| 658 | 777 | 612 | 52 | 17 |
| 643 | 755 | 595 | 54 | 17 |
| 614 | 690 | 516 | 60 | 19 |
| 815 | 646 | 526 | 239 | 66 |
| 546 | 599 | 487 | 64 | 21 |
| 553 | 589 | 451 | 68 | 22 |
| 543 | 579 | 443 | 67 | 22 |
| 553 | 572 | 422 | 72 | 23 |
| 719 | 565 | 464 | 211 | 59 |
ggplot(data, aes(x = Sales, y = Profit, color = Margin)) +
geom_point(alpha = 0.6) +
geom_smooth(method = "lm", color = "red", linetype = "dashed") +
scale_color_gradient(low = "orange", high = "darkblue") +
labs(title = "Hubungan Sales vs Profit",
subtitle = "Warna menunjukkan besar Margin",
x = "Penjualan (Sales)",
y = "Keuntungan (Profit)") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Berdasarkan grafik tersebut, garis merah menunjukkan tren positif. Artinya semakin tinggi penjualan, semakin tinggi pula profit yang diperoleh. Titik-titik biru gelap menunjukkan bahwa transaksi tersebut sangat efisien karena marginnya besar.
ggplot(data, aes(x = Marketing, fill = ..count..)) +
geom_histogram(binwidth = 5, color = "white", alpha = 0.7) +
scale_fill_gradient(low = "#d5a6bd", high = "#a64d79") +
labs(title = "Distribusi Frekuensi Biaya Marketing",
x = "Biaya Marketing",
y = "Frekuensi (Jumlah Transaksi)",
fill = "Jumlah") +
theme_minimal()
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Berdasarkan histogram ini, dapat dilihat bahwa sebagian besar biaya
pemasaran (Marketing) Coffee Chain berada di
kisaran 0-20. Ini menunjukkan bahwa perusahaan cenderung mengeluarkan
biaya pemasaran yang lebih kecil.
ggplot(data, aes(x = Profit)) +
geom_density(fill = "steelblue", alpha = 0.6) +
geom_vline(xintercept = 0, color = "red", linetype = "dashed") +
labs(title = "Grafik Kerapatan Profit",
x = "Besar Keuntungan",
y = "Kerapatan") +
theme_light()
Berdasarkan hasil visualisasi tersebut, sebagian besak puncak grafik berada di sebelah kanan garis merah (titik nol), ini berarti mayoritas transaksi Coffee Chain menghasilkan keuntungan.
Berdasarkan seluruh analisis yang telah dilakukan, penjualan memiliki hubungan positif dengan keuntungan. Namun, tidak selalu menghasilkan profit yang tinggi pada setiap transaksi. Margin memainkan peran penting dalam menentukan efisiensi transaksi di mana margin yang tinggi menunjukkan keuntungan yang lebih optimal. Selain itu, rasio COGS terhadap penjualan menunjukkan bahwa efisiensi biaya produksi sangat mempengaruhi profit.