SELAMAT DATANG di BLOG ADMIN SIAK...... Harap Beri Komentar atau Pesan untuk Pertukaran Informasi

20 Januari 2009

Data Orangtua (NIK Ayah atau NIK Ibu) masih ada yang kosong

Awal tahun seperti saat ini, masih sepi dari kegiatan dinas ke kabupaten/kota ataupun membimbing calon operator aplikasi SIAK. Teringat olehku tentang permintaan seorang Administrator Database, agar Data Orangtua (NIK Ayah atau NIK Ibu) yang masih kosong pada table biodata_wni menjadi terisi. Dari hasil periksa data, teridentifikasi per desa/kelurahan puluhan sampai ratusan biodata anak dimana NIK Ayah dan NIK NIK masih kosong.

Pertanyaannya sekarang, bagaimana cara mengubah (update) biodata anak, dari NIK Ayah atau NIK Ibu kosong menjadi terisi? Kalau menggunakan script tunggal rasanya tidak memungkinkan. Karena selain ribuan script tunggal yang akan dieksekusi, juga repot mengetik NIK Ayah atau NIK Ibu untuk setiap script update. Solusi tercepat dan benar adalah merancang Procedure Language/Structured Query Language (PL/SQL). Prosedur SQL yang dirancang, memodifikasi PL/SQL yang dirancang oleh sang guru (lihat topik
Nama Kepala Keluarga Terubah Menjadi Sama Semua). Rancangan PL/SQL yang dimodifikasi dan dicoba pada satu desa. Alhamdulillah sukses merealisasikan permintaan Administrator Database.

Apakah topik ini layak ditayangkan pada blog Admin SIAK? Menurut hemat saya layak untuk ditayangkan. Dasar pertimbangannya minimal ada dua hal.
Pertama, bahwa pada aplikasi SIAK2006 dan SIAK2007, dimana saat operator mengentri data anak (pilihan status hubungan dalam keluarga adalah 4-Anak), Data Orangtua khususnya NIK Ayah dan NIK Ibu tidak otomatis terisi. Sementara pada aplikasi SIAK2008, NIK Ayah atau NIK Ibu otomatis terisi apabila pilihan status hubungan dalam keluarga adalah 4-Anak.
Kedua, tahun 2007 sampai April 2008 sebagai tahun Pembangunan Database Kependudukan Kabupaten/Kota. Sumber data pembangunan database, ada yang menggunakan data hasil Pencocokan dan Penelitian (Coklit) Daftar Rumah Tangga P4B (DRTP4B), ada yang membangun aplikasi khusus untuk mengentri hasil pendataan Biodata Penduduk per Keluarga (F 1.01), dan ada pula menggunakan data pelayanan Sistem Informasi Manajemen Kependudukan (SIMDUK) atau sistem database lainnya.
Berbagai sumber data tersebut, disampaikan ke Direktorat Informasi Kependudukan, Ditjen Adminduk, Depdagri untuk dikonversi (penyesuaian struktur data) dan dimasukkan (load atau insert into) ke dalam database SIAK (SIAKDB). Data hasil konversi ke dalam SIAKDB, juga teridentifikasi tidak sedikit Data Orangtua, khususnya NIK Ayah dan NIK Ibu masih kosong.

1. Periksa Data Orangtua (NIK Ayah dan NIK Ibu) yang Kosong
Benarkah Data Orangtua (NIK Ayah dan NIK Ibu) pada database yang sedang dikelola masih ada kosong? Pertanyaan ini akan terjawab dengan cara mengakses database (siakoff), misalnya melalui SQL*Plus serta mengetik (menjalan) script periksa NIK Ayah atau NIK Ibu yang kosong. Script untuk periksa NIK Ayah atau NIK Ibu yang kosong, sebagai berikut :
  • Periksa jumlah biodata anak per kecamatan dan desa/kelurahan dimana NIK Ayah kosong, script-nya adalah :
    select no_kec,no_kel,count (*) from biodata_wni
    where stat_hbkel=4 and nik_ayah is null
    group by no_kec,no_kel
    order by no_kec,no_kel;

  • Periksa jumlah biodata anak per kecamatan dan desa/kelurahan dimana NIK Ibu kosong, script-nya adalah :
    select no_kec,no_kel,count (*) from biodata_wni
    where stat_hbkel=4 and nik_ibu is null
    group by no_kec,no_kel
    order by no_kec,no_kel;

