Membuat CRUD API Menggunakan Google Sheets (Bagian 1 Create / Insert data)

CRUD API using Google Sheets

Ok, untuk bahasan yang penulis angkat tidak jauh dari tulisan mas Tommy pada artikel sebelumnya. Pada tulisan mas Tommy di situ dijelaskan membuat API untuk mode Read, nah kali ini, penulis akan membuat untuk semua mode, yang akan dibagi menjadi empat bagian, yaitu

  • Part 1 Create
  • Part 2 Read
  • Part 3 Update
  • Part 4 Delete

Untuk mengerjakan mode read ini, langkah langkahnya adalah sebagai berikut

  1. Membuat spreadsheet baru
  2. Membuat engine / “Otak” yang mengatur CRUD di Spreadsheet melalui Google Apps Script (GAS)
  3. Testing dengan Postman

Membuat Spreadsheet baru

  • silakan teman teman ketikan Google sheet di url

  • klik tombol go to google sheet
  • Kalau teman teman belum login ke account gmail nanti akan diarahkan untuk login dulu, kalau sudah login akan diarahkan ke dashboard Google Sheet

  • kita buat spreadsheet baru dengan mengklik tanda +, jika tanda + tersebut diklik maka akan muncul spreadsheet baru

  • nah di situ ada tulisan Untitled Spreadsheet dan Sheet1, saya analogikan seperti kita mainan data di MySQl, Untittle Spreadsheet adalah nama database kita, sementara Sheet1 adalah nama tabel yang ada dalam database tersebut. Untuk tutorial kali ini, penulis akan memberi nama title Spreadsheetnya Latihan dan nama sheet nya adalah presensi
  • Untuk baris pertama, yaitu kolom satu, dua dan tiga kita kasih nama nis, nama, status

  • untuk alasan keamanan, maka spreadsheet ini tidak saya share ke publik, jadi saya pertahankan private, he he … lah terus bagaimana mengaksesnya kalau dari luar? nanti saya jelaskan saat membahas “enginenya” di GAS. Oya simpan baik baik id Spreadsheet ini ya, untuk mendapatkan id ini bisa dilihat di url spreadsheet tersebut, yaitu karakter di antara d/idSpreadsheet/edit.

Membuat engine / “Otak” yang mengatur CRUD di Spreadsheet melalui Google Apps Script (GAS)

  • Silakan teman teman bikin file Gas nya melalui link ini https://www.google.com/script/start/
  • Klik start script (Kalau belum login akan diarahkan ke untuk login ke Gmail, usahakan account Gmail di Spreadsheet dengan di GAS sama)
  • Selanjutnya teman teman akan di hadapkan pada dashboard berikut ini

  • Untuk title project-nya penulis memberi nama latihan, untuk function-nya kita harus berpegangan pada dua function untuk membikin sebuah webservice, apakah itu? he he … kasih tahu nda yah :p, untuk webservice di GAS, dia hanya menyediakan dua function yaitu function doGet() dan function doPost() (documentation : https://developers.google.com/apps-script/guides/web)
  • Karena pada part 1 ini adalah insert data, maka penulis membuat code awalnya adalah sebagai berikut

  • Simbol e, disitu adalah bentuk request-nya, teman teman bisa melihat keterangan ini di documentation-nya

  • Kemudian buat sebuah var bernama ss untuk menampung, spreadsheet yang kita buka berdasarkan id nya (untuk membuka spreadsheet ini bisa melalui id nya atau bisa juga melalui urlnya)

 

  • id ini merupakan id spreadsheet kita yang dibuat dari step pertama tadi. Pada case ini, id sengaja saya inject-kan ke dalam Apps scriptnya karena masalah keamanan, he he .. jadi biar ga mudah dijebol dari luar (kemungkinan yang  bisa adalah kalau account Gmail kita terbajak :p)
  • ketika kita membuka dengan method openById, itu artinya kita membuka database yang kita inginkan diantara database yang kita miliki. Setelah database yang teman teman inginkan telah terbuka, selanjutnya  kita akan memilih tabel mana yang akan di eksekusi. Untuk memilih tabel ini, kita tinggal buat variabel tabelName untuk menampung nama tabel yang diinginkan

  • perhatikan code e.parameter.tabelName, e adalah bentuk request, parameter digunakan untuk menangkap field yang dilewatkan melalui url, sementara tabelName adalah kita mau menangkap nilai dari variabel tabelName yang dikirimkan melalui url.
  • setelah mendapatkan nama tabel, langkah berikutnya adalah membuka tabel di dalam database yang kita pilih

  • buat var action untuk menentukan mode yang kita inginkan

  • buat filter untuk mengarahkan method yang sesuai dengan action yang di inginkan

 

  • ketika action yang diinginkan adalah “insert”, maka fungsi insert_data() akan dipanggil. Fungsi insert_data memiliki dua parameter, parameter pertama adalah request, parameter kedua adalah tabel yang kita buka dalam database. Langkah selanjutnya membuat function insert_data, fungsi ini terletak di luar fungsi doPost.

  • di dalam fungsi insert_data ini kita buat empat variabel yaitu nis, nama, status dan flag.

  • Masuk ke langkah berikutnya adalah memasukan nis, nama, dan status ke dalam tabel yang kita inginkan

  • appendRow di sini adalah memasukan data dalam satu baris sekaligus. Tanda [ ] di dalam kurung merupakan penanda bahwa yang dimasukan adalah object, di dalam spreadsheet satu baris merupakan satu object. Perhatikan urutan variabel dalam kurung kotaknya, yaitu nis, nama, status, hal ini disesuaikan dengan urutan kolom di spreadsheet kita, jangan sampai ketukar yah urutannya :p. Variabel hasil di sini digunakan untuk memberi respon ke client. Ok, ke langkah selanjutnya adalah merubah var hasil menjadi format JSON

  • selanjutnya membuat  variabel hasil tadi bisa di akses sebagai webservice

  • Selanjutnya adalah mengaktifkan webservice kita, oya sebelumnya di save dulu yah project-nya :). Untuk mengaktifkan webservice ini caranya adalah tekan menu Publish ->Deploy as web app-> (untuk pilihan siapa yang bisa mengakses, pilih Anyone even anonymous)->Deploy->Review permission->pilih account gmailnya (usahakan sama dengan gmail yang spreadsheet)->advanced->go to latiha(unsafe)->allow->akan menghasilkan url webservice-nya (simpan url ini, kita akan menggunakan saat testing nanti). Nah dengan kita memilih anyone even anonymous, setiap orang yang menembak webservice kita, maka akan dianggap oleh server sebagai pemilik account.

Testing dengan Postman

  • Silakan buka app postman, rubah method-nya menjadi POST dan masukan url webservice kita tadi

  • klik tombol Params, dan masukan parameter action, tabelName, nis,nama dan status

  • klik tombol Send, dan lihat hasil output JSON nya, jika berhasil akan keluar seperti ini :

  • jika hasil output JSON nya sudah keluar kalimat data berhasil dimasukan, kita cek spreadsheet kita, harusnya datanya sudah masuk

Ok, sekian tutorial dari saya, semoga bisa memberi manfaat bagi teman teman yang membacanya, terima kasih sudah meluangkan waktu untuk membaca coretan saya di sini.

Nb: potongan kode diatas sengaja berupa screenshot agar teman-teman bisa memahami kode-nya langkah perlangkah.

 

“saya hanya orang bodoh yang ingin terus belajar”

Dilihat 2,037 kali

Related Posts

About The Author

Android Dev , ERP / Odoo Dev and author