Mengenal Data · Pelajaran 3 dari 8
Merapikan data dalam tabel
8 menit baca · BelajarCode
Data paling mudah diolah jika disusun dalam tabel: setiap baris berisi satu catatan (misalnya satu siswa), dan setiap kolom berisi satu jenis keterangan (misalnya nama, kelas, atau nilai).
Data yang berantakan
Data hasil survei sering kali tidak rapi. Perhatikan jawaban survei jajanan favorit berikut:
| No | Nama | Jajanan favorit | Uang saku |
|---|---|---|---|
| 1 | Andi | Bakso | 10000 |
| 2 | budi | bakso | 10.000 |
| 3 | Citra | Mie Ayam | |
| 4 | Dewi | mie ayam | 15000 |
| 4 | Dewi | mie ayam | 15000 |
Masalahnya:
- Penulisan tidak seragam: "Bakso" dan "bakso", nama yang huruf awalnya kecil.
- Format angka berbeda: "10000" dan "10.000".
- Ada data kosong: uang saku Citra.
- Ada baris ganda: Dewi tercatat dua kali.
Membersihkan dengan Python
1jawaban = ["Bakso", "bakso ", "Mie Ayam", "mie ayam", "BAKSO", "Nasi Goreng"]2rapi = []3for j in jawaban:4 rapi.append(j.strip().title())5print(rapi)['Bakso', 'Bakso', 'Mie Ayam', 'Mie Ayam', 'Bakso', 'Nasi Goreng']
strip() membuang spasi berlebih dan title() menyeragamkan huruf besar di awal kata. Sekarang "Bakso" bisa dihitung dengan benar.
1uang_saku = ["10000", "10.000", "", "15000"]2angka = []3for u in uang_saku:4 if u == "":5 continue6 angka.append(int(u.replace(".", "")))7print(angka)[10000, 10000, 15000]
Data kosong dilewati dengan continue, dan titik pemisah ribuan dibuang sebelum diubah menjadi angka.
Catat apa yang kamu bersihkan
Saat membersihkan data, catat setiap perubahan: baris mana yang dihapus dan kenapa. Dengan begitu orang lain bisa memeriksa bahwa kamu tidak mengubah data seenaknya.
Cek pemahaman
Kenapa "Bakso" dan "bakso" perlu diseragamkan sebelum dihitung?
Latihan
Buang data ganda
Diberikan daftar nama hasil absensi yang mengandung nama ganda dan penulisan yang tidak seragam: ["andi", "Budi", "ANDI", "citra ", "Budi"]. Rapikan penulisannya, lalu buang nama yang ganda tanpa mengubah urutan kemunculan pertamanya.
Pembahasan
1nama = ["andi", "Budi", "ANDI", "citra ", "Budi"]2unik = []3for n in nama:4 rapi = n.strip().title()5 if rapi not in unik:6 unik.append(rapi)7print(unik)['Andi', 'Budi', 'Citra']
Nama dirapikan dulu sebelum diperiksa, sehingga "andi" dan "ANDI" dianggap orang yang sama.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.