Showing posts with label office. Show all posts
Showing posts with label office. Show all posts

Monday, July 26, 2021

UNIVERSAL CRUD | GOOGLE APP SCRIPT SPREADSHEET

 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;
}

Sunday, February 14, 2021

Menambah Bahasa Arab di Windows 10

Menambah Bahasa Arab di Windows 10

Kali ini saya akan memberikan cara untuk menambah keyboard Arab di windows 10. Ok, langsung saja:  

Langkah awal tekan tombol Windows atau klik logo Windows dibagian pojok kiri bawah lalu pilih menu Setting seperti yang ada di gambar bawah ini

Jika sudah masuk kebagian menu setting, langkah selanjutnya pilih Time & Language

Lalu di bagian menu Time & Language pilih Language di dalam menu Language terdapat pilihan untuk menambahkan Bahasa, di sini kita akan mencoba menambahkan Bahasa sesuai yang ada di judul kali ini yaitu Bahasa arab kemudian Klik bagian (+) Add a preferred language di situ terdapat banyak pilihan Bahasa hampir semua Bahasa didunia ada

Di bagian pilihan Bahasa ini kita mencontohkan memilih Bahasa Arabic ( Saudi Arabia ) lalu klik Next.

di bagian install language features centang sesuai kebutuhan lalu klik install dan tunggu hingga selesai, Hati hati jika anda centang yang Set as my display language itu akan merubah semua tampilan Bahasa sesuai yang anda rubah

Jika sudah seperti gambar dibawah maka Bahasa sudah di tambahkan atau sudah bisa kita gunakan.

Langkah selanjutnya jika ingin mengubah Bahasa latin ke Bahasa arab nya tinggal tekan tombol Alt + Shift nanti akan muncul menu pilihan Bahasa seperti gambar dibawah

Jika sudah buka terlebih dahulu On-Screen Keyboard untuk melihat hasil akhir, bila mana sudah dirubah tampilan On-Screen Keyboard akan menjadi bahasa arab seperti gambar dibawah ini


Hasil jika kita mengetikan di notepad atau aplikasi lainnya, hanya sebagai contoh saja

Wednesday, January 27, 2021

Arabic Pad | Editor Keren Untuk Mengetik Arab

Arabic Pad adalah editor sederhana seperti notepad, tetapi dirancang untuk menulis teks Arab [Unicode], terutama untuk Bahasa Arab Non Windows (atau Keyboard non Arab). Program ini menyesuaikan tombol keyboard sehingga mendekati bunyi huruf Arab (lihat Peta Karakter di bawah untuk detailnya). Dengan menggunakan teknik ini, saya berharap menulis bahasa arab lebih mudah.


sumber : google

Arabic Pad merupakan aplikasi Freeware dan Portable tanpa instalasi, dapat berfungsi untuk Windows 2000, XP, 2003, Vista, Windows 7, Windows 8, Windows 10 dan yang lebih baru, selama sistem operasi mendukung Unicode


Character/Keyboard Map

Main Arabic Letters
ArabicKeyArabicKeyArabicKey
اaزzقq
بbسsكk
تtشSلl
ثZصcمm
جjضCنn
حhطpوw
خKظPهh
دdع'ءx
ذDغgىY
رrفfيy

ArabicKeyArabicKeyArabicKey
أEؤWةT
إIئO
Harokat
ArabicKeyArabicKeyArabicKey
Fatha َeFathatan ًeeSukun ْo
Kasra ِiKasratan ٍii ٓ~
Dhomma ُ uDhammatan ٌuuHamza above ٔ<
Inverted Dhamma ٗUShadda ّvHamza below ٕ>
Superscript Alif ٰASubscript Alif ٖII
Additional for JAWI
ArabicKeyArabicKeyArabicKey
چJڤFۏV
ڠGڬXڽN

klik link dibawah ini untuk mengunduh 

arabic pad