Category: Teknologi

  • 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.

  • Stop Curhat ke AI

    Beberapa kali saya mendapatkan cerita tentang serunya ngobrol dengan AI. Sekarang ini AI seperti ChatGPT dan Gemini sedang berada di masa jayanya, dimana kemampuan berpikirnya sudah berkembang eksponensial.

    Saya sendiri sering berdiskusi dengan Gemini terkait dengan pekerjaan dan kegiatan sehari-hari. Kenapa Gemini? Selain karena merupakan tools resmi dari kantor, saya juga pengguna Gmail.

    Tapi yang perlu dicatat adalah, AI tidak punya empati. Mereka merespon pertanyaan kita dengan statistik. Jawabannya kemudian dibungkus dengan persona yang sudah diatur sesuai dengan keinginan kita.

    Jika kita ngobrol dengan topik pekerjaan dan/atau daily task, maka itu saat cocok. Sebab AI punya kemampuan untuk memberikan solusi yang logis dan efisien untuk membantu kita menyelesaikan pekerjaan tersebut.

    Catat, “logis dan efisien”.

    Apa yang terjadi kalau kita mencoba curhat yang membawa perasaan ke AI? Maka dia tetap meresponnya dengan cara yang sama, logis dan efisien.

    Tidak heran (secara default) kita akan lebih sering mendapatkan validasi dan mendapatkan respon yang kita inginkan. Sekali lagi, karena ini faktor statistik supaya hasilnya logis dan efisien.

    Untuk membuktikannya, coba ajak ngobrol satu topik saja yang cukup personal, gunakan akun berbeda jika concern dengan privasi. Beberapa hari kemudian, revisit dan baca pelan-pelan respon yang kemarin diberikan.

    Saya tidak punya background psikologi, tapi saya merasa jika saya berada di kondisi yang sesungguhnya, maka semua jawaban dari AI pada saat itu akan terasa benar dan semua yang ada di pikiranku itu valid. Kemudian jika kondisi sudah tenang, beberapa hari kemudian jawabannya jadi terasa aneh.

    Stop curhat dengan AI, perlakukan AI seperti kolega di kantor yang cocok untuk ngobrolin tentang kerjaan, tapi bukan untuk ngomongin hal personal ataupun atasan.

  • Menggunakan Cruise Control Mobil di Tol

    Awal tahun ini saya mengambil jatah cuti tahunan selama 2 hari yang saya gunakan untuk mudik ke Jogja dan Semarang. Selama cuti itu kami lebih banyak menyetir untuk pergi ke berbagai tempat tujuan, sekalian nyobain akses pintu tol baru di daerah Prambanan, Yogyakarta.

    Satu hal yang paling saya sukai ketika menyetir di jalan tol adalah menikmati perjalanan dengan memaksimalkan fitur di mobil, yaitu Cruise Control.

    Cruise Control adalah fitur elektronik pada mobil yang memungkinkan kendaraan mempertahankan kecepatan secara otomatis tanpa pengemudi perlu menginjak pedal gas secara terus-menerus.

    Salah satu alasan kenapa kami memilih mobil ini adalah adanya fitur Cruise Control. Meskipun belum yang versi Adaptive, tapi itu sudah cukup untuk bikin kami (tepatnya saya) untuk mau menyetir. Fyi, istri saya jauh lebih bisa diandalkan untuk urusan menyetir. Saya hanya suka nyetir jika terpaksa, jalanan sepi, lebar, atau parkirnya vallet.

    Oke, gimana cara pakai Cruise Control ini? Secara umum apapun merk mobilnya caranya akan selalu sama.

    Pertama adalah fase Aktivasi: Biasanya fitur ini dapat diaktifkan pada kecepatan minimal 40 km/jam hingga 60 km/jam.

    • Tombol Kontrol: Umumnya terletak di setir dengan fungsi:
      • On/Off: Mengaktifkan/mematikan sistem.
      • SET: Mengunci kecepatan saat itu.
      • RES +: Menambah kecepatan (biasanya naik 1 mph per tekan).
      • SET -: Mengurangi kecepatan.
      • CANCEL: Membatalkan sistem sementara tanpa mematikan fitur sepenuhnya.

    Saya biasa mengaktifkan fitur ini di kecepatan 60 km/jam, pencet tombol SET, lalu naikkan ke angka kecepatan yang diinginkan, misalnya ke 80 atau 90 km/jam. Pada saat melakukan ini saya sudah nggak tekan pedal gas, jadi kecepatan mobil akan otomatis naik sendiri ke angka yang sudah diatur.

    Hati-hati, jika model Cruise Control masih sama seperti mobil saya, maka pastikan kondisi jalan sedang sepi, sebab versi standar tidak bisa otomatis ngerem ketika di depannya ada kendaraan atau objek lain.

    Jika pengen otomatis bisa ngerem, maka pastikan mobilnya menggunakan versi Adaptive Cruise Control. Nah, kalau ini bakalan sangat nyaman karena kecepatan mobilnya bisa mengatur secara mandiri dan otomatis.

    Oke, kenapa fitur ini sebaiknya diaktifkan di jalan tol? Karena menurut saya, jika semua kendaraan melaju dengan kecepatan yang sama, maka lalu lintas akan lebih lancar.

    Sebetulnya semua kemacetan itu terjadi karena ada dua hal.

    Pertama pengendara yang sok ngebut, menyalip kendaraan lain sehingga kendaraan yang disalip melambat kemudian menciptakan efek domino ke puluhan kilometer ke belakang.

    Kedua, pengendara yang terlalu santai, mengakibatkan ada pergerakan zig-zag ketika menyalip sehingga ada kendaraan lain yang harus melambat memberikan jalan atau menyesuaikan diri, dan mengakibatkan efek domino ke puluhan kilometer ke belakang.

    Ini tidak mengada-ada kok, ada percobaannya juga untuk membuktikan teorinya. Intinya, jika ingin lalu lintas lancar maka sebaiknya semua kendaraan berjalan di kecepatan yang sama.

    Nah, konsep ini lebih mungkin dilakukan di jalan tol dibandingkan di jalan biasa, yaitu dengan mewajibkan semua kendaraan kecil (bukan truk ya) untuk mengaktifkan fitur Cruise Control dan diatur ke kecepatan sesuai aturan ruas tol. Jadi tulisan batas kecepatan minimal dan maksimal itu benar-benar dipatuhi secara programmatic, bukan pakai prinsip kira-kira.

  • Bagaimana Cara Memindahkan WordPress Ke Hosting Lain

    Di postingan sebelumnya saya cerita kalau website ini (dan beberapa website lainnya) saya pindahkan dari cloud server ke shared web hosting. Bagiamana caranya? Apakah susah? Apakah ada file yang ketinggalan?

    Begini ceritanya.

    Sebelum saya bercerita lebih lanjut, saya mau disclaimer bahwa cara yang saya gunakan ini tidak 100% gratis, karena saya menggunakan bantuan plugin berbayar yang selama ini saya andalkan selama saya menjadi freelancer web developer, lisensinya sudah saya miliki sejak lama jadi tinggal pakai aja.

    Nama pluginnya adalah: Duplicator Pro

    Bagaimana Cara Memindahkan WordPress Ke Hosting Lain

    Kenapa?

    Saya sudah mencoba berbagai macam metode migrasi website, mulai dari yang manual (mindahin filenya satu-satu), pakai perintah CLI ala-ala hacker, menggunakan layanan pihak ketiga yang menawarkan layanan migrasi, sampai mencoba berbagai macam plugin premium dengan segala fiturnya.

    Menurut keyakinan saya, Duplicator Pro ini menawarkan cara yang paling sederhana. Prosesnya simpel:

    1. Install Duplicator Pro di WordPress asal
    2. Lakukan proses backup, klik next-next aja sih. Nanti akan dapat 2 file; file installer dan file backupnya.
    3. Download kedua file itu, simpan ke laptop. Jangan khawatir ini sudah dikompres sehingga ukurannya cukup kecil.
    4. Pada server tujuan, nggak perlu install WordPress dulu. Langsung upload kedua file itu ke folder web servernya. Jika pakai web hosting biasanya di folder public_html.
    5. Buat database baru, username & password, atur permissionnya juga. Kalau biasa pakai CPanel harusnya sih simpel, tinggal assign user ke DB aja. Intinya usernya bisa akses DB-nya aja. Catat semuanya ya.
    6. Pindahkan DNS Record ke IP server yang baru. Kalau sekarang sih propagasi itu cepet banget ya gaes, kalau jaman kita dulu bisa berjam-jam hahah.
    7. Akses domain, nanti tampilannya akan berupa list kedua file yang tadi diupload. Kalau belum, tunggu sampai bisa lihat filenya ya. Biasanya cepet kok setelah ganti DNS recordnya.
    8. Klik file installer.php dan ikuti prosesnya.
    9. Done

    See? simpel banget dan nggak banyak pengaturan tambahan.

    Pro-tip, pastikan sebelum dibackup itu semua plugin dimatikan dulu supaya nanti ketika pindah server baru nggak ada pesan-pesan aneh karena masalah kompatibilitas.

    Contohnya kemarin saya lupa matiin plugin Redis sedangkan di web hosting baru saya belum setup Redisnya, jadinya ada pesan aneh dan mengerikan wkwkwk..

  • Kembali ke Web Hosting

    Ada apa? Jadi, server website ini habis pindahan dari cloud server ke shared web hosting. Tepatnya dari Cloudways lalu setelah beberapa tahun disana akhirnya pindah ke Rumahweb lagi.

    Kenapa pindah? Tidak ada alasan khusus sih, tapi sejak bekerja di kantor saya yang sekarang ini, saya memutuskan untuk tidak lagi menerima pekerjaan freelance sebagai web developer. Bahkan klien-klien yang masih pakai jasa saya untuk maintenance pun saya sudahi kontraknya pelan-pelan sampai yang terakhir itu di akhir tahun 2025 lalu.

    Iya, tapi kenapa pindah? Ya itu, karena sudah nggak ada klien, artinya website yang hidup sekarang cuma website pribadi aja dan beberapa titipan teman. Kalau dijalanin pakai spek server yang bagus, sepertinya kurang ekonomis.

    Kok Rumahweb lagi? Iya, awalnya saya memulai petualangan sebagai web developer itu juga berkat perkenalan dengan Rumahweb. Saya lupa sejak kapan, tapi kayanya waktu saya masih pegang domain bernama ple-q.com deh, berarti kira-kira sewaktu masih kuliah S1 di Semarang.

    Jadi masalah ekonomi? Iya wkwkwk

  • Cyclometer Untuk Bersepeda

    Cyclometer Untuk Bersepeda

    Melanjutkan tulisan saya sebelumnya di Bersepeda Untuk Pemula, saya akan membahas peralatan yang sebaiknya dimiliki untuk bersepeda. Apabila Anda berniat untuk menggunakan sepeda sebagai alat olahraga, maka sebaiknya mempertimbangkan untuk memiliki alat ini.

    Namanya cyclometer.

    Sebelum saya menggunakan alat ini, saya merasa teknik bersepeda saya sudah benar. Oh iya, sebagai informasi saya menggunakan sepeda lipat Polygon Urbano 3.0 untuk bersepeda, bukan roadbike yang keren itu ya.

    Oke, meskipun saya pengguna sepeda lipat, tapi tentunya juga ingin mendapatkan manfaat berolahraga, tidak hanya dijadikan ajang pamer kekinian saja hahaha. Nah, saat awal-awal bersepeda itu rasanya ya biasa saja, asal gowes menyusuri jalan di sekitar rumah, atau gowes agak jauh sampai Titik Nol Kilometer Jogja.

    Namun, di sepanjang jalan itu saya merasa kok dari tadi disalip oleh pesepeda lain ya? Padahal mereka sama-sama naik sepeda lipat juga. Berarti ada yang salah dengan cara bersepeda saya, apalagi keringat yang keluar lebih disebabkan karena kepanasan saja, bukan karena efek berolahraga. Artinya, ada yang salah dengan cara gowes saya.

    Saya perlu alat untuk mengukur pergerakan gowes saya.

    Hasil dari browsing, saya mendapatkan beberapa alternatif yang terbagi menjadi dua kubu. Pertama, golongan pengguna cyclometer yang ditempel di sepeda. Kedua, golongan pengguna aplikasi yang diinstall di smartphone. Masing-masing memiliki plus-minus.

    Saya pikir, kenapa nggak pakai keduanya saja? Toh masing-masing saling melengkapi.

    Jadilah saya kemudian membeli cyclometer merk Bryton Rider 310 yang kemudian datanya saya unggah ke Strava. Saya mendapatkan data dengan laporan analisis yang lebih bagus, sebab Bryton ini memiliki perangkat GPS bawaan sehingga data yang saya dapatkan lebih akurat dibandingkan hanya menggunakan Strava yang diinstall di smartphone. Data dari Bryton ini tetap saya unggah ke Strava supaya bisa pamer ke komunitas hahaha.

    Btw, laporan analisis yang didapatkan dari aplikasi bawaan Bryton, jauh lebih lengkap dibandingkan dengan data yang didapatkan di Strava versi gratisan. Apalagi jika menambah sensor tambahan seperti cadence dan heart rate yang akan saya bahas di tulisan selanjutnya.

    Berkat menggunakan Bryton Rider 310 ini, saya jadi bisa mengukur cara bersepeda saya, juga menjawab pertanyaan kenapa kok kemarin sering disalip sama pesepeda lain, yang ternyata memang belum menggunakan sepeda sebagai alat olahraga, namun baru jadi alat pamer saja.

    Tambahan: Bryton Rider 310 ini sudah tidak diproduksi lagi, sebagai gantinya bisa menggunakan Bryton Rider 420. Saya cek banyak dijual di berbagai marketplace, misalnya di sini.