88 lines
4.4 KiB
Python
88 lines
4.4 KiB
Python
import pandas as pd
|
|
|
|
# Fungsi konversi dari import_data.py
|
|
JAWABAN_MAPPING = {
|
|
'F8': {1: 'Bekerja (full time/part time)', 2: 'Belum memungkinkan bekerja', 3: 'Wiraswasta', 4: 'Melanjutkan Pendidikan', 5: 'Tidak kerja tetapi sedang mencari kerja'},
|
|
'F505': {1000000: 'Rp 1.000.000', 1500000: 'Rp 1.500.000', 2000000: 'Rp 2.000.000', 2500000: 'Rp 2.500.000', 3000000: 'Rp 3.000.000', 3500000: 'Rp 3.500.000', 4000000: 'Rp 4.000.000', 4500000: 'Rp 4.500.000', 5000000: 'Rp 5.000.000', 6000000: 'Rp 6.000.000', 7000000: 'Rp 7.000.000', 8000000: '>Rp 8.000.000'},
|
|
'F1101': {1: 'Instansi pemerintah', 2: 'Organisasi non-profit/Lembaga Swadaya Masyarakat', 3: 'Perusahaan swasta', 4: 'Wiraswasta/perusahaan sendiri', 5: 'Lainnya', 6: 'BUMN/BUMD', 7: 'Institusi/Organisasi Multilateral'},
|
|
'F5d': {1: 'Lokal/wilayah/wiraswasta tidak berbadan hukum', 2: 'Nasional/wiraswasta berbadan hukum', 3: 'Multinasional/Internasional'},
|
|
'F5c': {1: 'Founder', 2: 'Co-Founder', 3: 'Staff', 4: 'Freelance/Kerja Lepas'},
|
|
'F18a': {1: 'Biaya Sendiri', 2: 'Bea Siswa'},
|
|
'F1201': {1: 'Biaya Sendiri/Keluarga', 2: 'Beasiswa ADIK', 3: 'Beasiswa BIDIKMISI', 4: 'Beasiswa PPA', 5: 'Beasiswa AFIRMASI', 6: 'Beasiswa Perusahaan/Swasta', 7: 'Lainnya'},
|
|
'F14': {1: 'Sangat Erat', 2: 'Erat', 3: 'Cukup Erat', 4: 'Kurang Erat', 5: 'Tidak sama sekali'},
|
|
'F15': {1: 'Setingkat lebih tinggi', 2: 'Tingkat yang sama', 3: 'Setingkat lebih rendah', 4: 'Tidak perlu pendidikan tinggi'},
|
|
'F301': {1: 'Saya mencari kerja sebelum lulus', 2: 'Saya mencari kerja sesudah wisuda', 3: 'Saya tidak mencari kerja'},
|
|
'F1001': {1: 'Tidak', 2: 'Tidak, tapi saya sedang menunggu hasil lamaran kerja', 3: 'Ya, saya akan mulai bekerja dalam 2 minggu ke depan', 4: 'Ya, tapi saya belum pasti akan bekerja dalam 2 minggu ke depan', 5: 'Lainnya'},
|
|
'F1601': {0: 'Tidak sesuai', 1: 'Pekerjaan saya sekarang sudah sesuai dengan pendidikan saya'},
|
|
'F1602': {0: 'Pekerjaan saya sudah sesuai', 1: 'Saya belum mendapatkan pekerjaan yang lebih sesuai'},
|
|
}
|
|
|
|
def konversi_jawaban(field_code, nilai):
|
|
"""Fungsi konversi dari import_data.py"""
|
|
if pd.isna(nilai) or nilai == 0 or nilai == '':
|
|
return None
|
|
|
|
if isinstance(nilai, float):
|
|
if nilai != int(nilai):
|
|
return None
|
|
nilai = int(nilai)
|
|
|
|
nilai_key = nilai
|
|
if isinstance(nilai, (int, float)):
|
|
nilai_key = int(nilai)
|
|
|
|
if field_code in ['F1761', 'F1762', 'F1763', 'F1764', 'F1765', 'F1766',
|
|
'F1767', 'F1768', 'F1769', 'F1770', 'F1771', 'F1772',
|
|
'F1773', 'F1774']:
|
|
return {1: 'Sangat Rendah', 2: 'Rendah', 3: 'Netral', 4: 'Tinggi', 5: 'Sangat Tinggi'}.get(nilai_key)
|
|
|
|
if field_code in ['F21', 'F22', 'F23', 'F24', 'F25', 'F26', 'F27']:
|
|
return {1: 'Sangat Besar', 2: 'Besar', 3: 'Cukup Besar', 4: 'Kurang', 5: 'Tidak Sama Sekali'}.get(nilai_key)
|
|
|
|
if field_code in ['F401', 'F402', 'F403', 'F404', 'F405', 'F406', 'F407',
|
|
'F408', 'F409', 'F410', 'F411', 'F412', 'F413', 'F414',
|
|
'F415', 'F416']:
|
|
return {0: 'Tidak', 1: 'Ya'}.get(nilai_key)
|
|
|
|
if field_code in ['F1603', 'F1604', 'F1605', 'F1606', 'F1607', 'F1608',
|
|
'F1609', 'F1610', 'F1611', 'F1612', 'F1613']:
|
|
return {0: 'Tidak', 1: 'Ya'}.get(nilai_key)
|
|
|
|
if field_code in JAWABAN_MAPPING:
|
|
return JAWABAN_MAPPING[field_code].get(nilai_key)
|
|
|
|
return nilai
|
|
|
|
# Test dengan data dari CSV
|
|
print('=== TEST KONVERSI ===')
|
|
print()
|
|
|
|
# Test F5b (nama_perusahaan) - TEXT
|
|
nilai_f5b = 'Al irsyad al islamiyyah jember'
|
|
field_code = 'F5b'
|
|
result = konversi_jawaban(field_code, nilai_f5b)
|
|
print(f'F5b (nama_perusahaan): "{nilai_f5b}"')
|
|
print(f' field_code: {field_code}')
|
|
print(f' F5b in JAWABAN_MAPPING: {field_code in JAWABAN_MAPPING}')
|
|
print(f' result: {repr(result)}')
|
|
print()
|
|
|
|
# Test F5c (jabatan) - NUMBER
|
|
nilai_f5c = 3.0
|
|
field_code = 'F5c'
|
|
result = konversi_jawaban(field_code, nilai_f5c)
|
|
print(f'F5c (jabatan): {nilai_f5c}')
|
|
print(f' field_code: {field_code}')
|
|
print(f' F5c in JAWABAN_MAPPING: {field_code in JAWABAN_MAPPING}')
|
|
print(f' result: {repr(result)}')
|
|
print()
|
|
|
|
# Test F1101 (jenis_perusahaan) - NUMBER
|
|
nilai_f1101 = 3
|
|
field_code = 'F1101'
|
|
result = konversi_jawaban(field_code, nilai_f1101)
|
|
print(f'F1101 (jenis_perusahaan): {nilai_f1101}')
|
|
print(f' field_code: {field_code}')
|
|
print(f' F1101 in JAWABAN_MAPPING: {field_code in JAWABAN_MAPPING}')
|
|
print(f' result: {repr(result)}')
|