Cara Membuat REST API dari Google Sheets Menggunakan Google Apps Script
Pendahuluan
Setelah memahami konsep dasar REST API dan menyiapkan Google Sheets sebagai basis data untuk aplikasi stok barang, langkah berikutnya adalah membuat REST API menggunakan Google Apps Script. REST API ini akan memungkinkan aplikasi yang Anda buat di Sketchware Pro untuk berkomunikasi dengan Google Sheets, melakukan operasi seperti mengambil data, menambahkan data baru, memperbarui data, dan menghapus data stok barang.
Artikel ini akan memberikan panduan langkah demi langkah untuk membuat REST API dari Google Sheets menggunakan Google Apps Script.
Langkah 1: Membuka Google Apps Script
- Buka Google Sheets: Mulailah dengan membuka spreadsheet Google Sheets yang sudah Anda buat sebelumnya untuk menyimpan data stok barang.
- Akses Google Apps Script: Klik
Extensionspada menu, lalu pilihApps Script. Ini akan membuka editor Google Apps Script di tab baru.
Langkah 2: Menulis Kode Google Apps Script
Di dalam editor Google Apps Script, Anda akan menulis skrip yang memungkinkan Google Sheets berfungsi sebagai REST API. Kode ini akan menangani permintaan HTTP GET, POST, PUT, dan DELETE, yang digunakan oleh aplikasi Sketchware Pro.
Menulis Kode Dasar
Berikut adalah kode lengkap yang perlu Anda masukkan ke dalam editor Google Apps Script:
javascript// Mendapatkan data stok dari sheet yang dinamis dan mengubahnya menjadi JSON
function getData(sheetName) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var data = sheet.getDataRange().getValues();
var headers = data[0];
var jsonData = [];
for (var i = 1; i < data.length; i++) {
var rowData = {};
var isEmptyRow = true;
for (var j = 0; j < headers.length; j++) {
var cellValue = data[i][j];
if (cellValue !== '' && cellValue !== null) {
isEmptyRow = false;
}
rowData[headers[j]] = cellValue;
}
if (!isEmptyRow) {
jsonData.push(rowData);
}
}
return jsonData;
}
// Menambahkan data stok baru ke sheet dan kolom yang dinamis
function addData(sheetName, data) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var sheetData = sheet.getDataRange().getValues();
var headers = sheetData[0];
var lastRowWithData = 1;
// Menemukan baris terakhir yang berisi data
for (var i = 1; i < sheetData.length; i++) {
var isEmptyRow = true;
for (var j = 0; j < headers.length; j++) {
if (sheetData[i][j] !== '' && sheetData[i][j] !== null) {
isEmptyRow = false;
break;
}
}
if (!isEmptyRow) {
lastRowWithData = i + 1;
}
}
var id = lastRowWithData + 1; // ID diambil dari baris terakhir dengan data + 1
var newRow = [id]; // Memulai baris baru dengan ID
// Menambahkan kolom header jika sheet kosong
if (lastRowWithData === 1 && sheetData.length === 1) {
var headers = ['ID'].concat(Object.keys(data));
sheet.appendRow(headers);
}
// Menambahkan data sesuai dengan urutan header
var header = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
for (var i = 1; i < header.length; i++) {
newRow.push(data[header[i]] || '');
}
// Menambahkan baris baru setelah baris terakhir dengan data
sheet.getRange(id, 1, 1, newRow.length).setValues([newRow]);
return "Data berhasil ditambahkan.";
}
// Mengupdate data stok di sheet dan kolom yang dinamis
function updateData(sheetName, id, data) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var sheetData = sheet.getDataRange().getValues();
var header = sheetData[0];
for (var i = 1; i < sheetData.length; i++) {
if (sheetData[i][0] == id) {
for (var key in data) {
var colIndex = header.indexOf(key);
if (colIndex !== -1) {
sheet.getRange(i + 1, colIndex + 1).setValue(data[key]);
}
}
return "Data berhasil diupdate.";
}
}
return "ID tidak ditemukan.";
}
// Menghapus data stok dari sheet yang dinamis
function deleteData(sheetName, id) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
if (data[i][0] == id) {
sheet.deleteRow(i + 1); // Menghapus baris yang sesuai dengan ID
return "Data berhasil dihapus.";
}
}
return "ID tidak ditemukan.";
}
// Fungsi doGet untuk menangani permintaan HTTP GET
function doGet(e) {
var action = e.parameter.action;
var sheetName = e.parameter.sheetName;
var id = e.parameter.id;
var data = e.parameter.data ? JSON.parse(e.parameter.data) : {};
var result = "";
if (action == "getData") {
result = getData(sheetName);
} else if (action == "addData") {
result = addData(sheetName, data);
} else if (action == "updateData") {
result = updateData(sheetName, id, data);
} else if (action == "deleteData") {
result = deleteData(sheetName, id);
}
return ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON);
}
Penjelasan Kode:
- getData: Fungsi ini mengambil semua data dari Google Sheets dan mengubahnya menjadi format JSON.
- addData: Fungsi ini menambahkan baris baru ke Google Sheets berdasarkan data yang dikirimkan dari aplikasi.
- updateData: Fungsi ini memperbarui data yang ada di Google Sheets berdasarkan ID yang diberikan.
- deleteData: Fungsi ini menghapus data di Google Sheets berdasarkan ID yang diberikan.
- doGet: Fungsi ini menangani permintaan HTTP GET.
- doPost: Fungsi ini menangani permintaan HTTP POST untuk menambah data baru (bisa ditambahkan jika diperlukan).
Langkah 3: Deploy Sebagai Web App
Agar REST API ini bisa diakses dari luar (misalnya oleh aplikasi Sketchware Pro), Anda perlu mengubahnya menjadi Web App.
- Klik
Deploy > Manage deploymentsatauDeploy > Test deployments: Di dalam editor Google Apps Script. - Pilih
New Deployment: Jika Anda belum pernah melakukan deployment sebelumnya. - Pilih
Web app:- Project version: Pilih "New".
- Execute as: Pilih
Me. - Who has access: Pilih
Anyone, even anonymous.
- Klik
Deploy: Ini akan menghasilkan URL yang dapat diakses oleh aplikasi Anda. - Simpan URL Web App: URL ini akan digunakan untuk mengakses REST API dari aplikasi Sketchware Pro.
Langkah 4: Menguji REST API
Anda dapat menguji REST API yang baru saja Anda buat menggunakan tools seperti Postman atau langsung dari browser.
1. Menggunakan Browser
- GET Request: Anda bisa mengakses data stok barang dengan menambahkan parameter pada URL, misalnya:
urlhttps://script.google.com/macros/s/{YourScriptID}/exec?action=getData&sheetName=StokBarang
2. Menggunakan Postman
- GET Request: Tambahkan parameter yang sama seperti di atas dan lihat respons yang dikembalikan oleh server.
Penutup dan Pengantar ke Artikel Berikutnya
Dengan REST API yang sudah siap, Anda bisa melanjutkan ke tahap berikutnya, yaitu menghubungkan API ini dengan aplikasi yang akan Anda buat di Sketchware Pro. Artikel berikutnya akan membahas cara menggunakan komponen RequestNetwork di Sketchware Pro untuk mengakses REST API ini.
Lanjut ke: Cara Menggunakan RequestNetwork di Sketchware Pro untuk Mengakses REST API Google Sheets

Posting Komentar