Showing posts with label regex. Show all posts
Showing posts with label regex. Show all posts

Friday, November 20, 2015

Penggunaan Regular Expression dalam Seleksi Tenaga Humas Kementrian Komunikasi dan Informatika

Tutorial Kali ini akan membahas salah satu kegunaan Regular Expression dalam melakukan Capturing Group. Jadi dengan teknik Capturing Group maka kita bisa mengekstrak elemen tertentu dari String yang match dengan Reguler Expression ketimbang mengambil secara keseluruhan. Dalam Bahasa Java, capturing group ini dihitung berdasarkan berapa jumlah kurung dari sebelah kanan pada Pattern Regex-nya. Misalkan kita memiliki Pattern seperti berikut ap(ple|a) dan diberikan sebuah string yang akan di-match apple, maka group(1) itu adalah akan menghasilkan string ple.

Nah, kebetulan kemarin diadakan seleksi tenaga Humas dari Kementrian Komunikasi dan Informatika yang konon gaji yang diberikan adalah sebesar 18 juta sebulan. Saya tertarik ikutan mendaftar walaupun ujung-ujungnya gagal di tahap seleksi berkas. Ternyata dalam tahap seleksi berkas ini peserta yang ikutan mendaftar sebanyak 1779 orang dari seluruh provinsi yang berada di NKRI. Nah, saya melihat ternyata ada ketidakseimbangan distribusi peserta antar provinsi yang terlihat dari jumlah peserta berdasarkan KTP nya. Di dalam nomor peserta yang akan mengikuti seleksi berkas tersebut, digunakan identitas berdasarkan KTP. Dan kita sudah tahu bagaimana aturan menentukan asal daerah seseorang berdasarkan nomor NIK pada KTP-nya.

Menurut pengalaman saya sendiri waktu melakukan pendaftaran online di situs Panselnas, memang agak sulit untuk bisa login. Di samping itu, bisa jadi informasi tentang lowongan ini tidak banyak diketahui oleh orang-orang. Bayangkan, untuk daerah Sulawesi Tengah saja hanya ada 7 orang peserta termasuk saya sendiri.

Jadi sama seperti tutorial yang saya sudah buat sebelumnya tentang bagaimana mengextract tex pada file pdf dan memfilternya dengan regex, maka tutorial kali ini lebih menekankan pada teknik Capturing Group nya. Dokument pdf yang akan diextract bisa dilihat di sini.

Saya menggunakan listing berikut untuk melakukan extraksi kontennya:

Pada baris ke 26 dalam listing di atas, Anda bisa melihat bagaimana Pattern "([0-9]{1,5})\\s(THP-[0-9]{2}-([0-9]{16}))\\s[0-9]{2}\\sOktober" + "\\s2015\\s[0-9]{2}:[0-9]{2}-[0-9]{2}:[0-9]{2}" mengandung sejumlah kurung '()' yang menandakan expresi Capturing Group. Jadi dengan kode yang tertera di dalam kurung tersebut kita bisa mengambil bagian tertentu pada String yang match dengan regex untuk kemudian di proses lebih lanjut. Misalkan dalam seleksi humas tersebut NIK peserta ditambahkan dengan awalan 'THP-' maka dengan teknik capturing group ini kita membuang awalan 'THP-' nya tersebut dan hanya mengambil NIK nya.

Hasil running script di atas bisa dilihat di link ini.