Tabel ulasan pelanggan Toko Kopi Kita menyimpan dua kolom teks yang wajahnya mirip: menu favorit dan rating kepuasan. Keduanya berisi kata, tetapi hakikatnya berbeda — daftar menu tidak punya urutan, sedangkan rating berjenjang dari kecewa sampai sangat puas. Salah memperlakukan perbedaan tersebut, dan statistik kita mulai menghasilkan angka yang tampak meyakinkan padahal kosong makna. Chapter ini membedah dua keluarga besar data menurut sifatnya — kualitatif dan kuantitatif — beserta subjenisnya, lalu menunjukkan konsekuensi nyatanya pada operasi statistik yang sah.
Data Kualitatif: Kategori dan Label #
Data kualitatif (categorical) merekam kategori, bukan besaran. Keluarga ini terbagi dua subjenis:
| Subjenis | Ciri | Contoh di Toko Kopi Kita | Contoh lain |
|---|---|---|---|
| Nominal | kategori tanpa urutan | menu favorit, metode pembayaran, kota cabang | warna gelas, jenis kelamin pelanggan |
| Ordinal | kategori berurutan | rating: kecewa → cukup → puas → sangat puas | ukuran cup S/M/L, tingkat peringatan cuaca |
Pembeda keduanya sederhana: coba ganti urutan kategorinya. Menu favorit yang diurutkan ulang tetap masuk akal karena memang tidak ada urutan bawaan; rating yang diurutkan “puas → kecewa → sangat puas” langsung terasa keliru karena urutannya menyimpan makna.
Data Kuantitatif: Hasil Menghitung dan Mengukur #
Data kuantitatif merekam besaran dalam bilangan dan terbagi dua subjenis:
| Subjenis | Ciri | Contoh di Toko Kopi Kita | Contoh lain |
|---|---|---|---|
| Diskrit | hasil menghitung, bilangan bulat | banyak cangkir per transaksi, jumlah pelanggan | jumlah hari hujan per bulan |
| Kontinu | hasil mengukur, bisa pecahan | berat biji kopi (kg), volume minuman (ml) | suhu kota (°C), tinggi badan (cm) |
Ciri cepatnya: data diskrit lahir dari menghitung benda utuh sehingga nilai antaranya tidak ada (tidak ada 1,5 cangkir), sedangkan data kontinu lahir dari alat ukur yang selalu bisa lebih presisi (0,25 kg bisa diukur ulang menjadi 0,253 kg).
Konsekuensi Praktis: Operasi yang Sah #
Jenis data menentukan operasi statistik yang sah — bukan sekadar bisa dijalankan, tetapi memang bermakna. Tabel berikut menjadi rujukan cepat kita:
| Jenis | Operasi sah | Operasi tidak sah | Ukuran pemusatan |
|---|---|---|---|
| Nominal | menghitung frekuensi, menyamakan, membedakan | urutan, selisih, rata-rata | modus |
| Ordinal | semuanya + mengurutkan, membandingkan urutan | selisih antar jenjang dianggap seragam | modus, median |
| Diskrit | semuanya + menjumlah, rata-rata | — | modus, median, rata-rata |
| Kontinu | semuanya | — | median, rata-rata |
Perhatikan baris ordinal: median sah karena hanya memakai urutan, sedangkan rata-rata menuntut selisih antar jenjang yang seragam — asumsi yang tidak otomatis benar. Jarak “kecewa ke cukup” tidak dijamin sama panjang dengan “puas ke sangat puas”.
Praktik dengan pandas: Modus, Rata-rata, dan Jebakannya #
Kita rakit tabel ulasan lima pelanggan lengkap dengan kolom dari keempat subjenis, lalu terapkan operasi yang tepat dan satu operasi yang sengaja keliru:
import pandas as pd
ulasan = pd.DataFrame({
"pelanggan": ["Budi", "Siti", "Dewi", "Rani", "Agus"],
"menu_favorit": ["kopi susu", "teh tawar", "kopi susu", "matcha latte", "kopi susu"],
"rating": ["puas", "cukup", "puas", "kecewa", "puas"],
"kode_menu": [1, 3, 1, 2, 1],
"cangkir": [2, 1, 3, 1, 2],
"berat_biji_kg": [0.25, 0.10, 0.50, 0.05, 0.30],
})
print("Frekuensi menu favorit:")
print(ulasan["menu_favorit"].value_counts())
print()
print("Modus menu favorit :", ulasan["menu_favorit"].mode().tolist())
print("Rata-rata cangkir :", ulasan["cangkir"].mean())
print("Rata-rata berat biji:", ulasan["berat_biji_kg"].mean(), "kg")
print("Rata-rata kode menu:", ulasan["kode_menu"].mean(), "(angka tanpa makna!)")Output yang Dihasilkan:
Frekuensi menu favorit:
menu_favorit
kopi susu 3
teh tawar 1
matcha latte 1
Name: count, dtype: int64
Modus menu favorit : ['kopi susu']
Rata-rata cangkir : 1.8
Rata-rata berat biji: 0.24 kg
Rata-rata kode menu: 1.6 (angka tanpa makna!)Mari kita telaah hasil di atas baris demi baris:
value_counts()menghitung frekuensi tiap kategori — operasi paling dasar yang sah untuk data nominal. Hasilnya diurutkan dari yang tersering: kopi susu tiga kali.mode()mengembalikan kategori tersering sebagai list (bisa seri), sehingga['kopi susu']adalah jawaban yang tepat untuk “menu apa yang paling digemari”.cangkir.mean()danberat_biji_kg.mean()sah karena keduanya kuantitatif: 1,8 cangkir rata-rata per ulasan dan 0,24 kg rata-rata pembelian biji.kode_menu.mean()menghasilkan 1,6 — kode yang tidak merujuk menu apa pun. Angka ini sah secara komputasi, kosong secara makna, karena kode menu bersifat nominal.
Rangkuman #
- Data kualitatif terbagi nominal (tanpa urutan) dan ordinal (berurutan); data kuantitatif terbagi diskrit (hasil menghitung) dan kontinu (hasil mengukur).
- Setiap jenis memiliki operasi statistik yang sah: frekuensi dan modus untuk nominal, ditambah median untuk ordinal, ditambah rata-rata untuk kuantitatif.
- Kolom angka belum tentu kuantitatif — kode angka pada kategori nominal adalah jebakan yang paling sering menjalar ke laporan keliru.
Subjenis nominal dan ordinal di atas sebenarnya adalah dua dari empat anak tangga yang lebih lengkap: nominal, ordinal, interval, dan rasio. Empat anak tangga itu — disebut skala pengukuran — menentukan dengan lebih presisi operasi apa saja yang boleh kita lakukan. Kita naiki satu per satu pada chapter berikutnya, Skala Pengukuran .