Asrofi – Blogger Semarang

Blogger Kendal Blogger Semarang Jawa Tengah

Cara Backup Google Sheet Secara Otomatis

Hello halo hola…

Kembali menulis nih, kali ini soal yang super penting dalam produktivitas kerja kita harian, khususnya para pengguna Google Spreadsheet seperti saya.

Sebelum ke inti permasalahan saya ceritakan dulu, apa itu Google Sheet. Google Sheet itu semacam Microsoft Office, alat kerja yang berhubungan dengan data, semacam tabel dan lain-lain yang isinya biasanya “data penting”, nah kelebihan Google Sheet dibanding dengan Microsoft Excel yang biasa kita pakai sebelumnya adalah:

  1. Bisa kolaborasi; satu file dapat diakses secara bersama, misalnya Ahmad hanya dapat mengedit kolom A, dan Banu hanya dapat mengedit kolom B, kira-kira begitu.
  2. Bisa koneksi dengan email sebagai notifikasi; misal kolom A berubah maka Si Banu bisa dapat email
  3. Bisa ada penugasan, misalnya Si Ahmad minta si Banu ngerjain baris ke-10, semacam tagging begitu. nanti kalau Banu sudah kerjakan dia bisa klik “finish” dan si AHmad dapat email notifikasi bahwa Banu sudah selesaikan tugasnya. ini keren dan penting.
  4. terdapat script untuk memberi fungsi lainnya, misalnya otomatisasi kirim email jika sel tertentu angkanya kurang dari 1. tentu ini dikerjakan para code developer, dan orang seperti kita-kita tinggal contek aja. ini yang akan saya ceritakan di pembahasan kali ini.

Selain kelebihan yang saya sebutkan di atas tentu banyak kelemahan dari Google Sheet ya, tetapi di sini kita tidak perlu membahas kelemahannya ya….

Okay, topik kita kali ini adalah Cara Backup File Google Sheet secara otomatis, contoh kasus manfaat sbb:

  1. ada satu file yang tiap harinya sering dirubah, dan dirubah secara bareng-bareng oleh orang yang berbeda-beda
  2. tentu ada sebuah kemungkinan suatu saat terjadi kesalahan, misalnya salah angka, salah hapus dan lain sebagainya
  3. untuk itu dibutuhkan sebuah cara untuk “backup”, tentu ini tidak harus, karena di Google Sheet itu sendiri sudah ada bawaan-nya yang namanya REVISI, tetapi tentu akan lebih baik jika kita punya file backup yang terpisah.
  4. jadi, kita di sini kita akan belajar bagaimana cara kita membuat file duplikat per hari, per minggu, atau setiap kali diedit.
  5. misal nama file “pekerjaan harian”, maka kita akan membuat backup berupa; (a)”pekerjaan harian – backup 2019-01-01″, (b)”pekerjaan harian – backup 2019-01-02″ dan seterusnya
  6. sehingga ketika suatu saat kita perlu review file nya kita ada data, ada file duplikat.
  7. OPSIONAL: lebih keren lagi kalau setiap user punya backupan sendiri, tentu semua harus membuat script masing-masing di akun Google Sheetnya. Jadi dalam 1 file Google Sheet bisa dibuatkan beberapa script yang sama, hanya beda di folder tujuan backupnya, yang buat si user masing-masing juga.

Menarik kan? Penting kan? 

Tentu!