2. Simpan Data Seleksi
Sebelum merancang dan menjalankan PL/SQL, ada baiknya database di-backup. Selanjutnya data per kecamatan diseleksi (tampilkan) dan filenya disimpan dengan format Text. Tujuannya, file tersimpan sebagai referensi sebelum ubah data. Cara simpan data seleksi dilakukan dengan membuka akses database melalui TOAD serta mengetik script seleksi di bawah ini.
select to_char(nik)nik,nama_lgkp,stat_hbkel,
to_char(nik_ayah)nik_ayah,nama_lgkp_ayah,
to_char(nik_ibu)nik_ibu,nama_lgkp_ibu,no_kel
from biodata_wni where no_kec=1
order by no_kk,stat_hbkel,no_kel


Setelah script di atas diketik, tekan F9 untuk menampilkan datanya. Pada kolom data yang tampil, klik kanan untuk klik pada Save AS. Selanjutnya klik pilihan Delimited Text, klik Include column headers? dan pada kotak Save to ketik (misalnya) C:\data_ortu_kec1.txt Kemudian klik OK untuk simpan data. Lakukan hal yang sama untuk kecamatan lainnya, dimana where no_kec= diubah nilainya sesuai kode kecamatan yang diinginkan.

3. Rancangan Prosedur Mengisi NIK Ayah atau NIK Ibu
Rancangan prosedur mengisi NIK Ayah yang masih kosong untuk setiap anak (stat_hbkel=4) adalah Nama Lengkap Ayah (nama_lgkp_ayah) sama dengan Kepala Keluarga (stat_hbkel=1). Sementara rancangan prosedur mengisi NIK Ibu untuk setiap anak (stat_hbkel=4) adalah Nama Lengkap Ibu (nama_lgkp_ibu) sama dengan Nama Lengkap (nama_lgkp) dari Istri (stat_hbkel=3) kepala keluarga.

Mengacu rancangan prosedur di atas, maka prosedur SQL (PL/SQL) mengisi NIK Ayah dan NIK Ibu yang masih kosong, sebagai berikut :
  • PL/SQL untuk mengisi kolom NIK Ayah dimana Nama Kepala Keluarga sama dengan Nama Lengkap Ayah, sebagai berikut :
    declare cursor biorec is
    select no_kk,nik,nama_lgkp
    from biodata_wni where stat_hbkel=1;
    rec biodata_wni%rowtype;
    begin
    for rec in biorec
    loop
    update biodata_wni set nik_ayah=rec.nik
    where no_kk=rec.no_kk and nama_lgkp_ayah=rec.nama_lgkp
    and nik_ayah is null and stat_hbkel=4;
    commit;
    end loop;
    end;
    /
  • PL/SQL untuk mengisi kolom NIK Ibu, PL/SQL di atas diedit stat_hbkel dari nilai 1 menjadi 3 dan Nama Istri sama dengan Nama Lengkap Ibu, menjadi sebagai berikut :
    declare cursor biorec is
    select no_kk,nik,nama_lgkp
    from biodata_wni where stat_hbkel=3;
    rec biodata_wni%rowtype;
    begin
    for rec in biorec
    loop
    update biodata_wni set nik_ibu=rec.nik
    where no_kk=rec.no_kk and nama_lgkp_ibu=rec.nama_lgkp
    and nik_ibu is null and stat_hbkel=4;
    commit;
    end loop;
    end;
    /

    Seperti terlihat PL/SQL di atas, bahwa untuk mengisi kolom NIK Ayah dipersyaratkan Nama Kepala Keluarga sama persis dengan Nama Lengkap Ayah. Demikian pula, untuk mengisi kolom NIK Ibu, dipersyaratkan Nama Istri sama persis dengan Nama Lengkap Ibu. Apabila tidak sama persis karena kesalahan entri atau redaksional, maka NIK Ayah atau NIK Ibu tidak akan terisi. Contoh kasus, jika Nama Kepala Keluarga dientri secara lengkap (misalnya AHMAD ZAKARIA), sementara pada Nama Lengkap Ayah sebagian nama disingkat (misalnya A. ZAKARIA). Contoh kasus ini, NIK Ayah tidak akan terisi.

    Dasar pertimbangan PL/SQL di atas mempersyaratkan nama harus sama persis, bahwa tidak tertutup kemungkinan Nama Lengkap Ayah tidak sama dengan Nama Kepala Keluarga. Demikian pula, Nama Istri tidak sama dengan Nama Lengkap Ibu. Dalam hal ini, seperti Kepala Keluarga adalah ayah tiri, atau Istri adalah Ibu tiri dari anak kepala keluarga.

