Membuat HTML yang Mengakses Google Sheet via API

Untuk database yang tidak memerlukan banyak relasi biasanya penggunaan Google Sheet sudah cukup memadai. Dengan men-sharing Sheet yang dibuat, data bisa diakses oleh pengguna lain sehingga mudah dalam pengelolaannya. Jika selama ini sharing memerlukan akses membuka Google Sheet, banyak masalah muncul akibat penggunaannya yang tidak ‘user friendly’, misalnya ada kolom atau cell tertentu yang terhapus, dan masalah lainnya. Oleh karena itu postingan kali ini kita menggunakan aplikasi web (HTML + Javascript) untuk mengakses data Google Sheet.

1. Membuat Tabel

Misal kita akan membuat tabel harga satuan barang untuk keperluan bangunan seperti semen, pasir, dan lain-lain. Buka Google Sheet [link]. Buat tabel baru dengan nama misalnya barang. Buat dua kolom dengan dengan nama kolom: Nama dan Harga.

Selanjutnya adalah membagi (share) dengan setingan full access (anyone with link + sebagai editor). Agar bisa melakukan proses input ke tabel tersebut.

Salin link tersebut agar bisa diakses oleh orang lain. Di sini kita perlu membuat Application Programming Interface (API) sebagai penghubung data dengan program lain.

2. Membuat API

Dengan API maka program yang dibuat tidak perlu mensinkronkan program dengan platform database yang digunakan, misal MySQL, Oracle, SQL Server, dan lain-lain. Asalkan API tersedia maka program tidak perlu menggunakan driver untuk terkoneksi dengan basis data tersebut. Untuk mudahnya, gunakan saja Sheet.Best [link].

Setelah menekan START FREE login dengan Google Anda, lalu buat koneksi baru. Isi link Google Sheet yang sebelumnya sudah dishare full access. Isi field-field yang dibutuhkan, seperti Identification dan Connection URL.

Tunggu beberapa saat hingga proses koneksi selesai. Untuk melihat link API yang baru saja dibuat, tekan DETAILS di bagian bawah CONNECTION.

Selamat, kita telah berhasil membuat API dari Google Sheet. Link teredia tinggal menekan Copy di samping link API. Untuk mengujinya, paste saja di browser, dan pastikan JSON muncul.

3. Mengakses API via HTML

Pada dasarnya ada 2 jenis akses web, yaitu Server Side dimana kode ada di server seperti PHP, Dotnet, Flask, Django, dan client side, misalnya Javascript. Tentu saja kalau data penting, perlu login dan akses diletakan di server (server side) ketika beroperasi. Di sini karena hanya fokus mempermudah penginputan kita menggunakan Client-Side dengan Javascript. Jadi tidak diperlukan server, asalkan tim/pengguna memiliki file HTML, aplikasi dapat dijalankan.

Silahkan gunakan bantuan dari situs-situs yang memberikan edukasi pembuatan HTML [link], atau bisa menggunakan ChatGPT [link]. Untuk chatGPT gunakan saja prompt awal: ‘buatkan kode html menampilkan tabel dengan judul kolom Nama dan Harga’. Jika sudah muncul jawaban, gunakan prompt kedua ‘isikan tabel dari data API: <isi url API>’.

Lanjutkan dengan prompt ketiga: ‘tambahkan di bagian atas tabel isian/form input Nama dan Harga barang yang datanya isiannya dikirim ke API: <link API>.

Jika ingin hasil yang lebih cantik juga tabel terupdate otomatis ketika tombol tambah produk ditekan, tambahkan prompt keempat: ‘buat tabel otomatis terupdate ketika tombol tambah produk ditekan dan percantik dengan CSS’. Hingga dihasilkan sebagai berikut.

PPEPP yang Mirip Backpropagation

Pengelola program studi pasti mengenal Penetapan, Pelaksanaan, Evaluasi, Pengendalian dan Peningkatan yang diisitlahkan dengan PPEPP. Ini merupakan siklus yang mengandalakan Sistem Penjaminan Mutu Internal (SPMI). Karena konsep, tentu saja sangat rumit bagi yang baru mengenalnya. Oke, jika Anda sudah mengenal metode backpropagation learning dalam machine learning, bisa kita pahami dengan menganalogikan PPEPP dengan proses learning tersebut.

Penetapan

Penetapan merupakan inti dari rencana meningkatkan mutu. Di sini berisi keputusan resmi berupa indikator yang akan dicapai. Dalam machine learning (ML) ibarat target output dari model yang akan dilatih.

Pelaksanaan

Ketika target disertai input yang menghasilkan target tersebut tersedia, maka proses pelatihan berjalan. Dalam pelaksanaannya, model diberi bobot dan bias tertentu, kemudian forward propagation berjalan. Di sini input tertentu diharapkan menghasilkan output sesuai dengan target. Output mengikuti kalkulasi input berdasarkan bobot dan bias yang diset.

