Cara Buat JSON API dari Data Google Sheets+ Aplikasi android

Bas Bas
5 min readApr 10, 2018

--

Assallamualaikum man teman, selamt pagi siang sore malam . . .

Masih dengan spreadsheet Google, spreadsheet google yang bisa kita buat secara gratis di google drive kita, ternyata bisa kita jadikan datanya menjadi JSON yang bisa dikelola oleh semua bahasa program, pastinya di android juga bisa kan.

di postingan kali ini saya ingin melanjutkan tutorial yang berhubungan dengan spreadsheet google, karena sebelumnya saya telah membuat aplikasi pendaftran di android yang datanya kita simpan di spreadsheet google, bisa di cek di link dibawah ini :

https://medium.com/@basriumar/9c9008c9ac7e

sebelum kita buat, pastikan anda sudah login di akun google drive, karena kita akan coba buat google forms yang nantiya dari google form itu kita akan input data-data dan di tampilkan di android, buat 1 file di akun google drive yaitu google form seperti pada gambar dibawah ini :

setelah itu akan di alihkan ke link google form seperti gambar dibawah ini, isikan 3 field yaitu Nama,Email dan Alamat.

setelah di buat 3 form itu, kita coba masuk ke tab Response dan convert ke excel form, fungsi google form yang telah kita buat yaitu untuk menginput data yang nanti akan kita tampilkan di android, untuk cara convert bisa di lihat di gambar dibawah ini :

setelah diconvert ke excel akan seperti gambar dibawah ini, dan coba di isi datanya .

setelah kita dapatkan excelnya, kita akan coba buat google sprit scriptnya, kita masuk di bagian tools dan pilih script editor seperti gambar berikut ini:

setelah kita pilih script editor kita akan masukan script dibawah ini, dalam script itu ada masukan id spreadsheet, untuk melihat id spreadsheet lihat gambar diatas pada bagian url yang di persegi panjang merah it adalah id spreadsheet yang telah dibuat.

function doGet(e) {

var op = e.parameter.action;

if(op==”read”)
return read_all_value(e);

}

var SCRIPT_PROP = PropertiesService.getScriptProperties();
// see: https://developers.google.com/apps-script/reference/properties/

/**
* select the sheet
*/
function setup() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
SCRIPT_PROP.setProperty(“key”, doc.getId());
}

function read_all_value(request){

var ss =SpreadsheetApp.openById(‘1vpobNwo8jqqEcSx7WnS01ra2MvN_Eo7Y1U6TVl6jbhY’);

var output = ContentService.createTextOutput(),
data = {};
//Note : here sheet is sheet name , don’t get confuse with other operation
var sheet=”sheet1";

data.records = readData_(ss, sheet);


var callback = request.parameters.callback;

if (callback === undefined) {
output.setContent(JSON.stringify(data));
} else {
output.setContent(callback + “(“ + JSON.stringify(data) + “)”);
}
output.setMimeType(ContentService.MimeType.JAVASCRIPT);

return output;
}

function readData_(ss, sheetname, properties) {

if (typeof properties == “undefined”) {
properties = getHeaderRow_(ss, sheetname);
properties = properties.map(function(p) { return p.replace(/\s+/g, ‘_’); });
}

var rows = getDataRows_(ss, sheetname),
data = [];

for (var r = 0, l = rows.length; r < l; r++) {
var row = rows[r],
record = {};

for (var p in properties) {
record[properties[p]] = row[p];
}

data.push(record);

}
return data;
}

function getDataRows_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);

return sh.getRange(2, 1, sh.getLastRow() — 1, sh.getLastColumn()).getValues();
}

function getDataRows_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);

return sh.getRange(2, 1, sh.getLastRow() — 1, sh.getLastColumn()).getValues();
}

function getHeaderRow_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);

return sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0];

}

kita copy script di atas di bagian script editor seperti pada gambar dibawah ini :

jangan lupa pakai id spreadsheet yang kalian telah buat.

setelah itu kita coba untuk simpan dan publish scriptnya pilih menu publish dan pilih deploy as web app, atau caranya ikuti gambar dibawah ini :

setelah kita pilih deploy akan muncul perintah untuk isikan nama prject dan simpan, pada project version di pilih New dan pada Who has access to the app pilih Anyone, even anonymous.

setelah kita pilih deploy, akan ada perintah dari sistem untuk meriview permission lagi, seperti pada gambar dibawah ini :

setelah itu kita akan di suruh pilih untuk masuk akun google drive, dan kita pilih akun yang sebelumnya kita sudah pakai untuk login, setelah itu akan ada pilhan verified, kita klik advance nanti akan muncul seperti pada gambar dibawah di kita pilih Go To Medium Project Get, dan kita pilih Allow .

setelah kita allow, akan muncul url yang akan menjadi url kita untuk mendapatkan data json dari semua data yang ada di spreadsheet, urlnya seperti pada gambar berikut ini :

setelah itu kita coba copy url itu dan pastekan di browser kita, jangan lupa di akhir url itu kita tambahkan ?action=read .

setelah itu kita coba di browser ya . . .

bisa dilihat digambar bawah ini hasil json berdasarkan data spreadsheet google

jika ada yang errror, pada google spreadsheetnya dibagian bawah yang di persegi panjang merah itu pada spreadsheet yang kalian telah buat diganti namanya jadi sheet1, atau coba ngulik di script yang ada tulisan spreadsheet, diganti namanya.

ok next kita akan coba buat hasil json itu tampil di android,

sebelumnya saya upload projecnya di github saya, dan coba runnig appnya pakai android studio.

untuk cek datanya silahkan cek di sini :

atau bisa run appnya pakai emulator / device real anda dengan apk ini :

Oke sekian dulu tutorial ini, semoga ada manfaat, dan jangan lupa di share.

projectnya modifikasi dari sini https://github.com/CrazyCodersClub/GsheetAsDbWithImageUpload

Oh iya, jika sudah download file githubnya jangan lupa follow ya .

--

--