CARANYA:

  1. pastikan anda tahu filenya ada di folder mana, misalnya namanya “Folder 2019”
  2. misalnya nama filenya “pekerjaan harian 2019.gsheet”, dan file itu ada di dalam folder “Folder 2019”
  3. untuk kepentingan backup, silakan buatkan folder baru misalnya namanya “Backup”, lokasi folder dalam 1 lokasi dengan file, yaitu ada di dalam folder “Folder 2019”. Berarti susunan foldernya adalah “Drive Saya>Folder 2019>Backup”
  4. sekarang kita buka folder backup itu, dan kita copy folder addressnya, misalnya URLnya seperti ini: “https://drive.google.com/drive/folders/xxxxxxyyyyyzzzz” maka kita perlu copy “xxxxxxyyyyyzzzz” ini, nanti akan dipakai dalam edit script.
  5. buka file sheet kita itu, misalnya di kasus ini kita contohkan nama filenya “pekerjaan harian 2019.gsheet”, pada pilihan menu (di bagian atas) ada “Alat” -> “Editor Skrip”, klik editor skrip. Kita buat skrip di sini, file skrip saya berikan di bawah.
  6. setelah selesai menulis skrip kita perlu simpan nama skripnya, misalnya “skrip backup pekerjaan harian 2019”
  7. info: sistem kerja skrip ini namanya “makeCopy”
  8. setelah skrip selesai dibuat dan disimpan, saatnya kita atur “PEMICU” atau “TRIGER” nya, secara umum ada 2 macam pemicu skrip yaitu (a)berdasarkan waktu (penjadwalan / scheduling) misalnya setiap jam atau setiap hari, dan (b)berdasarkan perubahan yang ada pada file tersebut, misalnya setiap diedit maka skrip berjalan. Saya secara pribadi memilih yang berdasarkan perubahan, sehingga file backup tidak terllau banyak, akan ada file backup hanya ketika file berubah,
  9. Cara Membuat Triger berdasarkan Perubahan sbb:
  • dalam file skrip tersebut klik menu gambar jam, berada di sebelah logo simpan
  • nanti kita akan dibawa ke halaman pemicu dari file skrip ini
  • klik “tambahkan pemicu” , tombol ada kanan di bawah nanti akan muncul pop up konfigurasi pemicu
  • edit: “sumber acara” -> “dari spreadsheet”
  • edit: “pilih jenis acara” -> “saat diubah”
  • klik simpan

Cara-Backup-Google-Sheet-Secara-Otomatis

Selesai, maka setelah kita simpan trigger tersebut secara otomatis skrip akan berjalan setiap kita edit file pekerjaan harian 2019.gsheet tersebut, sebagai hasil nanti dalam folder backup akan ada banyak sekali file baru yang terbuat secara otomatis, nama file akan diikuti dengan nama waktu di belakangnya.

Ingat, file skripnya anda belum punya, ini filenya:

// Abhijeet Chopra
// 26 February 2016
// Google Apps Script to make copies of Google Sheet in specified destination folder

function makeCopy() {

// generates the timestamp and stores in variable formattedDate as year-month-date hour-minute-second
var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd' 'HH:mm:ss");

// gets the name of the original file and appends the word "copy" followed by the timestamp stored in formattedDate
var name = SpreadsheetApp.getActiveSpreadsheet().getName() + " Copy " + formattedDate;

// gets the destination folder by their ID. REPLACE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx with your folder's ID that you can get by opening the folder in Google Drive and checking the URL in the browser's address bar
var destination = DriveApp.getFolderById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

// gets the current Google Sheet file
var file = DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId())

// makes copy of "file" with "name" at the "destination"
file.makeCopy(name, destination);
}


Catatan: Kita harus rubah  DriveApp.getFolderById(“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”) ini,  yaitu sesuai URL folder backup, seperti saya jelaskan di nomor 4 di atas ya, contohnya “xxxxxxyyyyyzzzz”, sehingga menjadi  DriveApp.getFolderById(“xxxxxxyyyyyzzzz“).

Semoga bermanfaat!

Terimakasih untuk “https://gist.github.com/abhijeetchopra/99a11fb6016a70287112“.

Bookmark and Share

Cara Replace Enter / Ganti Baris Secara Otomatis

Assalamualaikum,

Mungkin sebagian dari kita ada yang mengalami masalah ketika memakai alat tulis komputer seperti microsoft word, notepad, atau word editor lain. salah satunya harus menghapus “enter” yang jumlahnya sangat banyak atau mengganti “baris” dengan kata lain.

Misalnya pada tulisan ini:

Indonesia

tanah

airku

Bagiamana cara merubah menjadi “Indonesia tanah airku“?

Begini caranya

  1. copy semua text tersebut ke Notepad++ karena kita hanya bisa pakai notepad++ (setahu saya, setidaknya saat ini)
  2. kemudian di notepad++ Pilih semua text yang akan dirubah, dengan cara edit – select all , atau Ctrl+A atau pakai mouse.
  3. kemudian gunakan menu SEARCH -> REPLACE, atau tombol ctrl + H.
  4. pada FIND WHAT, tuliskan “\r\n
  5. kemudian pada REPLACE WITH, tuliskan spasi atau lainnya, sesuai keinginan.
  6. pada SEARCH MODE, pilih EXTENDED.
  7. udah, tinggal klik REPLACE ALL.
  8. BERES.

