Kolom rating Toko Kopi Kita berisi teks “kecewa” sampai “sangat puas”, dan suatu saat kita pasti ingin menghitungnya: berapa kecenderungan kepuasan pelanggan bulan ini? Untuk itu teks harus diubah menjadi angka — tetapi tidak sembarang angka. Aturan tentang bagaimana kategori dan bilangan boleh dipetakan, dibandingkan, dan dihitung dirangkum dalam empat skala pengukuran: nominal, ordinal, interval, dan rasio. Chapter ini membedah keempatnya, lengkap dengan tabel operasi yang sah dan jebakan angka yang kelihatannya skala padahal bukan.

Empat Skala Pengukuran #

Skala pengukuran adalah “tangga” yang menentukan seberapa banyak hal boleh kita lakukan pada sebuah kolom:

  1. Nominal — kategori tanpa urutan. Contoh: nama menu, metode pembayaran, kota cabang. Operasi sah hanya menyamakan dan membedakan; ukuran pemusatannya modus.
  2. Ordinal — kategori berurutan tanpa jarak yang pasti. Contoh: rating kepuasan, ukuran cup S/M/L. Kita boleh mengurutkan dan memakai median, tetapi selisih antar jenjang belum tentu seragam.
  3. Interval — bilangan dengan jarak yang seragam, tetapi titik nol sekadar kesepakatan. Contoh: suhu dalam °C. Selisih antara 20° dan 30° sama dengan selisih 70° dan 80°, tetapi 20° bukan “dua kali lebih panas” dari 10°.
  4. Rasio — bilangan dengan titik nol mutlak yang berarti “tidak ada”. Contoh: nilai transaksi rupiah, berat biji kopi, banyak cangkir. Semua operasi aritmetika sah, termasuk rasio: Rp40.000 memang dua kali Rp20.000.

Tabel berikut merangkum keempat skala dalam satu pandangan:

SkalaContoh di Toko Kopi KitaOperasi sahUkuran pemusatanTransformasi yang aman
Nominalnama menu, kota cabangfrekuensi, sama/tidakmodusmengganti label
Ordinalrating kepuasanditambah: urutan, perbandingan urutanmodus, medianpenggantian label yang menjaga urutan
Intervalsuhu ruang penyimpanan (°C)ditambah: selisih, penjumlahanmedian, rata-ratapenggeseran titik nol
Rasiototal rupiah, berat biji (kg)ditambah: perkalian, pembagian, rasiosemuapenggandaan skala

Membaca tabelnya baris demi baris: setiap skala mewarisi seluruh operasi skala di atasnya, lalu menambahkan satu kemampuan baru. Karena itu rasio disebut skala paling kaya informasi, dan nominal paling miskin — namun bukan berarti nominal kurang berharga; kolom kota justru kunci untuk membandingkan performa cabang.

Jebakan Angka yang Bukan Skala #

Sekilas sejumlah kolom tampak sebagai skala interval atau rasio karena berisi angka, padahal nominal: nomor telepon, kode pos, nomor induk kependudukan, dan kode produk. Dua ciri membantu mengungkapnya: tidak ada urutan yang bermakna (nomor telepon 0823 tidak “lebih besar” dari 0812 dalam arti apa pun) dan tidak ada nol mutlak apalagi rasio (rata-rata dua nomor telepon tidak merujuk orang mana pun).

Mengubah Rating Menjadi Angka dengan Pemetaan #

Untuk kolom ordinal, langkah standar adalah pemetaan eksplisit dari label ke skor berurutan lewat dictionary. Kita terapkan pada enam ulasan pelanggan, lalu bandingkan median dan rata-rata skornya:

python
import pandas as pd

ulasan = pd.DataFrame({
    "pelanggan": ["Budi", "Siti", "Dewi", "Rani", "Agus", "Joko"],
    "rating": ["kecewa", "cukup", "cukup", "puas", "sangat puas", "sangat puas"],
})

peta_rating = {
    "kecewa": 1,
    "cukup": 2,
    "puas": 3,
    "sangat puas": 4,
}
ulasan["skor"] = ulasan["rating"].map(peta_rating)

print(ulasan)
print()
print("Median skor  :", ulasan["skor"].median())
print("Rata-rata skor:", round(ulasan["skor"].mean(), 2))

# Jebakan: angka yang bukan skala pengukuran
nomor_telepon = pd.Series([628123456, 628234567, 628345678])
print("Rata-rata nomor telepon:", nomor_telepon.mean(), "(tidak bermakna)")

Output yang Dihasilkan:

text
  pelanggan       rating  skor
0      Budi       kecewa     1
1      Siti        cukup     2
2      Dewi        cukup     2
3      Rani         puas     3
4      Agus  sangat puas     4
5      Joko  sangat puas     4

Median skor  : 2.5
Rata-rata skor: 2.67
Rata-rata nomor telepon: 628234567.0 (tidak bermakna)

Mari kita telaah baris-baris kode di atas:

  1. peta_rating menyimpan pemetaan label → skor secara eksplisit. Urutan skor (1-4) menjaga urutan jenjang rating, sehingga pemetaan ini sah untuk data ordinal; jarak antar skor sengaja kita perlakukan sederhana dan itu perlu diingat saat membaca rata-rata.
  2. .map(peta_rating) menerapkan pemetaan ke setiap baris kolom rating, menghasilkan kolom baru skor berisi bilangan bulat.
  3. Median 2,5 vs rata-rata 2,67 — median hanya memakai urutan sehingga lebih kokoh; rata-rata menuntut asumsi jarak antar jenjang seragam. Keduanya boleh dilaporkan untuk data ordinal, asal asumsinya disebut.
  4. Rata-rata nomor telepon dihitung sebagai penutup untuk membuktikan bahwa pandas menurut saja — keputusan soal kesahihan tetap di tangan kita.

Rangkuman #

  • Empat skala pengukuran — nominal, ordinal, interval, rasio — membentuk tangga kemampuan: setiap skala mewarisi operasi skala di atasnya dan menambahkan satu operasi baru.
  • Nominal: frekuensi dan modus. Ordinal: ditambah urutan dan median. Interval: ditambah selisih dan rata-rata. Rasio: ditambah perkalian dan rasio.
  • Angka bukan jaminan skala: nomor telepon dan kode pos adalah nominal yang menyamar angka.
  • Pemetaan lewat dictionary adalah cara standar mengubah kolom ordinal menjadi skor; median lebih kokoh daripada rata-rata untuk hasilnya.

Kita sudah mengenal isi data (sifat dan skala). Pertanyaan berikutnya menyangkut wujud penyimpanannya: apakah data datang sebagai tabel, deret waktu, hierarki, jaringan, atau titik lokasi. Wujud-wujud itulah pokok chapter berikutnya, Struktur Data .

Referensi #

  1. pandas — User Guide
  2. Python Docs — Statistics