1 Pendahuluan

Dokumen ini menyajikananalisis 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 Tampilan Dataset

knitr::kable(
  df,
  caption = "Dataset Rumah Makan, Restoran, dan Cafe"
)
Dataset Rumah Makan, Restoran, dan Cafe
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
BAR & GRILL ROSESS RESTOURANT Jl. Burangrang No. 39 - 7 61 8
BEE HOUSE RESTO AND CAFÉ Jl. Ters. Jakarta No. 2 Gedung Lucky Squere Mall - 8 30 10
BELLAIR CAFÉ AND LOUNGE Jl. Pasirkaliki - 9 45 1
BELLAIT CAFÉ/TIME SQUARE Jl. Pasirkaliki No. 25-27 - 10 36 9
BLEND CAFÉ Jl. Lombok No. 43 - 11 10 5
BP. SANGKURIANG/CONCORDIA Jl. Kiputih No. 12 - 12 38 7
BRAGA HUIS Jl. Braga No. 47 - 13 80 3
BRAGA AVENUE Jl. Braga No. 14 - 14 31 8
BRAGA PERMAI Jl. Braga No. 58 - 15 78 5
BUTTONS Jl. Pelajar Pejuang No. 72 - 16 82 6
C F C. Jl. Kepatihan No. 11-17 - 17 70 3
C F C. Jl. Sumber Sari Indah T1 + T2 - 18 3 9
C F C. Jl. Terusan Jakarta No. 53 - 19 42 3
C F C. Jl. Kepatihan No. 18 - 20 49 10
C.F.C. Jl. Jenderal Gatot Subroto No. 289 - 21 48 2
C.F.C. Jl. Raya Ujung Berung No. 209 - 22 79 9
CAFE DE CASA Jl. Lodaya No. 119 - 23 18 4
CAFE PANDAWA ABADI PERKASA Jl. Aceh No. 44 - 24 100 9
CAFÉ LOVEBIRD Jl. A. Yani No. 134-136 - 25 61 10
CAFÉ BALI Jl. R.E. Martadinata No. 815 - 26 4 2
CAFÉ BARAYA Jl. Gandapura No. 56-58 - 27 59 8
CAFÉ HALAMAN Jl. Taman Sari No. 92 - 28 44 3
CAFÉ HALAMAN Jl. Sukajadi No. 137-139 - 29 11 8
CAFÉ PASAR CISANGKUY Jl. Cusangkuy No. 6 - 30 7 6
CAFÉ PISA Jl. Cihampelas No. 160 - 31 74 9
CHILLI PADI Jl. Cihampelas No. 121-C - 32 42 3
CITRA SARI Jl. Soka No. 3 - 33 33 8
CLICK ON Jl. Cisangkuy No. 64 - 34 93 4
COCA SUKI Jl. Ir. H. Juanda No. 173 - 35 4 1
CV HAN KOOK GWAN Jl. Karang Sari No. 21 - 36 32 6
CV. 9 SQUARE Jl. Sulanjana No. 9 - 37 31 4
CV. 9 SQUARE Jl. Sulanjana No. 9 - 38 10 1
CV. ADI AVAMA (TREND) Jl. Pahlawan No. 89 - 39 52 7
CV. BINTANG KULINA JAYA/ RESTO REUNION Jl. Dr. Setiabudhi No. 45 - 40 7 6
CV. BINTANG MEGA SEJATI Jl. Merdeka No. 2 - 41 33 2
CV. BOGA MANDIRI/ GAMBRINUS Jl. Prof.Drg.Suria Somantri No. 59 - 42 94 10
CV. CIPTA PANCA UTAMA Jl. Pasteur No. 11 a - 43 34 3
CV. DUA SEKAWAN ABADI/TOMODACHI Jl. Aceh No. 66 - 44 63 2
CV. DWI MANUNGGAL/CHINOOK Jl. R. E. Martadinata No. 191 - 45 3 8
CV. DWI MITRA BARAGA/BARAGA Jl. Braga No. 45 - 46 38 1
CV. FORTUNA MEGA ABADI Jl. Karang Sari No. 14 - 47 21 3
CV. Fresnan Jaya Abadi/TAN YANG SUKI Ruko Paskal HyperSquare No. A/18 - 48 64 4
CV. GASTRO PRIMA/ GLOSIS Jl. Hegarmanah No. 6 - 49 19 1
CV. GASTRO PRIMA/ GLOSSIS Jl. Cihampelas No. 160 - 50 42 5
CV. HAN COOK GWAN Jl. Karangsari No, 21 - 51 48 10
CV. HERMANDER PRIMA Jl. Karangsari No, 23 - 52 94 3
CV. HIDUP JAYA SELARAS/ PLATE FOR ME Jl. R.E. Martadinata No. 172 - 53 21 6
CV. KARYA PEMBANGUNAN UTAMA Jl. Purnawarman - 54 64 10
CV. MAKMUR BERDAYA/MILESTONES) Ir. H. Juanda No. 145 - 55 50 7
CV. MIKAWA Jl. Sukaraja II No. 32 - 56 49 3
CV. MITRA MANDIRI ABADI Jl. Hegarmanah No. 2 - 57 24 3
CV. NUSA PRIMA PANGAN Jl. Pajajaran (Husein Sastranegara) - 58 31 1
CV. PIRANTI RASA INDONESIA Jl. Pelajar Pejuang 45 No. 91 - 59 28 4
CV. RAJAWALI EMAS/ SUMERAGI Komp. Setrasari Mall B.3 No. 15 - 60 79 6
CV. RUMAH KEBOEN/FAMILY RESTO Jl. RE. Martadinata No. 156 - 61 42 4
CV. SINAR MULIA SEJAHTERA Jl. Karapitan No. 60 - 62 31 7
CV. SINAR MULYA SEJAHTERA Jl. Karapitan No. 60 - 63 78 7
CV. SUMBER SARANA INVESTAMA Jl. Dr. Setiabudhi No. 41-f - 64 35 2
CV. UNITY INDO SUKSES Jl. Ir. H. Juanda No. 177 - 65 3 8
CV. VANDEVENTER Jl. Van de venter No. 10 - 66 4 9
D KOTA CAFÉ & LOUNGE Jl. Jend. A. Yani No. 134 136 - 67 27 4
D’LUMBOENK Jl. Ciumbuleuit No. 42 - 68 59 5
DAGO 254 Jl. Ir. H. Juanda No. 254 - 69 86 10
DUCK KING Jl. Sukajadi No. 137 - 70 78 8
DPALM Jl. Lombok No. 45 - 71 39 3
ENTRO Jl. Braga No. 129 - 72 26 6
EXELLENT SEVEN DEWATA SKY Jl. Dr. Ehrlich No. 7 - 73 22 10
FABRIK CAFÉ Jl. R.E Martadinata No. 107 - 74 54 4
FORUM Jl. Sukajadi No. 166 - 75 61 1
FRIENDS RESTORAN Jl. Cihampelas No. 160 - 76 45 5
GADING Jl. Sukajadi No. 228A - 77 11 10
GARASI RESTO Jl. Braga No. 94 - 78 20 1
GELATO BAR Jl. Sukajadi No. 137-139 - 79 87 9
GENERAL CO Jl. Kebonjati (Hyper square) - 80 39 10
GIGLE BOX Jl. Karangsari No. 1 A - 81 4 10
GOKANA TEPPAN Jl. Sukajadi No. 225 - 82 13 4
GOKANA TEPPAN Jl. Pelajar Pejuang 45 No. 119 - 83 69 8
GOKANA TEPPAN Jl. Cihampelas No. 160 Ciwalk - 84 11 2
GOKANA TEPPAN Jl. Kepatihan No. 11-17 Lt.IV Bdg - 85 18 4
GOLDEN MONKEY Jl. Ir. H. Juanda No. 163 - 86 30 5
GOLDEN MONKEY Jl. Ir. H. Juanda No. 163 - 87 56 4
GOOD SUKI RESTORANT Jl. Braga No. 39 - 88 18 9
GOSSIP Jl. Ir. H. Juanda no. 111 - 89 48 2
GRAND EASTERN Jl. Pasirkaliki No. 18 - 90 10 1
GRANDIA Jl. Cihampelas No. 90-92 - 91 98 3
GRAPPA PIZZA Jl. Peta No. 241 Gedung City Link - 92 83 3
GREEN CAFÉ Jl. Diponegoro No.26 - 93 40 8
HAN KOOK GWAN Jl. Karangsari No. 21 - 94 20 3
HANGOVER EAT & CHEERS Jl. Braga No. 47 - 95 63 8
HOKA HOKA BENTO Jl. DR. Setiabudhi No. 302 A - 96 30 1
HOKA HOKA BENTO Jl. Merdeka No. 47 - 97 25 3
HOKA HOKA BENTO Jl. Buah Batu No. 273 - 98 27 10
HOKA HOKA BENTO Jl. Kepatihan No. 11-17 - 99 8 6
HOKA HOKA BENTO Jl. Soekarno Hatta No. 590 MTC - 100 11 8
Sumber: Portal Data Kota Bandung (Dataset: Tahun 2017 ) NA NA NA NA NA

