Membuat Folder Berkas Otomatis Pada Google Form Berdasarkan Tanggal
1. Silahkan buat Google Form.
2. Hubungkan field yang bertipe Upload File dengan Google Drive.
3. Hubungkan Google Form dengan Spreadsheet (Responses).
4. Pada Spreadsheet(Responses) klik menu Ekstensi/Extensions lalu pilih Apps Script untuk membuat lembar kerja Apps Script.
5. Pada lembar kerja Apps Script terdapat file default yaitu Code.gs
6. Copy dan pastekan script di bawah ini ke Code.gs
Masukkan Password Untuk Melihat Script (Password ada di dalam video)
// Source Code by Javabitpro.com
function onFormSubmit(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var responses = e.values;
// Konversi timestamp dari Google Form ke objek Date
var timestamp = new Date(responses[0]);
if (isNaN(timestamp.getTime())) { // Jika gagal, ambil tanggal hari ini
timestamp = new Date();
}
// Format tanggal menjadi dd-MM-yyyy
var folderName = Utilities.formatDate(timestamp, Session.getScriptTimeZone(), "dd-MM-yyyy");
var parentFolder = DriveApp.getFolderById("ID_FOLDER_UTAMA"); // Ganti dengan ID folder utama
var folder;
var folders = parentFolder.getFoldersByName(folderName);
if (folders.hasNext()) {
folder = folders.next(); // Gunakan folder jika sudah ada
} else {
folder = parentFolder.createFolder(folderName); // Buat folder baru jika belum ada
}
// Ambil ID berkas dari kolom terakhir (sesuai urutan di Spreadsheet Google Form)
var fileId = responses[responses.length - 1].match(/[-\w]{25,}/); // Ekstrak ID dari URL Google Drive
if (fileId) {
var file = DriveApp.getFileById(fileId[0]);
file.moveTo(folder); // Pindahkan file ke folder tanggal
// Tulis link baru ke Spreadsheet
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow, responses.length).setValue(folder.getUrl()); // Tambahkan URL folder
}
} catch (error) {
Logger.log("Error: " + error.toString());
}
}
// Source Code by Javabitpro.com
function onFormSubmit(e) {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var responses = e.values;
// Konversi timestamp dari Google Form ke objek Date
var timestamp = new Date(responses[0]);
if (isNaN(timestamp.getTime())) { // Jika gagal, ambil tanggal hari ini
timestamp = new Date();
}
// Format tanggal menjadi dd-MM-yyyy
var folderName = Utilities.formatDate(timestamp, Session.getScriptTimeZone(), "dd-MM-yyyy");
var parentFolder = DriveApp.getFolderById("ID_FOLDER_UTAMA"); // Ganti dengan ID folder utama
var folder;
var folders = parentFolder.getFoldersByName(folderName);
if (folders.hasNext()) {
folder = folders.next(); // Gunakan folder jika sudah ada
} else {
folder = parentFolder.createFolder(folderName); // Buat folder baru jika belum ada
}
// Ambil ID berkas dari kolom terakhir (sesuai urutan di Spreadsheet Google Form)
var fileId = responses[responses.length - 1].match(/[-\w]{25,}/); // Ekstrak ID dari URL Google Drive
if (fileId) {
var file = DriveApp.getFileById(fileId[0]);
file.moveTo(folder); // Pindahkan file ke folder tanggal
// Tulis link baru ke Spreadsheet
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow, responses.length).setValue(folder.getUrl()); // Tambahkan URL folder
}
} catch (error) {
Logger.log("Error: " + error.toString());
}
}
Note : Pada point 17 isikan ID Folder dengan ID Folder Utama yang telah terhubung pada Google Form.
7. Klik ikon Save.
8. Klik menu pada sidebar sebelah kiri, pilih menu Pemicu/Triggers.
9. Klik Tambah Pemicu/Triggers lalu pilih fungsi onFormSubmit, pilih event Saat mengirim formulir lalu klik Simpan.
10. Izinkan otorisasi jika diperlukan (Tutorial ada di video)
11. Google Form sudah siap di share, folder pada Google Drive akan otomatis terbuat berdasarkan tanggal hari ini (Today). Dan file akan terkelompokkan secara otomatis berdasarkan folder tanggal.
SELESAI !!!