4. Rapikan Data Nama Lengkap dan Nama Orangtua
Sebelum menjalankan (eksekusi) prosedur di atas, disarankan untuk merapikan data Nama Lengkap dan Nama Orangtua. Seperti huruf besar kecil, kecil semua, terdapat 4, 3 atau 2 spasi antara kata atau beberapa spasi di belakang nama.
Alasan perlunya dirapikan data nama tersebut, sebagaimana diulas di atas bahwa script PL/SQL mengisi kolom NIK Ayah mempersyaratkan Nama Kepala Keluarga sama persis dengan Nama Lengkap Ayah. Demikian pula, mengisi kolom NIK Ibu mempersyaratkan Nama Istri sama persis dengan Nama Lengkap Ibu.

Dalam kaitan pentingnya merapikan data nama tersebut, disimulasikan 2 kondisi.

Pertama
, Nama Lengkap Kepala Keluarga huruf besar kecil, sementara Nama Lengkap Ayah huruf besar semua.
Kedua, Nama Lengkap Istri huruf besar semuanya dan antar kata terdapat 2 spasi, sementara Nama Lengkap Ibu huruf besar semuanya dan antar kata hanya 1 spasi. Hasil simulasi terindentifikasi, bahwa kolom NIK Ayah dan NIK Ibu tidak terisi. Dengan kata lain, perapian data Nama Lengkap dan Nama Orangtua, berpengaruh nyata terhadap pengisian kolom NIK Ayah atau kolom NIK Ibu.

Script merapikan huruf besar kecil atau kecil semua diubah menjadi semua huruf besar; atau antara kata terdapat 4, 3 atau 2 spasi diubah menjadi 1 spasi; atau beberapa spasi di belakang nama diubah menjadi tidak ada spasi di belakang nama, sebagai berikut :
update biodata_wni set
nama_lgkp=upper(trim(replace(replace
(replace(nama_lgkp,'    ',' '),'   ',' '),'  ',' '))),
nama_lgkp_ayah=upper(trim(replace(replace
(replace(nama_lgkp_ayah,'    ',' '),'   ',' '),'  ',' '))),
nama_lgkp_ibu=upper(trim(replace(replace
(replace(nama_lgkp_ibu,'    ',' '),'   ',' '),'  ',' ')));

Ket.
Script replace(replace(replace(nama_lgkp,'    ',' '),'   ',' '),'  ',' ') tanda kutip tunggal pertama terdiri 4 spasi, kedua 1 spasi, ketiga 3 spasi, keempat 1 spasi, kelima 2 spasi dan keenam 1 spasi.

5. Cara Eksekusi Prosedur
Cara menjalankan (eksekusi) prosedur di atas melalui SQL*Plus. Disarankan copy script di atas dan paste ke jendela Notepad. Selanjutnya buka akses database (siakoff) melalui SQL*Plus. Copy script dari file Notepad dan paste pada jendela SQL.

Mengingat script PL/SQL di atas akan mengisi NIK ayah atau NIK Ibu yang kosong terhadap seluruh biodata anak, biasanya membutuhkan waktu relatif lama. Oleh karena itu disarankan eksekusi PL/SQL per prosedur. Dengan kata lain, setelah tampil PL/SQL procedure successfully completed, baru dieksekusi PL/SQL berikutnya. Mengingat selama proses eksekusi prosedur mempengaruhi unjuk kerja komputer server, maka kabupaten/kota yang sudah pelayanan sangat disarankan pelaksanaan eksekusi prosedur pada hari libur, agar tidak mengganggu pelayanan.

