Sunday, September 21, 2014

Kabupaten dan Kota di Indonesia yang Tidak Membuka Formasi PNS

Proyek saya minggu ini adalah mengetahui kota dan kabupaten mana saja yang tidak menyediakan formasi PNS bagi para penduduknya. Saya tidak tau bagaimana aturannya dalam mengadakan formasi PNS, silakan pembaca mencari tau sendiri. Saya hanya memberikan gambaran seberapa besar jumlah kota yang tidak menyediakan formasi PNS bagi para penduduknya.

Untuk keperluan ini ada dua hal yang saya butuhkan. Pertama adalah daftar kabupaten dan kota yang membuka formasi PNS. Daftarnya bisa dilihat melalui link berikut

https://panselnas.menpan.go.id/index.php/13-formasi/daerah/provinsi/kabkota/

Jadi di link tersebut sudah diberikan daftar semua kabupaten/kota yang menyediakan formasi PNS.

Selanjutnya saya mencari data resmi mengenai daftar kabupaten dan kota di seluruh Indonesia. Dan dengan mencari di google saya dapatkan berupa dokument pdf yang saya download dan saya upload kembali di link berikut

https://docs.google.com/file/d/0B1irLqfPwjq0VzQyYWRyUmZzSXM/edit?usp=sharing

Untuk memparsing data pada tabel html sudah saya contohkan pada posting sebelumnya. Sementara untuk memparsing data pada tabel pdf itu tidak begitu mudah. Karena ketika pdf diekstrak ke dalam “human readable format,” informasi yang berkaitan dengan sebuah tabel sudah tidak tersedia (berbeda halnya dengan file html). Jadi saya putuskan untuk menggunakan tool yang banyak tersedia secara online. Dan hasilnya sudah dalam file html yang bisa dilihat di

https://drive.google.com/file/d/0B1irLqfPwjq0dUNGQm5ueE94aFU/edit?usp=sharing

Selanjutnya saya melakukan iterasi untuk membandingkan kedua data tersebut yang memberikan hasil daftar kota dan kabupaten yang tidak menyediakan formasi PNS yakni


daftar kabupaten/kota yang tidak mengadakan formasi PNS:

1. Kabupaten Aceh Barat
2. Kabupaten Aceh Tengah
3. Kabupaten Aceh Utara
4. Kabupaten Aceh Jaya
5. Kabupaten Gayo Lues
6. Kota Banda Aceh
7. Kota Sabang
8. Kota Lhokseumawe
9. Kota Langsa
10. Kota Subulussalam
11. Kabupaten Asahan
12. Kabupaten Labuhan Batu
13. Kabupaten Langkat
14. Kabupaten Tapanuli Selatan
15. Kabupaten Pakpak Bharat
16. Kabupaten Batu Bara
17. Kabupaten Padang Lawas Utara
18. Kabupaten Padang Lawas
19. Kabupaten Labuhanbatu Selatan
20. Kota Medan
21. Kota Pematang Siantar
22. Kota Tanjung Balai
23. Kota Padang Sidempuan
24. Kota Gunungsitoli
25. Kabupaten Lima Puluh Kota
26. Kabupaten Kepulauan Mentawai
27. Kabupaten Solok Selatan
28. Kota Padangpanjang
29. Kota Bukittinggi
30. Kabupaten Batang Hari
31. Kabupaten Merangin
32. Kabupaten Kerinci
33. Kabupaten Muaro Jambi
34. Kabupaten Tanjung Jabung Timur
35. Kota Jambi
36. Kabupaten Kampar
37. Kabupaten Rokan Hulu
38. Kabupaten Kepulauan Meranti
39. Kabupaten Karimun
40. Kabupaten Natuna
41. Kabupaten Kepulauan Anambas
42. Kota Tanjung Pinang
43. Kabupaten Muko-Muko
44. Kota Bengkulu
45. Kabupaten Lahat
46. Kabupaten Musi Banyuasin
47. Kabupaten Banyuasin
48. Kabupaten Ogan Komering Ulu Timur
49. Kota Palembang
50. Kota Prabumulih
51. Kabupaten Lampung Tengah
52. Kabupaten Lampung Barat
53. Kabupaten Lampung Timur
54. Kabupaten Way Kanan
55. Kabupaten Tulang Bawang Barat
56. Kabupaten Lampung Barat
57. Kota Bandar Lampung
58. Kabupaten Lebak
59. Kabupaten Pandeglang
60. Kota AdministratifJakarta Barat
61. Kota Administratif Jakarta Pusat
62. Kota Administratif Jakarta Utara
63. Kota Administratif Jakarta Timur
64. Kota Administratif Jakarta Selatan
65. Kabupaten Administratif Kepulauan Seribu
66. Kabupaten Ciamis
67. Kabupaten Cianjur
68. Kabupaten Cirebon
69. Kabupaten Kuningan
70. Kabupaten Sukabumi
71. Kabupaten Sumedang
72. Kabupaten Purwakarta
73. Kabupaten Subang
74. Kabupaten Bandung Barat
75. Kota Cirebon
76. Kota Sukabumi
77. Kabupaten Karanganyar
78. Kabupaten Kudus
79. Kabupaten Purworejo
80. Kabupaten Rembang
81. Kabupaten Sukoharjo
82. Kabupaten Wonosobo
83. Kabupaten Bantul
84. Kabupaten Gresik
85. Kabupaten Jember
86. Kabupaten Lumajang
87. Kabupaten Nganjuk
88. Kabupaten Ngawi
89. Kabupaten Pacitan
90. Kabupaten Probolinggo
91. Kota Probolinggo
92. Kota Batu
93. Kabupaten Badung
94. Kota Denpasar
95. Kabupaten Lembata
96. Kabupaten Kapuas
97. Kabupaten Lamandau
98. Kota Palangkaraya
99. Kabupaten Paser
100. Kabupaten Kutai Barat
101. Kabupaten Tana Tidung
102. Kabupaten Minahasa
103. Kabupaten Minahasa Utara
104. Kabupaten Minahasa Tenggara
105. Kabupaten Kepulauan Siau Tagulandang Biaro
106. Kabupaten Bolaang MongondowTimur
107. Kota Bitung
108. Kabupaten Boalemo
109. Kabupaten Donggala
110. Kabupaten Poso
111. Kabupaten Toli-Toli
112. Kabupaten Morowali
113. Kabupaten Parigi Moutong
114. Kabupaten Sigi
115. Kabupaten Morowali Utara
116. Kabupaten Bone
117. Kabupaten Jeneponto
118. Kabupaten Luwu
119. Kabupaten Pangkajene Kepulauan
120. Kabupaten KepulauanSelayar
121. Kabupaten Luwu Utara
122. Kota Pare-Pare
123. Kabupaten Bombana
124. Kabupaten Buton
125. Kabupaten Kolaka
126. Kabupaten Kolaka Utara
127. Kabupaten Konawe Utara
128. Kota Bau-Bau
129. Kabupaten Maluku Tengah
130. Kabupaten Pulau Taliabu
131. Kota Tidore
132. Kabupaten Fak-Fak
133. Kabupaten Manokwari
134. Kabupaten Sorong
135. Kabupaten Teluk Wondama
136. Kabupaten Kaimana
137. Kabupaten Raja Ampat
138. Kabupaten Sorong Selatan
139. Kabupaten Teluk Bintuni
140. Kabupaten Tambrauw
141. Kabupaten Maybrat
142. Kabupaten Manokwari Selatan
143. Kabupaten Pegunungan Arfak
144. Kota Sorong
145. Kabupaten Biak Numfor
146. Kabupaten Jayapura
147. Kabupaten Jayawijaya
148. Kabupaten Merauke
149. Kabupaten Nabire
150. Kabupaten Mimika
151. Kabupaten Paniai
152. Kabupaten Puncak Jaya
153. Kabupaten Asmat
154. Kabupaten Boven Digoel
155. Kabupaten Keerom
156. Kabupaten Sarmi
157. Kabupaten Mappi
158. Kabupaten Pegunungan Bintang
159. Kabupaten Tolikara
160. Kabupaten Waropen
161. Kabupaten Yahukimo
162. Kabupaten Supiori
163. Kabupaten Mamberamo Raya
164. Kabupaten Mamberamo Tengah
165. Kabupaten Yalimo
166. Kabupaten Lanny Jaya
167. Kabupaten Nduga
168. Kabupaten Puncak
169. Kabupaten Dogiyai
170. Kabupaten Intan Jaya
171. Kabupaten Deiyai
172. Kota Jayapura

