Transcript for:
Mengambil Data dari Google Sheet via WhatsApp

Bismillahirrahmanirrahim. Assalamualaikum warahmatullahi wabarakatuh. Selamat datang di Mending Coding.

Di channel ini kita akan bersama-sama belajar coding-coding sederhana yang harapannya dapat memudahkan pekerjaan atau rutinitas kita. Kali ini kita akan coba untuk mendapatkan atau mengambil data yang ada di dalam Google Sheet melalui pesan WhatsApp. Untuk contoh kasus kali ini, Data yang akan kita gunakan adalah data nilai siswa.

Konsepnya cukup sederhana. Jadi, yang pertama guru mengikutkan nilai ke dalam Google Sheet. Untuk contoh kali ini, nanti kolom-kolomnya ada yang pertama ada NIS, kemudian yang kedua ada kolom nama siswa, terakhir ada kolom nilai. Perlu diingat, kolom nilai ini datanya berbentuk teks atau angka biasa, bukan berupa rumus ataupun formula.

Kemudian setelah data ter-input, siswa dapat mengecek nilai tadi melalui WhatsApp yang dikirim ke nomor yang telah ditentukan dengan format nilai spasi nis atau nomor induk siswa tersebut, misalnya nilai spasi 230003. Setelah itu, secara otomatis siswa tersebut akan mendapat balasan yang berisi nilai yang ada di Google Sheet tadi. Disini terlihat Contoh balasannya adalah nilai siswa atas nama Jarjit dengan NIS 230003 adalah 80. Alur sistem. Sebelum kita mulai ngoding, akan lebih baik jika kita memahami alur sistemnya terlebih dahulu.

Jadi, gambaran alurnya kurang lebih seperti ini. Yang pertama, seseorang mengirimkan pesan ke nomor WhatsApp kita Dengan format khusus seperti yang tadi sudah kita sampaikan. Berikutnya, auto-reply chatbot atau singkatnya kita sebut ARCB yang terinstall dan terkonfigurasi di ponsel kita akan membaca notifikasi, kemudian menjalankan semacam trigger atau pemicu yang mana trigger tersebut dapat mengirim request ke Application Programming Interface atau API. API tersebut merupakan API yang nantinya kita buat menggunakan Apps Script. Fungsi yang akan kita buat di Apps Script nantinya meliputi yang pertama menerima request berupa POST dari ARCB.

Data yang kita peroleh dari ARCB nantinya kurang lebih seperti ini. Kemudian, berikutnya memparsing atau mengurai data yang digirim dari ARCB. Setelah itu baru mencari data yang dimaksud di dalam Google Sheet. Terakhir, mengirimkan respons ke ARCB.

Setelah proses di Apps Script selesai, berikutnya ARCB akan menerima respon dari API kita dan mengirim respon tersebut sebagai jawaban ke WhatsApp pengirim pesan, membuat Google Sheet. Setelah kita tahu konsep dan alur sistemnya, berikutnya kita buat spreadsheet baru di dalam Google Sheet. Langkah yang pertama, masuk ke Google Drive, kemudian klik kanan, pilih Google Sheet, kemudian blank spreadsheet. Kemudian kita kasih nama, cek nilai. kita perbesar ukuran layarnya agar lebih jelas lanjut kita buat kolom yang pertama kolom nis kemudian kolom nama siswa berikutnya kolom nilai lalu bisa kita isi dengan data dummy Sementara cukup seperti ini dulu, perlu diingat nilai yang ada di sini bentuknya adalah teks atau angka biasa, bukan berupa formula atau rumus.

Membuat API menggunakan Google Apps Script setelah kolom tadi dibuat di Google Sheet berikutnya kita akan membuat API atau application programming interface menggunakan Google Apps Script dengan cara pilih menu extension kemudian pilih Apps Script setelah tab Apps Script terbuka berikutnya kita akan memberi nama project ini dengan nama Hai cek nilai seperti ini kemudian kita perbesar tampilannya biar lebih jelas lanjut kita hapus fungsinya ada di sini kemudian kita buat function baru dengan nama cek nilai function cek nilai function cek nilai ini kita beri sebuah parameter dengan nama nice selain itu kita buat Ada juga function untuk mengetes hasil dari cek nilai pada saat proses development. Kita kasih function tersebut dengan nama function test. Function test.

