Struktur survei Tab Separated Value
From LimeSurvey Manual
Impor dan Ekspor Struktur Survei dengan Tab Separated Value
Fitur ini dirancang untuk memudahkan penggunaan perangkat lunak spreadsheet seperti LibreOffice, Excel, atau Google Docs dalam menyusun dan mengedit survei. Ini sepenuhnya menghilangkan ketergantungan pada kode SGQA.
Fitur ini mendukung impor dari berkas Tab Separated Value (TSV) berenkode ASCII atau UTF-8 yang berekstensi .txt.
Memulai
Cara termudah adalah mengambil survei yang sudah ada dan mengekspornya dalam format Tab Separated Value. Gunakan tombol ekspor survei seperti biasa, dan alih-alih memilih format .lss, pilih "Tab Separated Values format (*.txt)". Survei akan disimpan sebagai berkas Tab Separated Value dengan format yang tepat (berkas unicode yang dipisahkan tab), lengkap dengan semua judul kolom yang benar.
Perangkat lunak spreadsheet apa pun yang mendukung tab separated values dapat digunakan (misalnya OpenOffice atau LibreOffice). LimeSurvey mengabaikan pemformatan apa pun di dalam spreadsheet, tetapi Anda boleh menambahkannya jika hal itu membantu.
Akan ada satu baris untuk setiap grup, pertanyaan, subpertanyaan, dan jawaban. Ada juga baris untuk variabel survei global dan untuk variabel survei khusus bahasa. Bahasa utama akan dicantumkan terlebih dahulu, diikuti bahasa sekunder apa pun. Jadi, jika ada beberapa bahasa, seluruh isi bahasa utama akan muncul lebih dulu (misalnya semua grup, pertanyaan, subpertanyaan, dan jawaban). Setelah itu akan diikuti salinan terjemahan untuk setiap bahasa sekunder (dengan jumlah dan urutan baris yang persis sama untuk set terjemahan tersebut).
Hubungan disimpulkan berdasarkan kedekatan posisi. Jadi, pertanyaan yang mengikuti sebuah grup adalah bagian dari grup tersebut; subpertanyaan yang mengikuti sebuah pertanyaan adalah bagian dari pertanyaan tersebut, dan jawaban yang mengikuti sebuah pertanyaan adalah bagian dari pertanyaan tersebut. Dengan demikian, Anda tidak perlu mengetahui ID (gid, qid, sqid) untuk pertanyaan mana pun. ID tersebut akan dihitung secara otomatis saat impor. Bahkan, format ini sama sekali tidak menggunakan gid, qid, atau sqid (atau kode SGQA).
Tips
Tujuan impor/ekspor Tab Separated Value adalah agar Anda dapat merancang survei dengan cepat menggunakan spreadsheet. Kami memperkirakan Anda akan sering mengimpor lembar tersebut, memeriksa validitasnya menggunakan fitur "Show Survey Logic", dan mengujinya. Setiap kali Anda mengimpornya, Anda akan mendapatkan survei baru. Jadi, Anda mungkin akan memiliki banyak survei yang belum selesai dikembangkan, tetapi itu tidak masalah. Biasakan untuk mencatat mana yang terbaru, atau hapus survei lama setelah Anda mengimpor yang baru. Karena Anda tidak pernah menggunakan kode SGQA dalam Tab Separated Value, Anda tidak perlu khawatir tentang kode apa yang ditetapkan LimeSurvey untuk kunci survei, grup, pertanyaan, dan jawaban utama. Jadi, silakan impor dan ekspor sesering yang Anda inginkan.
Berikut beberapa hal praktis yang dapat Anda lakukan dengan pendekatan penyusunan instrumen ini:
- Gunakan Jawaban yang sama untuk banyak pertanyaan. Cukup salin baris 'A' dan tempel setelah setiap pertanyaan yang harus memiliki set yang sama.
- Gunakan subpertanyaan yang sama untuk banyak pertanyaan. Cukup salin baris 'SQ' dan tempel setelah setiap pertanyaan yang membutuhkannya.
- "Looping" - gunakan grup yang sama berkali-kali. Setelah grup sesuai keinginan Anda, salin sebanyak yang diperlukan. Gunakan filter Excel untuk menampilkan hanya baris 'G' (untuk grup), dan gunakan fitur seret kolom Excel untuk memperbarui persamaan relevansi setiap grup (misalnya, untuk sensus, relevansi pertama mungkin "numPeople > 1", berikutnya harus "numPeople > 2". Fitur seret akan memperbarui angkanya secara otomatis). Filter berdasarkan baris 'Q' dan pastikan setiap pertanyaan memiliki nilai yang unik (misalnya, jika Anda menamai variabel g1_q1, g1_q2, g1_qN, gunakan cari/ganti untuk mengubah g1 menjadi g2 pada grup kedua; g3 untuk grup ketiga, dan seterusnya).
- Mengatur ulang urutan pertanyaan/grup. Cukup atur ulang urutan baris pada berkas spreadsheet.
- Menguji modul survei. Untuk survei yang panjang, Anda mungkin ingin membagi pengujian menjadi beberapa modul. Cukup buat berkas spreadsheet baru untuk setiap modul, dan hapus baris yang tidak Anda perlukan. Dengan begitu, Anda tidak perlu memasukkan banyak data untuk menguji bagian survei yang lebih akhir.
- Menguji pertanyaan wajib. Keluhan yang umum bukanlah kebutuhan untuk menjadikan banyak pertanyaan wajib, melainkan kebutuhan untuk menonaktifkan fitur wajib saat pengujian. Cukup buat spreadsheet induk dengan pengaturan wajib sesuai nilai akhir yang diinginkan. Lalu, untuk mengujinya, cukup hapus kolom "mandatory" dan simpan versi uji dari spreadsheet tersebut. Saat Anda mengimpor versi itu, tidak ada pertanyaan yang akan wajib. Setelah pengujian selesai, impor salinan induknya.
- Mengatur nilai default. Alih-alih menggunakan GUI, Anda dapat memasukkan nilai default yang diinginkan di kolom default. Ini sangat membantu untuk kasus di mana GUI tidak memungkinkan Anda memasukkan nilai yang diinginkan, seperti ekspresi untuk menetapkan nilai default item daftar (misalnya mengisi daftar dari atribut peserta survei).
- Terjemahan. Anda dapat membuat salinan spreadsheet - satu per bahasa. Sertakan semua baris untuk bahasa utama, lalu salin dan tempel di bawahnya, dan gunakan fitur seret untuk mengubah kolom bahasa ke bahasa target. Salinan ini dapat dibagikan kepada penerjemah Anda, dan digabungkan kembali menjadi satu berkas spreadsheet setelah mereka selesai.
- Pengaturan massal atribut pertanyaan lanjutan. Anda mungkin ingin semua persamaan Anda terlihat di awal (agar Anda dapat melihat nilainya saat mengumpulkan data), lalu menyembunyikan semuanya sebelum masuk produksi. Cukup filter spreadsheet pada class = 'Q' dan jenis pertanyaan = '*' (persamaan), lalu atur always_hide ke 1 untuk setiap pertanyaan tersebut. Demikian pula, misalkan setelah membuat survei Anda memutuskan pertanyaan mana yang harus muncul dalam statistik publik. Alih-alih mengedit setiap pertanyaan melalui GUI, filter pada class = 'Q', lalu atur public_statistics = 1 untuk semua pertanyaan yang harus terlihat dalam statistik.
- Cari dan ganti. Misalkan Anda memutuskan perlu mengubah beberapa susunan kata di seluruh pertanyaan, Anda dapat menggunakan cari dan ganti Excel untuk melakukan perubahan tersebut. Demikian pula, jika Anda memutuskan untuk mengganti nama variabel secara massal, cari dan ganti dapat membantu. Jika Anda memerlukan cari dan ganti berbasis ekspresi reguler, Anda dapat memilih kolom yang diinginkan, menyalinnya ke editor teks, melakukan cari dan ganti, lalu menempelkan kembali kolom tersebut ke spreadsheet.
- Memperoleh persetujuan. Jika Anda melakukan penelitian, mungkin ada Institutional Review Board yang mengharuskan melihat teks pertanyaan. Ini bisa menjadi cara yang praktis untuk membagikannya. Demikian pula untuk diskusi dengan klien.
- Konsensus tim. Jika Anda mencoba membuat sebuah kelompok menyepakati susunan kata atau tampilan suatu pertanyaan atau grup, Anda dapat dengan cepat membuat prototipe/mengedit spreadsheet, mengimpornya, dan menunjukkan kepada tim (melalui pratinjau pertanyaan atau grup) persis apa yang akan dilihat pengguna. Dengan begitu Anda bisa memperoleh persetujuan tim sebelum mereka meninggalkan ruangan, tanpa harus mendokumentasikan kebutuhan, membangunnya, dan meminta persetujuan pada pertemuan berikutnya.
- Beralih dari format survei lain. Jika survei Anda berformat XML, Word, atau format lain, Anda dapat membuat proses konversi untuk memetakannya ke format ini. Meskipun Anda juga dapat mencoba memetakan ke format .lss, keuntungan format ini adalah Anda tidak perlu melacak hubungan foreign key antara grup, pertanyaan, subpertanyaan, jawaban, dan nilai default.
Keterbatasan
- Secara desain, fitur ini hanya berfungsi dengan baik untuk survei yang menggunakan penamaan qcode (bukan SGQA). Fitur ini mengasumsikan bahwa nama variabel (pengenal pertanyaan) unik di seluruh survei. Nama subpertanyaan boleh berulang, selama unik dalam lingkup pertanyaan tertentu.
Format Berkas
Umum
Kami menggunakan set judul kolom yang sama untuk berbagai tujuan. 14 kolom pertama memiliki fungsi yang berbeda-beda tergantung jenis entitasnya (misalnya grup, pertanyaan, jawaban). Kolom sisanya adalah daftar alfabetis nama bidang basis data untuk kode pertanyaan lanjutan. Berikut adalah sintaks untuk setiap jenis entitas
14 kolom pertama adalah:
- id (New in 3.14.0 )
- related_id (New in 3.14.0 )
- class
- type/scale
- name
- relevance
- text
- help
- language
- validation
- mandatory
- other
- default
- same_default
Parameter Global Survei
Ada satu baris per parameter pada tabel surveys.
- class => 'S'
- name => nama bidang basis data
- text => nilai
Parameter Khusus Bahasa Survei
Ada satu baris per bidang per bahasa pada tabel surveys_languagesettings. Semua entri untuk bahasa tertentu dikumpulkan sebelum dimasukkan (insert) ke tabel tersebut.
- class => 'SL'
- name => nama bidang basis data
- text => nilai
- language => bahasa
Grup
Satu baris grup per bahasa survei (misalnya, akan ada 3 baris grup jika survei memiliki 3 bahasa).
- id => pengenal numerik unik untuk grup, dimulai dari angka 1, gunakan ID yang sama untuk bahasa tambahan yang termasuk dalam grup saat ini
- class => 'G'
- name => group_name -- pengenal unik untuk grup
- relevance => grelevance -- persamaan relevansi tingkat grup, tanpa kurung kurawal
- text => description -- deskripsi grup khusus bahasa
- language => language -- bahasa untuk grup (misalnya, 'en')
Pertanyaan
Satu baris pertanyaan per bahasa survei (misalnya, akan ada 3 baris pertanyaan jika survei memiliki 3 bahasa). Pertanyaan diasumsikan termasuk dalam grup yang mendahuluinya.
- id => pengenal numerik unik untuk pertanyaan, dimulai dari angka 1, gunakan ID yang sama untuk bahasa tambahan yang termasuk dalam pertanyaan saat ini
- class => 'Q'
- type/scale => type -- jenis pertanyaan (biasanya satu huruf) (misalnya, 'M' adalah Pilihan ganda)
- name => title -- nama pertanyaan yang unik (akar dari sistem penamaan qcode)
- relevance => relevance -- persamaan yang berhubungan untuk pertanyaan
- text => question -- teks pertanyaan khusus bahasa
- help => help -- teks bantuan khusus bahasa
- language => language -- bahasa untuk grup (misalnya, 'en')
- validation => preg -- kriteria validasi ekspresi reguler opsional untuk pertanyaan
- mandatory => mandatory -- 'Y' jika wajib
- other => other -- 'Y' jika opsi "Lainnya" harus tersedia (hanya untuk beberapa jenis pertanyaan)
- default => default -- jika diatur, nilai ini dimasukkan ke tabel defaultvalues untuk pertanyaan ini
- same_default => same_default -- 'Y' untuk benar, yang berarti defaultvalue apa pun yang ditetapkan untuk bahasa utama berlaku juga untuk bahasa lain
Subpertanyaan
Satu baris subpertanyaan per bahasa survei. Subpertanyaan dianggap termasuk dalam pertanyaan yang mendahuluinya.
- id => pengidentifikasi numerik unik yang sama dengan yang digunakan untuk pertanyaan. Subpertanyaan harus menggunakan nilai berikutnya yang tersedia; ID pertanyaan dan subpertanyaan harus berbeda (misalnya gunakan ID 1 untuk pertanyaan dan ID 2, 3, dan 4 untuk subpertanyaan milik pertanyaan 1, ID pertanyaan berikutnya adalah 5, dan seterusnya). Gunakan ID subpertanyaan yang sama untuk bahasa tambahan milik subpertanyaan tersebut.
- class => 'SQ'
- type/scale => scale_id -- 0 atau 1, tergantung pada jenis pertanyaan (misalnya larik teks memiliki dua skala)
- name => title -- "nama" subpertanyaan, misalnya yang digunakan untuk exclude_all_others
- relevance => relevance -- (Mendatang) untuk mendukung relevansi tingkat subpertanyaan
- text => question -- teks subpertanyaan khusus bahasa
- help => help -- (Mendatang) untuk mendukung bantuan tingkat subpertanyaan
- language => language -- bahasa untuk subpertanyaan
- validation => preg -- (Mendatang) untuk mendukung validasi ekspresi reguler tingkat subpertanyaan (misalnya untuk bagian alamat)
- mandatory => mandatory -- (Mendatang) untuk mendukung subpertanyaan wajib (misalnya hanya beberapa subpertanyaan yang dibuat wajib)
- default => default -- jika diatur, maka ini adalah nilai default untuk subpertanyaan (dimasukkan ke tabel defaultvalues)
- same_default => same_default -- jika diatur, maka nilai default bahasa utama digunakan untuk semua bahasa lainnya
Jawaban
Satu baris jawaban per bahasa survei (misalnya, akan ada 3 baris jawaban jika survei memiliki 3 bahasa). Jawaban dianggap termasuk dalam pertanyaan yang mendahuluinya, dan berada dalam urutan sortir yang diinginkan.
- id => gunakan ID yang sama dengan ID pertanyaan tempat jawaban ini berada
- class => 'A'
- type/scale => scale_id -- 0 atau 1 (misalnya untuk skala ganda)
- name => code -- pengidentifikasi jawaban yang unik
- relevance => assessment_value -- jika menggunakan opsi penilaian, ini adalah nilai penilaian untuk jawaban tersebut
- text => answer -- teks jawaban khusus bahasa
- language => language -- bahasa untuk jawaban ini (misalnya 'en')
Penilaian
Satu baris penilaian per bahasa survei (misalnya, akan ada 3 baris penilaian jika survei memiliki 3 bahasa). Penilaian ditulis di akhir file.
- id => pengidentifikasi numerik unik untuk penilaian, dimulai dengan angka 1, gunakan ID yang sama untuk bahasa tambahan milik penilaian ini
- related_id => id grup tempat penilaian ini berada
- class => 'AS'
- type/scale => cakupan penilaian: T-Total, G-grup
- name => nama
- text => pesan
- min_num_value => Minimum
- max_num_value => Maksimum
- language => language -- bahasa untuk jawaban ini (misalnya 'en')
Kuota
Satu baris per kuota. Kuota ditulis di akhir file.
- id => pengidentifikasi numerik unik untuk kuota, dimulai dengan angka 1
- class => 'QTA'
- name => nama kuota
- mandatory => batas
- other => tindakan kuota
- default => aktif
- same_default => URL muat otomatis
Pengaturan bahasa kuota
Satu baris kuota per bahasa survei. Pengaturan bahasa kuota dianggap termasuk dalam kuota yang mendahuluinya.
- id => pengidentifikasi numerik unik untuk pengaturan bahasa kuota, dimulai dengan angka 1. Setiap baris untuk bahasa survei yang berbeda harus memiliki ID yang berbeda
- related_id => id kuota tempat pengaturan ini berada
- class => 'QTALS'
- relevance => pesan
- text => URL
- help => deskripsi URL
- language => language -- bahasa untuk kuota ini (misalnya 'en')
Anggota kuota
Satu baris per anggota kuota, tidak bergantung pada bahasa. Baris anggota kuota harus ditempatkan tepat setelah pertanyaan yang terkait dengannya. Anggota kuota dianggap termasuk dalam pertanyaan yang mendahuluinya.
- id => pengidentifikasi numerik unik untuk anggota kuota, dimulai dengan angka 1
- related_id => id kuota tempat anggota ini berada
- class => 'QTAM'
- name => kode jawaban
Kondisi
Satu baris per kondisi, tidak bergantung pada bahasa. Baris kondisi harus ditempatkan tepat setelah pertanyaan yang terkait dengannya. Kondisi dianggap termasuk dalam pertanyaan yang mendahuluinya.
- id => pengidentifikasi numerik unik untuk kondisi, dimulai dengan angka 1.
- related_id => id pertanyaan terkait, jika berlaku
- class => 'C'
- type/scale => skenario
- name => nama field jawaban
- relevance => operator perbandingan
- text => jawaban yang diharapkan