Author: Mohammad Sani Suprayogi

  • Pentingnya Testing di Payment Gateway

    Ketika saya mengerjakan project yang berkaitan dengan transaksi pembayaran, hal terpenting yang saya perhatikan adalah journey pembayaran di sisi user. Jangan sampai user merasa kebingungan dan/atau bahkan ragu ketika akan dan setelah melakukan pembayaran.

    Hal paling kruisal ketika user sudah berkenan melakukan transaksi di website kita adalah konfirmasi pembayaran.

    Konfirmasi ini bentuknya bisa bermacam-macam, yang paling saya lakukan dalam urutan termudah

    1. Halaman terima kasih sudah menerima pembayaran.
    2. Email konfirmasi bahwa transaksi sudah diterima.
    3. WhatsApp/SMS bahwa pembayaran sudah berhasil.

    Secara teknis, poin pertama adalah hal termudah, karena ini bisa dibuat oleh developer pemula sekalipun.

    Sayangnya, aplikasi Access By KAI tidak mampu melakukannya.

    Setiap kali saya membeli tiket dengan metode pembayaran kartu kredit yang diproses oleh DOKU selaku payment gateway, setelah pembayaran dari sisi DOKU berhasil tidak disambut dengan baik oleh KAI.

    Ini contohnya, ketika saya sudah sukses melakukan pembayaran di sisi DOKU, tidak ada masalah di bagian ini.

    Pentingnya Testing di Payment Gateway

    Selanjutnya ketika klik menu GO TO MERCHANT, dimana user akan dibawa kembali ke aplikasi Access By KAI, akan menampilkan halaman seperti ini.

    Pentingnya Testing di Payment Gateway

    Secara transaksi, pembayarannya berhasil. Tiket juga sudah berhasil dibeli dan terkonfirmasi. Namun adanya tampilan itu seakan-akan menyiratkan pembayarannya gagal dan user bisa mengira disuruh membayar ulang.

    Padahal, ketika aplikasi ditutup kemudian dibuka lagi, tiketnya sudah terbit dengan tenang.

    Saya menggunakan versi 6.16.0 iOS

  • Memanfaatkan Tabel Dereferensi di Appsheet

    Melanjutkan tulisan mengenai Appsheet sebelumnya, salah satu fitur yang saya sukai adalah tabel dereferensi.

    Apa itu? Dalam AppSheet, Dereference (Ref) adalah cara mengambil data dari tabel lain melalui hubungan antar-tabel. Jika di pemrograman tradisional ini mirip dengan Join pada SQL atau mengakses properti objek (dot notation), di AppSheet ini jauh lebih sederhana.

    Misalnya saya ingin punya tabel bernama Tournaments dan Matches yang saling terhubung, maka saya akan membuat kolom di tabel Matches bernama tournament_id yang akan dikasih tipe data Ref. Nanti di tabel Tournaments akan tercipta tabel dereferensi yang terhubung ke tabel Matches.

    Cara pakainya gimana? Ada 2 cara.

    Pertama dari sisi tabel Tournaments, misalnya saya ingin menampilkan semua data Matches yang terhubung ke Tournament tertentu, maka saya cukup menambahkan tabel dereferensi tadi ke dalam view detail di Appsheet. Nanti secara otomatis akan menampilkan daftar Matches yang terhubung.

    Memanfaatkan Tabel Dereferensi di Appsheet

    Kedua dari sisi tabel Matches, karena saya sudah punya kolom bernama tournament_id yang merupakan “foreign_key” dari tabel Tournaments, jika saya ingin menampilkan kolom lain dari tabel Tournaments maka saya cukup memanfaatkan tanda titik.

    Contohnya, saya ingin mendapatkan nama tournament. Maka pada tabel Matches saya cukup membuat tabel virtual kemudian formulanya ditulis sebagai berikut.

    [tournament_id].[tournament_name]

    Penjelasan: kolom tournament_id merupakan nama kolom dereferensi di tabel Matches dan juga primary key di tabel Tournaments. Kemudian kolom tournament_name adalah nama kolom yang menyimpan data nama turnamennya.

    Cara ini jika dilakukan pada SQL, kurang lebih akan seperti kita menggunakan perintah JOIN.

    SELECT 
        Tournaments.tournament_name
    FROM 
        Matches
    JOIN 
        Tournaments ON Matches.tournament_id = Tournaments.tournament_id;

    Bedanya, Appsheet akan memproses dengan lebih cepat karena tidak perlu melakukan scanning pada semua data di tabel.

  • Membangun Aplikasi No-Code Dengan Google Appsheet

    Salah satu skill baru yang saya kuasai di tahun 2025 lalu adalah menguasai Appsheet, sebuah platform no-code dari Google yang terintegrasi dengan Google Workspace.

    Produk ini cocok untuk membangun aplikasi CRUD tanpa harus ngoding, tidak harus setup database karena bisa dimulai dari data di Google Sheets, dan tidak harus setup server karena sudah pakai servernya Google.

    Apakah bagus? menurut saya sangat bagus, bahkan terlalu bagus jika melihat semua fitur dan kemampuan Appsheet untuk dikembangkan hingga batas maksimalnya.

    Sekarang hampir semua tracker di kantor yang masih menggunakan Google Sheets sudah mulai dimigrasikan ke Appsheet. Saya cukup berhasil mengintegrasikan puluhan dokumen tracker menjadi 1 aplikasi di Appsheet saja, dan sekarang aplikasinya menjadi the single source of truth.

    Bagaimana cara belajarnya? Berapa harganya? Tenang, bisa dibaca pelan-pelan di https://about.appsheet.com/pricing/ Saya nggak bilang ini gratis ya, tapi dengan fitur yang ditawarkan itu harga yang tertulis disana itu hampir terasa gratis.

    Oke, apa kelemahannya?

    1. Tidak bisa ubah tampilan custom, jadi kalau pengen tampilannya canggih atau sophisticated, maka Appsheet tidak cocok dengan keperluan Anda.
    2. Sampai tulisan ini dibuat, Google masih terus melakukan update di Appsheet, jadi terkadang ada sedikit glitch ketika dipakai, tapi saya rasa ini hanya masalah waktu.
    3. Nggak bisa untuk didevelop oleh multi developer. Maksudnya, hanya satu developer saja yang bisa melakukan editing dalam satu waktu. Jadi misalnya ada 2 developer sedang ngedit aplikasi Appsheet yang sama, maka akan terjadi race condition.

    Kayanya cuma itu sih, sisanya banyak sekali kelebihannya. Bisa dibilang saya amaze dengan Appsheet ini, bahkan kami rela untuk mematikan Smartsheet wkwk.

  • Validasi Cara Berpikir AI

    Masih terkait dengan tulisan saya jangan curhat dengan AI, dalam keseharian saya tetap menggunaan AI untuk membantu pekerjaan. Namun, satu hal yang diperhatikan adalah jangan otomatis percaya dengan semua responnya.

    Tantangan terbesar ketika ngobrol dengan AI adalah kapan bisa merasakan AI mulai halusinasi. Terkadang saya sudah bisa merasakan tingkat halusinasinya meningkat dalam beberapa kali ngobrol, tapi kadang-kadang bisa terbawa juga sampai beberapa lama.

    Ciri-cirinya, mulai kesel sama AI.

    Ini suatu hal yang sia-sia kan? Kesel sama AI itu sama seperti kesel dengan manusia NPD wkwkwk.. Dia nggak akan pernah merasa dikeselin, yang ada dia akan tetap percaya diri dan tetap berpegang teguh pada apa yang dia anggap benar.

    Lalu gimana identifikasinya?

    Pertama, jangan langsung percaya dengan jawabannya.

    Kedua, cek cara berpikirnya.

    Nah, gimana caranya? Jika Anda menggunakan model AI yang cukup tinggi biasanya akan ada opsi untuk mengikuti cara berpikirnya. Ini biasanya ada di model yang menggunakan metode reasoning, pertama kali ditampilkan oleh DeepSeek dan sekarang hampir semua model di OpenAI dan Gemini sudah menerapkannya.

    Validasi Cara Berpikir AI

    Contohnya seperti itu, ketika saya bertanya sesuatu maka pastikan mereview cara berpikirnya. Baca cepat saja tidak perlu memperhatikan detilnya, nanti akan terasa kok apabila berpikirnya sudah mulai ngawur.

    Jadi, jangan langsung percaya ya.

  • Menyiapkan Survival Kit Bencana

    Karena kemarin posting terkait hoax pemadaman listrik, kemudian wilayah Jakarta dan sekitarnya sedang kebanjiran akibat curah hujan dan sistem drainase yang kurang memadai, saya jadi kepikiran apakah kami punya survival kit?

    Sebagian besar orang, termasuk saya ternyata tidak memiliki persiapan untuk bertahan hidup selama beberapa hari tanpa adanya support. Kita beruntung hidup di wilayah yang banyak orang, sehingga prinsip gotong-royong cukup bisa diandalkan apabila terjadi bencana.

    Tapi sampai kapan kita mau mengandalkan orang lain terus?

    Saya pikir, ketika memang terjadi bencana, sebelum saya bisa membantu orang lain setidaknya saya bisa membantu diri sendiri dan keluarga terlebih dulu. Makanya saya berpikir untuk mulai mempersiapkan survival kit sederhana.

    Apa saja?

    Untuk kondisi yang relevan dengan sekarang, ada 5 hal yang perlu saya siapkan.

    1. Energi Cadangan.
    2. Air Bersih.
    3. Makanan dan Masak.
    4. Kesehatan dan Kebutuhan Spesifik.
    5. Uang Tunai.

    Nanti saya akan bahas lebih lanjut terkait beberapa item di atas, tapi seharusnya sih sudah bisa kebayang kira-kira apa saja daftar yang perlu disiapkan ya?

  • Hoax Peringatan Darurat Listrik Padam 7 Hari

    Beberapa hari terakhir saya mendapatkan konten yang membahas terkait peringatan darurat akan terjadi listrik padam selama 7 hari, kemudian kita diminta untuk bersiap-siap.

    Pertama, itu hoax. Pemerintah Indonesia dan PLN tidak pernah mengeluarkan peringatan atau rencana pemadaman listrik massal selama 7 hari.

    Kalau saya perhatikan, isu ini berawal dari luar negeri dan isu ini menyebar melalui video viral di media sosial (terutama TikTok) yang mencatut narasi tentang “krisis global” atau perang dunia, namun klaim tersebut tidak memiliki dasar bukti yang valid.

    Saya dapat info ini memang terlambat karena sudah tidak menggunakan TikTok lagi secara aktif, dapatnya dari Instagram Reels.

    Kemungkinan besar isu ini merupakan pelintiran informasi dari panduan kesiapsiagaan bencana umum (seperti panduan survival 72 jam yang memang disarankan di beberapa negara Eropa untuk situasi darurat apa pun), yang kemudian dibesar-besarkan menjadi prediksi kejadian nyata di Indonesia.

  • Resep Dasar Kopi Susu Gula Aren.

    Selain suka menyeduh kopi sendiri, saya juga sedang suka membuat kopi susu gula aren sendiri. Awalnya karena melihat orang kantor pada suka jajan kopi jenis ini kemudian saling membandingkan rasa antar merk satu sama lain.

    Saya pernah beli dari Tuku, merknya Kopi Susu Tetangga. Enak, mungkin ini paling enak dibandingkan merk-merk lain. Tapi kalau ngobrol sama orang lain bisa jadi pendapatnya berbeda.

    Jadilah saya penasaran untuk bikin sendiri, setelah beberapa kali percobaan, ini adalah komposisi yang saya gunakan.

    1. 20 ml gula aren cair.
    2. 40 ml konstentrat espresso robusta.
    3. 160 ml susu cair UHT

    Urutannya

    1. Siapkan gelas dan gunakan timbangan digital, pencet tombol tare supaya jadi 0
    2. Tuang 20 ml gula aren cair.
    3. Pencet tare di timbangan lagi supaya 0.
    4. Tuang 40 ml konsentrat espresso.
    5. Penting! aduk dulu sampai tercampur.
    6. Pencet tare di timbangan lagi supaya 0.
    7. Tuang 160 ml susu cair UHT.
    8. Aduk santai sampai warnanya cokelat.

    Saya tidak menambahkan es batu supaya rasanya lebih pekat. Silakan dicoba.

  • Lika-Liku Berburu Kosan

    Sewaktu diskusi rumah tangga di awal 2024, dalam waktu dekat kami harus menjadi Jakartans, hal pertama yang kami pikirkan saat itu adalah bagaimana dan di mana kami akan tinggal. Kebetulan diskusi ini kami lakukan setahun sebelum pada akhirnya saya terkonfirmasi benar-benar harus WFO setelah lebaran 2025.

    Pada Q4 2024, kami melakukan eksperimen dengan tinggal di Jakarta selama 1 bulan (yang kemudian menjadi 2 bulan). Saat itu kami menguji bagaimana flow yang nyaman jika harus berpindah kota namun tetap domisilinya di Jogja.

    Ada beberapa persiapan awal yang kami lakukan, terutama untuk masalah keamanan rumah. Saya memasang 2 titik CCTV yang bisa diakses melalui smartphone, kemudian menyiapkan UPS untuk modem, lalu menitipkan mobil ke kucing.

    Apakah langsung berhasil? tentu tidak. Eh, untuk keamanan mobil malah aman karena kucing kami menjaganya dengan sepenuh hati. Tapi untuk UPS dan CCTV malah sering bermasalah karena pasokan listrik PLN Bantul ini suka-suka tergantung mood.

    Untuk sekarang sudah jauh lebih aman karena saya mengganti UPS murahan itu ke merk Bluetti yang bisa tahan 12 jam jika listrik mati, kemudian CCTV juga saya pasang mini UPS yang bisa bertahan 2 hari. Selain itu semua stop kontak dan lampu sudah bisa saya kendalikan dan dimonitor penggunaannya.

    Oke, di Q4 2024 itu untuk pertama kalinya kami benar-benar tinggal di Jakarta, jadi anak kosan lagi, berbagi fasilitas dengan penghuni lain. Waktu itu untuk menentukan lokasi kosannya cukup menantang, sebab ada beberapa faktor yang kami tentukan yang kemudian menjadi standar SOP setiap kali kami mencari tempat tinggal.

    1. Jarak tidak boleh terlalu jauh dengan kantor, maksimal 30 menit.
    2. Terdapat transportasi umum, diutamakan MRT.
    3. Fasilitas wajib yang harus ada.
    4. Budget setahun.

    Itu adalah standar yang kami tetapkan ketika mencari tempat tinggal. Awalnya poin pertama adalah budget, tapi setelah menjalaninya ternyata budget sebaiknya diposisikan di paling akhir dan dihitung secara tahunan, bukan bulanan.

    Dimana mencarinya? Nah ini yang menarik. Tadinya kami mengandalkan informasi dari teman, tapi memang sebaiknya mencari tempat tinggal itu harus dicari sendiri dan terkadang memang perlu hoki untuk mendapatkannya.

    Tidak ada hal spesial untuk proses mencarinya, justru karena kami sudah tau apa yang kami inginkan untuk tempat tinggal, proses shortlist menjadi lebih mudah dan cepat. Visit ke kosan hanya beberapa kali saja.

    Sekarang kami tinggal di daerah Blok A, Kebayoran Baru dimana semua poin yang kami syaratkan sudah terpenuhi disini. Prosesnya cukup cepat, karena saya kebetulan sedang memantau layanan Mamikos kemudian melihat ada iklan baru disana, kirim WA untuk janjian visit, langsung suka, dan bayar DP untuk tanda jadi.

    Tidak terasa sudah hampir setahun kami disini dan belum ada rencana untuk pindah dulu.

  • Tempat Tinggal Tidak Selalu Rumah

    Saya kepikiran hal ini ketika perjalanan kembali ke Jakarta setelah minggu lalu menyempatkan mudik ke Jogja. Ketika pulang, saya menyadari bahwa beberapa tetangga saya sudah mulai menjual rumahnya, bahkan sekarang ada 5 rumah yang berada di sekitar saya itu kondisinya sedang dijual.

    Praktis jika kami sedang tidak berada di Jogja, area sekitar rumah kami jadi cukup lengang. CCTV yang saya pasang juga lebih sering merekam kucing lewat dibandingkan manusia haha.

    Oke, sejak kecil kita diajarkan tentang 3 kebutuhan primer.

    1. Sandang
    2. Pangan
    3. Papan

    Saya akan fokus ke poin ketiga yaitu Papan. Tadinya saya menganggap Papan itu adalah Rumah, ternyata maksud sebenarnya itu adalah tempat tinggal.

    Kebutuhan akan tempat tinggal akan terasa lebih masuk akal dibandingkan kebutuhan untuk punya rumah. Kenapa? harga rumah saat ini sangat tidak masuk akal.

    Penyebabnya ya karena salah kaprah mengenai tempat tinggal dan rumah ini. Karena rumah dianggap sebagai kebutuhan utama, maka orang akan berusaha mendapatkannya seperti halnya kita membutuhkan sandang dan pangan.

    Seakan-akan satu-satunya untuk memenuhi kebutuhan papan itu hanya rumah. Padahal kebutuhan sandang dan pangan itu opsinya banyakk sekali, masa untuk papan hanya rumah?

    Tempat tinggal itu tidak selalu harus rumah, tapi suatu tempat untuk berlindung. Kita pun juga tidak perlu punya hak milik, tapi cukup punya akses dan hak untuk menempati atau menggunakan.

    Jadinya, sekarang opsi tempat tinggal akan menjadi lebih banyak. Tidak hanya rumah, tapi juga bisa menjadi kosan, apartemen, dan rumah sewa. Semuanya memiliki fungsi yang sama sebagai tempat tinggal. Jika kita sudah punya salah satunya maka sebetulnya kita sudah terpenuhi kebutuhan primernya.

    Tapi kan kalau sewa terus, uangnya akan hangus?

    Memang, sebab uang itu memang digunakan untuk membeli kebutuhan papan, jadi kita bisa tinggal untuk berlindung, beristirahat, dan sebagainya selayaknya manusia. Bukannya kita juga melakukannya dengan sandang dan pangan? Kita beli keduanya untuk dipakai dan dihabiskan, tidak untuk diinvestasikan.

    Salah kaprah jika membuat rumah menjadi investasi. Justru itu akan menjadi liabilitas, sebab akan membuat beban manusia yang seharusnya bisa fleksibel menjadi tertahan karena faktor ini.

    Jika memang saat ini belum mampu membeli rumah, tidak masalah. Selama masih ada atap yang bisa untuk berlindung maka sudah cukup. Fokus ke yang sedang dijalani dulu.

    Iya, kami di Jakarta tinggal di kosan, meninggalkan rumah yang kami miliki di Jogja.