RANCANGAN DATABASE DAN STRATEGI PENYELESAIANNYA UNTUK SINKRONISASI DATA

PENDAHULUAN

Aktifitas perancangan database bukanlah perkara yang mudah dilakukan karena harus mempertimbangkan banyak aspek terkait. Pengembang sistem biasanya merancang dan menggunakan kode-kode data dalam rancangan database-nya. Penggunaan kode data tersebut memiliki beberapa alasan, antara lain untuk:

  1. Efisiensi memori
  2. Memudahkan pertukaran data antar unit
  3. Mengurangi jumlah redundansi data
  4. Meningkatkan akurasi data
  5. Fleksibilitas data
  6. Konsistensi item data

Di samping perbedaan yang disebabkan oleh perbedaan penggunaan DBMS, perbedaan kode data dalam rancangan database pada umumnya terjadi dalam tiga hal, yaitu:

  1. Tipe data.
  2. ukuran data.
  3. Domain data.

Menurut James Martin (1975),aktivitas perancangan database sebagai salah satu tahapan dalam proyek pengembangan sistem informasi diharapkan mampu menghasilkan sebuah rancangan struktur database terbaik, yaitu memenuhi enam kriteria database processing berikut:

  1. Bersifat data oriented dan bukan program oriented.
  2. Dapat digunakan oleh pemakai yang berbeda-beda atau beberapa program aplikasi tanpa perlu mengubah database.
  3. Data dalam database dapat berkembang dengan mudah, baik volume maupun strukturnya.
  4. Data yang ada dapat memenuhi kebutuhan sistem-sistem baru secara mudah.
  5. Data dapat digunakan dengan cara yang berbeda-beda.
  6. Data redundancy minimal.

Pendekatan pengembangan database secara klasik dapat dilakukan dengan
menggunakan DFD dan ER_D.Hasil rancangan database dapat dikatakan mencapai hasil yang optimal jika mampu memenuhi lima kriteria, yaitu:

  1. Memiliki struktur record yang konsisten secara logik.
  2. Memiliki struktur record yang mudah untuk dimengerti.
  3. Memiliki struktur record yang sederhana dalam pemeliharaan
  4. Memiliki struktur record yang mudah untuk ditampilkan kembali untuk memenuhi kebutuhan pengguna.
  5. Kerangkapan data minimal.

Beberapa kesalahan umum yang sering dilakukan oleh pengembang saat
melakukan perancangan database adalah:

  1. Tidak mempersiapkan rancangan yang dapat digunakan pada perkembangan sistem di masa mendatang.
  2. Pembuatan relasi yang salah.
  3. Pembuatan relasi yang redundansi.
  4. Adanya redundansi data.
  5. Kesalahan pemilihan primary key untuk suatu tabel.
  6. Kesalahan pemilihan tipe data.

Salah satu permasalahan rancangan database yang dihadapi oleh berbagai instansi pemerintah daerah saat ini adalah terkait dengan aspek interoperabilitas data dalam database. Permasalahan muncul karena database dikembangkan dalam format dan lokasi yang terpisah, dikembangkan oleh pengembang yang berbeda, pada waktu yang berbeda, untuk sistem yang berbeda, sehingga hasil rancangan database menjadi bervariasi dan tidak terintegras.Pada sisi yang lain, perkembangan kebutuhan data atau informasi yang bersifat multisektoral saat ini semakin dibutuhkan, karena memang banyak urusan yang bersifat multisektoral. Kebutuhan tersebut tidak bisa dipenuhi oleh satu sumber informasi saja, sehingga diperlukan komposisi dari banyak sumber data. Pemenuhan kebutuhan data dan informasi multisektor perlu ditangani secara komprehensif, baik pada aspek teknis maupun tataran kebijakan.

Dalam konteks implementasi e-Gov di Indonesia, pengaturan aspek teknis memiliki tujuan agar mekanisme pertukaran data mencapai tingkat interoperabilitas yang tinggi, sehingga transfer data dari sumber ke tujuan dapat dilakukan tanpa mempedulikan heterogenitas platform perangkat keras dan perangkat lunak yang digunakan. Pada tataran kebijakan, protokol pertukaran data perlu disusun untuk menjamin tingkat interoperabilitas yang tinggi.Secara teknis, persoalan interoperabilitas di atas heterogenitas aplikasi telah dapat diselesaikan menggunakan teknologi XML (eXtensible Markup Language). XML adalah sebuah format dokumen yang mampu menjelaskan struktur dan semantik (makna) dari data yang dikandung oleh dokumen tersebut.