Evaluasi

Dalam akreditasi, evaluasi berusahan mencari praktik baik, praktik buruk, dan praktik baru ketika proses pelaksanaan selesai. Nah, di sini jika output sesuai dengan target maka dikatakan praktik baik terjadi, begitu pula sebaliknya. Dalam proses learning, evaluasi ini menghasilkan error, misalnya dihitung dengan standar Mean Square Error (MSE).

Pengendalian

Tahap ini terjadi ketika diketahui adanya praktik buruk, maupun praktik baru yang belum jelas baik atau buruknya. Dalam ML berupa error. Nah, proses pengendalian bermaksud membuat rekomendasi dan revisi terhadap bobot dan bias pada model yang dilatih.

Peningkatan

Tahap ini berisi optimalisasi, yaitu bagaimana meningkatkan, menyesuaikan dan menyelaraskan output dengan targetnya, dalam kampus diistilahkan Indeks Kenerja Utama (IKU) yang berpatokan standar nasional DIKTI, dan Indeks Kinerja Tambahan (IKT) yang berdasarkan kampus yang ingin melebihi standar nasional DIKTI. Bisa jadi adanya perubahan target jika sulit tercapai, atau target yang tidak relevan.

Jadi jika PPEPP berjalan dengan baik, secara logika organisasi akan berkembang ke arah yang lebih baik. Nah, oleh karena itu target yang tepat perlu dibuat karena proses akan mengikuti target tersebut. Makin banyak iterasi yang dibutuhkan, tentu saja membutuhkan waktu dan biaya yang besar, jadi gunakan proses yang efisien dan efektif agar tidak perlu membutuhkan iterasi (dalam backpropagation diistilahkan dengan epoch) yang banyak. Semoga tulisan ini bisa memudahkan pemahaman terhadap PPEPP dalam akreditasi program studi.

Belajar Dari yang Sederhana

Dari SD kita sudah belajar membaca, menulis, berhitung, dan lain-lain. Saat belajar biasanya dimulai dari yang sederhana kemudian lanjut ke yang sulit. Hal tersebut wajar, karena jika langsung sulit dipastikan siswa akan ‘down’.

Waktu terus berjalan, teknologi berkembang, hingga munculah Artificial Intelligence (AI) yang memanjakan siswa. Waktu ada kalkulator pun guru sudah cemas dan khawatir, siswa kurang teliti dalam berhitung, apalagi jika ada AI?

Ternyata kalkulator, komputer, dan aplikasi-aplikasi vertikal (SPSS, rapidminer, dll) tidak membuat mahasiswa kurang kompeten. Alat-alat tersebut ternyata bisa juga dimanfaatkan untuk alat bantu memahami ilmu yang akan dipelajari. Sebagai contoh untuk yang belajar jaringan syaraf tiruan (JST) dalam memahami fenomena dapat menggunakan ChatGPT dan alat simulator lain (misalnya MATLAB).

Salah satu buku yang menurut saya menarik adalah buku karangan Englebrecht dalam membahas JST. Dia menerangkan konsep network dimulai dari satu neuron terlebih dahulu, umpan maju dan mekanisme learning. Dengan 1 neuron penjelasan lebih sederhana.

Beragam jenis JST diturunkan dari model di atas, yang diperkenalkan pertama kali oleh Pitt. Untuk jalur balik backpropagation dengan beragam learning rule sangat mudah dipelajari (SGD, Widrow-hoff, delta rule, dll).

Nah, dengan AI kita bisa dengan mudah mengimplementasikan model matematik tersebut untuk network dengan 1 neuron.

Perhatikan bagaimana Delta Rule melakukan perubahan bobot dan bias dibanding SGD dimana yang satu menggunakan error, SGD dengan gradien yang diambil dari derivatif/turunan sinyal output. Juga pada bagian bias-nya. Termasuk dengan chatGPT bisa juga langsung menanyakan grafik boundary, dengan Google Colab. Ini contoh untuk kasus penyelesaian logika AND, nah silahkan coba kasus lainnya. Di sini ternyata untuk logika XOR tidak bisa dengan 1 neuron.

Paper of Paperless?

Salah satu kendala pembaca paperless adalah hilangnya kesan membaca buku, dari aromanya, bolak-balik halaman, dan kesan-kesan lainnya yang ada pada buku kertas. Selain itu masalah terpenting adalah kesehatan mata. Berbeda dengan buku yang terlihat dengan memantulkan sinar, pada buku digital (paperless) yang dibaca lewat monitor LCD biasa sinar mengarah ke mata, walaupun sudah jenis yang paling nyaman sekalipun seperti layar AMOLED.

