Berikut adalah contoh program Google Apps Script yang memproses isian Google Form secara langsung setelah submit dan menampilkan persentase tiap jawaban dalam bentuk grafik. Script ini akan mengambil data dari Google Form, menghitung persentase jawaban, dan menampilkan hasilnya dalam bentuk grafik menggunakan Google Sheets.
---
### Langkah 1: Buat Google Form
1. Buat Google Form dengan beberapa pertanyaan (misalnya, pertanyaan pilihan ganda).
2. Buka tab "Responses" dan klik ikon Google Sheets untuk menyimpan respons ke dalam spreadsheet.
---
### Langkah 2: Buat Google Apps Script
1. Buka Google Sheets yang terkait dengan Google Form.
2. Klik `Extensions` > `Apps Script`.
3. Hapus kode default dan ganti dengan kode berikut:
```javascript
function onFormSubmit(e) {
// Ambil data dari Google Form
var formResponses = e.source.getResponses();
var latestResponse = formResponses[formResponses.length - 1];
var itemResponses = latestResponse.getItemResponses();
// Ambil data dari Google Sheets
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
// Hitung total respons
var totalResponses = data.length - 1; // Exclude header
// Hitung persentase jawaban
var answerCounts = {};
for (var i = 1; i < data.length; i++) {
var answer = data[i][1]; // Kolom kedua (indeks 1) adalah jawaban
if (answerCounts[answer]) {
answerCounts[answer]++;
} else {
answerCounts[answer] = 1;
}
}
// Hitung persentase
var percentages = {};
for (var key in answerCounts) {
percentages[key] = (answerCounts[key] / totalResponses) * 100;
}
// Tampilkan hasil dalam bentuk grafik
var chartData = [['Jawaban', 'Persentase']];
for (var key in percentages) {
chartData.push([key, percentages[key]]);
}
// Buat grafik
var chartSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Chart') || SpreadsheetApp.getActiveSpreadsheet().insertSheet('Chart');
chartSheet.clear();
chartSheet.getRange(1, 1, chartData.length, chartData[0].length).setValues(chartData);
var chart = chartSheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(chartSheet.getRange(1, 1, chartData.length, chartData[0].length))
.setPosition(5, 5, 0, 0)
.setOption('title', 'Persentase Jawaban')
.setOption('hAxis', { title: 'Persentase (%)' })
.setOption('vAxis', { title: 'Jawaban' })
.build();
chartSheet.insertChart(chart);
}
// Trigger untuk menjalankan script saat form di-submit
function installTrigger() {
ScriptApp.newTrigger('onFormSubmit')
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
```
---
### Langkah 3: Jalankan Script
1. Simpan script dengan nama `Form Response Processor`.
2. Jalankan fungsi `installTrigger` untuk mengaktifkan trigger. Klik `Run` pada fungsi `installTrigger`.
3. Setelah trigger diaktifkan, setiap kali ada respons baru di Google Form, script akan otomatis dijalankan.
---
### Langkah 4: Lihat Hasil
1. Buka Google Sheets yang terkait dengan Google Form.
2. Anda akan melihat sheet baru bernama `Chart` yang berisi grafik persentase jawaban.
3. Grafik akan diperbarui setiap kali ada respons baru.
---
### Penjelasan Kode:
1. **onFormSubmit(e)**: Fungsi ini dipanggil setiap kali ada respons baru di Google Form. Data respons diambil dan diproses untuk menghitung persentase jawaban.
2. **answerCounts**: Objek untuk menyimpan jumlah setiap jawaban.
3. **percentages**: Objek untuk menyimpan persentase setiap jawaban.
4. **chartData**: Array untuk menyimpan data yang akan digunakan untuk membuat grafik.
5. **Chart**: Grafik dibuat menggunakan Google Sheets API dan ditampilkan di sheet baru.
---
### Contoh Output:
- Sheet `Chart` akan menampilkan tabel seperti ini:
```
Jawaban | Persentase
------------------------
Jawaban A | 50%
Jawaban B | 30%
Jawaban C | 20%
```
- Grafik batang (bar chart) akan menampilkan persentase jawaban secara visual.
---
### Catatan:
- Pastikan Google Form memiliki pertanyaan pilihan ganda atau jawaban yang dapat dihitung.
- Sesuaikan indeks kolom (`data[i][1]`) sesuai dengan struktur Google Sheets Anda.
- Anda dapat menyesuaikan jenis grafik dengan mengubah `Charts.ChartType.BAR` menjadi `Charts.ChartType.PIE` atau jenis lainnya.
Dengan script ini, Anda dapat memproses respons Google Form secara otomatis dan menampilkan hasilnya dalam bentuk grafik yang informatif.
0 komentar :
Speak up your mind
Tell us what you're thinking... !