XML digunakan oleh web services sebagai format dokumen dalam pertukaran data antar aplikasi. Karena XML merupakan suatu format dokumen yang berbasis teks, maka web services memungkinkan berlangsungnya komunikasi antar aplikasi yang berbeda dengan platform yang berbeda pula. Web services dapat diimplementasikan dalam berbagai jenis platform dengan menggunakan bahasa pemrograman apa pun.XML telah menjadi standar de-facto pertukaran data antar aplikasi. Spesifikasi format XML telah distandarkan menjadi referensi yang sama bagi setiap aplikasi yang memerlukan. Kebijakan penyeragaman format dan mekanisme pertukaran data antar instansi juga diperlukan untuk mengatasi isu-isu terkait dengan interoperabilitas antar sistem, seperti keamanan dan integritas data, pembagian kewenangan, dan masalah legaL.

Penggunaan kode data merupakan bagian dari upaya optimalisasi rancangan
database. Alasan utama penggunaan kode data dalam rancangan database adalah untuk efisiensi memori, mencirikan nilai item data tertentu, dan memudahkan pengelolaan data. Kode data perlu dirancang sekaligus pada saat perancangan database dan didokumentasikan dengan jelas. Dengan menggunakan kode data, maka proses validasi dan kontrol terhadap nilai-nilai item data dapat dilakukan secara terprogram. Dalam beberapa kasus, kode data hanya digunakan dalam internal sistem, tidak perlu ditampilkan kepada para pengguna database. Kode dapat berupa kumpulan angka, huruf dan karakter khusus.

Penggunaan kode data bertujuan untuk :

  1. Mewakili sejumlah informasi yang  kompleks.
  2. Mengidentifikasi data secara unik.
  3. Meringkas atau menyederhanakan data.
  4. Melakukan klasifikasi data.
  5. Menyampaikan makna tertentu untuk pemrosesan berikutnya.

Jenis kode data dapat dikelompokan sebagai (Ladjamudin, 2005):

  1. Kode sekuensial, yaitu kode yang dirancang dengan mengasosiasikan data dengan kode terurut (biasanya berupa bilangan asli atau abjad). Keunggulan pengkodean sekuensial adalah memudahkan pengecekan apabila terjadi kesalahan pengkodean karena pengecekan terjadinya kesalahan bisa dilakukan secara terprogram, selain itu juga memudahkan proses pengurutan data. Kelemahan pengkodean sekuensial adalah kode yang diberikan sebenarnya tidak membawa kandungan informasi di dalamnya dan tidak menjelaskan apa-apa tentang atributnya. Penyisipan item data baru pada titik tengah juga memerlukan penomoran kembali item-item data.
  2. Kode blok, yaitu kode yang dirancang dengan cara menyatakannya dalam format tertentu. Keunggulan penggunaan kode blok adalah memungkinkan penyisipan kode baru dalam satu blok tanpa harus mengorganisasikan kembali seluruh struktur kode. Semakin banyak digit dalam range kode, semakin banyak pula item data yang dapat ditempatkan dalam kode blok. Kelemahan penggunaan kode blok seperti halnya dengan kode sekuensial, kandungan informasi dari kode blok blok tidak langsung diketahui sebelum dicocokkan dengan daftar arti dari kode blok.
  3. Kode mnemonik, yaitu kode yang dirancang berdasarkan akronim atau singkatan dari data yang ingin dikodekan. Keunggulan penggunaan kode mnemonik adalah memiliki informasi tingkat tinggi tentang item data yang diwakilinya, sehingga mudah untuk diingat. Kelemahan dari kode mnemonik biasanya adalah memiliki range yang terbatas dalam mewakili item-item data pada kelompoknya.

Kode data berdasarkan pembentukannya dibedakan sebagai (Ladjamudin, 2005):

  1. Kode eksternal (user defined code), adalah kode yang disusun oleh pemakai awam (end user) untuk mewakili kode-kode yang telah lazim digunakan secara terbuka dan telah dikenal baik oleh para pengguna. Kode eksternal umumnya telah digunakan dalam catatan manual sehari-hari dan dapat diadobsi secara langsung dalam rancangan database, misal NIM, NIK, NIP, dan lainnya.
  2. Kode internal (system coding), merupakan kode-kode baru yang disusun oleh perancang database, dan umumnya digunakan sebagai kode untuk kunci relasi. Rancangan kode internal harus diupayakan agar mudah dipahami oleh para pengguna. Contoh kode internal adalah kode_propinsi, kode_kabupaten, kode_kecamatan, di mana dalam kehidupan sehari-hari jarang digunakan kode untuk ketiganya.

Contoh Penggunaan Kode dan Data

Untuk menggambarkan beberapa permasalahan yang menjadi alasan pentingnya standarisasi kode data dalam rancangan database, uraian berikut menunjukkan beberapa contoh kasus terkait dengan penggunaan kode data dalam rancangan database.

  • Kode dan data jenis kelamin

Jenis kelamin merupakan item data terkait dengan identitas yang dapat dipastikan selalu digunakan dalam identitas seseorang, seperti data siswa, mahasiswa, dosen, pegawai, karyawan, anggota, pasien, dan lainnya. Jenis kelamin sering dikodekan sebagai “P” dan “W” untuk menyatakan pria dan wanita, atau “L” dan “P” untuk mengkodekan laki-laki dan perempuan, ada juga yang menggunakan kode “1” dan “0”, atau bahkan sekalipun tidak lazim ada juga yang menggunakan “True” dan “False” dengan default “True” yang diartikan sebagai jenis kelamin laki-laki, atau “1” untuk menyatakan laki-laki dan “2” untuk kode perempuan. Dengan demikian, jika ada kode data “P” maknanya bisa jadi akan berbeda jika berada dalam sistem yang berbeda.

  • Kode dan data jenjang pendidikan

Hampir sama dengan data jenis kelamin, kode dan data jenjang pendidikan banyak digunakan dalam identitas seseorang, seperti identitas siswa, mahasiswa, guru, dosen, karyawan, pegawai, dan lainnya. Mengacu pada Dokumen Kamus Data Pendidikan Pangkalan Data Pendidikan Tinggi (PDPT) Dirjen Dikti Kemdiknas (2011), kode dan data jenjang pendidikan adalah sebagai berikut:

Jenjang_pendidikan Numeric[Auto Increment]
Keterangan:
1 = S3            4 = D4           7 = D1
2 = S2           5 = D3           11 = non akademik
3 = S1           6 = D2

Mengacu pada Kepmenkes No. 844 Tahun 2006), kode dan data jenjang pendidikan adalah sebagai berikut:

Jenjang_pendidikan Numeric [Auto Increment]
Keterangan:
01 = SD                06 = D3                                11 = D3/A3                       16 = S2
02 = SMP            07 = Sarjana Muda         12 = D4                               17 =S3
03 = SMA            08 = D3/A2                       13 = S1
04 = D1                 09 = Akademi                  14 = A4
05 = D1/A1         10 = D3                               15 = Spesialis 1/2/AV

Mengacu pada Keputusan Gubernur DIY No. 3 Tahun 2005, kode dan data jenjang pendidikan adalah sebagai berikut:

Jenjang_pendidikan Char[1]
Keterangan:
1 = Tidak sekolah         4 = SLTA/sederajat                    7 = Pascasarjana
2 = SD/sederajat          5 = Akademi/PT
3 = SLTP/sederajat     6 = Universitas

Dengan demikian, jika ada kode data jenjang pendidikan “1” maknanya akan
berbeda jika berada dalam sistem yang berbeda, bisa berarti “S3”, “SD”, atau “tidak sekolah”.

  • Kode dan data wilayah

Mirip dengan data jenis kelamin, kode dan data wilayah juga merupakan item data yang penting dan digunakan dalam identitas seseorang, bahkan lebih luas karena juga digunakan untuk identitas perusahaan, lembaga, dan lainnya. Mengacu pada Permendagri No. 66 Tahun 2011, kode dan data wilayah dalam dalam Sistem Informasi Administrasi Kependudukan (SIAK) yang dikembangkan oleh Kemendagri dikodekan sebagai berikut:

Kode propinsi Char[2]
Kode Kabupaten/Kota Char[2]
Kode Kecamatan Char[2]

Contoh penggunaan kode wilayah dalam SIAK adalah sebagai berikut:
34 = kode wilayah Propinsi DIY
01 = kode wilayah Kabupaten Kulon Progo
01 = kode wilayah Kecamatan Temon

Untuk mengkodekan wilayah Kecamatan Temon, Kabupaten Kulon Progo, Propinsi DIY dinyatakan sebagai “340101”. Mengacu pada UU No. 52 Tahun 2009, Nomor Induk Kependudukan (NIK) penduduk dikodekan 16 digit dengan format berikut:

AABBCCDDEEFFGGGG
Keterangan:
AA (1‐2): kode propinsi NIK diterbitkan
BB (3‐4): kode kabupaten/kota NIK diterbitkan.Angka 70 menandakan nama “kota”
CC (5‐6): kode kecamatan NIK diterbitkan
DD (7‐8): tanggal lahir. Jika perempuan, tanggalnya ditambah 40.
EE (9‐10): bulan lahir
FF( 11‐12): dua angka terakhir tahun lahir.
GGGG (13‐16):nomor urut 0001‐9999, berurutan sesuai dengan12 angka sebelumnya.

Sementara itu, jika mengacu pada Kepmenkes No. 844 Tahun 2006, kode wilayah adalah sebagai berikut:

Kode propinsi Char[2]
Kode Kabupaten/Kota Char[2]
Kode Kecamatan Char[2]
Kode Desa Char[3]

Dibandingkan dengan kode dan data wilayah dalam SIAK dan e-KTP, perbedaan
kode wilayah terjadi pada penetapan kode desa. Mengacu pada Dokumen Kamus Data Pendidikan Pangkalan Data Pendidikan Tinggi (PDPT) Dirjen Dikti Kemdiknas (2011), kode dan data wilayah adalah sebagai berikut:

Kode propinsi Numeric[Autoincrement]
Kode Kabupaten/Kota Numeric[Autoincrement]

Perbedaan kode dan data wilayah terjadi pada tipe dan ukuran data.Penggunaan tipe data numerik untuk kode propinsi dan kode kabupaten tidak lazim digunakan untuk item data yang tidak akan dioperasikan secara aritmatika, di samping itu penggunaan autoincrement menunjukkan indikasi hanya untuk memudahkan proses pemrograman saja. Mengacu pada Keputusan Gubernur DIY No. 3 Tahun 2005, kode dan data wilayah adalah sebagai berikut:

Kode propinsi Char[2]
Kode Kabupaten/Kota Char[2]
Kode Kecamatan Char[2]

Dibandingkan dengan kode dan data wilayah dalam SIAK dan e-KTP, perbedaan
kode wilayah terjadi pada penetapan kode wilayah, yaitu:

12 = kode wilayah Propinsi DIY
04 = kode wilayah Kabupaten Kulon Progo
02 = kode wilayah Kecamatan Temon

Sehingga untuk mengkodekan wilayah Kecamatan Temon, Kabupaten Kulon Progo, Propinsi DIY dinyatakan sebagai “120402000” dimana 3 digit terakhir menyatakan urutan desa dalam masing-masing kecamatan.

  • Kode dan data lainnya

Di samping perbedaan penggunaan kode dan data dalam contoh-contoh di atas, ada beberapa contoh lain perbedaan kode dan data yang berpotensi menimbulkan problem, di antaranya terjadi dalam penggunaan kode dan data pada Nomor Induk Dosen Nasional (NIDN) dengan format NIDN Char[10], Nomor Pokok Sekolah Nasional (NPSN) dikodekan dengan format NPSN Char[10], Nomor Indukn Siswa Nasional (NPSN) dikodekan dengan format NISN Char[10], Nomor Unik Pendidik dan Tenaga Kependidikan (NUPTK) dikodekan dengan format NUPTK Char[9].

Sumber :

  • E Sutanta, R Wardoyo – ie.akprind.ac.id

Komentar ditutup.