Saat ini e-reader yang memanfaatkan teknologi e-ink sepertinya mulai dicari. Hal ini karena prinsipnya yang menyerupai tulisan di kertas. Dari yang berjenis Kindle, KOBO yang ber sistem operasi sendiri, hingga Onyx, Meebooox, yang ber sistem operasi Android. Masing-masing punye kelemahan dan kelebihan masing-masing. Oiya, jika Anda belum memahami apa itu e-ink silahkan lihat video ini ketika Kindle ‘dihajar’ habis-habisan .. dan uniknya ketika kondisi sudah mati total, tinta elektroniknya masih mencetak lho.

Jika siang hari LCD membutuhkan sinar untuk menampilkan gambar, e-ink justru malah tidak perlu sinar karena prinsipnya yang mencetak tulisan/gambar di dinding layar. Sinar hanya berfungsi seperti lampu belajar yang menerangi buku, di e-reader berarti menerangi tulisan e-ink yang tercetak, jadi aman banget di mata. E-reader Android saat ini banyak dicari, tapi saya masih setia dengan Kindle karena ringan operasinya, mirip buku yang tidak perlu dicas. Baterai bisa tahan 2 bulanan karena memang minim proses di Kindle. Salah satu keluhan yakni tidak bisa reflow text dapat diatasi dengan mengkonversi terlebih dahulu di PC atau Laptop Anda. Jika sudah, Anda tinggal baca dengan nyaman, walau ribuan halaman, mata tidak capai. Lihat video ini yang mengilustrasikan bagaimana membaca paper ilmiah. Jenis bacaan ini membutuhkan persamaan matematis dan gambar/tabel yang jika dengan reflow text biasa hasilnya berantakan, tapi dengan k2pdfopt.exe yang memang diperuntukan untuk Kindle hasilnya ok, bahkan untuk paper 2 kolom tetap nyaman dibaca.

Kalau novel yang berisi hanya tulisan mudah saja, tinggal langsung dikirim ke Kindle online yg langsung mengkonversi menjadi MOBI, atau ekstensi lain standar Kindle. Untuk e-reader Android memang praktis tapi sepertinya sayang, boros energi, kalau hanya untuk dipakai membaca layaknya buku. Kecuali memang ingin membaca perpusnas, gramedia online, dan novel-novel online yang ada di playstore.

Kalau Paper? Tentu saja jatuhnya lebih mahal. Beberapa teman kadang lebih suka print sebelum dibaca tetapi masalahnya butuh biaya, kertas, tinta printer, seperti kasus saya yg macet tintanya dan harus sering-sering dibersihkan (head cleaning), dan barusan flushing karena mampet parah dengan cara seperti video berikut.

Skill Sarjana .. Seharusnya Apa?

Dalam dunia akademik ada jurang pemisah antara riset dan skill/keterampilan. Jika riset mengharuskan adanya penelitian yang menghasilkan kontribusi, skill mengharuskan seseorang mampu mengerjakan dan menghasilkan sesuatu. Biasanya keterampilan diuji dengan ujian LSP sementara riset lewat tugas akhir. Riset biasanya menguji sesuatu, entah itu metode maupun melakukan improvement agar dihasilkan metode yang lebih baik. Hanya saja untuk level sarjana (S1) tentu saja tidak diharuskan menghasilkan metode baru baik modifikasi maupun metode baru (novelty).

Agak sedikit membingungkan jika mahasiswa S1/sarjana profilnya mampu riset, yang biasanya itu untuk S2 dan S3. Mahasiswa S1 sendiri profilnya jika disesuaikan dengan aturan pemerintah hanya di level menggunakan saja. Istilah menggunakan ini bukan menggunakan tools seperti SPSS, rapid miner, atau tool lain yang fokusnya ke riset, tapi menggunakan bahasa pemrograman, pengetahuan jaringan komputer, framework-framework aplikasi, dan sejenisnya yang memang sangat dibutuhkan dunia kerja/industri.

Ada sedikit masalah ketika mahasiswa S1 syarat lulusnya publish di jurnal. Walaupun kadang ada juga aturan kampus (maksudnya mungkin baik, standar melebihi standar DIKTI) yang mengharuskan publish, atau sekedar submit (nah, ini yang merepotkan pengelola jurnal seperti saya, karena mereka asal submit dan ‘nyampah’ – tak perduli diterima atau tidak).

Kampus tertentu saya lihat memiliki sedikit trik, yakni tidak hanya membangun sistem dengan 1 model, melainkan beberapa model yang dibandingkan, setelah itu ketika sudah jadi diimplementasikan dalam sebuah aplikasi sederhana (bukan dalam script saja, e.g. di colab/editor). Jadi riset nya dapat, skill develop system dapat. Untungnya saat ini masalah implementasi jadi mudah dengan bantuan ChatGPT.

Selain itu mahasiswa perlu memodifikasi kode, mirip dengan parafrase tulisan biasa, agar tidak terdeteksi plagiarisme kode program [link]. Berikut contoh implementasi Deep Learning pada Web.