Seperti ini. Di sini kita akan coba mengetes function cek nilai. dengan argumen 230003 dikasih tanda petik, jangan lupa kemudian hasil dari function check nilai ini kita tampilkan di log seperti ini kita coba misal return Testing, seperti ini. Kemudian kita simpan file Apps Script ini dengan cara menekan Ctrl dan S. Berikutnya kita coba jalankan function test.

Yang pertama kita pilih test, kemudian kita klik run. Di execution log ini ada tulisan testing yang merupakan hasil atau return value dari function check nilai. Sementara kita hapus dulu. Kemudian di dalam function check nilai, yang pertama kita akan membuka seed terlebih dahulu. Buka seed.

let set url sama dengan tanda petik kita kopikan url google city yang tadi sudah kita buat berikutnya kita buat variable file yang isinya adalah spreadsheet app open by url kemudian variable sheet url tadi berikutnya kita buka sheet pertama let sheet sama dengan file.get sheet by name kurung buka kurung tutup kemudian kita tulis nama sheet ini sheet 1 Berikutnya untuk mengetahui baris terakhir yang ada datanya kita buat class row sheet.get class row Setelah sheet dibuka, selanjutnya kita akan coba mengambil data dari kolom A sampai ke kolom C dan kita masukkan ke dalam variable nilai list. ambil data let nilai list seed.getRange range nya a2 sampai c baris terakhir pakai variable last row get values ingat ya, get values di terakhir ada s nya kurung buka kurung tutup kemudian sementara kita return nilai list nya berikutnya sebelum kita lanjut kita lakukan pengujian terlebih dahulu disini pastikan function yang terpilih adalah function test yaitu function ini kemudian setelah itu kita run jangan lupa sebelumnya disimpan dulu ya kemudian kita run Setelah tadi kita tambahkan fungsi untuk membuka spreadsheet, maka di sini muncul pemberitahuan atau request untuk otorisasi. Jika muncul seperti ini, klik review permission, kemudian pilih akun email yang sedang kita gunakan, klik advance, lalu go to check nilai dalam kurung unsave.

Nah setelah itu disediakan. disini muncul si edit create and delete all your google spreadsheet kita klik allow, tunggu sampai prosesnya selesai, eksekusi dijalankan, dan setelah selesai dijalankan, disini ada lognya data yang dihasilkan dari function check nilai adalah seperti ini hasil yang tampil saat ini adalah berupa array ini berisi daftar nama dan nilai dari seluruh data yang ada. Ada upin, ipin, jerjit, vz, esan. Lima-limanya masih ada. Berikutnya, kita close dulu, kemudian kita akan melakukan filter agar hasil yang muncul hanya berupa data yang sesuai dengan nis yang dikehendaki.

Kita taruh sebelum return, jadi diatasnya return. let nilai filter sama dengan nilai list dot filter kemudian disini kita akan menggunakan row function l atau element l element yang indeks pertama sama dengan nis Jadi di filter hanya elemen yang index pertamanya adalah sesuai dengan nis yang diinginkan. Lalu untuk return kita ubah yang tadinya nilai list menjadi nilai return. filter kita save kemudian kita klik run sekarang hasil yang muncul di log adalah seperti berikut ada array yang didalamnya terdapat array lagi dengan tiga elemen yaitu nis nama dan nilai Kita cek dulu jarjit nilainya 80, ya disini berarti hasilnya sudah betul ya. Setelah dipastikan hasilnya benar, maka berikutnya kita akan membuat variable nama nilai.

dan pesan let nama let nilai let pesan kita save kemudian kita lakukan percabangan if disini disini kita ingin mengecek apakah nilai filter itu ada datanya atau tidak kalau ada datanya berarti nisnya ini ketemu tapi kalau tidak ada artinya nisnya tidak ditemukan di dalam file spreadsheet nilai filter.lang kemudian kurung kurawal buka nama sama dengan nilai filter L indeks ke 0, kemudian indeks ke 1, berikutnya nilai sama dengan nilai filter, indeks ke 0, indeks ke 1. Lanjut pesan yang ingin kita sampaikan ke pengirim WhatsApp. Kita gunakan backtick agar dapat menampilkan nilai dari variable di dalam teksnya. Nilai siswa atas nama dengan nis parameter nis. adalah variable nilai.