6. Periksa Data Hasil Eksekusi Prosedur
Setelah dieksekusi seluruh prosedur, tahap berikutnya memeriksa data hasil eksekusi. Cara periksa data hasil eksekusi sama seperti diurai pada butir 2. Simpan Data Seleksi. Dengan membuka file simpan data seleksi hasil eksekusi, akan terlihat perbedaan Data Orangtua, khususnya NIK Ayah dan NIK Ibu antara sebelum dan setelah eksekusi prosedur PL/SQL.


7. Kapan Eksekusi Prosedur Dijalankan
Pertanyaan terakhir pada ulasan ini, "Kapan sebaiknya PL/SQL ini dijalankan (eksekusi)?". Menurut hemat saya, semakin cepat dilaksanakan semakin baik. Dasar pertimbangannya, bahwa data transaksi antar modul penyelenggaraan Sistem Administrasi Kependudukan (SAK) semakin tumbuh-kembang.

Salah satu contoh kasus, data entri satu keluarga dimana biodata anak belum terisi NIK Ayah dan NIK Ibu. Beberapa waktu kemudian, di antara anak keluarga tersebut mengajukan Permohonan KK Baru (NIK sudah ada) alias pisah Kartu Keluarga. Setelah diproses (simpan) Permohonan KK Baru, dan jika dicermati khususnya NIK Ayah dan NIK Ibu pada biodata kepala keluarga, akan teridentifikasi NIK Ayah dan NIK Ibu masih belum terisi.
Sebaliknya, jika PL/SQL sudah dijalankan, maka seluruh biodata anak terisi NIK Ayah dan NIK Ibu. Jika di antara anak dari satu keluarga mengajukan Permohonan KK Baru (NIK sudah ada), maka data NIK Ayah dan NIK Ibu terisi.

Semoga tulisan ini bermanfaat, khususnya bagi para Administrator Database yang hendak mengubah Data Orangtua (khususnya NIK Ayah dan NIK Ibu) pada table biodata_wni.

9 komentar:

Anonim mengatakan...

Kita coba pak.. thank's...

Muttaqiuddin mengatakan...

Ada sedikit masalah jika kita "memaksakan" diri mengisi data nama ayah dan ibu melalui script. Perlu dicatat bahwa nama ayah dan nama ibu di database SIAK tidak bisa membedakan status orang tua kandung dan orang tua tiri.

Misal :
Si A adalah anak dari B dan C yang telah bercerai. Kemudian B kawin lagi dengan D dan si A ikut B. Dalam keluarga, si D menjadi kepala keluarga dan B adalah istri. Maka status si A di KK tersebut tetap menjadi ANAK. Jika kita paksakan melengkapinya dengan script, maka data nama ibu dari Si A adalah B dan nama ayahnya menjadi D. Padahal seharusnya nama ayahnya adalah si C.

Untuk sementara mungkin ini jalan tercepat melengkapi database SIAK, namun tetap harus dimutakhirkan terus.
Secara pribadi saya tidak menyarankan penggunaan script otomatis ini. Karena biasanya data yang tidak lengkap ini merupakan hasil entrian dari proses pendataan yang seringkali validitasnya diragukan. Akan lebih baik jika data tidak lengkap ini dihapus sedikit demi sedikit dengan prioritas utama bagi penduduk yang memiliki tanggal lahir 01 Juli, karena biasanya data tanggal lahir ini nantinya juga akan dihapus saat pemutakhiran melalui jalur pelayanan. Penghapusan juga harus memperhatikan kestabilan statistik, jangan sampai terlalu jauh selisihnya dengan kondisi real jumlah penduduk.

Admin mengatakan...

Terimakasih diucapkan kepada pak Muttaqiuddin (Kab. Ogan Komering Ulu, Sumsel) atas komentar yang disampaikan.

Menyimak komentar beliau, maka tulisan Data Orangtua masih ada yang kosong direvisi menjadi Data Orangtua (NIK Ayah atau NIK Ibu) masih ada yang kosong.

