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:
- Nominal — kategori tanpa urutan. Contoh: nama menu, metode pembayaran, kota cabang. Operasi sah hanya menyamakan dan membedakan; ukuran pemusatannya modus.
- 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.
- 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°.
- 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:
| Skala | Contoh di Toko Kopi Kita | Operasi sah | Ukuran pemusatan | Transformasi yang aman |
|---|---|---|---|---|
| Nominal | nama menu, kota cabang | frekuensi, sama/tidak | modus | mengganti label |
| Ordinal | rating kepuasan | ditambah: urutan, perbandingan urutan | modus, median | penggantian label yang menjaga urutan |
| Interval | suhu ruang penyimpanan (°C) | ditambah: selisih, penjumlahan | median, rata-rata | penggeseran titik nol |
| Rasio | total rupiah, berat biji (kg) | ditambah: perkalian, pembagian, rasio | semua | penggandaan 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:
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:
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:
peta_ratingmenyimpan 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..map(peta_rating)menerapkan pemetaan ke setiap baris kolomrating, menghasilkan kolom baruskorberisi bilangan bulat.- 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.
- 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
dictionaryadalah 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 .