Cara Membuat REST API dari Google Sheets Menggunakan Google Apps Script

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

  1. Buka Google Sheets: Mulailah dengan membuka spreadsheet Google Sheets yang sudah Anda buat sebelumnya untuk menyimpan data stok barang.
  2. Akses Google Apps Script: Klik Extensions pada menu, lalu pilih Apps 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.

  1. Klik Deploy > Manage deployments atau Deploy > Test deployments: Di dalam editor Google Apps Script.
  2. Pilih New Deployment: Jika Anda belum pernah melakukan deployment sebelumnya.
  3. Pilih Web app:
    • Project version: Pilih "New".
    • Execute as: Pilih Me.
    • Who has access: Pilih Anyone, even anonymous.
  4. Klik Deploy: Ini akan menghasilkan URL yang dapat diakses oleh aplikasi Anda.
  5. 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:
url
https://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 

Techy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ART
Techy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ARTTechy Pranav PKD ART