Kemudian, jika nisnya tidak ditemukan, maka kita tulis pesan seperti ini. else pesan sama dengan backtick nilai untuk siswa dengan nis parameter nis tidak ditemukan ini kasih titik lalu pada return kita ubah menjadi pesan kita save kemudian untuk memastikan lagi kita lakukan pengujian ini kita pilih test kemudian klik run nilai siswa atas nama jarjit dengan nis sekian adalah jarjit Di sini ada kesalahan karena nilainya nilai filter 01 padahal harusnya 02 seperti ini. Lalu kita jalankan lagi.

Nah di sini hasilnya sudah berubah. Nilai siswa atas nama Jarjit dengan Nis sekian adalah 80. Setelah function cek nilai selesai kita buat, berikutnya untuk menerima request berupa post serta mengirimkan response dari request tersebut, kita perlu membuat function dengan nama doPost. Kita buat di sini, function doPost, kemudian function ini kita beri satu parameter, parameter e atau event.

Pada saat kita menerima request dari ARCB, kita ingin mengurangi isi pesan whatsapp yang ditulis oleh si pengirim pesan untuk itu kita lakukan seperti ini yang pertama kita baca pesannya terlebih dahulu membaca pesan let contents sama dengan json parse kemudian parameter e Disini kita akan melihat kontennya Konten berarti ada di dalam post data Post data Kemudian contents seperti ini Kemudian let sender message sama dengan contents kita lihat sender message ada langsung di dalam konten sender message setelah itu baru kita urai pesan yang telah dikirim mengurai isi pesan let kita split hai hai sender message.split jadi nanti ketika ada pesan seperti ini nilai spasi 230001 maka pesannya akan diubah ke dalam bentuk array seperti ini nilai kemudian 23 berikutnya kita ambil misnya nih sama dengan split message dalam kurung siku 1 Kemudian yang ketiga, kita panggil function cek nilai dengan argumen yang berisi nis yang dikirim oleh pengirim WhatsApp. Memanggil fungsi cek nilai. Let pesan sama dengan cek nilai dalam hurung nis. Terakhir, kita beri return value berupa objek response. Response ini nantinya akan menjadi balasan ke pengirim WhatsApp.

Mengirim pesan balasan. Let response data. di sini kita isi dengan variable pesan kemudian kita return return content service create text output json stringify response Kemudian kita save, untuk coding cukup sampai di sini, selanjutnya kita akan melakukan deployment. Deployment. Deployment ini diperlukan agar API yang telah kita buat dapat diakses oleh kita.

oleh klien pengalaman saya untuk request dengan metode get atau duget lebih mudah diakses karena bisa langsung lewat test deployment dan diuji langsung lewat browser yang sedang terhubung atau login ke akun Google yang sama Akan tetapi, untuk POST atau DUPOST seperti yang kita perlukan untuk kasus ini cenderung lebih repot, karena setiap kali ada perubahan dan kita ingin mengujinya, harus dideploy terlebih dahulu. Dan perlu diingat, setiap kali deploy, URL API kita akan berubah. Untuk mendeploy kode yang sudah kita tulis, caranya adalah klik tombol deploy, kemudian pilih new deploy.

akan muncul modal atau pop up pada tombol gear di samping tulisan select type itu kita klik kemudian pilih web app kemudian pada kolom deskripsi bisa diisi terserah atau dikosongkan lanjut untuk execute as kita pilih akun email kita kemudian Who has access? Kita pilih Anyone agar siapapun untuk kasus ini adalah aplikasi Auto Response Chatbot dapat mengakses API. Kalau sudah, klik tombol Deploy. Tunggu sampai proses deployment selesai. Biasanya pada saat kita pertama kali melakukan deploy, akan muncul request permission.

