204 lines
6.6 KiB
Python
204 lines
6.6 KiB
Python
import pymysql
|
|
|
|
conn = pymysql.connect(host='localhost', user='root', password='', database='tracerstudy_db', port=3306, charset='utf8mb4')
|
|
cur = conn.cursor()
|
|
|
|
# Get question IDs
|
|
cur.execute('SELECT id, kode FROM questions WHERE kode IN ("F5a1", "F5a2")')
|
|
questions = {row[1]: row[0] for row in cur.fetchall()}
|
|
print(f'Found questions: {questions}')
|
|
|
|
# ========== PROVINSI (F5a1) ==========
|
|
province_data = [
|
|
('10000', 'D.K.I. Jakarta'),
|
|
('20000', 'Jawa Barat'),
|
|
('30000', 'Jawa Tengah'),
|
|
('40000', 'D.I. Yogyakarta'),
|
|
('50000', 'Jawa Timur'),
|
|
('60000', 'Aceh'),
|
|
('70000', 'Sumatera Utara'),
|
|
('80000', 'Sumatera Barat'),
|
|
('90000', 'Riau'),
|
|
('100000', 'Jambi'),
|
|
('110000', 'Sumatera Selatan'),
|
|
('120000', 'Lampung'),
|
|
('130000', 'Kalimantan Barat'),
|
|
('140000', 'Kalimantan Tengah'),
|
|
('150000', 'Kalimantan Selatan'),
|
|
('160000', 'Kalimantan Timur'),
|
|
('170000', 'Sulawesi Utara'),
|
|
('180000', 'Sulawesi Tengah'),
|
|
('190000', 'Sulawesi Selatan'),
|
|
('200000', 'Sulawesi Tenggara'),
|
|
('210000', 'Maluku'),
|
|
('220000', 'Bali'),
|
|
('230000', 'Nusa Tenggara Barat'),
|
|
('240000', 'Nusa Tenggara Timur'),
|
|
('250000', 'Papua'),
|
|
('260000', 'Bengkulu'),
|
|
('270000', 'Maluku Utara'),
|
|
('280000', 'Banten'),
|
|
('290000', 'Kepulauan Bangka Belitung'),
|
|
('300000', 'Gorontalo'),
|
|
('310000', 'Kepulauan Riau'),
|
|
('320000', 'Papua Barat'),
|
|
('330000', 'Sulawesi Barat'),
|
|
('340000', 'Kalimantan Utara'),
|
|
('350000', 'Luar Negeri'),
|
|
]
|
|
|
|
if 'F5a1' in questions:
|
|
q_id = questions['F5a1']
|
|
for kode, teks in province_data:
|
|
cur.execute('''
|
|
INSERT INTO answer_options (question_id, kode, teks, urutan)
|
|
VALUES (%s, %s, %s, %s)
|
|
ON DUPLICATE KEY UPDATE teks = VALUES(teks)
|
|
''', (q_id, kode, teks, len(province_data)))
|
|
print(f'Inserted {len(province_data)} provinces')
|
|
|
|
# ========== KABUPATEN/KOTA (F5a2) ==========
|
|
# Sample beberapa kabupaten/kota utama
|
|
kab_kota_data = [
|
|
# Jawa Timur (50000)
|
|
('52400', 'Kab. Jember', 1),
|
|
('56000', 'Kota Surabaya', 2),
|
|
('50200', 'Kab. Sidoarjo', 3),
|
|
('50100', 'Kab. Gresik', 4),
|
|
('52500', 'Kab. Banyuwangi', 5),
|
|
('52600', 'Kab. Pamekasan', 6),
|
|
('52700', 'Kab. Sampang', 7),
|
|
('52800', 'Kab. Sumenep', 8),
|
|
('50300', 'Kab. Mojokerto', 9),
|
|
('50400', 'Kab. Jombang', 10),
|
|
('50500', 'Kab. Bojonegoro', 11),
|
|
('50600', 'Kab. Tuban', 12),
|
|
('50700', 'Kab. Lamongan', 13),
|
|
('50800', 'Kab. Madiun', 14),
|
|
('50900', 'Kab. Ngawi', 15),
|
|
('51000', 'Kab. Magetan', 16),
|
|
('51100', 'Kab. Ponorogo', 17),
|
|
('51200', 'Kab. Pacitan', 18),
|
|
('51300', 'Kab. Kediri', 19),
|
|
('51400', 'Kab. Nganjuk', 20),
|
|
('51500', 'Kab. Blitar', 21),
|
|
('51600', 'Kab. Tulungagung', 22),
|
|
('51700', 'Kab. Trenggalek', 23),
|
|
('51800', 'Kab. Malang', 24),
|
|
('51900', 'Kab. Pasuruan', 25),
|
|
('52000', 'Kab. Probolinggo', 26),
|
|
('52100', 'Kab. Lumajang', 27),
|
|
('52200', 'Kab. Bondowoso', 28),
|
|
('52300', 'Kab. Situbondo', 29),
|
|
('56400', 'Kota Mojokerto', 30),
|
|
('56100', 'Kota Malang', 31),
|
|
('56200', 'Kota Madiun', 32),
|
|
('56300', 'Kota Kediri', 33),
|
|
('56500', 'Kota Blitar', 34),
|
|
('56600', 'Kota Pasuruan', 35),
|
|
('56700', 'Kota Probolinggo', 36),
|
|
('56800', 'Kota Batu', 37),
|
|
|
|
# Jawa Barat (20000)
|
|
('20500', 'Kab. Bogor', 38),
|
|
('20600', 'Kab. Cianjur', 39),
|
|
('20700', 'Kab. Bandung', 40),
|
|
('20800', 'Kab. Bandung Barat', 41),
|
|
('21000', 'Kab. Sumedang', 41),
|
|
('21100', 'Kab. Garut', 42),
|
|
('21200', 'Kab. Tasikmalaya', 43),
|
|
('21400', 'Kab. Ciamis', 44),
|
|
('21500', 'Kab. Kuningan', 45),
|
|
('21600', 'Kab. Majalengka', 46),
|
|
('21700', 'Kab. Cirebon', 47),
|
|
('21800', 'Kab. Indramayu', 48),
|
|
('21900', 'Kab. Subang', 49),
|
|
('22000', 'Kab. Purwakarta', 50),
|
|
('22100', 'Kab. Karawang', 51),
|
|
('22200', 'Kab. Bekasi', 52),
|
|
('22300', 'Kab. Bandung Barat', 53),
|
|
('22500', 'Kab. Pangandaran', 54),
|
|
('26000', 'Kota Bandung', 55),
|
|
('26100', 'Kota Bogor', 56),
|
|
('26200', 'Kota Sukabumi', 57),
|
|
('26300', 'Kota Cirebon', 58),
|
|
('26500', 'Kota Bekasi', 59),
|
|
('26600', 'Kota Depok', 60),
|
|
('26700', 'Kota Cimahi', 61),
|
|
('26800', 'Kota Tasikmalaya', 62),
|
|
('26900', 'Kota Banjar', 63),
|
|
|
|
# Jawa Tengah (30000)
|
|
('30100', 'Kab. Cilacap', 64),
|
|
('30200', 'Kab. Banyumas', 65),
|
|
('30300', 'Kab. Purbalingga', 66),
|
|
('30400', 'Kab. Banjarnegara', 67),
|
|
('30500', 'Kab. Kebumen', 68),
|
|
('30600', 'Kab. Purworejo', 69),
|
|
('30700', 'Kab. Wonosobo', 70),
|
|
('30800', 'Kab. Magelang', 71),
|
|
('30900', 'Kab. Boyolali', 72),
|
|
('31000', 'Kab. Klaten', 73),
|
|
('31100', 'Kab. Sukoharjo', 74),
|
|
('31300', 'Kab. Karanganyar', 75),
|
|
('31400', 'Kab. Wonogiri', 76),
|
|
('31500', 'Kab. Sragen', 77),
|
|
('31600', 'Kab. Grobogan', 78),
|
|
('31700', 'Kab. Blora', 79),
|
|
('31800', 'Kab. Rembang', 80),
|
|
('31900', 'Kab. Kudus', 81),
|
|
('32000', 'Kab. Jepara', 82),
|
|
('32100', 'Kab. Demak', 83),
|
|
('32200', 'Kab. Semarang', 84),
|
|
('32300', 'Kab. Temanggung', 85),
|
|
('32400', 'Kab. Kendal', 86),
|
|
('32500', 'Kab. Batang', 87),
|
|
('32600', 'Kab. Pekalongan', 88),
|
|
('32700', 'Kab. Pemalang', 89),
|
|
('32800', 'Kab. Tegal', 90),
|
|
('32900', 'Kab. Brebes', 91),
|
|
('36000', 'Kota Magelang', 92),
|
|
('36100', 'Kota Surakarta', 93),
|
|
('36200', 'Kota Salatiga', 94),
|
|
('36300', 'Kota Semarang', 95),
|
|
('36400', 'Kota Pekalongan', 96),
|
|
('36500', 'Kota Tegal', 97),
|
|
|
|
# D.K.I. Jakarta (10000)
|
|
('16000', 'Kota Jakarta Pusat', 98),
|
|
('16100', 'Kota Jakarta Utara', 99),
|
|
('16200', 'Kota Jakarta Barat', 100),
|
|
('16300', 'Kota Jakarta Selatan', 101),
|
|
('16400', 'Kota Jakarta Timur', 102),
|
|
('10100', 'Kab. Kepulauan Seribu', 103),
|
|
|
|
# D.I. Yogyakarta (40000)
|
|
('40100', 'Kab. Kulon Progo', 104),
|
|
('40200', 'Kab. Sleman', 105),
|
|
('40300', 'Kab. Gunung Kidul', 106),
|
|
('40400', 'Kab. Bantul', 107),
|
|
('46000', 'Kota Yogyakarta', 108),
|
|
|
|
# Jawa Timur - extended
|
|
('51400', 'Kab. Nganjuk', 109),
|
|
('51900', 'Kab. Pasuruan', 110),
|
|
('52900', 'Kab. Bangkalan', 111),
|
|
|
|
# Luar Negeri
|
|
('999999', 'Luar Negeri', 112),
|
|
]
|
|
|
|
if 'F5a2' in questions:
|
|
q_id = questions['F5a2']
|
|
for kode, teks, urutan in kab_kota_data:
|
|
cur.execute('''
|
|
INSERT INTO answer_options (question_id, kode, teks, urutan)
|
|
VALUES (%s, %s, %s, %s)
|
|
ON DUPLICATE KEY UPDATE teks = VALUES(teks)
|
|
''', (q_id, kode, teks, urutan))
|
|
print(f'Inserted {len(kab_kota_data)} kabupaten/kota')
|
|
|
|
conn.commit()
|
|
print('Done!')
|
|
conn.close()
|