Peramalan Menggunakan ARIMA dengan SPSS

Sebelum masuk bagaimana meramalkan sesuatu dengan ARIMA ada baiknya membedakan antara peramalan (forecasting) dengan prediksi (prediction). Keduanya sama-sama memprediksi, tetapi peramalan prediksi didasarkan pada data historis. Jadi peramalan membutuhkan data deret berkala (time-series). Sementara prediksi membutuhkan variabel-variabel yang ada yang menentukan hasil prediksi. Jika meramalkan cuaca membutuhkan data-data cuaca sebelumnya, prediksi membutuhkan variabel-variabel seperti suhu, kelembaban, dan sebagainya untuk memprediksi. Walau terkadang keduanya digabung, misalnya pada Nonlinear Autoregressive Network with External (NarXnet) [link].

AutoRegressive Integrated Moving Average (ARIMA) merupakan peramalan dengan memanfaatkan tiga komponon yaitu AR, I, dan MA. Pada Statistical Package for Social Sciences (SPSS) diistilahkan dengan p, d, dan q dalam toolboxnya. AR menggunakan prinsip regresi, sementara I menghilangkan tran musiman dari data dan MA menggunakan prinsip moving average dari residu sebelumnya. Berapa ukuran yang tepat untuk AR, I, dan MA perlu dicari nilai yang optimal dimana kesalahan, misal MAPE, yang sekecil mungkin.

Beberapa riset tentang peramalan banyak dilakukan, khususnya saat COVID. Beberapa mengikuti pola tertentu, misalnya mengikuti konsep SIR [link], namun terkadang faktor-faktor eksternal kadang perlu juga dimasukan, misalnya ketika meramalkan inflasi di suatu daerah. Berikut bagaimana menggunakan ARIMA untuk meramalkan dengan data tertentu.

Video singkat ini bisa juga jadi bahan referensi meramalkan inflasi dengan ARIMA, di sini menggunakan ARIMA (1,2,1). Silahkan coba versi ARIMA lainnya.

Grafik Interaktif dari Google Form

Hampir kebanyakan survey saat ini menggunakan Google Form karena lebih praktis. Masalah yang utama adalah responden yang bersedia meluangkan waktu untuk mengisi survey kita. Banyak cara agar responden mau mengisi, dari memberikan doorprize, souvenir, hingga mengandalkan teman-teman di grup.

Di medsos terkadang ada survey singkat yang langsung memberikan hasil agar responden segera tahu bagaimana hasil riset yang dihasilkan berdasarkan data terkini berupa rekapitulasi. Kita lihat ketika pemilu, banyak rakyat tertarik dengan hasil quick count karena ingin segera melihat hasilnya. Rasa penasaran terkadang menambah tingkat partisipasi masyarakat. Bayangkan jika habis ‘nyoblos’ menunggu hasilnya sebulan kemudian, pasti ‘be te’. Keingintahuan responden terkadang perlu difasilitasi agar tingkat partisipasi naik.

Berikut ini cara menggunakan google form untuk survey, kemudian hasilnya dapat dilihat dalam website berupa kode HTML berisi chart. Kode tersebut tinggal dishare, bahkan oleh web server statik seperti github page atau spaces.w3school.

Outcome Based

Presiden Jokowi di awal pemerintahan kerap melakukan gebrakan-gebrakan di luar kebiasaan. Dari menteri kelautan yang gemar meledakan para pencuri ikan, hingga menteri pendidikan yang bukan dari praktisi kampus, yakni pendiri Gojek, alias pengusaha. Sikapnya yang ‘gaul’ kerap dianggap kurang menghargai kesakralan institusi pendidikan di Indonesia, yang memang masih ada sisa-sisa pendidikan Belanda, khususnya di kampus-kampus tua.

Terlepas dari itu, apakah kinerjanya baik? Semua terserah pembaca sekalian. Terakhir, mendikbud yang lulusan Harvard ini dicecar oleh anggota dewan, yang mengkritisi nasib guru-guru di daerah 3T, dan mereka tidak menghiraukan penghargaan orang luar negeri yang melihat kinerjanya yang ok.

Di akhir-akhir masa jabatan presiden, uniknya adalah menteri yang bergelar magister itu justru mampu menambah profesor-profesor baru yang dulu terasa ‘seret’. Sistem 400 tim ‘shadow’ (kemudian diralat menjadi mirroring) di tiap dirjen sepertinya mempercepat dan memperlancar proses.

Mungkin salah satu hal yang cukup mengganggu rekan-rekan dosen yang tidak muda lagi adalah beasiswa yang sulit karena syarat umur sekarang masuk kategori remaja (di bawah 40 tahun). Kampus-kampus besar mungkin bisa memberikan beasiswa lokal, tetapi untuk kampus-kampus menengah ke bawah terpaksa menggunakan uang pribadi (dana mandiri). Saya termasuk rombongan beruntung yang memperoleh beasiswa, dan ternyata memang di luar negeri, dosen-dosen kita ke-tua-an. Kita selalu jadi ‘pa RT’, karena paling tua.

Benarkah kita tidak perlu melihat pandangan orang luar negeri terhadap kinerja kita? Saya ingat dulu ketika Habibie ditolak pertanggungjawabannya oleh DPR sehingga terpaksa diganti. Banyak kejadian, orang kita di luar negeri lebih dihargai dari pada di dalam negeri.

Bolehlah kita menghiraukan pandangan orang luar, tetapi kejadian-kejadian saat ini menunjukan hal sebaliknya. Misalnya masalah hukum di negara kita. Ketika 7 tahun yang lalu, dengan framingnya, media bisa membuat Jesica oleh pemirsa dianggap pasti bersalah, tetapi tatkalan orang luar menampilkan netflix berjudul ‘es kopi’, mulailah heboh karena ternyata ada yang tidak beres. Kadang kita memang butuh alat diluar diri kita untuk berkaca. Tidak hanya di kurikulum, outcome-based bisa juga diterapkan dalam sistem kita, hasil nyata sangat penting, seperti kata jenderal Antivirus di film Asterix yang diperankan oleh Zlatan Ibrahimovic, “Why talk when you can fly?”, ok, tunjukan saja karya kita, biar orang yang menilai.

Akses POST, GET dan DELETE pada API

POST, GET dan DELETE merupakan salah satu fungsi REST API. Di sini data dimanipulasi, mirip konsep Create, Read, Update, dan Delete (CRUD) pada database. Bedanya pada REST API proses tidak melihat platform teknologi database yang digunakan, asalkan API tersedia dengan data Json atau Xml, pertukaran informasi bisa dijalankan. Bahkan Google Sheet pun bisa dibuat API:

Kode HTML yang disupport Javascript ternyata dengan mudah dan ringan bisa diterapkan POST dan DELETE. Oiya, PUT termasuk metode yang lain. Berikut video implementasinya, silahkan tanya ChatGPT untuk menghubungkan HTML dengan API, disertai akses POST, PUT, GET dan DELETE.

Akses API dari Google Sheet lewat HTML

Lanjutan dari post yang lalu [link], kita akan mencoba memanfaatkan Google Sheet untuk data yang akan dikelola lewat aplikasi web. Biasanya yang sering kita lihat adalah aplikasi PHP-Mysql dengan koneksinya. Biasanya dibutuhkan sebuah server khusus, misalnya Apache untuk PHP. Masalahnya adalah server tersebut perlu dihosting serius, apalagi kalau aplikasinya besar (enterprise application). Nah, untuk data yang sederhana, dan bisa digunakan oleh pengguna internal, kita bisa menggunakan server dari Google Sheet.

Google sheet merupakan aplikasi terkenal Google, sering disebut Excel Online. Formatnya sangat mudah karena sebagian besar manusia di bumi pernah menggunakan Microsoft Excel atau spreedsheet merek lain, open office, dan lain-lain. Google Sheet menyediakan aplikasi Google Script (GS) untuk mengelolanya seperti pada postingan sebelumnya [link], namun untuk digunakan dalam script html perlu perlakuan khusus. Nah, di sini kita butuh bantuan sheet.best [link] untuk mengkonversi Google Sheet menjadi Application Programming Interface (API) yang dapat digunakan langsung via kode html (tentu saja ada javascript di dalamnya).

Jadi hanya dengan menempatkan file HTML di server web statis seperti spaces.w3spaces.com atau github page, dan sebuah file Google Sheet, aplikasi database sederhana dapat berjalan. Tentu saja untuk database kompleks harus memanfaatkan server database, seperti MySQL, postGres, dan lain-lain walaupun saat ini jenis database no-sql kian diminati.

Ikuti saja langkah-langkah pada video ini dan saat ini ChatGPT [link] merupakan sarana belajar sekaligus menghasilkan kode. Untuk belajar karena kita bisa bertanya penjelasan line-code di tiap-tiap baris kode sehingga bisa menjalankan kode sendiri nantinya. Sekian, semoga bermanfaat.

Intelligence Media Analytic Sederhana

Konon kabarnya kemenangan Donald Trump dibantu oleh intelligence media analytic yang mengandalkan pengaruh media sosial, salah satunya facebook [link]. Nah, kita akan memasuki pilpres dan pileg tahun depan, ada waktu sekitar 3 bulan untuk kampanye. Apakah waktu tersebut cukup?

Melihat kondisi geografis Indonesia yang tersebar dalam pulau-pulau, sangat sulit jika kampanye dilakukan dengan cara off line, turun ke lapangan. Dengan jumlah provinsi sebanyak 34 provinsi, tidak efektif hanya mengandalkan kunjungan langsung. Maka cara yang efektif tentu saja lewat media online.

Peran media analytic jadi sangat penting, selain untuk menebarkan kampanye positif (tentu saja kampanya negatif tidak etis). Beberapa mahasiswa sudah bisa membuat sentiment analysis dari twitter yang memang berbasis text. Nah, bagaimana dengan yang video? Tentu saja butuh sedikit usaha untuk mengkonversi ucapan menjadi tulisan, seperti video berikut:

Ketika video berhasil dikonversi menjadi tulisan, maka di sini Natural Language Processing (NLP) bekerja dengan memanfaatkan metode-metode yang ada, misal SVM, Naïve Bayes, BERT, dan sejenisnya, termasuk fasilitas khusus untuk bahasa selain Inggris, misalnya bahasa Indonesia. Berikut bagaimana menganalisa video menjadi sentiment analysis dan fasilitas lain seperti wordcloud.

Yuk Bermain API – Application Programming Interface

Beberapa aplikasi seperti e-commerce (traveloka, agoda, pegipegi, airbnb, dll) tidak membuat sendiri basis data yang dikelolanya melainkan dengan mengakses Application Programming Interface (API) yang dibuat oleh penyedia data. API sendiri ada yang berpassword (token), dan yang bebas. Selain itu dari datanya ada yang berjenis XML dan ada yang terkenal, yaitu JavaScript Object Notation (Json). Di sini kita gunakan Google Sheet, salah satu aplikasi yang mudah digunakan karena berformat excel. Tapi dalam praktiknya biasanya menggunakan DBMS standard, mysql, postgresql, oracle, dan lain-lain.

Silahkan untuk latihan gunakan penyedia API-API gratis baik resmi maupun untuk sekedar testing saja, misal [link]. Silahkan buka Google Sheet lewat Gmail atau GDrive dan masuk ke extension untuk menginput kode Google Script (GS) agar bisa tercipta API. Lihat dokumentasi GS bagaimana cara menggunakannya, atau tanya saja ChatGPT lalu pelajari cara kerjanya. Silahkan lihat video saya berikut:

 

Sidang Terbuka – Perlukah?

Status sebagai mahasiswa merupakan satu aktivitas bekerja juga, mirip jabatan, tugas khusus, dan apapun yang memiliki tujuan yang jelas yakni memperoleh ilmu dan dibuktikan dengan kelulusan. Dosen pun ketika studi lanjut ke jenjang yang lebih tinggi berubah statusnya menjadi mahasiswa. Dualisme itu yang sedikit menyulitkan, khususnya dosen-dosen senior yang telat studi lanjut. Di mana sulitnya? Nah, itu dia, sulit juga menjelaskannya.

Waktu itu, thailand cukup panas, maklum mendekati hari raya Sonkran, hari raya yang terkenal dengan ‘mainan air’, semprot-semprotan, dan sejenisnya. Kalau di Indonesia ya hari raya idul fitri untuk yang muslim, natal untuk yang nasrani. Seperti biasa, siang itu di depan meja belajar, saya melamun. Di sini melamun berarti berfikir keras, mengingat tidak ada jawaban di internet, bahkan pembimbing pun tidak tahu jawabannya. Khas mahasiswa doktoral. Sambil menyeruput kopi Thailand (UFM bakery 50 baht) yang lebih murah dari kopi Vietnam (honkrum 100 baht), tiba-tiba ada telepon dari staf pengajar institut pertanian bogor (IPB).

“Halo apa kabar? Bagaimana keadaan di sana?”, sapa telepon itu. Seperti biasa, walau sedang pusing tapi cukup dijawab dengan dusta, “baik, bagaimana dengan Anda?”. Intinya ternyata hanya bertanya-tanya perihal kampus tempat saya kuliah. Tadinya saya fikir dari tim pewawancara waktu mendaftar beasiswa DIKTI ternyata hanya survey. “Apakah di sana ada sidang terbuka?”, saya jawab kalau seperti di Indonesia yang mengundang orang sekampung, disertai acara makan-makan, pembagian souvenir, dan sejenisnya ya tidak ada. Paling hanya informasi seperti berikut ini.

“Kalau wisuda? Bayar kah?”, tanyanya lagi. Saya jawab ada deposit ketika mendaftar kalau di rupiahkan setengah juta. Tapi setelah wisuda dan kita mengikuti wisuda, uang itu bisa diambil kembali. Mungkin maksudnya agar yang daftar serius, bukan nge-prank. Jadi, baik sidang terbuka maupun wisuda, praktis tidak ada yang bayar. Paling menyiapkan snack dan minuman saja ketika sidang terbuka, itu pun biasanya tidak dimakan oleh promotor dan penguji, malah peserta yang kebanyakan teman senegara, yang menjarah selepas acara. Bahkan kabarnya sudah ‘dipesan’ oleh teman-teman yang senasib sepenanggungan saat acara final defence berlangsung. Seperti ini suasana sidang terbuka [link].

Saya yakin teman-teman saya di negara lain pun sama, sepertinya hanya di Indonesia yang melakukan ritual sidang terbuka seperti hajatan. Beberapa kampus sudah mulai menghapus sidang terbuka, misalnya rekan saya yang kuliah di Brawijaya. Sepertinya jika ingin menjadi kampus internasional, agak merepotkan mahasiswa asing yang ingin sidang terbuka versi kampus Indonesia.

“Sir, how about final defence of mr Haoran Zhang?”, tanyaku ke promotor saya. Sambil geleng-geleng dia mengutarakan kekecewaannya. Katanya dia tidak lulus, alias sidang ulang. Wah, gawat juga. Pantes saya lihat kemarin dia sibuk mondar-mandir bawa alatnya dengan wajah pusing. Beda dengan Indonesia yang sudah pasti lulus, ternyata sidang terbuka bisa tidak lulus juga.

Ada info dari rekan istri saya yang S3, kabarnya ada juga mahasiswa doktoral yang tidak ikut wisuda. Kalaupun ikut, biasanya tidak terlalu wah. Salah satu sebabnya adalah sidang terbuka yang lebih ‘wah’ dari wisuda. Sidang terbuka ibarat wisudah khusus untuk si mahasiswa seorang. Nah, berbeda dengan di kampus saya, ketika ada mahasiswa Indonesia yang lulus doktoral, kampus mengundang duta besar dan atase kebudayaan, yang biasanya selalu hadir dan tidak diwakilkan [link].