Dasar pertimbangan revisi tulisan adalah penyelarasan tulisan yang tidak konsisten menjadi konsisten.
Bahwa pada uraian persyaratan rancangan prosedur PL/SQL, dijelaskan Nama Kepala Keluarga harus sama persis dengan Nama Lengkap Ayah, serta Nama Istri dari kepala keluarga harus sama persis dengan Nama Lengkap Ibu.
Sementara apabila Nama Lengkap Ayah masih kosong maka tidak sama dengan Nama Kepala Keluarga. Demikian pula Nama Lengkap Ibu masih kosong maka tidak sama dengan Nama Istri dari Kepala Keluarga.

Dengan demikian, prosedur PL/SQL untuk mengisi kolom Nama Lengkap Ayah yang masih kosong atau prosedur PL/SQL untuk mengisi kolom Nama Lengkap Ibu yang masih kosong menjadi tidak ada gunanya.

Terkait dengan saran beliau tentang penghapusan data sedikit demi sedikit, adalah pengalaman lokal. Pengalaman lokal belum tentu dapat diterapkan di kab/kota lainnya.

Backme80 mengatakan...

Pak tompul, seandainya ada duda dan janda anak 1 menikah, lalu mereka membentuk 1 keluarga dengan Kartu Rumah Tangga Sendiri. Hubungan anak si janda dengan duda kan menjadi "ANAK TIRI". Apakah orang nama orang tua anak si janda harus nama si duda? atau nama orang tua kandung anak si janda tersebut?

Operator Medan.

Admin mengatakan...

Buat pak Jones, Nama Ayah atau Nama Ibu adalah nama orang tua kandung.

pagardhewa mengatakan...

Berdasarkan script ini kan, nama ayah kandung kan harus nama kepala keluarga. Jadi bagaimana jika nama_lgkp_ayah si anak tiri belum diisi dan melalui script ini akhirnya nama_lgkp_ayah berubah jadi nama kepala keluarga alias nama ayah tirinya ???. kok makin ngawur yah... Contoh, Penduduk WNI Keturunan, mis:Cina, tidak mau nama ayah kandung dari si-anak yang sudah bercerai ada di dalam kartu keluarganya. Berarti SCRIPT-nya "PEMAKSAAN NI YEE....". Lain halnya di Simduk hubungan keluarga ada : "ANAK TIRI", "ANAK KANDUNG" dan "ANAK ANGKAT"

dari Ex-Teknisi SIMDUK Medan
berdasarkan Keluhan Operator Medan

Admin mengatakan...

Buat Pak Capoeng disampaikan kiranya sudi membaca tulisan Blog Admin SIAK perlukah?, dengan harapan Pak Capoeng dapat memaknai alasan dan tujuan blog ini dibangun dan dikembangkan.
Dan perlu saya pertegas, bahwa blog ini dibangun dan dikembangkan karena tergugah untuk memfasilitasi teman-teman. Dengan kata lain, tidak ada unsur "paksaan" untuk menerapkan atau tidak atas tulisan yang diposting. Oleh karena itu saya yakin, bahwa Pengelola SIAK Kab./Kota masih punya akal dan pikir untuk mencermati dan menelaah tulisan yang diposting.

Terhadap komentar pak Muttaqiuddin dan Capoeng, menjadi masukan untuk dibahas dengan berbagai pihak tentang usul penambahan field status anak (Anak Kandung, Anak Tiri, atau Anak Angkat) pada data individu (biodata_wni).

Unknown mengatakan...

Pak,bagaimana kl akte, lahir anak tiri tdk ada nama ayahnya,apa boleh dicNtumkan nana kepala keluarga saat ini didalam kolom nama ayah?terima kasih

Unknown mengatakan...

Pak,bagaimana kl akte, lahir anak tiri tdk ada nama ayahnya,apa boleh dicNtumkan nana kepala keluarga saat ini didalam kolom nama ayah?terima kasih

Posting Komentar

Mau komentar? Silahkan tuliskan Nama dan asal Kab/Kota
Maaf, komentar bernada spam akan dihapus!