1 Pendahuluan

Dokumen ini menyajikan analisis statistik deskriptif terhadap data rumah makan, restoran, dan kafe di Kota Bandung. Analisis berfokus pada dua variabel numerik, yaitu PELAYANAN dan MAKANAN, berdasarkan data yang dibaca dari file Excel.

2 Memuat Paket dan Data

# Jalankan baris berikut satu kali jika package belum terpasang:
# install.packages("readxl")

library(readxl)

# Pastikan file Excel berada di folder project yang sama dengan file Rmd.
nama_file <- "Data Rumah Makan Restoran dan Cafe di Kota Bandung.xlsx"

if (!file.exists(nama_file)) {
  stop(
    paste0(
      "File Excel tidak ditemukan: ", nama_file,
      ". Unggah file Excel ke folder project Posit Cloud yang sama dengan file Rmd."
    )
  )
}

df <- read_excel(nama_file, skip = 1)

# Periksa apakah kolom yang diperlukan tersedia.
kolom_wajib <- c("PELAYANAN", "MAKANAN")
kolom_hilang <- setdiff(kolom_wajib, names(df))

if (length(kolom_hilang) > 0) {
  stop(
    paste("Kolom berikut tidak ditemukan:", paste(kolom_hilang, collapse = ", "),
          ". Periksa nama kolom di file Excel dan nilai skip.")
  )
}

3 Gambaran Data

Data berhasil dibaca dari file Excel. Ringkasan ukuran data, nama kolom, dan enam baris pertama ditampilkan di bawah ini.

cat("Jumlah baris:", nrow(df), "\n")
## Jumlah baris: 101
cat("Jumlah kolom:", ncol(df), "\n")
## Jumlah kolom: 6
knitr::kable(
  data.frame(Nama_Kolom = names(df)),
  caption = "Nama kolom dalam dataset"
)
Nama kolom dalam dataset
Nama_Kolom
NAMA PERUSAHAAN
ALAMAT
KET
ID
PELAYANAN
MAKANAN
knitr::kable(
  head(df),
  caption = "Enam baris pertama dataset"
)
Enam baris pertama dataset
NAMA PERUSAHAAN ALAMAT KET ID PELAYANAN MAKANAN
ABUBA STEAK Jl. Prabudimuntur No. 12 - 1 58 7
ARDEN CAFÉ Jl. Sukajadi No. 228 - 2 54 1
ATMOSPHERE Jl. Lengkong Besar No. 97 - 3 98 2
B.M.C. Jl. Aceh No. 30 - 4 52 4
BANDUNG SUKI Jl. Braga No. 70 - 5 11 4
BANDUNG SUKI / PT. DWIMITRA Jl. Braga no. 70 - 6 59 10

4 Metode Analisis

Statistik deskriptif yang dihitung meliputi mean (rata-rata), median, modus, nilai minimum, nilai maksimum, varians, dan standar deviasi. Nilai yang hilang (NA) diabaikan pada perhitungan statistik yang mendukung argumen na.rm = TRUE.

Modus dihitung sebagai nilai dengan frekuensi tertinggi. Jika ada lebih dari satu nilai yang sama-sama memiliki frekuensi tertinggi, fungsi akan menampilkan seluruh nilai tersebut.

modus <- function(x) {
  x_valid <- x[!is.na(x)]

  if (length(x_valid) == 0) {
    return(NA_real_)
  }

  frekuensi <- table(x_valid)
  as.numeric(names(frekuensi)[frekuensi == max(frekuensi)])
}

hitung_statistik <- function(x, nama_variabel) {
  x_valid <- x[!is.na(x)]

  if (length(x_valid) == 0) {
    return(data.frame(
      Variabel = nama_variabel,
      N = 0,
      Mean = NA_real_,
      Median = NA_real_,
      Modus = NA_character_,
      Minimum = NA_real_,
      Maksimum = NA_real_,
      Varians = NA_real_,
      Standar_deviasi = NA_real_
    ))
  }

  data.frame(
    Variabel = nama_variabel,
    N = length(x_valid),
    Mean = mean(x_valid),
    Median = median(x_valid),
    Modus = paste(modus(x_valid), collapse = ", "),
    Minimum = min(x_valid),
    Maksimum = max(x_valid),
    Varians = var(x_valid),
    Standar_deviasi = sd(x_valid),
    check.names = FALSE
  )
}

5 Hasil Analisis

5.1 Statistik Rating Pelayanan

stat_pelayanan <- hitung_statistik(df$PELAYANAN, "PELAYANAN")
knitr::kable(
  stat_pelayanan,
  digits = 2,
  caption = "Statistik deskriptif variabel pelayanan"
)
Statistik deskriptif variabel pelayanan
Variabel N Mean Median Modus Minimum Maksimum Varians Standar_deviasi
PELAYANAN 100 42.24 39 11 3 100 712.99 26.7

5.2 Statistik Rating Makanan

stat_makanan <- hitung_statistik(df$MAKANAN, "MAKANAN")
knitr::kable(
  stat_makanan,
  digits = 2,
  caption = "Statistik deskriptif variabel makanan"
)
Statistik deskriptif variabel makanan
Variabel N Mean Median Modus Minimum Maksimum Varians Standar_deviasi
MAKANAN 100 5.42 5 3 1 10 9.05 3.01

5.3 Perbandingan Ringkas

hasil_statistik <- rbind(stat_pelayanan, stat_makanan)
knitr::kable(
  hasil_statistik,
  digits = 2,
  caption = "Perbandingan statistik deskriptif pelayanan dan makanan"
)
Perbandingan statistik deskriptif pelayanan dan makanan
Variabel N Mean Median Modus Minimum Maksimum Varians Standar_deviasi
PELAYANAN 100 42.24 39 11 3 100 712.99 26.70
MAKANAN 100 5.42 5 3 1 10 9.05 3.01

6 Interpretasi

Gunakan tabel hasil analisis di atas untuk menjelaskan karakteristik kedua variabel.

Nilai pelayanan dan makanan sebaiknya dibandingkan dengan mempertimbangkan skala dan definisi masing-masing variabel pada sumber data. Jangan menyimpulkan bahwa salah satu lebih baik hanya berdasarkan besar angka jika skala atau cara pengukurannya berbeda.

7 Kesimpulan

Analisis ini merangkum ukuran pemusatan dan penyebaran untuk variabel PELAYANAN dan MAKANAN pada dataset rumah makan, restoran, dan kafe di Kota Bandung. Kesimpulan substantif perlu disusun berdasarkan hasil tabel serta keterangan dan skala pengukuran yang tersedia pada sumber data.

8 Informasi Reproduksibilitas

Analisis dapat dijalankan kembali selama file Excel tersedia di folder yang sama dengan dokumen R Markdown dan nama file serta struktur kolomnya sesuai. Dokumen ini menggunakan package readxl untuk membaca Excel dan knitr untuk menampilkan tabel.