4 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

5 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
  )
}

6 Hasil Analisis

6.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

6.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

6.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

7 Interpretasi

Berdasarkan analisis terhadap 101 data restoran, rumah makan, dan kafe di Kota Bandung, diperoleh hasil berikut:

Variabel PELAYANAN memiliki rata-rata 42,24, median 39, dan modus 11. Nilainya berkisar antara 3–100 dengan standar deviasi 26,70. Hal ini menunjukkan adanya variasi nilai pelayanan dalam dataset.

Variabel MAKANAN memiliki rata-rata 5,42, median 5, dan modus 3. Nilainya berkisar antara 1–10 dengan standar deviasi 3,01. Hal ini menunjukkan bahwa nilai makanan dalam dataset juga bervariasi.

8 Visualisasi data

Kami menggunakan visualisasi data histogram dikarenakan visualisasi ini membantu menunjukkan persebaran nilai rating berdasarkan interval tertentu, sehingga dapat diketahui rentang nilai yang memiliki frekuensi tinggi. Selain itu, histogram juga memudahkan pengamatan terhadap pola distribusi dan variasi data, sehingga karakteristik kedua variabel dapat dipahami dengan lebih jelas.

8.1 1. Histogram Rating Pelayanan

Histogram dipilih untuk melihat persebaran nilai rating pelayanan dan mengetahui rentang nilai yang paling sering muncul.

