Portofolio

Aku suka ngoding dan membuat aneka macam program. Terkadang, aku mencatat dan mengulas karyaku di blogku. Berikut beberapa program/proyek yang pernah/sedang kukerjakan.

Proyek

Aku pernah ikut magang selama kuliah (KMM/Kuliah Magang Mahasiswa). Setelah lulus S-1, aku menjadi pekerja lepas sebelum/sembari/sesudah kuliah S-2.

Pembangunan Back-end untuk Medira (Juni 2025–Sekarang)

Aku membangun bagian back-end untuk mengelola data talenta, perusahaan, pos lowongan pekerjaan, proses perekrutan, dan berita/blog platform di server. Aku juga membuat API endpoint untuk menghubungkan data ke bagian front-end. Bagian back-end juga bertugas menyimpan berkas dan mengambil berkas (sesuai hak akses) dari layanan object storage.

Teknologi: Go, Gin, GORM, PostgreSQL, Cloudflare R2

Pengerjaan Back-end untuk Sevenpreneur (Mei–Agustus 2025, Oktober 2025–Sekarang)

Aku mengerjakan bagian back-end untuk mengelola data kelas/kursus, video pembelajaran, pengajar, pelajar, dan transaksi pembayaran di server. Aku juga menyusun remote procedure call untuk menghubungkan data ke bagian front-end. Bagian back-end juga bertugas menghubungkan platform ke layanan gerbang pembayaran.

Teknologi: Vercel/Next.js, tRPC, Prisma, Supabase/PostgreSQL, Xendit

Pembuatan Back-end untuk Xnaskah dan XuantumLab (Desember 2024–Maret 2025)

Aku membuat bagian back-end untuk mengelola data berita, penulis, fotografer, foto, dan redaksi di server. Aku juga membuat API endpoint untuk menghubungkan data ke bagian front-end.

Teknologi: Google Cloud Platform (GCP), Cloud Run/Go, Cloud DB/PostgreSQL

Pembuatan Panel Admin dan API (Back-end) untuk Ensiklopedia Doa (Januari–Maret 2023)

Aku membuat panel administrator untuk mengelola data doa dan kategorinya di server. Aku juga membuat API endpoint untuk menghubungkan data ke bagian front-end.

Teknologi: JS/Sails.js, MySQL, HTML5/CSS3/JS

Magang: Audit dan Perbaikan SIRIAN LeMoe - Sistem Izin Penelitian RS Dokter Moewardi, Surakarta (Januari–Februari 2021)

Aku memeriksa sistem layanan yang berbasis web ini dari dua sisi: sisi pengguna dan sisi pengembang. Aku memeriksa antarmuka untuk mencari yang hal-hal yang mengganggu pengguna dan memeriksa hal-hal yang membuat lamban dengan bantuan Lighthouse, kemudian memperbaikinya. Aku juga memeriksa kode dan melakukan beberapa refactor untuk mewujudkan pengembangan berkelanjutan.

Teknologi: PHP/CodeIgniter, MySQL, HTML5/CSS3/JS

Program Pembuat Soal di Web TTL

Aku menyusun program-program untuk membuat soal secara dinamis/prosedural. Program-program ini adalah bagian dari web Team Tanpa Les Indonesia. Aku sudah ingin membuat program sejenis ini sejak lama. Akhirnya, aku menyempatkan diri untuk mulai membuat program pembuat soal yang pertama saat di kereta perjalanan pulang kampung Desember 2024. Berikut program-program yang sudah kubuat sejauh ini:

Tiga soal bentuk baku dan tak baku beserta hasil pemeriksaannya yang ditandai dengan latar warna hijau pada tiap soal untuk jawaban benar
Bentuk Baku dan Tak Baku (30 Maret 2025)
Dua soal KPK dan dua soal FPB beserta hasil pemeriksaannya yang ditandai dengan warna hijau pada kolom isian untuk jawaban benar
KPK dan FPB (9 Maret 2025)
Dua soal mengurutkan pecahan beserta hasil pemeriksaannya yang ditandai dengan warna hijau pada kolom isian untuk jawaban benar
Mengurutkan Bilangan Pecahan (10 Februari 2025)
Empat soal operasi pecahan beserta hasil pemeriksaannya yang ditandai dengan warna hijau pada kolom isian untuk jawaban benar
Operasi Bilangan Pecahan (5 Februari 2025)
Empat soal operasi bilangan beserta hasil pemeriksaannya yang ditandai dengan warna hijau pada kolom isian untuk jawaban benar
Operasi Bilangan Bulat (4 Januari 2025)

Luanti/Minetest

