Monday, July 26, 2021

UNIVERSAL CRUD | GOOGLE APP SCRIPT SPREADSHEET

Selamat datang di blog ali-mahdali.blogstpot.com, kali ini penulis memposting artikel yang berjudul UNIVERSAL CRUD | GOOGLE APP SCRIPT SPREADSHEET yang mana artikel ini dapat kalian akses melalui alamat : https://ali-mahdali.blogspot.com/2021/07/universal-crud-google-app-script.html,
tanpa basa-basi yuk disimak artikelnya dibawah ini. Selamat membaca

 kali ini abang akan memberikan skrip universal dopost dan doget google app script, berikut ini penampakannya




berikut ini skripnya


workSheetId='ID GOOGLE SPREADSHEET';

function doPost(e) {

  var jsonData={};
  if(e.parameter){
    jsonData=e.parameter;
  }
  return aplikasi(e,jsonData);
}

function doGet(e) {
  var jsonData={};
  if(e.parameter.data){
    jsonData=JSON.parse(e.parameter.data);
  }
  return aplikasi(e,jsonData);

}


function aplikasi(e,dataUser){
  try{
    var spreadsheet = SpreadsheetApp.openById(workSheetId),
    namasheet = spreadsheet.getSheetByName(e.parameter.tabel),
    informasiaksi=e.parameter.aksi,kolom=[],cari=[],namabuattabel;
    
    if(e.parameter.namatabel){
      namabuattabel=e.parameter.namatabel;
    }
    if(e.parameter.kolom){
      kolom=JSON.parse(e.parameter.kolom)||[];
    }
    if(e.parameter.cari){
      cari=JSON.parse(e.parameter.cari)||[];
    }

    switch(aksi) {
      case "buat":
        //?aksi=buat&kolom=["namabarang","harga","stok"]&namatabel=barang
        informasi=buatTabel(spreadsheet,namabuattabel,kolom)
        break;
      case "tampil":
        //?aksi=tampil&tabel=sheet1
        //?aksi=tampil&tabel=sheet1&cari=["uid","wgkrhdmldi"]
        //?aksi=tampil&tabel=sheet1&cari=["uid","wgkrhdmldi"]&kolom=["nama"]
        informasi=bacaTabel(namasheet,kolom,cari);
        break;
      case "tambah":
        //?aksi=tambah&tabel=sheet1&data={"nama":"ali","terlambat":"iya","kelas":"x","nilai":77,"pekerjaan":"mancing"}
        informasi=tambahData(namasheet,dataUser);
        break;
      case "ubah":
        //?aksi=ubah&tabel=sheet1&cari=["uid","wgkrhdmldi"]&data={"nama":"ali","terlambat":"iya","kelas":"x","nilai":77,"pekerjaan":"mancing"}
        informasi=ubah(namasheet,cari,dataUser);
        break;
      case "hapus":
        //?aksi=hapus&tabel=sheet1&cari=["uid","wgkrhdmldi"]
        informasi=hapus(namasheet,cari);
        break;
      default:
        informasi = "parameter tidak lengkap";
    }    
    return pesan(true,informasi);
  }catch (kesalahan) {
    return pesan(false,"nama sheet/nama tabel/kolom tidak ada/ :" +dataUser);
  }
}

function tambahData(sheetnya,jsonData){
  var query=jsonData;
  var sheet=sheetnya;
  try{
    var judul =  sheet.getRange(111sheet.getLastColumn()).getValues();
    var kolomJudul=judul.shift();
    var lineItem = [];
    for (var i = 0i < kolomJudul.lengthi++) {
      var kolom=query[kolomJudul[i]];
      if(!kolom){
        lineItem[i]='';
      }else{
        lineItem[i]=kolom;
      }
    }
    var karakter = 'abcdefghijklmnopqrstuvwxyz';
    var uID = '';
    for (var i = 0i < 10i++) {
      uID += karakter.charAt(Math.floor(Math.random() * karakter.length));
    }
    lineItem[0] = uID;  
    sheet.appendRow(lineItem);
    buat=lineItem;
  }catch(kesalahan){
    buat'Error saat membuat data :'+kesalahan;
  }
  return buat;
}

function ubah(sheetnya,cari,jsonData){
var sheet=sheetnya;
try{
    var cek=bacaTabel(sheet,[],cari);
    if(cek.length>0){
      var query=jsonData;
      var judul =  sheet.getRange(111sheet.getLastColumn()).getValues();
      var kolomJudul=judul.shift();
      for (var i = 0i < kolomJudul.lengthi++) {
        var kolom=query[kolomJudul[i]];
        if(kolom){
          sheet.getRange(cek[0]['index'],i+1).setValue(kolom);
        }
      }      
      buat="Berhasil merubah data! index : "+cek[0]['index'];
    }else{
      buat="data tidak ada!";
    }
  }catch(kesalahan){
    buat'Error saat merubah data'+kesalahan;
  }
  return buat;
}

