-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TPS data #2
base: master
Are you sure you want to change the base?
TPS data #2
Conversation
Can help to convert into this format? |
Ngomong2, kalau saya coba jalankan seeds.rb, saya mendapatkan duplikasi di
apakah itu yang diharapkan? |
Oya, saya bersedia membantu membersihkan data TPS. Tapi saya perlu tahu dulu seperti apa data yang ada di dalam tabel |
Hi Fajran, Saya juga sedang ngutak ngatik data TPS yang lebih komplit. Saya ikut nimbrung disini ya, mungkin saya bisa bantu |
Hi fajran -- saya dan SeiryuZ tadi lagi ngubek2 database TPS juga dan diskusi di forum lain. Kita pindah sini ya :-) |
wah asik ada yang ngoprek data TPS juga :D Andaikan isi |
Iya, saya agak khawatir di tabel crowd_inputs itu hanya ada field tps_id. Menurut saya harusnya itu composite kel_id + tps_id (dengan asumsi tps_id itu hanya 1, 2, 3, dst., sejumlah TPS di kelurahan tersebut). |
kalau ngelihat tabel database setelah menjalankan
|
Untuk yang ini saya ngerasanya script nya salah, karena di file ini dia selalu import column 60-63 untuk tps_id SQL statement yang dihasilkan bakalan duplicate. Mestinya ('LIMBUR BARU', '0017125' , '1')
('LIMBUR BARU', '0017125' , '2')
('LIMBUR BARU', '0017125' , '3') |
Nah kolom 60-63 itu sama semua nilainya bukan tuk tiap kelurahan?
|
Iah betul, saya juga tadi import masuk banyak yang duplicate. |
Hmm, ini data yang diperoleh dari http://digger-soft.com/pemiluc1/csv2.php -- menurut saya kurang valid deh. Harusnya kita ambil langsung dari API open data dapil.kpu.go.id dan tps.kpu.go.id. Sepertinya justru nama file JPG-nya bisa jadi kunci untuk memperbaikinya. Tapi saya mau tanya dulu tps_id yang di tabel crowd_inputs itu apa ya? Auto-increment? |
betul crowd_inputs.tps_id ===Foreign Key ===> Tps.id (auto increment) |
Saya kemarin nyedot website pilpres2014 tuk ngambil daftar semua kelurahan dan jumlah TPS yang ada di dalamnya. Datanya saya lampirkan di pull request saya ini fajran@84d4370 Mudah2an aja nomor TPS selalu berurut ngga ada yang loncat :D |
Ini bahaya ya kalau ada kel_id + tps_id yang duplicate... Pertanyaan berikutnya: info filename JPG ada di mana di database? |
file JPG digenerate dari |
Di line ini, Link JPG nya di generate https://github.com/fikriauliya/realcount/blob/master/app/models/tps.rb#L3 |
Bahanya itu berupa banyak TPS yang tidak akan ditampilkan formulirnya dan jumlah TPS yang ditampilkan itu salah. |
Data yang sudah masuk bisa dikombinasikan sebagai bentuk "second opinion" |
I see. OK thanks. Kalau kita mau update database dengan yang lengkap dari fajran, sementara tps_id di crowd_inputs itu auto_increment, piye? |
Auto increment gak masalah. Gabung aja data yang terduplikasi dan masukin Fajran Iman Rusadi-
|
OK. BTW di komentar https://www.facebook.com/ruli.manurung/posts/10152249540131279 ini ada yang melaporkan total jendralnya agak aneh... |
Fajran, dari data yang di Pull request ini https://raw.githubusercontent.com/fajran/realcount/location-data/db/lokasi.csv datanya kan ini masih dalam tree-like structure yah (i.e, row 1 itu "nasional", row 2 itu "aceh" yang merupakan subset dari row 1 di signify dengan column Kita kayaknya harus convert ini jadi leaf-node only deh, karena yang di masukkan ke table |
Leaf node tinggal cari yg level == 4 hehe Fajran Iman Rusadi-
|
SeiryuZ bisa update tabelnya malam ini nggak? Animo lagi gede banget soalnya, dan kelihatannya semua user ternyata selama ini hanya mengedit TPS yang itu-itu juga untuk setiap kelurahan :-( |
@fajran Ok sip, kalo gitu saya coba bersihin .csv nya dulu yah @rulimanurung Ga bisa langsung saya update yang di server. Saya ga ada credentials untuk langsung do live update ke server |
BTW, bisa hitung unique count kel_id yang ada sekarang? Artinya itu adalah jumlah TPS yang sekarang para crowdsourcer bisa edit ya... |
Sebaiknya tps_id yang auto_increment itu nggak pernah di-expose ke user ya. Sekarang masih ditunjukkan di http://realcount.herokuapp.com/crowd_inputs |
Menarik. Setelah saya perhatikan https://raw.githubusercontent.com/fikriauliya/realcount/master/db/data kelihatannya TPS_ID yang duplikat itu hanya terjadi sampai baris 1422. Setelah itu benar.... Saya jadi lega. Kirain 21rb entry salah semua :-) |
Kayaknya saya perlu belajar Rails nih :-) |
Gak nyangka ada kelurahan dengan nama yang sama di dalam sebuah kecamatan :D ini data yang baru https://raw.githubusercontent.com/fajran/realcount/c45f9714912c926bdb62abe65a12d4fe8f1b9275/db/lokasi.csv |
@fajran ini TPS id-nya dapetnya ngurut aja ya jadinya? Yang muncul duluan counting indexnya? Atau ada data yang udah ada TPS id-nya? :-) |
Thanks fajran untuk update-nya. Iya, TPS id-nya memang begitu aja, ngurut 1 sampai n. Toh nama file JPG-nya di auto-generate berdasarkan format http://scanc1.kpu.go.id/view.php?f=00[kel_id][num_tps][num_scan].jpg (where num_scan itu halaman 1 s/d 4). |
Tuk keperluan ngambil gambar formulir sih cukup pake nomor urut. Jadi kalau jumlah TPS ada 4, anggap aja nomor TPS nya itu 1, 2, 3, dan 4. Mudah2an ngga ada yang artinya 10, 20, 30, 40 :D Kolom ID TPS yang ada di tabel di website KPU itu belum ketahuan dipakai di mana. |
@fajran and @SeiryuZ -- saat ini @akiratosetiawan sudah fork di https://github.com/akiratosetiawan/realcount dan sedang berusaha memperbaiki DB-nya, kalau tertarik bantu silahkan merapat ke TKP :-) |
Saya sudah tulis Seed yang baru. Silahkan dicek kalau ada input monggo :-) Ini diskusinya tidak apa-apa kan dilanjutkan disini? |
@akiratosetiawan perlu loop sebanyak jumlah tps tuk masukin data ke var Ngomong2 apakah berencana tuk melanjutkan data yg sudah terkumpul Fajran Iman Rusadi-
|
@fajran yup tadi saya coba dengan 100 data di development, belum semuanya. Jadi rencananya, akan melanjutkan data yang sudah ada dari sebelumnya. |
Merge maksudnya gimana ya? Saya pikir sebaiknya setiap crowd_input itu tetap dipertahankan, jadi untuk TPS yang sudah di-entry berkali-kali, kita simpan multiple input. Harapannya nanti ada modul untuk view input per TPS, nah kita bisa tampilkan semua input yang ada. |
Merge data yang redundan. Misalnya rows 1, 2, 3, 4 di tabel
|
btw.. langkah2 di atas itu belum saya verifikasi lagi.. jadi CMIIW :P |
Ini yang kepikiran daritadi. Intinya memindahkan foreign key dari table tps yang lama ke tps yang baru. Kira-kira begini tahapannya:
Setelah selesai, table tps yang lama sudah bisa diganti seluruhnya oleh table tps yang baru. |
sepertinya cara @akiratosetiawan lebih sederhana :D |
OK, approach @fajran dan @akiratosetiawan dua-duanya mustinya bisa. Tapi kalau menurut saya, kenapa tidak PK di tabel tps diganti menjadi composite kelurahan_id dan tps_id saja? Lalu dari tabel crowd_inputs FK-nya e composite key tersebut. Apa composite key itu tidak diperkenankan di sini? |
BTW, seharusnya kelurahan_id dan tps_id di tabel lama dari @fikriauliya dan tabel baru dari @fajran itu sama kok kodenya. |
@rulimanurung pakai composite key kalau dari segi database sih mestinya bisa2 aja. Tapi kayanya ini supaya lebih ngikut dengan konvensi di Ruby on Rails :P namun berhubung saya sendiri ngga pernah make RoR jadi mohon dikoreksi kalau asumsi ini salah. |
Finally, selesai juga. Sekarang sudah up versi yang komplit TPS-nya. TPS sudah diupdate beserta referensinya. Tapi ini datanya cara ngeceknya bener apa enggak gimana yah @fajran? :-D Soalnya kalau pake http://scanc1.kpu.go.id/viewp.php?f=#{self.kelurahan_id.rjust(7, '0')}#{self.tps_id.rjust(3, '0')}04.jpg gak nemu. Walaupun beberapa memang belum masuk scan C1-nya. Selanjutnya yang perlu dibenahi adalah, kalau gambarnya return Not Found maka akan langsung ganti sampai gambarnya ketemu. |
ngecek bener atau ngga data yang mana? data |
Ada yang agak kurang jelas buat saya di seeds.rb. Kode kelurahannya dari data fajran itu di col[0], tapi yang disimpan di kelurahan_id sekarang dari col[1] Kayanya yang di link image sekarang kode kecamatan. Terus satu lagi, jumlah tps yang di col[4] kok gak kepake ya pas seeding? Emang gak kepake? |
Setuju sama @wongiseng harusnya kelurahan_id diambil dari col[0]. Lalu untuk yang tps_id harusnya pake col[4]. Saya agak bingung maksudnya indexTPS itu untuk apa. Menurut saya tidak perlu, tapi di baris 20 perlu looping for i = 1 to col[4], lalu baris 23-25 menginsert value tps_id dengan i. Jadi IMHO baris 20-25 diganti dengan ini: for tps_id in 1..col[4].to_i Moga2 Ruby-nya bener :-) |
Kalau mau verify, mustinya bisa langsung cek saja pas klik "Lihat Hasil" lalu klik salah satu result yang sudah dimasukkan sebelumnya. Harusnya me-load valid scan form dan hasilnya klop dengan data yang di-entry... |
Hehe bingung ya :-D Sepemahaman saya, data yang dari @fajran, col[0] itu ID dari masing-masing TPS, col[1] itu kelurahan_ID, col[4] jumlah_TPS. Kalau pakai cara @rulimanurung, ada beberapa TPS yang lokasinya tidak persis setelah induknya (kelurahannya), jadi misah agak jauh dibawah. Jadi pakai indexTPS array itu sebagai counter untuk ngitung tps_id-nya. |
Nggak begitu. Data @fajran tidak ada entry untuk individual TPS. Level 0 nasional, level 1 propinsi, level 2 kabupaten, level 3 kecamatan, level 4 kelurahan. col[0] menyatakan ID dari wilayah tersebut. Jadi untuk entry yang level 4, ID tersebut adalah kode ID kelurahan, untuk entry level 3, ID tersebut adalah kode ID kecamatan, dst. Dengan menelusuri col[1], kita bisa tahu posisi wilayah tsb. Dalam struktur nasional. Jumlah TPS, kolom terakhir, menyatakan jumlah TPS yang terdapat pada wilayah tersebut. Jadi untuk sebuah kecamatan, jumlah TPSnya adalah total jumlah TPS di semua kelurahan child-nya. Semoga mencerahkan :-) |
Kira-kira begini kalo saya coba implement algonya @rulimanurung. Coba di cek lagi dulu tapi, kayanya dari heroku pg:psql bener jumlah tps yang diinsert. |
"@rulimanurung pakai composite key kalau dari segi database sih mestinya bisa2 aja. Tapi kayanya ini supaya lebih ngikut dengan konvensi di Ruby on Rails :P namun berhubung saya sendiri ngga pernah make RoR jadi mohon dikoreksi kalau asumsi ini salah." Benar, itu karena convention Rails yang otomatis bikin column id yang by default dipakai untuk foreign key. Rails allows customized ini, tapi saat itu saya ambil cara praktis (yet not really correct) saja :D *Btw animonya ternyata cukup besar ya. Mari mampir sebentar di sini #10 :) |
Ada pull request di sini : akiratosetiawan#1 Perubahan utama di seeds.rb sama update_crowd_inputs, ngelanjutin @akiratosetiawan. Kalau bisa dicek dan bener silahkan di merge, kalo gak ya gak papa (bukan RoR developer, jadi kemungkinan ngawur besar) :) Test deployment yang saya tulis di comment pull request itu gak permanen setelah selesai ngetes ya dishutdown lagi, soal animo sebaiknya ya tetep satu servernya nanti, menurut gw mereka gak berminat punya deployment sendiri-sendiri. |
thanks @wongiseng :-) |
Menarik sedang nyimak dulu |
If I look at
db/data
file, it seems to me that the TPS data is still incomplete. Yesterday I scraped KPU website to get all locations (provinsi, kabupaten, kecamatan, kelurahan) and the number of TPS in each location.Btw, I also found entries in TPS table which have the following
kelurahan_id
:NG 0087