Aku juga membuat beberapa mod (modifikasi) untuk digunakan dalam Luanti (sebelumnya Minetest). Selain itu, aku juga menjadi pengembang inti dari game engine Luanti/Minetest.

Tulisan tentang kegiatanku dengan Luanti/Minetest lebih lengkap bisa dibaca di sini.

Program Latihan

Berikut program yang kubuat sebagai ajang latihan menulis program atau dalam rangka memahami konsep.

Pengolahan Data Statistik

Aku mengambil mata kuliah wajib Data Mining/Penambangan Data selama kuliah S-1. Berikut program yang kubuat untuk tugas mata kuliah.

Diagram sebar data dua dimensi yang menampilkan titik-titik data dan menandai pencilan dengan warna merah
Local Outlier Factor (4 Desember 2020)

Pengolahan Citra Digital

Aku mengambil mata kuliah wajib minat Pengolahan Citra Digital (PCD) selama kuliah S-1. Peminatanku pengolahan citra dan penglihatan komputer (CV). Berikut program dengan bahasa JavaScript dari tugas mata kuliah yang menggunakan bahasa Octave/MATLAB.

Dua gambar: gambar yang di kiri adalah hasil histogram equalization, gambar yang di kanan adalah histogrammya
Contrast Enhance (11 November 2020)
Tiga gambar, dari kiri ke kanan, hasil filter Sobel horizontal, vertikal, dan magnitudonya
Edge Detection (4 November 2020)
Dua gambar: gambar yang di kanan adalah hasil penerapan filter median dari gambar kiri yang berisi derau garam dan lada
Image Smoothing (1 November 2020)
Dua gambar: gambar yang di kanan adalah inversi dari gambar yang di kiri
Grey Transform (1 Oktober 2020)

Coba-Coba

Aku terkadang menulis program ketika menjumpai hal-hal yang menurutku menarik untuk dibuat, terlebih yang sampai terpikirkan terus-menerus.

Tulisan 'Hello, World!' sebagai hasil dari evolusi banyak generasi
Genetic Algorithm (20 Agustus 2020)
Panel untuk mengatur getaran perangkat
Web Vibration API (8 Agustus 2020)
Permainan tambah-tambahan yang biasanya dimainkan dengan jari itu
Addition Game (29 September 2014)

Program Kecil-kecilan

Berikut program kecil-kecilan (karena memang ukurannya kecil) yang pernah kubuat. Program ini kubuat sebagai tantangan kepada diri sendiri untuk membuat karya dengan kode JavaScript sekecil mungkin. Konsep ini terinspirasi dari kompetisi code-golfing JS1k dan JS1024 yang keduanya rutin kuikuti sejak tahun 2015, yaitu membuat demo JavaScript berukuran 1.024 bita ke bawah.

JS1024

JS1024 adalah kelanjutan dari JS1k setelah penyelenggara JS1k tidak lagi melanjutkan kompetisi tahunan itu.

Persegi berisi 100 emoji campuran tanda centang dan tanda silang dengan penggeser di bawahnya
The Last Call (2025)
25 wadah berisi banyak warna campuran dan wadah di tengah kosong
Color Sorting (2024)
Roda undian
Wheel of Fortune (2023)
Diagram garis-garis cahaya lensa cekung
Concave Mirror (2022)
Ilustrasi ilalang yang dibuat secara prosedural
Beauty of Plants (2021)
Tampilan dari kutub planet yang memperlihatkan garis edar roket beserta targetnya
Simple Rocket Simulation (2020)

JS1k

JS1k adalah kompetisi code-golfing pertama yang kuikuti.

Grafik yang berisi medan persamaan diferensial biasa (PDB) beserta kurva yang dihasilkan dari medan tersebut
1st Order ODE Graph (2019)
Layar penuh berisi pola=pola geometris warna-warni
Harmony (2017)
Permainan mencocokkan nomor atom dengan lambang unsur
Match Atomic Number (2016)
Permainan dakon digital dengan dua baris dan dua lumbung
Dakon (2015)

Sebelum Ikut Kompetisi

Aku baru mengetahui tentang kompetisi semacam itu setelah acaranya berakhir. Jadi, sambil menunggu tahun depan, aku mencoba membuat beberapa demo.

Diagram garis-garis cahaya lensa cekung
Negative Lens (20 Juni 2014)
Diagram garis-garis cahaya lensa cembung
Positive Lens (15 Juni 2014)
Permukaan air yang berisi gelombang air melingkar dan tetes air yang sedang jatuh
Waterdrop (2014)
Mobil yang dilambangkan dengan kotak berada pada jalan tiga lajur berhadapan dengan mobil-mobil lain
Drive a Car (2014)