Sementara kode java yang saya gunakan untuk mengeceknya adalah:


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class KabkotPNS {

static final String basedir = (System.getProperty("user.dir") + "/data/" ).replace("\\", "/");

static String fileLogger = basedir+ "kabkot.txt";

static String regexAllkota = "^[0-9]+\\.?(\\s|\\t)+(Kabupaten|Kota).*";

public static void main(String[] args) throws IOException{

FileWriter file_writer = new FileWriter(new File(fileLogger));

BufferedWriter bufferedWriter = new BufferedWriter(file_writer);

bufferedWriter.write("Daftar Seluruh kota dan kabupaten di Indonesia:\n\n");

File fileAllKota = new File(basedir+ "daftar_kabupaten_dan_kota_di_indonesia_per_2013.html");

Document document=Jsoup.parse(fileAllKota, "UTF-8");

Elements rows2 = document.select("span.cls_006");

for(Element row : rows2){
String text = row.text();
if(text.matches(regexAllkota)){
bufferedWriter.write(text+ "\n");
}
}

File filekotaPns = new File(basedir+ "pns_kabupaten_kota.htm");

Document doc = Jsoup.parse(filekotaPns, "UTF-8");

Elements tables = doc.select("table.category");

Element tablepns = tables.get(0);

Elements rows = tablepns.select("tr");

bufferedWriter.write("\n\n\nDaftar kabupaten dan kota yang menyediakan PNS:\n\n");

for(Element row : rows){
Elements cols = row.select("td");
Element col = cols.get(0);
bufferedWriter.write(col.text() + "\n");
}


bufferedWriter.write("\n\n\ndaftar kabupaten/kota yang tidak mengadakan formasi PNS:\n\n");

Elements temp_list = new Elements(rows);
int iterasi = 1;
A: for(Element row : rows2){
String text = row.text();
if(text.matches(regexAllkota)){
String text1 = text.replaceAll("[0-9]+\\.?(\\s|\\t)+(Kabupaten|Kota)", "").trim();
for(Element row_row : temp_list){
Elements cols = row_row.select("td");
Element col = cols.get(0);
String text_1 = col.text();
text1 = text1.replace("-", " ").replaceAll("\\s{2,100}", " ");
text_1 = text_1.replaceAll("(KAB\\.|KOTA\\s)", "").replaceAll("\\s{2,100}", " ").trim();
if(text1.equalsIgnoreCase(text_1)){
continue A ;
}
}
bufferedWriter.write((iterasi++)+". "+text.replaceAll("[0-9]+\\.?", "").trim()+"\n");
}
}

bufferedWriter.close();

System.out.println("FINISH");
}
}


Keseluruhan file project dapat dilihat di github

https://github.com/gunungloli666/hack_pns

No comments: