PETUNJUK TEKNIS
SISTEM MANAJEMEN PEMANFAATAN SURVEY ONLINE
PUSAT PENELITIAN, PENGEMBANGAN DAN INFORMASI
BADAN NASIONAL PENEMPATAN DAN PERLINDUNGAN
TENAGA KERJA INDONESIA
APLIKASI SISTEM MANAJEMEN PEMANFAATAN SURVEY ONLINE
BADAN NASIONAL PENEMPATAN DAN PERLINDUNGAN
TENAGA KERJA INDONESIA
2018
i
KATA PENGANTAR
Atas berkat rahmat dan izin Allah SWT, Tuhan Yang Maha Kuasa,
penyususan buku “Buku Petunjuk Teknis Aplikasi SIMPAN - Online” ini
akhirnya dapat diselesaikan.
Tujuan utama Buku Petunjuk Teknis Aplikasi SIMPAN - Online ini adalah
sebagai acuan penggunaan SIMPAN - Online yang merupakan aplikasi
manajemen pelaksanaan survey online yang berfungsi mempermudah
pengaturan dan pengkoordinasian pemanfaatan survey online unit kerja Pusat
maupun daerah di lingkungan BNP2TKI yang dikelola ole h Bidang
Penelitian dan Pengembangan, Pusat Litbang dan Informasi, BNP2TKI.
Masukan, dukungan dan persamaan pemahaman tentang Buku Petunjuk
Teknis Aplikasi SIMPAN - Online ini akan kami terima dengan tangan
terbuka, dan nantinya tidak menutup kemungkinan untuk dipublikasi kembali
dalam edisi revisi. Karena kami menyadari bahwa Buku Petunjuk Aplikasi
SIMPAN - Online yang kami susun ini masih jauh dari sempurna. Oleh
karena itu, kritik dan saran membangun akan kami terima dengan senang
hati.
Kepada semua pihak yang telah berpartisipasi dan membantu sampai
tersusunnya Buku Petunjuk Teknis Aplikasi SIMPAN - Online ini, kami
sampaikan terimakasih dan penghargaan yang setinggi-tingginya. Semoga
apa yang telah kita usahakan dapat berguna bagi kita semua.
Jakarta, Desember 2018
Kepala Pusat
Penelitian dan Pengembangan Informasi
BNP2TKI
Abd. Ghofar, S.Si., MTI
NIP. 196406161987021002
PENDAHULUAN
A. Latar Belakang
Saat ini, kegiatan survey menjadi salah satu kegiatan proses penelitian
yang banyak dilakukan terutama dalam kaitannya dengan evaluasi
implementasi kebijakan. Seiring dengan perkembangan teknologi, berbagai
tools gratis yang mempermudah proses survey online dengan menggunakan
kuesioner semakin banyak bermunculan, diantaranya monkey survey, type
form, zoho survey, survey gizmo dan google form yang saat ini paling banyak
digunakan.
Hanya saja, dalam versi gratis, tools tersebut memiliki banyak
keterbatasan mulai dari jumlah responden yang terbatas, jumlah pertanyaan
yang dibatasi, pilihan untuk mengekspor data yang minim termasuk
keleluasaan dalam pengelolaan berkas kuesioner
1. Kemudahan seperti ini
memungkinkan setiap entitas kelompok maupun individu dapat melakukan
kegiatan survey secara online dengan memanfaatkan tools – tools gratis
tersebut. Namun, dalam organisasi atau lembaga pemerintah seperti halnya
BNP2TKI, dimana tugas dan fungsi telah terpetakan secara terstruktur maka
setiap kegiatan telah melekat pada tugas fungsi masing – masing unit kerja
sesuai dengan aturan yang ada.
Pelaksanaan kegiatan survey di lingkungan BNP2TKI dengan
memanfaatkan tools survey gratis sudah banyak dilakukan. Hanya saja,
kegiatan survey tersebut tidak hanya dilakukan oleh Bidang Penelitian dan
Pengembangan sebagai unit kerja yang memiliki tugas dan fungsi penelitian
sebagaimana yang telah diatur dalam Perka Ka. BNP2TKI. No.4 Tahun 2014
Tentang Tugas Fungsi dan Uraian Tugas BNP2TKI. Pada pasal 501. Akan
tetapi juga dilakukan oleh unit kerja lainnya baik yang ada di BNP2TKI
Pusat maupun daerah (BP3TKI,LP3TKI/P4TKI). Karena itu, diperlukan
penataan agar pelaksanaan survey online sebagai bagian dari tugas fungsi
Bidang Penelitian dan Pengembangan lebih terintegrasi, terkoordinasi dan
2
terkontrol sejak dari perencanaan sampai ke pelaksanaan, pemantauan dan
evaluasinya sehingga tidak berdampak pada tumpang tindihnya tugas dan
fungsi diantara unit kerja.
Hal inilah yang melatar belakangi perlunya inovasi dalam manajemen
pemanfaatan survey online dilingkungan BNP2TKI agar fungsi Litbang lebih
optimal, efektif dan efisien melalui system manajemen yang berbasis
Teknologi Informasi. Manajemen pemanfaatan survey online melalui sistem
ini dengan bantuan teknologi informasi, diharapkan tidak hanya menunjang
dan mempermudah pengkoordinasian pelaksananaan survey tetapi juga
meningkatkan dan memudahkan pemanfaatan tools survey online, serta hal
terpentingnya adalah mengoptimalkan implementasi tugas dan fungsi Bidang
Penelitian dan Pengembangan.
B. Maksud dan Tujuan
Maksud dan tujuan petunjuk teknis pengoperasian aplikasi SIMPAN - Online
ini adalah sebagai berikut :
(1) Maksud petunjuk teknis pengoperasian aplikasi SIMPAN - Online ini
sebagai panduan bagi unit kerja Pusat dan Daerah di lingkungan
BNP2TKI dalam memanfaatkan aplikasi SIMPAN - Online ini.
(2) Tujuan petunjuk teknis pengoperasian aplikasi SIMPAN - Online ini
adalah tersedianya acuan atau pedoman cara pengoperasian aplikasi
SIMPAN - Online ini dari mulai membuka aplikasi SIMPAN - Online
ini melalui browser, login, entry data, sampai monitoring status survey
yang dilaksanakan dengan akurat dan real time.
C. Ruang Lingkup
Ruang lingkup petunjuk teknis pengoperasian aplikasi SIMPAN - Online ini
mencakup:
1) Cara mengakses aplikasi SIMPAN - Online melalui browser
2) Cara memperoleh akun pengguna aplikasi, serta cara melakukan login
pada aplikasi
3) Cara menginput data survey yang akan dilakukan
4) Cara mengatur pengguna aplikasi
5) Cara melakukan edit dan delete data survey
D. Sistematika
Petunjuk teknis pengoperasian aplikasi SiMontir ini terdiri dari 3 (tiga) bab
yaitu:
Bab 1 : Pendahuluan
Menguraikan tentang latar belakang, maksud dan tujuan, ruang lingkup, dan
sistematika petunjuk pengoperasian aplikasi SIMPAN - Online.
Bab 2 : Aplikasi Sistem Monitoring Manajemen Pemanfaatan Survey Online
Menjelaskan tentang design, implementasi system SIMPAN - Online ini /
tatacara pengoperasian aplikasi SIMPAN - Online diantaranya, monitoring
pelaksanaan survey unit kerja, input data survey, edit dan delete data survey
dan terkahir adalah source kode.
4
APLIKASI SIMPAN - Online
A. DESIGN SISTEM
1. Arsitektur Sistem
2. Data Flow Diagram
a. DFD Level 0
Pada tahap awal pengembangan simpan-online ini, melibatkan entitas
tunggal, yaitu responden. Survey yang dibuat ini merupakan survey dinamis
yang memungkinkan untuk menyajikan berbagai macam survey yang dibuat
oleh Unit Kerja di BNP2TKI. Fungsi utama survey ini adalah untuk
Responden Simpan Online
menyimpan hasil jawaban dari para responden. Hasil output dari aplikasi ini
akan ditarik langsung dari database.
b. DFD Level 1
DFD Level 1 menjelaskan proses Survey ini dibagi menjadi dua Modul,
yaitu:
1. M1, Input Data Responden.
User dalam hal ini berperan sebagai responden, akan melakukan input
data responden melalui form isian data responden. Aplikasi akan
menyimpan data responden ke dalam tabel D1 – t_responden.
2. M2, Isi Survey.
Ketika responden berhasil menyimpan data, aplikasi akan menampilkan
data pertanyaan survey berikut pilihan jawabannya. Pertanyaan diambil
dari tabel D3 – t_quest dan jawaban diambil dari tabel D4 –
t_quest_answer. Ketika responden memasukkan jawaban survey, maka
aplikasi akan menyimpan respon dari responden ke dalam tabel D5 –
t_responden_answer.
3. Entity Relationship Diagram
Relasi antar tabel ini menggambarkan bagaimana tabel saling terhubung.
Tabel master utama adalah tabel m_event. Event ini sebagai bentuk
kegiatan yang membutuhkan media survey. Dalam survey ini pertanyaan
disimpan
dalam
t_quest,
pilihan
jawaban
disimpan
dalam
t_quest_answer, responden disimpan dalam tabel t_responden, dan
jawaban dari responden disimpan dalam t_responden_answer.
6
4. Kamus Data
a. Tabel m_event
Tabel ini menyimpan data event survey. Event ini biasanya tergantung
dari kegiatan unit kerja.
b. Tabel t_responden
Tabel ini menyimpan data responden. data responden ini akan langsung
dihubungkan dengan data event. Sehingga 1 responden ini terhubungan
dengan 1 event.
8
Tabel ini berfungsi sebagai media penyimpanan pertanyaan dari survey
yang diadakan dalam event tertentu. Untuk itu data event juga
dihubungkan dalam pertanyaan ini. 1 event akan memiliki 1 atau lebih
pertanyaan.
d. Tabel t_quest_answer
Tabel Ini menyimpan semua alternatif pilihan jawaban dari pertanyaan
survey.
e. Tabel t_responden_answer
Tabel ini menyimpan data jawaban dari responden yang dipilih pada saat
mengisi survey.
B. IMPLEMENTASI SISTEM
a. Tampilan Aplikasi
Tampilan depan untuk Responden
Halaman ini merupakan halaman landing page dari simpan-online.
Pengunjung dapat mengakses semua survey online yang resmi diterbitkan
BNP2TKI melalui url :
http://simpan-online.bnp2tki.go.id
. Apabila unit kerja
ingin menampilkan survey secara spesifik kepada responden, maka link yang
bisa ditampilkan adalah sebagai berikut :
http://simpan-online.bnp2tki.go.id/kuesioner/view_event/35
ketika responden mengunjungi link tersebut, maka responden akan langsung
dibawa ke dalam sesi pertanyaan, seperti contoh di bawah ini.
10
Konsep pertanyaan disajikan secara satuan, dan responden cukup menjawab
dengan alternative:
c. Mencentang opsi jawaban
12
e. Mengisi sendiri beberapa jawaban anda dengan jawaban terbuka.
Ketika responden sudah menyelesaikan survey, maka aplikasi akan
memberikan pesan sukses dan resume jawaban.
Hasil survey yang masuk ke simpan-online dapat dilihat secara publik di
daftar survey di landing page dengan mengklik jumlah pengisi.
Berikut ini contoh hasil survey yang sudah masuk ke simpan-online.
Tampilan Backend untuk Admin dan Unit Kerja Pembuat
Kuesioner
14
Untuk dapat masuk ke dalam halaman administrator web simpan-online,
pengguna harus mengetikkan link berikut ini .
http://simpan-online.bnp2tki.go.id/Adminpage
Pengguna akan diminta memasukkan user dan password, serta
memasukkan security field (Captcha) berupa pertanyaan penambahan
bilangan. Hal ini dilakukan untuk memproteksi aplikasi dari serangan
pihak yang tidak bertanggung jawab.
Ada 4 menu, karena halaman tersebut diakses oleh Administrator, maka
di dalamnya akan memuat semua hal yang dapat dilakukan oleh
administrator konten web simpan-online. Hak seorang admin dalam web
ini adalah:
a. Mengelola event / survey secara keseluruhan dari semua unit kerja
b. Mengelola user
c. Mengupdate data profile sendiri
d. Keluar dari halaman admin.
Menu Adminpage (Unit Kerja)
Berbeda dengan admin, user unit kerja hanya diberikan 3 menu saja,
yaitu:
a. Manajemen Event. Hanya event dari unit kerja saja yang akan
ditampilkan
b. Profil Saya
c. Logout
Menambahkan Event (Unit Kerja)
Untuk menambahkan atau mengelola event survey, silakan klik
manajemen event. Setelah di klik, maka aplikasi akan menampilkan
semua event di unit kerja user.
16
Ada 4 tombol dalam setiap baris data event / suvey,
No
Tombol
Fungsi
1
Edit data survey (header)
2
Aktifkan survey dan non aktifkan survey
3
Melihat daftar pertanyaan survey
Untuk mulai menambahkan survey, silakan klik tombol “Add
Event/Kuesioner”
18
Data berhasil disimpan
Status survey ini masih menunggu approval dari administrator web
simpan-online.
Survey yang dibuat saja dibuat belum selesai untuk dapat dipublish,
karena data yang baru saja dibuat baru berupa folder utama dari survey
yang akan dilaksanakan. Untuk membuat pertanyaan, langkah berikutnya
adalah menyiapkan pertanyaan dengan cara mengklik tombol daftar
pertanyaan
Menambahkan Pertanyaan Survey
Dalam halaman daftar pertanyaan ini, user dapat melakukan beberapa
hal, yaitu :
a. Menambahkan pertanyaan
b. Mengedit pertanyaan
c. Menambah pilhan jawaban
Data event ditampilan di bagian atas sebagai petunjuk dalam membuat
pertanyaan dari event survey yang dibuat. Untuk menambahkan
pertanyaan, klik
Masukkan data pertanyaan dan pilih jenis pertanyaan :
a. Multiple, untuk jawaban pilhan dengan hanya satu pilihan yang
diperbolehkan
20
b. Deskripsi, untuk jawaban terbuka dalam bentuk jawaban panjang,
seperti jawaban untuk pertanyaan “Saran dan Masukan”, “Pendapat
anda”
c. Checkbox, untuk jawaban pilihan centang yang bisa lebih dari satu
jawaban
d. Multiisian, untuk jawaban dengan beberapa isian yang ditentukan
sendiri oleh responden. Contoh jawaban multiisian adalah jawaban
dari pertanyaan “Apa hobby anda ?”, maka responden akan bisa
mengisi sendiri beberapa jawaban dengan bebas.
Pertanyaan berhasil disimpan.
Seperti konsep header survey tadi yang bersifat folder, pertanyaan ini juga
merupakan folder dari kumpulan jawaban pertanyaan yang harus dibuat
juga.
Aksi yang dapat dilakukan dalam folder pertanyaan ini antara lain :
No
Tombol
Fungsi
1
Edit data pertanyaan
2
Melihat daftar pilihan jawaban
3
Menghapus pertanyaan
Untuk menghindari kebingungan saat membuat jawaban survey,
harap menyelesaikan folder pertanyaan dulu di awal sebelum
melanjut ke folder daftar pilihan jawaban. Misalkan anda
memiliki 15 pertanyaan, maka masukkan semua 15 pertanyaan
tersebut di halaman daftar pertanyaan, baru kemudian masuk ke
Menambahkan Jawaban Pertanyaan Survey
Untuk menambahkan jawaban pertanyaan survey, klik tombol daftar
pilihan jawaban
Muncul halaman daftar/list jawaban
Data pertanyaan dan event ditampilan di bagian atas sebagai petunjuk
dalam membuat jawaban pertanyaan dari pertanyaan survey yang dibuat.
Untuk
menambahkan
jawaban
pertanyaan,
klik
tombol
22
Form isian pilihan jawaban akan ditampilkan.
Silakan isikan pilihan jawaban, dari urutan, hingga penomoran jawaban.
Misalkan dalam soal “Usia Anda”, ada 3 isian jawaban dengan urutan :
1. a. < 18 Tahun
2. b. > 18 Tahun dan < 40 Tahun
3. c. > 40 Tahun
maka isian dalam form isian, contoh pengisiannya adalah sebagai berikut
:
Jawaban b
Jawaban c
Sedangkan untuk bagian, isian “Jika Menjawab Jawaban ini, Pertanyaan
Selanjutnya adalah Nomor : “, silakan pilih opsi pertanyaan
berikutnya atau pilih selesai untuk membuat survey selesai ketika sudah
menjawab dengan jawaban yang dipilih. Dalam hal inilah mengapa
menyelesaikan item pertanyaan dalam halaman daftar pertanyaan
sangat penting.
Ingat :
Untuk menghindari kebingungan saat membuat jawaban survey, harap
menyelesaikan folder pertanyaan dulu di awal sebelum melanjut ke
folder daftar pilihan jawaban. Misalkan anda memiliki 15 pertanyaan,
maka masukkan semua 15 pertanyaan tersebut di halaman daftar
pertanyaan, baru kemudian masuk ke setiap daftar pilihan jawaban di
24
Pilihan ini dimaksudkan untuk membuat survey yang mampu membuat
responden langsung menuju pertanyaan tertentu ketika menjawab dengan
opsi tertentu. Contoh setting jawaban dalam simpan-online adalah
sebagai berikut:
No
Pertanyaan
Jawaban
Jika Menjawab Jawaban ini,
Pertanyaan Selanjutnya adalah
Nomor :
1
Pendidikan Anda
a. SD
3
b. SMP
3
c. SMA
2
2
Jurusan Anda
a. IPA
3
b. IPS
3
c. Bahasa
3
3
Kendaraan
menuju
sekolah
a. mobil
Selesai
b. motor
Selesai
c. Jalan kaki
Selesai
Apabila diperhatikan, ketika di pertanyaan pertama, apabila responden
menjawab pertanyaan “Pendidikan Anda” dengan pilihan Jawaban c.
SMA, maka responden akan dibawa ke nomor pertanyaan 2. “Jurusan
Anda”, sedangkan jika menjawab a. SD atau b. SMP, maka responden
akan dibawa ke nomor pertanyaan 3. “Kendaraan menuju sekolah”,
Untuk contoh dalam buku petunjuk ini, berikut ini adalah ringkasan
jawaban dari pertnyaan “Usia Anda”
Dengan jawaban seperti itu, maka ketika menjawab dengan jawaban a
dan c, responden akan menyelesaikan survey yang diambil olehnya. Dan
ketika menjawab b, maka responden akan dimintai pertanyaan
berikutnya, yaitu “Skill Anda”.
Rule khusus untuk Jawaban dengan jenis pertanyaan Multiisian dan
Deskripsi
Konsep dalam merancang survey ini adalah :
“Setiap pertanyaan harus memiliki setidaknya satu jawaban. Dan
setiap jawaban harus menentukan alur survey, apakah LANJUT
KE PERTANYAAN BERIKUTNYA atau SELESAI”
Sehingga dalam versi aplikasi ini, untuk jawaban dengan jenis
pertanyaan Multiisian dan Deskripsi, meskipun tidak ada pilihan
jawaban real yang ada, pembuat survey tetap harus membuat setidaknya
1 jawaban dummy (palsu), yang kemudian ditentukan alur berikutnya,
apakah LANJUT
KE PERTANYAAN BERIKUTNYA atau
SELESAI.
Contoh jawaban yang dapat dibuat untuk pertanyaan dengan jenis
multiisian dan deskripsi adalah sebagai berikut :
26
Contoh tersebut adalah membuat jawaban dummy, yang akan membuat
responden menyelesaikan survey yang diambil oleh mereka.
C. SOURCE CODE
Controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Kuesioner extends CI_Controller { public function __construct() {
parent::__construct(); $this->load->database();
$this->load->model('kuesioner_model'); }
public function index() {
$event_where = array('event_status' => '1');
$event_join = array('m_group' => 'm_group.group_id = m_event.event_createdby#inner');
$event = $this->kuesioner_model->get_table_data_rows('m_event',$event_join,$event_where,'*, (select count(rspd_id) from t_respondent where rspd_event_id=event_id and rspd_status=2) jml','event_id','event_start_date','asc');
//$c_data['qry'] = $this->db->last_query(); $c_data['event'] = $event;
$content = $this->load->view('event_list', $c_data, true);
$data['content'] = $content;
$this->load->view('main_page', $data); }
public function notfound($event_id) {
30
$negara = $this->kuesioner_model->get_table_data('m_negara',null,$negara_where,'*',null,'uraian','ASC');$prop = $this->kuesioner_model->get_table_data('m_propinsi',null,null,'*'); $judulevent_where = array('event_id' => $event_id,'event_status' => '1'); $judulevent = $this->kuesioner_model->get_table_data('m_event',null,$judulevent_where,'*');
$c_data['negara'] = $negara; $c_data['prop'] = $prop;
$c_data['judulevent'] = $judulevent;
$content = $this->load->view('404', $c_data, true);
$data['content'] = $content;
$this->load->view('main_page', $data); }
public function view_event($event_id) { $negara_where = array(); $negara = $this->kuesioner_model->get_table_data('m_negara',null,$negara_where,'*',null,'uraian','ASC'); $edu_where = array(); $edu = $this->kuesioner_model->get_table_data('m_pendidikan',null,$edu_where,'*',null,'pend_order','ASC');
$group_where = array('group_type' => 'EKSTERN','group_status' => '1'); $group = $this->kuesioner_model->get_table_data('m_group',null,$group_where,'*',null,'group_id','ASC');
$prop = $this->kuesioner_model->get_table_data('m_propinsi',null,null,'*');
$judulevent_join = array('m_form' => 'm_event.event_audience = m_form.form_group#inner'); $judulevent = $this->kuesioner_model->get_table_data('m_event',$judulevent_join,$judulevent_where,'*'); $c_data['negara'] = $negara; $c_data['edu'] = $edu; $c_data['group'] = $group; $c_data['prop'] = $prop; $c_data['judulevent'] = $judulevent; if($judulevent){
$content = $this->load->view($judulevent->form_view, $c_data, true); }
else{
$content = $this->load->view('404', $c_data, true); }
$data['content'] = $content;
$this->load->view('main_page', $data); }
public function addRespondent() {
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('rspd_name', 'Nama Lengkap', array('required', 'min_length[5]'));
$this->form_validation->set_rules('rspd_gender', 'Jenis Kelamin', array('required', 'min_length[1]'));
//$this->form_validation->set_rules('rspd_country_id', 'Negara Tempat Bekerja', array('required', 'min_length[1]'));
//$this->form_validation->set_rules('rspd_kab_id', 'Kabupaten/Kota Asal', array('required', 'min_length[6]'));
32
//$this->form_validation->set_rules('rspd_kec_id', 'Kecamatan Asal', array('required', 'min_length[6]'));//$this->form_validation->set_rules('rspd_kel_id', 'Kelurahan Asal', array('required', 'min_length[6]'));
//$this->form_validation->set_rules('rspd_phone', 'No Handphone', array('required', 'min_length[10]'));
//$this->form_validation->set_rules('rspd_pasporno', 'No Paspor', array('required', 'min_length[3]'));
//$this->form_validation->set_rules('rspd_email', 'E-mail', array('required', 'min_length[5]'));
//$this->form_validation->set_rules('rspd_job', 'Pekerjaan / Jabatan', array('required', 'min_length[3]'));
//$this->form_validation->set_rules('rspd_workplace', 'Nama Perusahaan / Tempat Bekerja', array('required', 'min_length[5]'));
//$this->form_validation->set_rules('rspd_addr', 'Alamat', array('required', 'min_length[5]'));
//$this->form_validation->set_rules('rspd_age', 'Umur', array('required', 'min_length[2]'));
//$this->form_validation->set_rules('rspd_edu_id', 'Umur', array('required', 'min_length[1]'));
//$this->form_validation->set_rules('rspd_relation_id', 'Umur', array('required', 'min_length[1]')); if ($this->form_validation->run() == FALSE) { $negara_where = array(); $negara = $this->kuesioner_model->get_table_data('m_negara',null,$negara_where,'*'); $prop = $this->kuesioner_model->get_table_data('m_propinsi',null,null,'*');
$judulevent_where = array('event_id' => $this->input->post('rspd_event_id'),'event_status' => '1');
$judulevent_join = array('m_form' => 'm_event.event_audience = m_form.form_group#inner');
$judulevent = $this->kuesioner_model->get_table_data('m_event',$judulevent_join,$judulevent_where,'*');
'rspd_name' => $this->input->post('rspd_name'), 'rspd_gender' => $this->input->post('rspd_gender'), 'rspd_country_id' => $this->input->post('rspd_country_id'), 'rspd_kab_id' => $this->input->post('rspd_kab_id'), 'rspd_kec_id' => $this->input->post('rspd_kec_id'), 'rspd_kel_id' => $this->input->post('rspd_kel_id'), 'rspd_phone' => $this->input->post('rspd_phone'), 'rspd_pasporno' => $this->input->post('rspd_pasporno'), 'rspd_email' => $this->input->post('rspd_email'), 'rspd_job' => $this->input->post('rspd_job'), 'rspd_workplace' => $this->input->post('rspd_workplace'), 'rspd_addr' => $this->input->post('rspd_addr'), 'rspd_event_id' => $this->input->post('rspd_event_id'), 'rspd_age' => $this->input->post('rspd_age'), 'rspd_edu_id' => $this->input->post('rspd_edu_id'), 'rspd_relation_id' => $this->input->post('rspd_relation_id'), 'rspd_created_date' => date('Y-m-d H:i:s'),
'rspd_status' => '1' ); $c_data['negara'] = $negara; $c_data['prop'] = $prop; $c_data['judulevent'] = $judulevent; $c_data['form_data'] = $form_data;
$content = $this->load->view($judulevent->form_view, $c_data, true);
$data['content'] = $content;
$this->load->view('main_page', $data); }
else {
34
if($this->input->post()) { $data = array( 'rspd_name' => $this->input->post('rspd_name'), 'rspd_gender' => $this->input->post('rspd_gender'), 'rspd_country_id' => $this->input->post('rspd_country_id'), 'rspd_kab_id' => $this->input->post('rspd_kab_id'), 'rspd_kec_id' => $this->input->post('rspd_kec_id'), 'rspd_kel_id' => $this->input->post('rspd_kel_id'), 'rspd_phone' => $this->input->post('rspd_phone'), 'rspd_pasporno' => $this->input->post('rspd_pasporno'), 'rspd_email' => $this->input->post('rspd_email'), 'rspd_job' => $this->input->post('rspd_job'), 'rspd_workplace' => $this->input->post('rspd_workplace'), 'rspd_addr' => $this->input->post('rspd_addr'), 'rspd_event_id' => $this->input->post('rspd_event_id'), 'rspd_age' => $this->input->post('rspd_age'), 'rspd_edu_id' => $this->input->post('rspd_edu_id'), 'rspd_relation_id' => $this->input->post('rspd_relation_id'), 'rspd_created_date' => date('Y-m-d H:i:s'),'rspd_status' => '1' );
if ($this->kuesioner_model->insert_entry('t_respondent',$data)) {
//fill session variables rspd_id
$this->session->set_userdata('rspd_id', $this->db->insert_id());
$this->session->set_userdata('rspd_event_id', $this->input->post('rspd_event_id'));
//cari quest_id ke pertanyaan nomor awal $question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'), 'quest_order' => '1');
$question = $this->kuesioner_model->get_table_data('t_quest',null,$question_where,'*');
//fill session variables
$this->session->set_userdata('quest_id', $question->quest_id);
$this->session->set_userdata('quest_order', $question->quest_order);
//redirect ke pertanyaan nomor awal redirect(base_url().'kuesioner/viewQuestion'); } else { echo "Failed"; } } } }
public function saveResponse() {
//count total pertanyaan dalam event
$cnt_question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'),'quest_status' => '1'); $cnt_question = $this->kuesioner_model->get_table_data('t_quest',null,$cnt_question_where,'COUNT(quest_id) JML'); $this->load->helper(array('form', 'url')); if($this->input->post()) { $rspdans_multi = $this->input->post('rspdans_multi'); $quest_ans_type = $this->input->post('quest_ans_type');
36
//jika jawaban single answerif($rspdans_multi=='0'){
//jika multiple choice if($quest_ans_type==1){
//get answer desc
$ans_desc_where = array('qans_id' => $this->input->post('rspdans_qans_id'),'qans_status' => '1'); $ans_desc = $this- >kuesioner_model->get_table_data('t_quest_answer',null,$ans_desc_where,'qans_number,qans_desc, qans_fixed_answer'); //fill variables $rspdans_qans_id = $this->input->post('rspdans_qans_id');
// cek jawaban lainnya if($ans_desc->qans_fixed_answer=='1'){ $rspdans_value = $ans_desc->qans_number." ".$ans_desc->qans_desc; }else if($ans_desc->qans_fixed_answer=='0'){ $rspdans_value = $ans_desc->qans_number." ".$this->input->post('rspdans_value'); } } //jika uraian else if($quest_ans_type==2){ $rspdans_qans_id = null; $rspdans_value = $this->input->post('rspdans_value'); }
$data = array( 'rspdans_rspd_id' => $this->session->userdata('rspd_id'), 'rspdans_quest_id' => $this->input->post('rspdans_quest_id'), 'rspdans_has_source' => $this->input->post('rspdans_has_source'), 'rspdans_created_date' => date('Y-m-d H:i:s'), 'rspdans_qans_id' => $rspdans_qans_id, 'rspdans_value' => $rspdans_value, 'rspdans_status' => '1' ); if ($this->kuesioner_model->insert_entry('t_respondent_answer',$data)) { if($rspdans_qans_id){ //cari quest_id berikutnya berdasarkan jawaban multiple choice yang dipilih
$nextquest_seq_where = array('qans_id' => $rspdans_qans_id,'qans_status' => '1'); $nextquest_seq = $this- >kuesioner_model->get_table_data('t_quest_answer',null,$nextquest_seq_where,'*'); $this->session->set_userdata('quest_id', $nextquest_seq->qans_nextquest_id); } else{ if($this->session->userdata('quest_order')==$cnt_question->JML){ $this->session->set_userdata('quest_id', 'END'); }else{ //cari quest_id berikutnya berdasarkan urutan pertanyaan berikutnya
$question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'), 'quest_order' => $this->session->userdata('quest_order')+1,'quest_status' => '1' );
38
$question = $this->kuesioner_model->get_table_data('t_quest',null,$question_where,'*'); $this->session->set_userdata('quest_id', $question->quest_id); } } //redirect ke pertanyaan if($this->session->userdata('quest_order')==$cnt_question->JML OR $this->session->userdata('quest_id')=='END'){ $data = array('rspd_status' => '2'); $where = array('rspd_id' => $this->session->userdata('rspd_id')); if ($this->kuesioner_model->update_entry('t_respondent',$data, $where)) { redirect(base_url().'kuesioner/thankYou/'); } }else{ redirect(base_url().'kuesioner/viewQuestion/'); } } else { echo "Failed"; } }//jika jawaban multi answer else if($rspdans_multi=='1'){
//get from array input
$qans_id = $this->input->post('rspdans_qans_id');
$rspdans_qans_id = ''; $ans_counter = ''; $ans_success = '';
//repeat for all component for($i=0;$i < count($qans_id);$i++){ if ($qans_id[$i]<>""){ //counter answer $ans_counter = $ans_counter+1;
//jika multi checkbox if($quest_ans_type==3){
//get answer desc $ans_desc_where = array('qans_id' => $qans_id[$i],'qans_status' => '1'); $ans_desc = $this->kuesioner_model->get_table_data('t_quest_answer',null,$ans_desc_where,'qans_number,qans_desc, qans_fixed_answer'); //fill variables $rspdans_qans_id = $qans_id[$i]; // cek jawaban lainnya if($ans_desc->qans_fixed_answer=='1'){
$rspdans_value = $ans_desc->qans_number." ".$ans_desc->qans_desc; }else if($ans_desc->qans_fixed_answer=='0'){
$rspdans_value = $ans_desc->qans_number." ".$this->input->post('rspdans_value');
} }
40
else if($quest_ans_type==4){ $rspdans_qans_id = null; $rspdans_value = $qans_id[$i]; } $data = array( 'rspdans_rspd_id' => $this->session->userdata('rspd_id'), 'rspdans_quest_id' => $this->input->post('rspdans_quest_id'), 'rspdans_has_source' => $this->input->post('rspdans_has_source'), 'rspdans_created_date' => date('Y-m-d H:i:s'), 'rspdans_qans_id' => $rspdans_qans_id, 'rspdans_value' => $rspdans_value, 'rspdans_status' => '1' ); if ($this->kuesioner_model->insert_entry('t_respondent_answer',$data)) { $ans_success = $ans_success+1; } } } if($ans_success==$ans_counter){ if($rspdans_qans_id){ //cari quest_id berikutnya berdasarkan jawaban multiple choice yang dipilih$nextquest_seq_where = array('qans_id' => $rspdans_qans_id,'qans_status' => '1'); $nextquest_seq = $this- >kuesioner_model->get_table_data('t_quest_answer',null,$nextquest_seq_where,'*'); $this->session->set_userdata('quest_id', $nextquest_seq->qans_nextquest_id); } else{ if($this->session->userdata('quest_order')==$cnt_question->JML){ $this->session->set_userdata('quest_id', 'END'); } else{ //cari quest_id berikutnya berdasarkan urutan pertanyaan berikutnya
$question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'), 'quest_order' => $this->session->userdata('quest_order')+1,'quest_status' => '1' ); $question = $this->kuesioner_model->get_table_data('t_quest',null,$question_where,'*'); $this->session->set_userdata('quest_id', $question->quest_id); } } //redirect ke pertanyaan if($this->session->userdata('quest_order')==$cnt_question->JML OR $this->session->userdata('quest_id')=='END'){ $data = array('rspd_status' => '2'); $where = array('rspd_id' => $this->session->userdata('rspd_id')); if ($this->kuesioner_model->update_entry('t_respondent',$data, $where)) { redirect(base_url().'kuesioner/thankYou/');
42
} }else{ redirect(base_url().'kuesioner/viewQuestion/'); } } else{echo 'gagal input'; }
} }
}
public function viewQuestion() {
//data responden
$respondent_where = array('rspd_id' => $this->session->userdata('rspd_id')); $respondent_join = array('m_negara' => 'm_negara.negara_id = t_respondent.rspd_country_id#inner','m_event' => 'm_event.event_id = t_respondent.rspd_event_id#inner'); $respondent = $this->kuesioner_model->get_table_data('t_respondent',$respondent_join,$respondent_where,'*'); //data event
$judulevent_where = array('event_id' => $this->session->userdata('rspd_event_id'),'event_status' => '1');
$judulevent = $this->kuesioner_model->get_table_data('m_event',null,$judulevent_where,'*');
// item pertanyaan
$question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'), 'quest_id' => $this->session->userdata('quest_id'),'quest_status' => '1');
$question = $this->kuesioner_model->get_table_data('t_quest',null,$question_where,'*');
// fill session quest_order
$this->session->set_userdata('quest_order', $question->quest_order);
//count total pertanyaan dalam event
$cnt_question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'),'quest_status' => '1');
$cnt_question = $this->kuesioner_model->get_table_data('t_quest',null,$cnt_question_where,'COUNT(quest_id) JML');
$answer_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'), 'quest_id' => $this->session->userdata('quest_id'),'quest_status' => '1','qans_status' => '1'); $answer_join = array('t_quest'=>'t_quest_answer.qans_quest_id = t_quest.quest_id#left'); $answer = $this->kuesioner_model->get_table_data('t_quest_answer',$answer_join,$answer_where,'*',null,'qans_or der','asc'); $c_data['judulevent'] = $judulevent; $c_data['respondent'] = $respondent; $c_data['question'] = $question; $c_data['answer'] = $answer; $c_data['prog_question'] = $question->quest_order; $c_data['cnt_question'] = $cnt_question;
$content = $this->load->view('questionnaire', $c_data, true);
$data['content'] = $content;
$this->load->view('main_page', $data); }
public function thankYou() {
44
$respondent_where = array('rspd_id' => $this->session->userdata('rspd_id')); $respondent_join = array('m_negara' => 'm_negara.negara_id = t_respondent.rspd_country_id#inner','m_event' => 'm_event.event_id = t_respondent.rspd_event_id#inner'); $respondent = $this->kuesioner_model->get_table_data('t_respondent',$respondent_join,$respondent_where,'*');//count total pertanyaan dalam event
$cnt_question_where = array('quest_event_id' => $this->session->userdata('rspd_event_id'),'quest_status' => '1');
$cnt_question = $this->kuesioner_model->get_table_data('t_quest',null,$cnt_question_where,'COUNT(quest_id) JML');
//data event
$judulevent_where = array('event_id' => $this->session->userdata('rspd_event_id'),'event_status' => '1'); $judulevent = $this->kuesioner_model->get_table_data('m_event',null,$judulevent_where,'*'); $c_data['respondent'] = $respondent; $c_data['cnt_question'] = $cnt_question; $c_data['judulevent'] = $judulevent; $content = $this->load->view('questionnaire_end', $c_data, true); $data['content'] = $content; $this->load->view('main_page', $data); } } ?>