function hapus(sheetnya,cari){
  var sheet=sheetnya;
  try{
    var cek=bacaTabel(sheet,[],cari);
    if(cek.length>0){
      sheet.deleteRow(cek[0]['index']);
      buat="Berhasil menghapus! index : "+cek[0]['index'];
    }else{
      buat="data tidak ada!";
    }
  }catch(kesalahan){
    buat'Error saat menghapus data'+kesalahan;
  }
  return buat;
}

function buatTabel(spreadsheet,namasheet,bacaKolom){
  var buat;
  var field=[];
  field=bacaKolom;
  if(field.length!=0){
    try{
      var newSheet = spreadsheet.insertSheet();
      newSheet.setName(namasheet);
      newSheet.getRange(1,1).setValue('uid');
      for (var i=0;i<field.length;i++){
        newSheet.getRange(1,i+2).setValue(field[i]);
      }
      buat='berhasil';
    }catch(kesalahan){
      buat'Error saat membuat tabel'+kesalahan;
    }
  }
  return buat;
}

function pesan(status,isipesan){
  var json ={koneksi:status,data:isipesan};
  return ContentService
          .createTextOutput(JSON.stringify(json))
          .setMimeType(ContentService.MimeType.JSON);
}

function bacaTabel (sheetnya,bacaKolom,cari){
  var sheet = sheetnya;
  var jumlahBaris = sheet.getLastRow();
  var jumlahKolom = sheet.getLastColumn();
  var dataSheet =  sheet.getRange(11jumlahBarisjumlahKolom).getValues();
  var kolomJudul = dataSheet[0],
  indexBaris=2;
  susun = [],
  data = dataSheet.slice(1dataSheet.length);
  customKolom=bacaKolom||[];
  for (var baris=0baris<data.lengthbaris++) {
    var namaKolom = {};
    if(customKolom.length==0){
      for (var urutanKolom=0urutanKolom<kolomJudul.lengthurutanKolom++){
        namaKolom[kolomJudul[urutanKolom]] = data[baris][urutanKolom];
      }
    }else{
      for (var urutanKolom=0urutanKolom<kolomJudul.lengthurutanKolom++){
        if(urutanKolom==0){
          namaKolom[kolomJudul[urutanKolom]] = data[baris][urutanKolom];
        }else{
        for(var urutanCustom=0;urutanCustom<customKolom.length;urutanCustom++){
          if(customKolom[urutanCustom]==kolomJudul[urutanKolom]){
            namaKolom[kolomJudul[urutanKolom]] = data[baris][urutanKolom];
          }
        }
        }
      }
    }
    namaKolom['index']=indexBaris;
    susun.push(namaKolom);
    indexBaris++;
  }
  var hasil;
  if(cari.length==0){
    hasil=susun;
  }else{
    var rumusFilter = (arraykeyvalue) => array.filter(x => x[key.toString() ] == value.toString() );
    var filterData = rumusFilter(susuncari[0].toString() ,cari[1].toString());
    if(filterData.length>0){
      hasil=filterData;
    }else{
      hasil="data yang dicari tidak ada :"+cari;
    }
  }
  return hasil;
}
Sebelum melanjutkan membaca artikel ini, berikut adalah artikel yang berkaitan dengan judul artikel UNIVERSAL CRUD | GOOGLE APP SCRIPT SPREADSHEET :
ok, silahkan lanjut membaca.

Terimakasih atas kunjungan Anda dan Karena telah sudi membaca artikel yang berjudul UNIVERSAL CRUD | GOOGLE APP SCRIPT SPREADSHEET.Tak Lengkap Rasanya Jika Kunjungan Anda di Blog ini Tanpa Meninggalkan Komentar, untuk Itu Silahkan Berikan Kritik dan saran Pada Kotak Komentar di bawah. Anda boleh menyebarluaskan atau mengcopy artikel UNIVERSAL CRUD | GOOGLE APP SCRIPT SPREADSHEET ini jika memang bermanfaat bagi anda, namun jangan lupa untuk mencantumkan link sumbernya. Terima Kasih, Happy Blogging :)

1 comment

  1. Bang, apakah datanya bisa ditampilkan dalam bentuk data table?

    ReplyDelete


EmoticonEmoticon