hist(
  as.numeric(df$PELAYANAN),
  main = "Distribusi Rating Pelayanan",
  xlab = "Rating Pelayanan",
  ylab = "Frekuensi",
  col = "#5DADE2",
  border = "white",
  breaks = "Sturges"
)

8.2 2. Histogram Rating Makanan

Histogram dipilih untuk mengetahui pola persebaran rating makanan serta rentang nilai yang paling sering diperoleh.

hist(
  as.numeric(df$MAKANAN),
  main = "Distribusi Rating Makanan",
  xlab = "Rating Makanan",
  ylab = "Frekuensi",
  col = "#58D68D",
  border = "white",
  breaks = "Sturges"
)

## 3. Boxplot Perbandingan Rating Boxplot dipilih untuk membandingkan median, persebaran nilai, dan kemungkinan pencilan antara rating pelayanan dan makanan.

boxplot(
  as.numeric(df$PELAYANAN),
  as.numeric(df$MAKANAN),
  names = c("Pelayanan", "Makanan"),
  main = "Perbandingan Rating Pelayanan dan Makanan",
  xlab = "Aspek Penilaian",
  ylab = "Rating",
  col = c("#5DADE2", "#58D68D"),
  border = "gray30"
)

9 Kesimpulan

Kedua variabel memiliki karakteristik distribusi dan rentang nilai yang berbeda. Analisis statistik deskriptif membantu memahami rata-rata, nilai tengah, nilai yang paling sering muncul, serta penyebaran data. Namun, kualitas pelayanan dan makanan belum dapat disimpulkan sebelum skala penilaiannya dipastikan.

10 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.