Karena sidang terbuka yang ‘biasa saja’ (tapi sangar juga), wisuda jadi sangat hikmat. Bahkan dalam acara tersebut ada dua sebutan, Mr saat masuk gedung, dan Dr setelah pelantikan (pemasangan Hood, seperti sayap di belakang, kalau di Indonesia kuncir di topi wisuda yang digeser ke kiri atau ke kanan (saya lupa) oleh rektor/dekan [link]. Tapi bagi orang Indonesia yang S3 di Indonesia, sidang terbuka bisa jadi kenangan yang indah. Bisa juga jadi sarana jalan-jalan teman-teman si mahasiswa. Bayangkan teman saya yang mau lulus di Brawijaya, ketika ada kabar tidak ada sidang terbuka lagi (katanya kalau publish Q2), acara jalan-jalannya batal dah …

Tak Ada yang Kebetulan

Manusia memang beragam, baik fisik maupun pemikirannya. Ada yang percaya tuhan, ada yang tidak yakin, namun sepertinya kebanyakan meyakini keberadaan-Nya. Beberapa tradisi dan agama mengatakan bahwa keberadaan kita tidak kebetulan melainkan hasil ‘sesuatu’ sehingga banyak dari kita merasakan adanya De Javu, alias sepertinya pernah mengenal sesuatu yang kita jumpai dulu entah di mana.

Waktu sekolah menengah atas karena ikut dengan kakak yang kuliah komputer, terkadang ikut membaca meteri kuliah, bahkan menjadi langganan ‘penyusup’ ketika di sore hari ada praktikum, khususnya internet. Ternyata walau S1 mengambil jurusan mesin, ujung-ujungnya Kembali ke komputer. Waktu itu tema skripsinya kebetulan disain suspense dengan bantuan pemrograman komputer. Nah, Ketika lulus mengajar komputer, sempat bekerja di bank bagian IT. Terus merembet, hingga saat ini aktif mengikuti proyek-proyek yang meng ‘AI’-kan aplikasi-aplikasi di beberapa departemen. Kalau dibilang kebetulan ya konyol juga.

Ok dibilang kebetulan, tapi kalau kebetulan terus menerus ya kita jadi curiga. Sepertinya ada sesuatu yang mengatur. Bahkan lahirnya kita, misalnya saya lahir di Jogja, Indonesia, itu pun pasti bukan kebetulan.

Mengapa pemain bola kebanyakan dari negara dengan sistem pembibitan dan manajemen pelatihan yang baik untuk sepakbola? Sepertinya tuhan menempatkan si pemain itu di lingkungan yang cocok, misalnya Lionel Messi di Argentina, pemain bulu tangkis di Cina atau Indonesia, ilmuwan di Amerika dan Eropa, dan seterusnya. Walaupun untuk personel tertentu seperti Habibie dilahirkan di Indonesia, atau nabi saya, Muhammad SAW, lahir di kaum jahiliyah saat itu.

Ketika berangkat kerja, saya melihat sampah-sampah yang dibuang sembarang, bahkan di kali yang bikin repot petugas yang mengambilnya. Pasti tuhan ada maksudnya, setidaknya saya layak dilahirkan di tempat itu .. wah. Kondisi apapun, seperti kata Jack Ma bisa dijadikan peluang. Katanya, jika Anda tidak bisa jadi yang terbaik, jadilah yang pertama. Ya iyalah, pertama itu berarti inovator. Kadang yang pertama itu hambatannya paling besar, lihat saja di balapan, pasti yang pertama paling berat menahan angin, misalnya di balap sepeda. Paling banyak mendapat cibiran dan penolakan. Teorema de morgan, di masanya dianggap teori orang gila mengingat tidak terlihat kegunaannya, padahal saat ini merupakan bahan baku sistem digital pada komputer. Untungnya dulu belum ada netizen ….

Unifying Goal

Entah dalam bekerja maupun kuliah, terkadang ada tugas yang harus dikerjakan dalam bentuk kelompok. Sebagian besar kelompok yang kita ada di dalamnya biasanya berbeda-beda karakteristik personilnya. Apalagi jika Anda kuliah di luar negeri dengan orang-orang dari berbagai kebudayaan dan lingkungan. Nah, repotnya terkadang tiap personil memiliki goal atau tujuan masing-masing, sehingga goal kelompok harus sejelas mungkin jangan sampai terganggu oleh goal masing-masing.

Peran besar Sukarno pada bangsa Indonesia adalah menyatukan seluruh rakyat Indonesia agar memiliki satu tujuan bersama, alias unifying Goal. Bangsa yang beragam suku, agama, ras, dan adat harus memiliki satu tujuan bersama, tertuang dalam pembukaan UUD 1945 yang terkenal. Pertarungan dua kubu perang dingin Uni Sovyet yang komunis dengan Amerika Serikat yang liberal membuat tujuan bersama bangsa Indonesia ketika itu di tahun 60an kacau balau tak menentu. Efeknya adalah terulang kembali kekacauan di akhir Era Majapahit, alias perang saudara.

Jika tujuan personil mengalahkan tujuan kelompok sudah dipastikan pekerjaan berat bakal dihadapi. Saya pernah memiliki kelompok saat kuliah yang menggabungkan mahasiswa master dengan doktoral. Repotnya adalah mahasiswa magister tidak masalah mendapat B, sementara mahasiswa doktoral harus nilai A, nilai B pada dasarnya tidak lulus. Bayangkan jika mahasiswa magister yang kebanyakan mayoritas di kelompok memiliki tujuan cukup dapat B, dijamin mahasiswa doktoral akan bekerja keras, bahkan menjadi ‘single fighter’ agar minimal B+.

Dalam dunia kerja, misalnya kerjasama antara klien dan konsultan. Memang aslinya masing-masing memiliki tujuan di institusinya, misalnya konsultan memiliki banyak membimbing klien sementara klien mencapai tujuan perusahaannya. Tujuan utama mereka seharusnya menyelesaikan problem klien secepat dan sebaik mungkin, namun jika konsultan mengutamakan tujuan institusi kebanyakan menjaga agar klien tergantung terus dengan konsultan. Ada beberapa instansi pemerintah yang memiliki aplikasi dari konsultan tetapi source code tidak diberikan, kalau diberikan pun ternyata tidak bisa diakses. Sebagian lagi memasang server di tempat lain atau di tempatnya agar klien tergantung dan tidak bisa lepas dari konsultan itu.

Biasanya pemimpin yang baik akan melihat hal tersebut dimana tujuan bersama harus yang utama. Seperti pemimpin bangsa mungkin berasal dari partai tertentu, suku tertentu, agama tertentu, dan lain-lain yang sudah pasti memiliki tujuan individu dan kelompoknya. Namun untuk keberlangsungan bangsa, tujuan bersama harus di atas tujuan kelompok masing-masing, alias Unifying Goal harus tetap terjaga. Repotnya adalah terkadang tujuan kelompok menjadi yang utama sehingga setelah pemilu, ketidakpuasan merajalela, kritik tidak manusia kerap berseliweran di medsos dan media. Parahnya lagi jika pemimpin, misalnya menteri, masih memiliki tujuan kelompoknya menjadi tujuan utama.

Anak-anak muda kita merupakan pewaris bangsa yang di tahun 2045 kabarnya persentasenya tertinggi di dunia. Persentase tersebut tidak ada artinya jika masing-masing berjalan dengan tujuan sendiri dan melupakan bahkan tidak menganggap tujuan bersama. Jangankan tercapainya tujuan bersama, perpecahan bisa saja terjadi. Kalau bisnis mungkin kita bisa memilih bekeja sama dengan siapa, tetapi sebagai satu bangsa tentu saja tidak ada pilihan lain harus bisa bekerja sama dengan bangsa sendiri. Semoga kedepan bangsa kita menjadikan tujuan bersama lebih diutamakan dari tujuan individu dan kelompok.