Akan tetapi... karena disini tadi sudah sempat dites maka tidak muncul kembali request permissionnya lanjut untuk url disini kita copy kemudian kita simpan di aplikasi catatan seperti notepad atau yang lainnya kita simpan terlebih dahulu instalasi auto reply chatbot Untuk menginstal Auto Reply Chatbot, pertama-tama kita masuk ke Play Store atau Google Play terlebih dahulu. Kemudian kita ketik Auto Reply atau Auto Reply Chatbot.

Lalu kita install aplikasi yang ikonnya seperti ini. Dengan nama developer Pransul Inch. Kita klik install.

konfigurasi auto reply chatbot setelah terinstall kita buka aplikasi ARCB pada saat pertama kali membuka biasanya akan diminta untuk permission untuk mengakses file kemudian membaca notifikasi Setelah itu kita klik centang. Kemudian di sini muncul pertanyaan battery optimization. Kita klik optimize.

Kemudian kita cari aplikasi dengan nama auto reply. Nah, auto-reply, kemudian klik down optimize. Kita klik done. Ini dilakukan agar aplikasi auto-reply tidak tertutup secara otomatis oleh sistem.

Kita buka kembali aplikasi. auto reply nya, setelah permission diberikan berikutnya kita hapus semua rules default yang ada disini ini kita hapus kemudian ini juga ini juga kita hapus berikutnya berikutnya kita buat rule baru dengan cara menekan tombol plus kemudian untuk pilihan wa-nya silakan disesuaikan dengan keadaan untuk receive message pattern kita ketik disini nilai Kemudian kita ubah menjadi start with. Jadi trigger ini akan berjalan jika pesan yang dikirim oleh orang lain ke WA kita itu diawali dengan kata nilai.

kemudian scroll ke bawah kita cari di message reply with own server kita beri tanda centang pada connect to own server kemudian pada kolom server url kita copy url hasil deploy tadi kita copy disini seperti itu, kemudian kita tekan tombol centang untuk menyimpan biasanya akan muncul iklan terlebih dahulu kalau iklannya sudah selesai, bisa di klik close kemudian akan muncul message rule save successfully kita tekan ok berikutnya, kita matikan dua tombol yang ada di sini Kemudian setelah itu kita nyalakan lagi. Terakhir kita pastikan bahwa auto reply-nya berjalan di notifikasi. Di sini tertulis auto reply is currently active. Kalau sudah bisa ditutup auto reply-nya.

Di sini masih tetap aktif ya meskipun aplikasinya sudah kita tutup. Pengujian Setelah pembuatan skrip dan konfigurasi ARCB selesai dilakukan, berikutnya kita bisa mencoba untuk mengirimkan pesan dari nomor WhatsApp lain ke nomor WhatsApp kita yang terinstall ARCB dengan format seperti berikut. Misal nilai spasi 230005. Saya kirim.

Kemudian, begitu pesannya terkirim, beberapa saat setelah itu akan mendapat balasan nilai siswa atas nama Esan dengan ID 230005 adalah 90. Selanjutnya, kita akan coba kalau mengirim pesan nilai dengan nis yang salah, misal 230006. Klik kirim. Respon dari API yang kita buat di sini adalah nilai untuk siswa dengan NIS 230006 tidak ditemukan. Sebagai penutup, yang perlu kita ingat dalam hal ini adalah Yang pertama, pastikan ponsel kita dalam keadaan aktif.

Yang kedua, ARCB ini mengandalkan notifikasi untuk menjalankan trigger. Jadi, trigger tidak akan berjalan apabila tidak ada notifikasi meskipun ada pesan yang masuk. Sebagai contoh, ketika kita sedang berada di dalam chat atau kita sedang chatting dengan si pengirim pesan. Berikutnya, ada... aplikasi ARCB ini harus selalu berjalan, ditandai dengan adanya icon auto-reply di layar notifikasi ponsel kita.

Yang terakhir, karena mengandalkan notifikasi, jadi ada kemungkinan pesan WhatsApp yang masuk juga dibaca oleh developer ARCB. Cuma ini baru kemungkinan ya. Jadi silakan dipertimbangkan benefit dan kemungkinan risikonya sebelum menggunakan ARCB ini.

Baik, sekian video mending-wording kali ini dan dan sampai jumpa di video mentingoding selanjutnya