Selamat berproduktivitas!

cara-replace-enter-ganti-baris-dengan-atau-hapus

Bookmark and Share

Cara Menggunakan OpenDNS Updater Client Pada Mikrotik

Tulisan ini semacam “buku pengingat pribadi”, supaya kalau nanti butuh bisa dibuka kembali, gak perlu browsing-browsing gitu. Tapi kalau kamu baca tulisan ini, dan bisa dipraktekkan ya syukur alhamdulillah.

Oh ya, kembali ke judul ya, jadi bukan hanya OpenDNS tetapi juga berlaku untuk dyamic DNS lain seperti no-ip dan lain-lain, daftar yang disupport ada di sini:

  1. no-ip
  2. dyndns
  3. opendns
  4. dan lain-lain, klik di sini untuk tahu semuanya https://www.dnsomatic.com/wiki/supportedservices .

Okay, langsung aja ya, Cara Menggunakan Dynamic DNS Client Updater Pada Mikrotik sebagai berikut:

  1. daftar di https://www.dnsomatic.com/ . kalau udah punya akun opendns tidak perlu daftar, langsung login aja, karena dnsomatic ini satu perusahaan dengan opendns.
  2. masukin semua servis dns yang anda punya di situ, kalau opendns sudah otomatis ada di situ.
  3. buat script udater ==> SYSTEM -> SCRIPTS  (scriptnya terlampir di akhir tutorial ini) , buat nama script “opendns” misalnya.cara-menggunakan-opendns-di-mikrotik
  4. schedule untuk memanggil script per jam atau per hari, ==> SYSTEM -> SCHEDULER . buat nama scheduler “opendns-scheduler” misalnya, nanti pada “on event” tulis nama scriptnya.cara-setting-open-dns-di-mikrotik

Selesai.

Script DNS O MATIC

  1. script ini dapat berjalan di belakang NAT juga, jadi misalnya mikrotik kita masih di bawah modem, bukan pakai PPPOE langsung juga bisa.
  2. script saya ambil dari sini https://wiki.mikrotik.com/wiki/Dynamic_DNS_Update_Script_for_DNSoMatic.com_behind_NAT.
  3. jangan lupa ganti username dan password dns-o-maitc nya, supaya berfungsi

SCRIPT:

# DNSoMatic automatic DNS updates

#--------------- Change Values in this section to match your setup ------------------

# User account info of DNSoMatic

:local maticuser "USERNAME DNS O MATIC ANDA"
:local maticpass "PASSWORD DNS O MATIC ANDA"

# Set the hostname or label of network to be updated. This is the part after the double colon (::) on the DNSoMatic services page.
# Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names.
# To specify multiple hosts, separate them with commas. 
# Use "all.dnsomatic.com" for the matichost to update all items in dnsomatic with this IP.

:local matichost "all.dnsomatic.com"

#------------------------------------------------------------------------------------

# No more changes need

:global previousIP;

:log info "Fetching current IP"

# Get the current public IP using DNS-O-Matic service.
/tool fetch url="http://myip.dnsomatic.com/" mode=http dst-path=mypublicip.txt

# Read the current public IP into the currentIP variable.
:local currentIP [/file get mypublicip.txt contents]

:log info "Fetched current IP as $currentIP"
 
:if ($currentIP != $previousIP) do={
 :log info "DNSoMatic: Update needed"
 :set previousIP $currentIP
 
# The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
 :local url "http://updates.dnsomatic.com/nic/update\3Fmyip=$currentIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
 :local matichostarray;
 :set matichostarray [:toarray $matichost];
 :foreach host in=$matichostarray do={
 :log info "DNSoMatic: Sending update for $host"
 /tool fetch url=($url . "&hostname=$host") user=$maticuser password=$maticpass mode=http dst-path=("dnsomaticupdate-" . $host . ".txt")
 :log info "DNSoMatic: Host $host updated on DNSoMatic with IP $currentIP"
 }
} else={
 :log info "DNSoMatic: Previous IP $previousIP and current IP equal, no update need"
}
Bookmark and Share