Login Daftar - Gratis

PROLOG

Di publikasikan 15 Jan 2026 oleh Delia Mawar

Hari menjelang sore, Natiqa yang masih bergulet manja di kasur, tertawa melihat ponselnya, sore ini Natiqa menghabiskan sisa harinya dengan bergelut di kasurnya. Handphonenya berdering, balasan dari sepupunya membuat Natiqa terdiam dengan perasaan sedikit hampa. Kalisha Gak dong Wkwkwk Anda Kali aja Wkwkw Chat itu sudah ada 2 jam yang lalu, tapi baru dibalas sekarang, positif thinking aja, mungkin lagi sibuk mempersiapkan diri buat acara bazar. Natiqa tersentak karena di panggil oleh ibunya dengan suara yang sangat nyaring, dengan sigap Natiqa bangun lalu turun ke bawah. “IYA BUN!” balas Natiqa, Anita, Ibunda Natiqa, menatap putrinya dengan berkacak pinggang, lalu mengulurkan tangannya. “Hpnya udahan, hp aja terus, tadikan bunda udah minta tolong untuk nguciin piring, kenapa hanya piring kaca yang di bersihin?!” ucap Anita agak ngegas, Natiqa memasang cengir lalu meminta maaf, Anita menatap sinis lalu mengambil hp putrinya lalu bermain bersama adik Natiqa, Naim. Natiqa langsung ke dapur, mencuci lalu membereskan cucian yang sudah bersih, sambil bersenandung Natiqa membereskan mainan adiknya, lalu mengambil handuk untuk mandi. “Bun, kalau lagi mens boleh keramas gak sih?” tanya Natiqa, Anita yang sedang bermain dengan Naim, menoleh lalu terdiam sambil dahinya mengerut. “Kayaknya sih boleh, tapi gak tahu deh, coba tanya papa nanti” jawab Anita, Natiqa mengangguk lalu masuk ke kamar mandi, padahal rencananya hari ini dia ingin membersihkan dirinya dengan keramas, tapi baru ingat kalau hari ini dia lagi kedatangan tamu bulanan. Setelah melakukan ritual mandi, Natiqa menaruh handuk lalu masuk ke kamar ibunya, “ bun, nanti tolongin pesen novel aku ya bun!” ucap Natiqa, Anita menatap sambil berdecak, “ iya, insyaallah!” balas Anita, Natiqa bersorak lalu naik ke atas. Setelah berganti baju, Natiqa menatap kumpulan buku novelnya, tak sengaja setelah menaruh baju yang tidak jadi dia pakai, matanya tertuju pada satu cardigan warna biru. Natiqa terdiam, cardigan biru ini, sama dengan cardigan yang selalu di pakai dia dan 2 sepupunya. Mereka membelinya kembar, dulu, mereka selalu menelfon bersama setiap malam minggu. Natiqa menghela napas, entah mengapa dia merindukan sepupunya yang tinggal jauh di maluku, padahal sebelum semua berantakan, dia dan sepupunya selalu menghabiskan waktu dengan cerita. Natiqa tahu ini hanya perasaan dan prasangka buruknya, tapi sejak semua itu, sepupunya perlahan mulai menjauh darinya, Natiqa hanya berpikir positif, kaau sepupunya punya kesibukan sendiri. Entah mengapa mengingat kejadian itu, Natiqa jadi kesal, kesal setengah mati, apalagi mendengar kemaren orang yang telah mengadu domba dirinya dan keluarga besarnya, menelfon ibunya dengan tenang tanpa adanya rasa bersalah. Kekesalan Natiqa semakin memenuhi dadanya, ternyata selain mengadu domba, orang itu juga mau menguasai posisinya yang merupakan anak yang hanya dianggap di keluarganya ini. Natiqa menghela napas, harusnya dia tak meresakan kekesalan sedalam ini, tapi dia rasa ini sudah keterlaluan, dia sudah lama tidak mengabari omanya. Natiqa ingin sekali mengabari omanya, tapi karena kejadian itu, dia tak ingin oma-nya menanyakan hal itu pada dirinya, dia tak siap di beri pertanyaan yang menyakitkan dari keluarga besarnya, dia hanya ingin menceritakan hari-harinya dengan oma yang sangat dia sayangi. “Andai kejadian itu gak ada, lagi itu orang siapa sih? udah tahu bukan kandung, gak tahu diri, gak ingat apa, 6 tahun hidup di jogja, malah ngadu domba kayak gini!” gumam Natiqa dongkol, dengan perasaan kesal, Natiqa turun ke bawah, mengambil nasi dan menyiapkan makannya, melihat sayur di meja, bayangannya ke ingat status WA tantenya, dimana dia memajang status tentang mereka yang berlibur ke pantai. Natiqa menghela napas, kenapa dia jadi memikirkan tentang keluarganya yang ada di maluku, apa karena dia terlalu merindukan keluarganya di maluku? Apa karena dia merindukan sepupunya yang begitu dia sayangi?. Natiqa tak ingin membuang waktu, dengan cepat dia menuju kamar ibunya dan menanyakan dimana letak telur berada, “ bun! Telur di sebelah mana ya?” tanya Natiqa, Anita menjawab, “ Di bawah, dekat panci! Kamu tolong sekalian nge-plok telur buat bunda dan adek!” balas Anita, Natiqa meng-iyakan, Natiqa memasak sambil menahan kesal, entah mengapa dia yakin, malam ini sepupunya bakal menelfon bareng, dan lagi-lagi, dia tak di ajak. “Kamu kenapa sih? apa karena ini bawaan haid? Jadinya pengen marah? Udah sabar, kamu udah hebat bertahan sampai sekarang” gumam Natiqa Benar, Natiqa sudah sangat hebat karena mau bertahan sampai saat ini ~~~~~~~~~~~~~ Assalamualaikum! YUHUU~ Kangen? udah tepati janjikan?  Bukan tanggal 16 gess~ tapi tangga 15, soalnya besok isra miraj, mari menghargai Ini baru prolog, kemungkinan hari sabtu bakal masuk chapter satunya... Stay tune yaw babe! HAPPY READING~ ig: Delia Mawar @delliaaac Wattpad : Delia Mawar @delliaaac Bye!

Tears Drop (Air Mata Sedih, Ketawa dan Bahagia)

Bab 4 Ramuan Keabadian

Di publikasikan 09 Jan 2026 oleh Bengkoang

“Apa Guru berhasil?” Penghujung Musim Panas 219 Shirena—hari di mana semua masalah dimulai, kalau boleh kusebut di awal. Dengar, jika pertemuan dengan si flamboyan sudah menyebalkan sampai aku harus menyewa kamar di sebuah penginapan dekat gerbang kota maka ini biangnya. Biangnya, bi-ang-nya. Argh! “Guru Tua masih di ruang sebelah, tapi kurasa sebentar lagi kita semua akan tahu—ah, ya, Tiga! Kudengar kau kedatangan tamu penting kemarin ….” Kakak Ketiga menoleh padaku sebelum merespons pertanyaan Kakak Kedua. “Ini soal Penasihat Junior Kiri, ‘kan …?” bisiknya, balik tanya sebelum lanjut berkata, “kalau benar itu bukan kemarin, tapi bulan lalu. Kak, kau lebih tahu dia daripada siapa pun di antara kita. Beri tahu adikmu prospek kalau bekerja padanya.” Saudara keduaku selanjutnya melongokku yang ikut mendengarkan mereka sebelah Kakak Ketiga, menoleh ke Kakak Pertama sebentar, lalu celingak-celinguk memeriksa sekitar sekilas baru kemudian menjawab. “Orang ini sebanding sama Prama Trara tambah delapan adik-adiknya—” “Masa?!” timpal Kakak Ketiga setengah memekik, menarik mata semua orang ke arah kami seketika. Aku tahu ia sengaja. Sengaja ingin mengakhiri obrolan pelan tersebut …. *** Ketika Guru Tua selesai dengan ramuan ajaib beliau, suasana di ruangan lekas berubah senyap. Tidak sekaligus memang, tapi jelas kurasakan bahwa tekanan di kamar pribadi Bate kala itu pelan-pelan mulai menegang. Bahkan, kulihat ada orang telan ludah begitu dayang pembawa nampan dan botol ramuan Guru Tua di atasnya melintas ke hadapan kami. Bisa kalian bayangkan segenting apa situasi di sana, bukan? “I-ni ramuan keabadian?” Akh! Aku tepuk jidat. Pertanyaan Prama Trara barusan merusak suasana. Aku, saudara-saudara seperguruanku, dengan semua orang yang kutahu bukan pejabat kelas teri di sana sedang harap-harap cemas mau lihat bagaimana ramuan ajaib penambah usia bekerja dan dia malah tanya hal remeh begitu—dengan muka polos tanpa dosa pula. Argh! Kalau saja dirinya bukan putra mahkota Serindi …. “Bawahan tidak berani mengakui ini ramuan abadi,” jawab Guru Tua, terdengar rendah hati. “Hanya herbal penambah vitalitas biasa, Trara.” “Hem. Kukira Anda diundang untuk membuat ramuan keabadian.” Sialan! Jelas itu ramuan keabadian, Oi, Trara! Guruku cuma merendah supaya gak dikira enggak punya sopan santun di depan kalian, elah—seandainya suara hatiku ini terdengar pada waktu itu. “Kurasa diriku harus berhenti bercanda,” lanjut sang putra mahkota, ia mendekat ke dayang lantas mengambil botol ramuan tersebut. “Penasihat Kanan Wu, empat muridmu di sana akan menjadi abdi istana menggantikan dirimu setelah ini ….” Guruku tidak menjawab, beliau paham setelah lulus kami tak lagi terikat oleh apa pun dan bebas memilih jalan masing-masing. Guru Tua hanya menoleh ke kanan sekali kemudian mundur ke barisan hadirin sampai …. “A-apa yang baru saja kau berikan pada ayahandaku?!” Kemalangan itu pun terjadi. *** Kabar mengenai ramuan ‘ajaib’ Guru Besar Wu selanjutnya tersebar ke seluruh penjuru negeri, hampir tidak ada seorang pun di Serindi yang tak tahu tentang kontribusi terakhir sang pensihat kanan terhadap negerinya pada tahun tersebut. Bahkan, tidaklah seorang petani melintas ke depan gerbang sekolah kami kecuali ia akan berhenti sejenak ‘tuk menyampaikan ‘rasa hormat’ sebelum kemudian pergi. Seheboh itu. Nahasnya, kontribusi pemungkas ini bernada negatif. “Bagus. Belum apa-apa saja kita sudah masuk penjara ….” Kakak Ketiga dan Kakak Pertama menoleh dengar celetuk Kakak Kedua. “Adik! Jaga mulutmu, kau gak boleh melimpahkan kesalahan kepada Guru begi—” “Aku gak menyalahkan Guru,” balas saudara keduaku, melipat tangan dan buang muka. “Beliau hanya ….” Sementara Kakak Kedua dan Pertama bertengkar, saudara ketigaku mendekat ke pembatas sel lalu memegangi jeruji. Entah bagaimana wajahnya ketika itu, tetapi dari punggungnya yang gemetar kutahu ia tengah bersedih meratapi guru kami di seberang sana. Beliau gagal meramu ramuan keabadian yang ia kejar separuh hidup—aku tak tahu bagaimana cara menuliskan kondisi saat itu, tepatnya sesedih apa Guru Tua-kami harus kugambarkan. Sejak Bate tiba-tiba saja meronta dengan mata merah dan rambut memutih setelah menenggak ramuan beliau, Guru Tua sama sekali tak mengatakan apa pun bahkan ketika diseret paksa usai menyungkur di depan ranjang sang raja kota sementara diriku tahu dirinya sudah mengusahakan yang terbaik. Ramuan keabadian tadi mungkin salah, tetapi bukankah mereka juga ceroboh sebab langsung memberikannya kepada Bate tanpa diujikan pada juru cecap bak biasanya hidangan ‘tuk dirinya disajikan. Jika argumen ini keliru, lantas bagaimana caraku membela beliau? Dosa karena meracuni seorang bate boleh jadi memang besar, tetapi tidakkah peristiwa hari itu terlalu terburu-buru? Bagaimana mungkin seluruh pejabat ternama diundang hanya ‘tuk melihat empu kota mereka kejang-kejang di ranjangnya …. *** “Kalian sudah lihat bagaimana guru kalian sebelum ini, bukan?” Sekian hari kemudian aku dengan saudara-saudaraku dipanggil menghadap istana, setelah dibiarkan kelaparan di penjara pengap nan gelap di bawah tanah—tolong jangan tanya apa saja yang kulalui selama di penjara, jujur aku tak ingin membahasnya, pokoknya itu masuk pengalaman termenyebalkan sebelum tahun kelulusanku. Borgol di lengan dengan kaki kami berempat dilepas. Dua dari kami langsung berlutut, tapi aku dengan saudara ketiga memilih buat tetap mendongak. “Kudengar murid-murid Cermin Rembulan terkenal berpendirian teguh dan betul-betul memegang prinsip, sepertinya kabar ini bukan bualan. Boleh kutahu kenapa kalian tidak berlutut sebagaimana dua saudara—” “Siapa Anda ingin kami berlutut?” Aku tahu jawaban begitu secara teknis sama saja dengan cari mati di situasi kami saat itu, tapi gak tahu kenapa balasan saudara ketigaku ini justru membuatku merasa bangga. Apalagi setelah dirinya terbukti tak gentar buat mendebat Trara dengan bilang …. “Kenapa Anda penjarakan pula orang-orang tak bersalah dari sekolah kami? Guru tuaku mungkin salah sebab ramuan beliau tidak bekerja sebagaimana mestinya, tetapi bukankah mereka semua tak tahu apa-apa.” “Kerabat-kerabat gurumu harus menanggung kemarahan—” “Atas dasar apa?” gugat saudara ketigaku, “bukankah Bate di belakang Anda sekarang sudah sangat jauh lebih baik ketimbang saat sebelum meminum ramuan guru kami, dan meski ramuan beliau dibilang ‘gagal’ anugerah apa yang lebih besar daripada kesehatan ayahanda Trara sendiri yang kini terbukti telah pulih?” Kalian tahu, aku masih ingat semerah apa muka Prama Trara setelah menoleh ayahandanya di ranjang belakang dirinya lima tahun lalu itu. Hampir menyaingi merahnya jawer ayam, dan lebih gelap. Sekesal itulah dia. Terus juga. Meski saudara seperguruanku tidak mengatakannya blak-blakan, ketimbang dipenjara seharusnya Guru Tua diberi hadiah dengan kenyataan Bate sehat kembali tersebut. Ini fakta lapangan, mau bilang apa? Para hadirin di sana bukan orang bodoh yang takkan tahu perbedaan si raja kota sebelum dan sesudah meneggak ramuan gagal Guru Tua-kami. Namun, memang dasarnya harus ada di posisi terzalimi, waktu itu aku dengan saudara-saudaraku dijebloskan kembali ke penjara bawah tanah lain. Bukan lagi satu penjara bersama Guru Tua. Dan, kalian tahu apa yang terjadi berikutnya? Dalam keadaan lapar tersebut, satu per satu mulai Kakak Pertama sampai diriku terakhir, didatangi oleh utusan yang niatnya ‘tuk membujuk kami supaya mau berdamai dengan keadaan. Dan tak berhenti di situ, ia bahkan menawarkan cara supaya aku atau saudara-saudara seperguruanku bisa memulihkan nama baik Guru Tua. Pertanyaan, adakah yang tidak tergiur iming-iming model begitu di situasi krisis macam ini? Ada. Kakak ketigaku, kalau harus kubilang sekarang. Soalnya dia luluh pada tawaran ketiga, yaitu kesempatan ‘tuk menghapus label buruk sekolah kami sekaligus melepaskan mereka dari jerat ‘amarah’ tak berdasar Prama Trara sebelumnya—jelas ia menyerah bukan karena mau berdamai dengan penguasa zalim, tapi demi membela mereka-mereka yang tidak bersalah. ***

Catatan Keempat: Serindi

Bab 3 Penasihat Kiri Runibi

Di publikasikan 09 Jan 2026 oleh Bengkoang

“Hoaaam ….” Selain Balai Pustaka Burung Api di Istana Bate Kanan, area jelajahku selama Guru Tua menyiapkan ramuan keabadian untuk Bate meliputi seluruh distrik di Ibu Kota—termasuk sekian mil tanah lapang di luar tembok-temboknya. Keleluasaan yang sangat besar sebetulnya. Akan tetapi, ke mana pun diriku pergi, gangguan mata kadang selalu berhasil membuntuti. “Kau murid keempat Penasihat Kanan Wu, bukan?” Model laki-laki berjubah gebyar dengan tambahan pretelan-pretalan lain yang tidak kalah mengilap ini, tiba-tiba saja muncul sehabis mulutku menguap. Sang Penasihat Militer Junior Kiri, Runibi. Alasanku menjauhkan diri dari lingkungan istana di luar jam kerja …. “Siapa sangka dari empat murid beliau, dirimulah yang mewarisi kesederhanaan Guru Besar Wu ….” *** Dua minggu sebelumnya …. “Inikah murid-murid Penasihat Kanan Wu yang sangat terkenal itu?” Ketika aku dan saudara-saudaraku pertama kali bertemu dengan Penasihat Junior Kiri di halaman Istana Bate Tengah, sewaktu ia bersama orang-orangnya baru saja kembali seusai menghadiri pertemuan di Astaka Puncak Naga—balai agungnya Istana Bate, tempat sang raja kota menjalankan fungsi kekuasaan. “Diriku merasa terhormat. Kalian orang-orang beruntung yang membuat semua orang iri …,” ujarnya begitu menyapa kami, “sebab dapat berguru kepada empunya empu, dan tak seorang pun di Serindi ini belum pernah mendengar nama besar Penasihat Wu di masa jaya beliau.” Benar-benar manis. Sanjungan dengan puji-pujiannya terhadap Guru Tua sungguh sangat membuai. Seandainya saja saat itu diriku bukan jenis yang muak pada penjilat, mungkin aku pun bakal tergoda buat menjadikan orang ini karib. Apalagi ‘kemurahan hati’ berupa ajakan bergabung yang ia ucapkan terang-terangan besama ambisi besar fraksi Selir Bonena terhadap Serindi Raya di masa depan pada perjumpaan tersebut nyatanya juga merupakan alasan dua saudara seperguruanku mati-matian membela dirinya saat konflik kekuasaan istana di kemudian hari. Sedih, tetapi itulah yang terjadi. “Tolong jangan bandingkan masakan koki di sini dengan hidangan istana ….” Sekarang, aku lebih penasaran kenapa lelaki flamboyan satu di depanku mau repot-repot berkunjung kemari. “Barang kali selera Anda takkan terpuaskan di tempatku, Penasihat Kiri.” “Penasihat Kiri?” Aku tersenyum. Senyuman yang, kalian tahu, tidak punya maksud apa-apa sebetulnya. Akan tetapi, barang kali, telah diartikan lain oleh si pentolan Selir Bonena karena sebelumnya diriku malah memanggil dia dengan jabatan satu tingkat di atas jabatannya pada saat itu. Penasihat Kiri. “Tolong jangan salah paham,” sambungku, hendak menjelaskan. “Bukan maksudku untuk—” “Ahaha!” Yang sialnya, takkan pernah sempat sebab bulu-bulu burung dari karung kadung melambung. “Aku mengerti! Aku mengerti! Kita tidak perlu saling menjelaskan apa-apa di sini, Saudara Keempat. Jika saudara-saudaramu saja sangat jeli ‘tuk dapat melihat bagaimana gigihnya fraksi oposisi menjaga Yang Mulia agar tetap di jalur yang semestinya, maka mustahil adik mereka tidak mampu melihat hal serupa!” Asem! Ini yang terlintas di kepalaku kala itu. Aku dikira memihak si flamboyan padahal jelas-jelas diriku keluar dari lingkungan istana biar gak melihat batang hidungnya, ‘kan? *** Setelah diriku, orang nomor dua di fraksi Selir Bonena tersebut mendatangi Kakak Ketiga. Masih dengan niat yang sama, hendak memastikan apakah kami ‘layak’ untuk bernaung di bawah sayap mereka atau tidak serta apa masih adakah celah buat negosiasi seandainya fakta lapangan berbeda daripada harapan. Segigih itu orang bernama Runibi dari fraksi oposisi …. “Aku baru tahu dia juga datang padamu, Empat.” “Kak, kau gak bakal percaya kalau kubilang laki-laki ini tadi bilang dia mau memberiku posisi di kementerian sumber daya sama pengelola urusan wilayah.” “Gila!” Saudara ketigaku terbelalak. “Dia bilang begitu?” “Nih.” Kutoel daun telinga kananku di depannya. “Masih panas.” “Hem. Waktu ke tempatku proposalnya juga persis sama apa yang dia janjikan kepadamu, aku bakal dijadikan salah satu orang terdekatnya lalu dijaminkan posisi prestise di kubu mereka. Basi.” “Terus kau bilang apa, Kak?” tanyaku, penasaran jawaban kakak seperguruanku satu itu. “Gak langsung nolak juga, ‘kan? Soalnya si cantik ini pasti enggak bakal mau langsung pu—” Kalian tahu respons saudara ketigaku kayak apa? Ia menjuling. “Kalau kutolak mentah-mentah,” lanjutnya sembari menggoyang-goyangkan badan mulai dari kepala, leher, pundak hingga ke pinggang dan lutut bolak-balik. “Bakal dia kirim orang lain yang lebih bagus cara bicaranya buat membujukku. Terus kalau kuterima, artinya aku berkhianat. Hatiku mana bisa tahan ….” Jujur, aku geli sendiri lihat dirinya begini. “Jadi, Empaaat.” Ia melihatku. “Kujual hari kelulusan kita yang gak tahu kapan datang itu ke si cantikmu satu ini. Kubilang, ‘Semua murid Guru takkan berani memberi jawaban langsung sebab beliau pernah mewanti-wanti ‘tuk jangan pernah menjanjikan apa pun kepada seseorang sebelum penutup wajah kami diangkat.’” Kakak Ketiga lanjut tersenyum—gak kelihatan, sih. Namun, dari bunyi kekehnya kuyakin ia lagi senyum geli. “Terus kututup omonganku tadi itu pakai ini, ‘Kata-kata seorang pria adalah emas, betapa pun sepelenya tetap akan bernilai dan harus dapat dipegang.’” Waw! Aku bertepuk tangan—dan, saat itu giliranku yang menggeleng karena terpukau pada jawaban barusan. “Kau betulan bilang gitu, Kak?” “Cuma.” Saudara ketigaku menekuk muka, telunjuknya pun ikut ia tekuk sambil didekatkan ke dagu macam tengah memikirkan sesuatu. “Jawabanku tadi masih ngambang, Empat. Aku yakin orang ini masih—” “Bakal mengirim orang lain buat mendorongmu ke genggamannyakah?” “Benar. Bunga yang cantik selalu punya duri dan hewan-hewan yang memesona selalu punya racun. Jika dia berani mendekati kita maka bukan gak mungkin kalau dirinya juga sudah menyiapkan penawar, ‘kan?” Setuju. Kuakui diriku lengah, sudah merasa lega hanya gegara tahu lelaki flamboyan itu takkan menggangguku sampai hari kelulusan kami tiba. Padahal jelas-jelas ia baru saja mendekati murid-murid orang yang notabene merupakan lawan politiknya di tengah hari bolong …. “Ngomong-ngomong, Kak.” Mari bicarakan hal lain. “Peta sama persiapan ekspedisi buat dua cebakan yang kubilang padamu kemarin sudah beres ….” *** Ada hal menarik yang membekas sekaligus menggelitik terkait pertemuan dengan laki-laki flamboyan satu ini. Yakni fakta bahwa baik diriku maupun saudara-saudaraku: Kakak Ketiga, Kedua dan Kakak Pertama, sama-sama atau kompak mengaku belum pernah memberi tahu Guru Tua soal Penasihat Militer Junior Kiri Runibi sejak perjumpaan pertama di Astaka Puncak Naga Istana Bate Tengah hingga ke pertemuan pada hari itu. Namun, dari gelagat yang kutangkap pada beliau di beberapa kesempatan, kurasa Guru Tua tahu—ini satu. Yang kedua, mengenai latar belakang orang itu. Dulu, aku hanya menduga bila dia mungkin kerabat kerajaan atau seorang sarjana berbakat dari kalangan tersebut yang karena prestasi serta jasa-jasanya lantas naik ke puncak kejayaan dan mendapat jabatan penasihat junior kiri. Tahunya si flamboyan ini anak selir. Eh?! Dia anak ‘tidak sah’ Bate dari seorang penari di rumah bordil, dan dengan latar belakang itu dirinya menempel pada Selir Bonena kemudian menjelma jadi benalu bagi putra-putri ‘sah’ sang raja kota. Tiga. Dengan ambisi sejelas siang hari tambah latar belakang begitu orang ini masih berhasil menarik dua dari empat murid terbaik lawan politiknya agar berbelot bahkan setelah kebijakan-kebijakan fraksi mereka terbukti sewenang-wenang dan cuma menguntunkan segelintir orang. Cek! Menyebalkan …. ***

Catatan Keempat: Serindi

Bab 2 Separuh Hidup Guru

Di publikasikan 09 Jan 2026 oleh Bengkoang

Dulu, sebelum mendaftar ke sekolah. Aku memang pernah dengar bila Guru Besar Wu atau kepala sekolah kami alias Guru Tua-ku punya segudang prestasi luar biasa di masa muda. Bahkan, kakekku secara tulus memuji bekas penasihat kanan tersebut dengan bilang beliau jenis orang yang diakui genius oleh para genius pada masanya—sewaktu membawaku kemari. Namun, bidang yang kakekku sebut tempat berjaya beliau kala itu ialah falak atau astronomi dengan ilmu ukur ruang. Dua bidang yang setengah dekade ini terus kuserap dan kutekuni setengah mati dari Guru Tua. Bukan alkimia klasik sama dunia obat-obatan ajaib macam ramuan keabadian. Jadi aku kaget pas tahu beliau ‘diundang’ ke istana gegara ramuan terkutuk satu itu …. “Penasihat Kanan Wu tibaaa ….” *** Bulan berikutnya, aku dan saudara-saudaraku menginjakkan kaki di atas karpet istana buat pertama kali. Sebagian dari kami memang punya niat ‘tuk mengabdi pada negara, tetapi siapa sangka apabila kesempatan itu ternyata datang jauh lebih cepat daripada dugaan semua orang. Aku, juga saudara-saudaraku, segera diperintah menyalin sekalian menerjemahkan banyak dokumen tua di Balai Pustaka Burung Api—tempat di mana diriku tidak sengaja menemukan catatan perjalanan semasa muda Guru Tua. Kami diberi pangkat pustakawan sementara istana selama beberapa minggu sampai Guru Tua berhasil meramu ramuan ajaib tadi dan bebas memakai fasilitas Istana Kanan sesuka hati, hingga derajat dua dari ketiga saudaraku boleh mengganggu kegiatan di barak, keluar masuk gudang dengan lumbung, juga lalu-lalang sekitaran area-area sensitif lain guna memuluskan tugas tersebut. “Kau belum selesai, Empat?” “Menurut, El?” Aku menjuling pas Saudara Ketiga menggangguku. Berkas di meja masih segunung, tapi dia dengan entengnya tanya apakah diriku sudah selesai apa belum padahal matanya sama sekali tidak rabun. Sebal. “Aku cuma tanya,” dalihnya, lekas duduk sebelahku terus topang dagu memainkan batang pena dengan wadah tinta seperti biasa. “Gak usah melotot begitu.” “Kak, kuyakin berkas yang kauurus di ruang sebelah juga masih bejibun bin segunung. Kenapa masih sempat-sempatnya buat main kemari terus menggangguku, sih?” “Aku bosan.” Ya. Bosan. Itulah andalan yang selalu kudengar satu minggu ini. “Bosan? Aku juga bosan kau ganggu terus tiap hari, Kakaaak,” gemasku lantas coba abai pada kehadiran dirinya ketika itu, “huh. Buku-buku di sini sangat tua, aku lupa berapa kamus yang kupinjam ke sarjana di sebelah buat hasil rangkuman setipis di depanmu. Kak, daripada bengong, kenapa gak bantu adikmu ini—” “Aku gak kemari buat pindah kerja, wei!” balas saudara ketigaku yang, kalian tahu, kala itu malah menggelayut ria di pinggiran meja, “cuma, Empat, biar kukasih kausaran sedikit sebagai orang yang lebih tua.” “Apa?” Aku menoleh. Saudara ketigaku kemudian berkata, “Terlalu bekerja keras begini juga gak bagus, santailah sedikit. Kita punya banyak waktu di sini. Jadi, salin saja semampumu dan jangan terbebani sama tugas Guru Tua. Kau paham?” Hem. Setuju. Bekerja terlalu keras sampai lupa hal-hal lain biasanya memang malah berakhir dengan gangguan kesehatan—mental maupun fisik. Akan tetapi, siapa bilang diriku bekerja keras? Alasan kenapa aku gak bisa sesantai mereka akhir-akhir ini itu catatan perjalanan Guru Tua yang kusalin diam-diam sejak tiga hari lalu. Bukan tumpukan kertas tugas yang masih menggunung sebelah sana …. *** “Kakak Tua, Kakak Kedua.” Sebagaimana kalian tahu, keseharian di Istana Bate Kanan berjalan monoton. Maksudku bagi diriku, soalnya—entahlah, aku merasa—Guru Tua pun mundur dari jabatan penasihat kanan gegara itu. Rasa bosan. Jadi, sementara saudara-saudara seperguruanku berkeliaran di istana dan Guru Tua-kami diskusi bersama para pejabat setiap hari, aku minta izin ‘tuk menyewa kamar di sebuah penginapan tak jauh dari gerbang kota. Biar lebih leluasa. Kenapa? Sebab selain menyalin naskah klasik ada hal yang juga kuhindari di tempat ini. “Kalian lembur lagi?” “Cuma Adik Keempat. Mana ada aku lembur, Kak. Eh, ya, kudengar Penasihat Junior Kiri mengundang para penari ke istana buat jamuan nanti malam.” Itu dia, yang kuhindari di istana ini, sang penasihat junior kiri. Kalian mungkin belum tahu, tetapi dialah aktor utama yang mendalangi perpecahan antara saudara-saudaraku di kemudian hari. Aku juga tidak menduganya. Namun, instingku bilang pria gemulai dengan pakaian gebyar di pertemuan pertama kami tersebut memang berbahaya dan harus kuwaspadai. “Kau telat, Tiga. Nih, baca. Orang itu sudah kirim undangan pada Guru Tua, dan kita disuruh hadir mewakili beliau di Jamuan Ulang Tahun Selir Bonena.” Buat informasi. Peta politik istana saat ini terpolarisasi antara kubu Prama Trara sebagai putra mahkota sekaligus bakal penerus tahta Serindi dengan fraksi jubah kanannya dan Selir Bonena bersama pihak oposisi, dua kekuatan yang selama beberapa waktu ke belakang diam-diam terus melebarkan sayap hingga titik dua-duanya kini sudah bisa saling gempur kapan pun begitu Bate mundur dari tangkup kekuasaan. Dan, macam nama jabatan yang ia pangku, Penasihat Militer Junior Kiri atau Penasihat Junior Kiri merupakan salah satu pentolan Selir Bonena dari pihak oposisi. Yang, secara teknis, juga akan menjadi lawan politik Guru Tua-kami seandainya beliau masih memegang jabatan penasihat kanan hingga sekarang. Hanya. Berhubung Guru Tua telah lama menarik diri dari hiruk pikuk istana lalu murid-murid beliau di sini sama sekali masih hijau serta belum terikat oleh fraksi mana-mana, orang ini tengah mencoba merayu kami. Sialnya tiga tahun mendatang dia berhasil mendapatkan dua dari empat incarannya …. *** “Kau mau datang, Kak?” “Maksudmu ke acara Selir Bonena?” Aku mengangguk, menegaskan pertanyaanku. “Kakak Tua sama Kakak Kedua sudah mewakili Guru, kita gak perlu ikut-ikutan ….” Selain diriku, Kakak Ketiga juga menghindari fraksi oposisi Selir Bonena. Bedanya, jika diriku dipandu insting, dirinya lebih rasional lantaran keluarganya memang berasal dari orang-orang yang setelah hari kelulusan nanti ketahuan sebagai korban dari kebijakan-kebijakan politik mereka. Aku belum bisa mengulasnya lebih jauh sebab aturan sekolah kami …. “Ah, ya, Empat! Kau menginap di istana malam ini?” “Enggak!” Kugelengkan kepala cepat. “Kamarku sudah dibayar penuh sampai musim semi, mana boleh kusia-siakan begitu, ‘kan, Kak?” “Ngomong-ngomong, aku penasaran. Oi, Empat, bagaimana caramu meyakinkan Guru Tua-kita?” “Soal itu ….” Minggu sebelumnya aku menjual bukit hitam yang pernah kami singgahi dua bulan silam. Kubilang pada Guru Tua jika bukit ini punya kandungan tembaga melimpah, cukup ‘tuk jadi cadangan metal kerajaan sampai beberapa tahun ke depan, terus kuyakinkan beliau bahwa cebakan itu juga nanti akan menjadi pembuka bagi prestasi-prestasi sekolah kami di bidang serupa. Tentu dengan tambahan sedikit bumbu penyedap. “Pantas setelah Guru Tua, Prama Trara juga menawarimu orang-orangnya kemarin, Empat.” “Sebenarnya, Kak.” Aku celingak-celinguk. “Cebakan yang kutemukan bukan cuma bukit hitam i—” “Masih ada?!” sela saudara ketigaku terbelalak, ia segera mendekatkan diri buat mendengarkan. “Sialan. Beri tahu aku. Kali ini isinya bukan cuma tembaga, ‘kan?” Sore itu. Kuberi tahu ia dua lokasi cebakan yang memang sudah kuincar sejak lama, bahkan kuajak juga dirinya buat jadi pemodal guna mendanai ekspedisi dan pembukaan tambang di sana sekalian. Kadung basah, pikirku, kenapa tidak kugandeng dia dengan kemampuan marketing luar biasanya ‘tuk mengumpulkan modal. Toh, jika usaha ini berhasil kami berdua sama-sama dapat untung. Gak salah, ‘kan? ***

Catatan Keempat: Serindi

Bab 1 Undangan dari Istana

Di publikasikan 09 Jan 2026 oleh Bengkoang

Musim Gugur 224 Shirena. Ingat baik-baik tanggal ini, sebab dia akan jadi tanda bila kisah yang hendak kutuliskan pada gulungan bambu pemberian guru sekarang telah sampai atau mendekati puncak sekaligus pemungkasnya. Awal kejatuhan Serindi Raya, negara baru yang berani menantang benua, usai menghantam titik balik ketika mapu pertama mereka mengembuskan napas terakhir lalu pengganti-pengganti dirinya berebut tahta. Juga cerita tentang bagaimana diriku bersama saudara-saudaraku melambungkan nama kami di sisi mereka …. *** “Empaaat!” Lima tahun lalu, 219 Shirena. Aku masih seorang murid di satu sekolah yang—oleh tradisi, menjadi—terlarang ‘tuk kusebutkan apa namanya hingga hari kelulusan tiba. Bahkan, berkat adat itu pula, nama beserta penampilan asliku juga ikut dikaburkan sementara ketika berada di muka umum. Merepotkan memang, tapi mau bagaimana? Beginilah pembuka kisahku bersama saudara-saudara seperguruan di sekolah sebagai bakal saksi hidup atas kelahiran beserta kehancuran suatu negara sejak tahun tersebut …. “Empat, kau malas-malasan lagi, hah?!” Empat, merujuk pada urutan lulus saat ujian masuk sekolah ini setengah dekade silam, yang siapa sangka juga akan jadi panggilan abadiku selama di sini hingga hari kelulusan nanti. Semua orang tahu itu. Karena aku nomor empat, tentu ada tiga lagi murid Guru yang punya gaya berpenampilan mirip bahkan boleh dibilang sama persis. Membawa caping bambu dan tali ke mana-mana, mengenakan kain penutup wajah, terus selalu memakai mantel khas. Serupa seragam, pendeknya begitu. Apa lagi yang belum kuberi tahu? “Saudara-saudaramu sudah pada sibuk di ruang baca. Selalu rajin, disiplin, pekerja keras dan berdedikasi tinggi dalam menuntut ilmu untuk bekal masa depan. Kau tidak ingin belajar dari mereka, Empat?” Ah! Sekolahku kebilang ketat, benar-benar ketat. Seketat apa? Nanti kita bahas lebih jauh …. *** Hal lain, di samping status tidak biasa dengan sekolah ketat, pada tahun tersebut ada satu peristiwa yang secara teknis mengarahkanku dengan saudara-saudara seperguruan di sekolah serta turut andil dalam merancang akan seperti apa kami ketika lulus nanti. Kejadian yang, juga ingin kuakui pada bagian pembuka ini, telah mengubah caraku melihat guru sekaligus kepala sekolah kami di kemudian hari. “Kau mau bolos lagi, Empat?” Aku menoleh, lebih ke menjuling sebetulnya. “Hari ini giliran Guru Tua mengajar falak,” kataku menanggapi Saudara Kedua di atas sana, remaja kurus yang lagi rebahan—kalau gak boleh kusebut menggelayut—di dahan pohon jambu batu sekian langkah dari gerbang Aula Bambu Kuning. “Mana mungkin adikmu bolos buat mata pelajaran yang membuatnya bisa jumawa di depan kalian, Kakak Kedua.” “Hem.” Ia melompat ke tanah. “Kau belum dengar kabar, ya, Empat?” ujarnya yang lanjut putar badan, hendak berlalu dari sana. “Guru Tua kedatangan tamu ….” Kalian tahu, awalnya kukira saudara keduaku yang terkenal tukang kibul hanya bergurau dan lagi menggodaku saja supaya bolos mata pelajaran Guru hari itu. Eh?! Tahunya ia jujur. Hal yang jarang sekali terjadi. Hari tersebut. Guru Besar Wu, Kepala Sekolah, orang yang kami panggil Guru Tua, betulan kedatangan tamu. Orang-orang dengan jubah mewah khas busana para pejabat istana …. *** “Guru Tua.” “Kepala, kami sudah mengemas semua gulungan kosong di gudang belakang seperti pinta Anda ….” Aku, saudara-saudara seperguruanku, dengan beberapa pengajar kepercayaan sekaligus orang-orang dekatnya beliau dikumpulkan hari itu. Sebagian bahkan sudah dapat tugas ‘tuk mengeluarkan pusaka dan benda-benda aneh yang baru pertama kali atau belum pernah kulihat sampai sebelum ini …. “Kita akan menghadap ke Istana,” ujar Guru Tua dengan nada datar juga ekspresi kaku, khas beliau. “Pertama, bawa adik-adikmu memilih keledai di belakang. Sisanya, tolong rapikan semua benda di sana ke gerobak.” Konon, utusan-utusan yang datang hari itu membawa titah ‘tuk mengundang Guru Tua kembali sebagai bekas penasihat kerajaan. Namun, dari benda-benda yang beliau siapkan sebelum berangkat serta desas-desus orang-orang di sekolah, aku dan saudara-saudaraku menebak ada satu atau dua alasan tambahan. Kalian boleh menyebutnya konspirasi. Salah satunya mengenai latar belakang Guru Tua …. “Aku baru tahu Guru Tua punya koleksi herba macam—” “Sama, Empat! Aku juga baru lihat benda-benda aneh yang tadi diseret Guru Do.” “Tiga, Empat, pikiran kalian dangkal kalau cuma heran sama hal-hal remeh begitu. Aku sama Kakak Pertama lebih penasaran soal cerita masa muda Guru Tua daripada kejadian hari ini.” Aku dan saudara ketigaku silih lirik sebelum kompak mendekati Kakak Kedua. “Ma-maksudmu, Kak?” “Soal Guru Tua-kita mencari ramuan keabadian …,” timbrung kakak pertama kami, menoleh sekilas sebelum berhenti tepat di depan kandang ternak. “Kita sampai. Pilih sendiri keledai mana yang kalian bertiga suka terus bawakan si Zefei buatku, sana.” Waktu itu berita tentang penyakit bate atau empu kota kami memang sudah tersebar luas, hampir tak seorang pun di Serindi belum pernah dengar soal kabar ini. Akan tetapi, menghubung-hubungkan hal tersebut dengan pemanggilan Guru Tua masih terlalu serampangan—menurutku. Apalagi dasarnya cuma cocoklogi akibat barang-barang aneh sama legenda masa muda beliau yang belum tentu juga benar, terlalu sepele. Aku gak ingin percaya. Apesnya, dugaan saudara pertama dan keduaku tahun itu rupanya malah terbukti. Kedatangan Guru Tua ke istana nanti memang untuk meramukan obat keabadian yang legendaris …. “Kak Tiga, kalau benar Guru Tua berhasil menemukan resep terkutuk macam omongan Kakak Pertama tadi, kenapa sekolah kita ini cuma mengajarkan ilmu alam terapan macam cara membaca cuaca sama geografi, terus kenapa juga bukan alkimia ajaib ma—” “Apa pun itu, Empat, Guru Tua pasti punya alasan sendiri.” Begitu timpal saudara keduaku, jawaban yang membuatku makin gak mau percaya—malah kian skeptis. “Memang kau gak penasaran, Kak?” tanyaku lagi, mendekat padanya selesai mengikat kekang keledai. “Resep yang lagi kita bahas sekarang ini ramuan keabadian, loh.” “Terus?” “Ramuan panjang umur.” “Kau belum paham kakak kedua kita, Empat ….” Kakak ketigaku juga selesai mengikat keledainya. “Dia itu anak uang, tapi bukan oportunis yang gak berprinsip. Benar, ‘kan, Kak?” “Aku mengikuti Guru Tua lebih lama daripada kalian,” balas saudara keduaku, selesai mengikat kekang Zefei buat Kakak Pertama. “Beliau menyesal pernah mati-matian mencari ramuan gila i—ah! Seingatku kau sendiri juga menyebut ramuan ajaib ini terkutuk tadi, ‘kan, Empat … nih, pegang bentar.” Ya. Aku memang menyebut ramuan di luar nalar itu terkutuk. “Cuma, Kak, aku juga penasaran,” aku Kakak Ketiga sebelahku, “kau sama Kakak Tua jelas sudah tahu duluan soal ramuan ‘gila’ ini, ‘kan?” “Kau mau bilang apa sebenarnya, hah?” “Maksudku.” Ia kemudian mendekat lalu cekak setengah pinggang samping Kakak Kedua yang lagi mengikat keledainya. “Guru Tua pasti pernah menunjukkan benda yang adik keempat kita sebut resep terkutuk tadi itu padamu sama Kakak Pertama, ‘kan?” ***

Catatan Keempat: Serindi

73 - Berita dari Tengah Benua

Di publikasikan 31 Dec 2025 oleh Bengkoang

“Ini dia ….” Sore hari, tanggal 2 Bulan Enam, usai mengubrak-abrik seisi Perpustakaan Belukar Semak. “Aku menemukannya!” Mo Lin menunjukkan gulungan bambu dengan tali pengikat dari pintalan sutra laba-laba kristal. “Guru bilang, beliau mengenali para leluhur transformasi tubuh dari Ekspedisi Tanah Tenggara pertama lewat catatan di kitab ini.” Sebuah benda yang, siapa sangka, akan menjadi penutup catatanku di seratus milenium sepeninggal Letta. Ya, siapa sangka. Sejak pindah ke Kauro kemudian menikah, diriku ternyata kembali terseret ke dalam urusan-urusan Benua yang semula tak mau lagi kucampuri. Huh. Menjadi milisi, mengungsi, bergabung dengan sekte bela diri, ikut menjelajahi reruntuhan tua, jadi penyintas seorang diri, lari ke rumah lama, mendaftar ke serikat dan kembali jadi milisi. Semua mengalir menuju arah yang tak pernah kuperkirakan …. *** “Apa yang kau lakukan padaku, Junior?!” Begitu tanya Saudara Seperguruan Qin usai menelan pil penghalang lapis gandaku sesaat lalu, ketika ia baru saja menjadi pertapa ranah pembaruan aura yang legendaris tanpa dirinya sadari. Tengah hari, tanggal 2 Bulan Enam. “Simpan pertanyaanmu buat nanti ….” Ngomong-ngomong, ketimbang saudara seperguruanku yang masih celingak-celinguk di sana, ketika itu aku punya hal yang jauh lebih penting buat diurus. Ya. Jauh lebih penting. “Senior, bantu aku menenangkan mereka.” Yakni murid-murid Belukar Semak yang masih melongo sejak si pemuda plontos bangun dari semedi …. “Apa—hah?! Tunggu-tunggu-tunggu, kenapa … kenapa Anda semua di sini, Tetua?” “Tetua Luar.” Salah seorang dari mereka keluar dari barisan. “Maaf mengganggu semedi Anda, kami tak bisa mencegah orang ini menerobos kemari. Kami juga tidak tahu bila dirinya ….” Kulipat tanganku mendengarkan mereka. “Jadi mohon Tetua memaklumi.” “Dia?” Senior Qin menoleh. “Ahaha, aku yang harusya minta maaf, Tetua. Dia itu juniorku, dirinya memang selalu bersemangat. Mohon ja—” “Oh, ayolah.” Dan diriku mulai gemas. “Kupikir dirimu akan langsung menyuruh mereka pergi supaya kita bisa lebih leluasa, Senior? Aku gak punya waktu banyak, tolong beri kami ruang sebentar. Tetua.” Melihat bagaimana pemuda plontos sebelahku menembus pembaruan aura kurang dari sepuluh detik setelah menelan pil buatanku, para murid yang selama beberapa hari ini menjamuku dengan baik tadi pun mundur dua langkah. Namun, hanya sejauh itu. Tidak lekas berbalik dan pergi. “Anda terlalu merendah, Tetua.” Tetua Mo, bahkan, malah tidak bergerak sama sekali. “Jika kami tahu Anda datang untuk membantu Tetua Luar menerobos ranah lebih awal, murid-murid yang tak kompeten ini takkan berani menghalangi.” Aku menoleh, lalu Senior Qin menggeleng menanggapiku. “Hem. Lupakan saja, Tetua. Tolong segera tinggalkan kami, ya, boleh?” *** Begitu mereka pergi …. “Seniooor!” “Ja-jangan coba-coba memelukku!” “Eh?!” Sontak kuhentikan gerakan pas si pemuda plontos jaga jarak. “Kenapa?” Kalian tahu, julingannya kala itu tidak kumengerti. “Oh! Aku paham.” Namun, pas ingat statusnya sekarang kurasa aku tahu. “Kau sudah tahu rasanya memeluk wanita, jadi enggak mau merusak sensasi Kakak Ipar di badanmu, ‘kan—” “Junior!” “Hehe.” Aku berputar mengitari dirinya. “Cuma bercanda, Senior. Bercanda … ngomong-ngomong, Tetua Mo bilang Ketua pernah kemari dan jadi saksi pernikahan kalian. Jika Ketua sama ayah mertuaku saja datang, kenapa kau malah gak mengundangku?” Saudara Seperguruan Qin garuk pipi kupelototi macam cara Erik memelototiku dulu. “Kukira yang menjodohkan kalian itu aku, tapi kenapa pas hari pernikahan dirimu malah melupakanku, hah?” “Bukan suamiku tidak mengingat Anda, Leluhur,” sahut seseorang dari belakang, Mo Lin. “Maaf karena kami hanya bisa memberi tahu Guru Besar, situasinya mendesak.” Kulambaikan tangan membalas salamnya. “Kalian merahasiakannya karena ada orang yang gak boleh tahu jika aku masih hidup, ‘kan?” Mo Lin dan Senior Qin silih lirik sebelum mengangguk bersama. “Semua pembaruan aura Sekte yang bertempur di perbatasan telah kembali, Leluhur,” terang Mo Lin, “kami tidak punya pilihan selain menutupi fakta bahwa Anda adalah satu-satunya penyintas di ekspedisi kemarin.” “Hem.” Kuangkat tangan sebahu. “Sebelum ke sana, Saudari. Kalian itu sudah menikah sekarang, jadi tolong berhenti memanggilku leluhur. Terus, aku kemari bukan gegara gak kalian undang pas hari ha,” jelasku lantas menunjukkan surat yang kuterima dari Mark dkk. tadi pagi, “tapi ini ….” Setelah mereka membacanya. “Junior Mi?” “Jangan melihatku begitu, aku juga gak tahu kabar ayah mertuaku. Cuma, kalau ingat mereka selalu bersama selama kita di Dataran Tengah kukira Ayah dan Ketua akan baik-baik saja.” “Guru ….” Kurasa kabar Ketua hilang memang berat. Jadi, wajar bila Senior Qin tetiba berjalan ke tangga pembatas area semedi lalu duduk sambil menunduk lesu macam sekarang. Itu bisa kumaklumi. Namun, Kakak Ipar yang menyusul selang sekian detik lantas duduk sebelahnya hingga adegan mereka berdua kemudian lanjut dengan berpegangan tangan serta saling tatap tanpa kata seolah bicara dalam bahasa hati nan tersembunyi tidak bisa kuterima. Dan, meski pun kutahu Mo Lin kala itu sedang menghibur saudara perguruanku yang terpuruk, pemandangan tersebut tetap saja membuatku merinding geli. “Oi, apa kalian mencoba menjadikanku bat nyamuk?” “Junior Mi?” “Apa?” Kudekati mereka segera. “Senior, sekali lagi kau panggil aku terus cuma diam kayak gitu, maka siap-siap saja kepalamu kujadikan sasaran latihan jurus tapak dewa guntur baruku.” “Tapak Dewa Guntur?” “Pemungkas Jari Petir sekte kami yang kupadu sama Tapak Dewa dari Perguruan Lonceng Utara, Saudari.” “Jangan dengarkan juniorku. Istri, dirinya memang punya segudang hobi aneh sama hal-hal yang takkan kita kira itu ada di dunia. Jangan heran kalau dia tetiba memadukan jurus sekte kami dengan jurus perguruan lain.” “Bukan begitu, Suami.” Mo Lin kelihatan berpikir. “Rasanya aku pernah … ya, aku pernah mendengar nama ini. Tapak Dewa, Lonceng Utara, Lonceng Utara, Lonceng—ya! Lonceng Utara di Kitab Tanah Tenggara!” Kini gantian aku dan Saudara Seperguruan Qin yang silih lirik. “Benar. Lonceng Utara, itu benda yang menurut Guru adalah pusaka penting di Kitab Tanah Tenggara.” “Hem.” Perasaanku saja, atau ada salah paham besar di sini. “Kakak Ipar, kurasa Lonceng Utara yang lagi kita bahas ini berbeda. Lonceng utaraku itu nama perguruan bela diri sebelah utara Kota Gorgon di masa lalu yang sebagian wilayahnya sekarang menjadi Gorgeo, Fujin, dan Linx.” “Junior, apa kau sedang bergurau?” “Mana mungkin aku bercanda soal asal-usul keahlianku,” timpalku pada Senior Qin, “lagi pun Lonceng Utara ini sudah lama hilang, Senior. Jadi aku yakin yang kita bicarakan sekarang berbeda, Kakak Ipar.” “Hem. Mungkin juga begitu.” “Cuma.” Kutatap Mo Lin serius. “Aku baru dengar Tetua Bae punya Kitab Tanah Tenggara ….” *** Sekarang, saat kitab pusaka Tetua Bae ini kulihat. “Aku belum bisa memastikan benda ini apa, tapi sebagian isinya merekam lambang-lambang perguruan lama yang kalau kalian percaya, Senior, Saudari, ada di jutaan tahun silam ….” Termasuk segel Teratai Perak di marjan bandul ikat cepolku sama dua kata ‘Lonceng Utara’ yang Saudari Ipar Mo Lin dengan gurunya anggap sebuah benda pusaka. Hem. Aku tak berani berspekulasi apa-apa, jadi buat sekarang kurasa kita semua hanya bisa sabar. Dan, karena halaman catatan ini sudah mau habis, hasil penyelidikanku nanti akan kutulis di buku lain. Simpulan sementara, Serindi masih dorman di garis depan dan Pahlawan sedang bergerak menyongsong arah timur guna menghadapi mereka disusul bala tentara Barat yang mengekor usai ‘menyeberangi’ tengah benua. Dan. Hem. Ini dia. Sekian …. ***

Segenggam Cinta 'tuk Berlian

72 - Kisah di Belukar Semak

Di publikasikan 31 Dec 2025 oleh Bengkoang

Tok-tok-tok! Tengah hari, tanggal 25 Bulan Lima. Sembari menjinjing kalkun panggang dari Kedai Lu Hui, kugedor gerbang Belukar Semak sesuai niat awalku berkuda ke Tianwu hari itu. Hendak mencari tahu kabar Senior Qin dan kakak iparku di sana …. “Siapa?” “Salam, Saudara.” Kusenyumi murid yang membukakan gerbang mereka buatku, meskipun kemudian kepala hingga bahu kiri si murid selanjutnya cuma ia gantungkan di tengah-tengah celah menanggapiku. “Aku, Mi, pemilik Bengkel Long An dari Distrik Selatan. Apa Saudari Mo Lin ada?” “Mo Lin?” “Benar, Mo Lin murid Tetua Bae dari Altar Leluhur.” Kuasongkan kotak kalkun panggang di tanganku. “Aku kemari karena ada urusan dengan—” “Apa ini?” “Kalkun panggang.” “Kalkun—” “Dari Kedai Lu Hui.” “Lu Hui?!” Dengar asal bingkisanku, si murid pun segera keluar ‘tuk menerima buah tangan tersebut. “Kalkun Panggang Lu Hui yang terkenal buat acara-acara jamuan besar itu, ‘kan?” “Ahaha. Aku tidak tahu detailnya, tapi Saudara Lu bilang menu ini sangat diterima oleh semua orang. Karena tidak sopan bertamu tanpa bawa apa-apa, jadi kuminta ia membungkuskanku satu porsi utuh.” “Saudara Lu? Pemilik Kedai Lu Hui sendirikah?” “Benar.” “Ahaha. Mari-mari, tidak bagus bicara di luar begini ….” *** Kalian tahu? Waktu diriku berkunjung ke Belukar Semak hari itu, peristiwa sejarah juga sedang berlangsung di belahan lain benua. Bintang Pertiwi, dibantu elite Saintess, berhasil membawa seluruh populasi di luar militer Zona Netral keluar dari delapan distrik mereka tepat sebelum kedatangan Barat ke Dataran Tengah. Sehingga ketika Kuil Widupa jatuh lima hari kemudian, tidak ada satu pun sandera untuk ditangkap maupun barang dengan bahan makanan buat dijarah atau mereka kumpulkan sebagai bekal. Alhasil, Barat pun seketika dipaksa agar lekas bergerak mengikuti aliran pasukan Aliansi Anti-Serindi menuju arah timur. Kabar yang pada saatnya nanti akan kujadikan dalih waktu menerobos ruang bawah tanah Belukar Semak lalu memaksa saudara seperguruan bersama kakak ipaku agar bangun dari semedi mereka. Bulan-bulan berikutnya, tepat ketika pasukan Aliansi tiba di ujung perbatasan Patu atau tengah-tengah antara garis depan dengan titik keberangkatan kami—yakni halaman Dataran Tengah, Saintess berhenti melantunkan Suar Glorian hingga mana atau bahan bakar sihir seketika lenyap kemudian sihir manusia tidak lagi berfungsi di ketiga bagian benua. Peristiwa yang sontak memangkas sepertiga kekuatan tempur rombongan pahlawan sekaligus menghadirkan dilema bagi diri sang pahlawan sendiri sebab para penyihirnya mendadak kembali jadi manusia biasa …. “Salam, Saudara Mi.” Namun, berita-berita di atas tadi untuk nanti. “Aku, Mo Yun.” Karena sekarang diriku baru tiba ke Belukar Semak, sedang menghadapi pria berkumis lebat dengan tusuk konde giok susu pahat serupa ranting petai cina di gazebo tamu mereka. “Tetua balai obat Sekte sekaligus pembimbing semedi pertama Saudari Junior Mo Lin.” “Ah, Salam, Tetua Mo.” “Kudengar Anda ada perlu pada Adik Junior Mo.” Ia mengulurkan tangan, mempersilakanku duduk. “Maaf sekali, tapi Adik Mo sedang melakukan latihan tertutup dan tidak bisa menerima tamu.” “Benarkah?” Kupasang wajah kecewa kemudian tanya, “Kapan aku bisa menemui Saudari Mo Lin, Tetua?” “Soal itu ….” Ia pura-pura berpikir. “Diriku tidak bisa memberi jawaban pasti, sebab latihan tertutup praktisi tenaga dalam bergantung pada diri mereka sendiri. Kadang makan waktu berbulan-bulan, tahun, dan ada yang sampai puluhan tahun baru selesai.” “Hem. Lama sekali ….” Sambil meladeni sang tetua balai obat, diam-diam kuselisik isi Belukar Semak pakai Mata Perak. Hingga aku tahu, saudara seperguruanku dan Mo Lin sedang semedi berdua di salah satu ruang bawah tanah mereka. Hem. Jadi pria di depanku ini jujur? “Jika keperluan Anda mendesak, Saudara Mi, ceritakan saja pada—” “Bukan aku ingin menyinggung Anda, Tetua.” Kuangkat tanganku merespons niat baiknya. “Namun, kukira ranahmu sekarang bahkan belum mencapai pengembunan hawa, ‘kan?” Aku tahu kata-kata barusan menyakitkan, buktinya muka Tetua Mo langsung ditekuk. “Ma-maaf, Tetu—” “Tidak apa-apa, Saudara Mi. Kualifikasiku memang buruk, sama sekali belum dapat kemajuan padahal sudah hampir dua puluh tahun menjadi pertapa dan bergabung dengan Sekte.” “Baru dua puluh tahun, Tetua,” ujarku menyemangati dirinya, “kata orang dunia pertapa itu berjalan sangat lambat, jadi kurasa selama ini Anda sebetulnya sudah membuat kemajuan. Cuma belum tampak saja.” “Hahaha. Terima kasih, Saudara Mi. Anda menghiburku ….” Kalau boleh kubilang, pria berkumis di depanku bukan kualifikasinya yang buruk. Namun, benang atau jalur mana dalam tubuhnya rusak berat hingga ia jadi sulit ‘tuk menghimpun hawa. Seandainyapun bisa, energi yang berhasil terkumpul akan langsung berpendar begitu sirkulasinya dijeda atau terhenti barang sesaat. Kata lainnya orang itu hanya boleh menghirup energi tanpa bisa menyimpannya. Dan, selain menggambar ulang benang mana di mana hal tersebut sangat menyakitkan, solusi buat kondisi ini setahuku adalah teknik sirkulasi luar tubuh macam Tinju Aliran Luar Gunung Heng. Cuma, siapa juga yang masih mengajarkan jurus ribet model begitu di zaman sekarang? “Ngomong-ngomong, aku penasaran. Bukankah jabatan tetua sekte itu biasanya diisi oleh ranah pengokohan fondasi tubuh tahap puncak atau di atasnya, ya?” “Anda penasaran bagaimana caraku mendapatkan posisi ini, Saudara Mi?” “Betul. Kurasa sebelum kualifikasi yang Anda tadi singgung turun, Tetua Balai Obat Belukar Semak dulunya pernah berada di puncak dunia pertapa, bukan?” “Hahaha.” Kini ia terbahak. “Menarik, menarik.” Kurapikan dudukku segera, siap mendengarkan kisah sang tetua balai obat dengan posisi nyaman. “Saudara Mi, jika Anda percaya. Mo Yun lima belas tahun lalu bukanlah Mo Yun yang hancur macam sekarang, dia merupakan praktisi ranah awal formasi mutiara inti berbakat serta mampu berdiri sejajar atau sepanggung bersama para bintang muda—bukan hanya sekte, tetapi juga di Aliansi.” Kuangguk-anggukkan kepala antusias. “Bahkan, diriku di masa itu masih sanggup untuk bersaing memperebutkan posisi ketua.” “Kurasa inilah titik kejatuhan Anda, ‘kan?” tebakku sekenanya, “ketua sekte sekarang mengalahkan kemudian menghancurkan jalan pertapaan—” “Bukan, bukan. Meski Sekte penuh persaingan, kami sama sekali tidak pernah memelihara dendam mendalam di antara sesama anggota, Saudara Mi.” “Lah, terus?” “Cerita aslinya begini ….” Tetua Mo selanjutnya memaparkan padaku tentang kisah perjalanannya menuju ke barat—bukan ‘tuk mencari kitab suci, oke. Ini beda sumber. Ketika ia, ‘tuk pertama kali dalam hidup, terpesona alias jatuh hati pada seorang gadis berambut pirang dengan mata biru dari sebuah kerajaan di ujung barat benua. Wanita yang konon sanggup membuat sang tetua balai obat di depanku dulu menyanggupi syarat di luar nalar, datang padaya dengan berjalan kaki sembari melewati banyak sarang monster ganas demi membuktikan cinta hingga melamar si gadis. Hem. “Aku hampir berhasil,” aku Tetua Mo berapi-api, “seandainya saja di Kanarumi tidak ada sekawanan duyung jahat yang menjebakku dengan nyanyian mereka.” “Duyung jahat?” Aku berpikir. “Maksudnya shiren?” “Ya, yang suka menipu para pelaut menggunakan sihir pada nyanyian.” “Oh. Ya, itu shiren. Monster duyung jenis ini memang mengandalkan kemampuan hipnotis lewat suara-suara dan suka memunculkan bayangan paling diingin—” “Benar. Saudara Mi, mereka mempermainkanku dengan bayangan Nicki … lalu pada akhirnya membuangku setelah diriku kehilangan segalanya. Anda tahu bagian terburuk?” Diriku menggeleng. “Satu bulan setelah diriku ditemukan oleh nelayan setempat, aku melanjutkan perjalanan. Tahukah Anda apa yang kulihat ketika sampai di desa Nicki saat itu?” “Dia menikah dengan orang lain?” “Bukan.” Tetua Mo menggeleng sambil senyum. “Yang kulihat adalah batu nisan Nicki bertanggal satu tahun sebelumnya, tanggal yang sama ketika kami bertemu di kapal para pedagang barat.” “Hah?” Aku mendelik. “Kok?” “Nicki yang kulihat di sana bukanlah Nicki—” “Tapi?!” “Orang lain yang menyamar sebagai dirinya.” “Hem.” Aku tidak bisa berkomentar. “Setidaknya Anda kembali dengan selamat ….” ***

Segenggam Cinta 'tuk Berlian

71 - Ding Saat Ini

Di publikasikan 31 Dec 2025 oleh Bengkoang

“Tanggal berapa sekarang?” “Tanggal dua puluh empat, Tupa.” Hem. Hari kedua puluh empat kampanye …. “Kita sudah jalan dua hari tanpa jeda sejak kota terakhir, ‘kan?” gumamku sambil celingak-celinguk, “berapa jauh lagi buat sampai ke perbatasan Ding, Samuel?” “Menurut peta, kira-kira setengah hari ke tenggara kita sudah masuk perbatasan Xuen—” “Xuen?” Dengan kecepatan berjalan konstan selama dua puluh hari, peletonku akhirnya menyentuh separuh jalan. “Kalau begitu kita berhasil menyalip pasukan utama ….” Hanya butuh sedikit sentuhan untuk mengakhiri semua ini. “Samuel, Shopia.” “Ya, Tupa?” “Di mana lokasi pahlawan sama sekutu kita sekarang?” “Kabar terakhir bilang Pahlawan masih berkeliaran di sekitaran Fujin, sedangkan pasukan utama kita sekarang sudah mendekati perbatasan barat Gorgeo.” “Dia berangkat dari Zona Netral tanggal enam belas, kalau sekarang masih di Fujin berarti pasukannya betulan mengumpulkan bekal sepanjang perjalanan. Hem ….” Aku berpikir sebentar—membayangkan sekian pengaturan ‘tuk pertempuran kami nanti dan …. “Shopia!” Dapat ide. “Terus kirim merpati ke unit lain sama jangan berhenti minta mereka berbagi informasi lokasi dengan kita dan laporkan padaku secara berkala. Samuel, aku punya pekerjaan buatmu.” “Tupa?” “Kita akan berpencar di sini.” Kuambil kantung uang dari pinggang. “Nih, seratus lima puluh emas buat beli kuda di Xuen. Aku ingin kalian kembali ke Fujin besok.” “Tupa—” “Dengarkan dulu, Shopia! Kumau kalian menyamar sebagai utusan Pahlawan terus datangi semua kota yang akan mereka lewati. Katakan atas nama Aliansi Anti-Serindi, seluruh wilayah harus menyumbang bekal paling sedikitnya ransum untuk sepuluh ribu orang setiap bulan sampai kampanye kita selesai.” “Tupa, tidakkah itu akan mencoreng nama—” Samuel langsung diam pas lihat gulungan dengan segel Kuil Widupa di tanganku. “Hanya menuruti perintah,” jelasku lantas mengeluarkan setumpuk gulungan tugas kosong, “ini Saintess yang suruh, sama kayak waktu kalian kulatih di barak terpisah. Turuti saja terus tiap orang ambil satu, paham?” Bruk! Mereka berlutut, menyilangkan lengan depan dada serempak, lekas bangkit lalu mengambil gulungan-gulungan tersebut bergantian. “Bagus. Abaikan jika ada yang menolak buat memberi sumbangan dan lanjut saja ke kota berikutnya. Setelah kalian selesai kita akan bertemu lagi di garis depan ….” *** Hari berikutnya, tanggal 25 Bulan Lima. Usai membubarkan peleton ke tugas masing-masing hari kemarin, malamnya aku pergi ke Bukit Muara ‘tuk mengambil kuda merah sekalian menyapa Pilo-Pato dan menyuruh Duo Zi di sana agar mengaktifkan formasi pelindung sekte. Oka, kura-kura, juga naga penunggu tungku mungil, mereka kusiagakan buat jadi penjaga sekaligus membantu Zi Yang dengan Zi Ge selama diriku tidak ada. Paginya atau hari ini, diriku akan lanjut ke Belukar Semak. Ingin tahu kabar Saudara Seperguruan Qin bersama Kakak Ipar juga perkembangan urusan mereka …. “Selamat datang—” Crek! Kutaruh dua keping perak di meja. “Kudengar kedaimu yang terbaik se-Tianwu, apa menu andalan kalian?” “Ahaha. Pelanggan, Anda memuji. Menu andalan kedai kami di musim panas adalah Pepes Lele Long Lin.” “Lele?” Mataku mendelik. “Lele yang suka makan ….” “Ahaha. Tidak-tidak-tidak, Pelanggan. Kedai kami sangat memperhatikan kebersihan, mana mungkin ikan lele yang seperti itu.” “Hem.” Aku gak percaya. “Menu lainnya apa lagi?” “Oh, kami ada Gabus Sambal Semanggi, Kepiting Rebus Bumbu Cabai, Telur Udang Goreng, lalu ….” Jakunku naik turun dengar nama-nama menu mereka cuma …. “Semuanya hidangan air tawar, ya?” “Anda ini, Pelanggan. Kedai kami terkenal oleh sajian khas Sungai Long Lin, tentu andalannya hidangan air tawar. Bagaimana, sudah boleh saya ambilkan pesanan Anda sekarang?” “Seingatku ada yang menjual sambal kentang goreng?” “Oh, maksudnya Kedai Biu Hui.” Muka pelayan di depaku berubah kurang senang. “Mereka terkenal untuk masakan vegetarian dan sering dikunjungi pertapa, kami tidak menjual hidangan seperti itu.” “Hem.” Kutaruh sekeping perak lagi di meja. “Apa kalian punya menu di luar ikan sama olahan air, seleraku rusak pas kau bilang ikan lele. Sedikit pengakuan, aku pernah memelihara mereka buat pembersih kolam.” “Ah.” Mata dengan mulut si pelayan membulat. “Saya paham. Maaf merusak selera Anda, kami masih punya hidangan khusus untuk perayaan macam babi guling, kalkun, dengan anggur empat tahun.” “Daging sapi?” “Kami bisa memasakkannya, Pelanggan.” “Kalau begitu bawakan dua kilo daging sapi panggang, satu kalkun tanpa kepala, sekeranjang buah segar, teh dan anggur, sama ….” Kuambil sekeping perak lagi. “Tolong panggilkan seseorang yang bisa memberitahuku kabar terbaru Tianwu, banyak hal yang baru kulihat setelah lama tidak kemari.” Beberapa saat kemudian. “Ahaha. Pelanggan.” Pelayan tadi membawa seseorang kepadaku. “Ini adalah Tuan Lu, pemilik kedai kami. Beliau sangat senang ketika mendengar bahwa pasukan Saintess akan segera tiba di Tianwu, dan be—” “Ehem!” Bisa kulihat jika orang itu bukan sekadar pemilik kedai biasa, aura kehadirannya kuat. “Pegawaiku kadang terlalu banyak bicara,” ujar sang pemilik kedai begitu si pelayan berlalu, “kudengar dirimu baru kembali dari Dataran Tengah, kau tidak sedang berpura-pura supaya dapat diskon di tempatku—” “Hum.” Kutegapkan badanku sedikit, menunjukkan zirah milisi yang masih kupakai. “Daging sapimu benar-benar enak, bumbu apa yang kau pakai, Saudara Lu?” “Huh.” Pria di depanku memalingkan wajah. “Hanya daun kering yang ditumbuk dengan beberapa rempah, aku tidak tahu akan ada pelanggan yang menyukainya.” Setelah daging sapiku habis. “Kudengar Pahlawan dan Saintess menjadi sekutu dalam perang ini, apa kabar itu benar?” “Benar,” kataku lantas topang dagu di depannya, “kalkun dengan anggur di sana kupesan buat menjamumu, cobalah. Pasukan Saintess akan tiba di Kerajaan Ding satu atau tiga bulan, sementara Pahlawan mengekor tepat di belakang mereka. Tunggu saja—” “Bah!” Ia menggebrak meja gemas. “Terlalu lama! Tiga bulan lagi Tianwu mungkin sudah tidak akan ada di peta-peta benua. Kenapa mereka tidak bergegas?” “Saudara.” Kudorong piring kalkun ke dekatnya. “Kau bukan satu-satunya orang yang berharap agar mereka cepat datang, di sini aku juga menunggu kabar pasukanku. Cuma, apa yang bisa kita lakukan?” “Berapa jumlah mereka sekarang?” Kuangkat bahu singkat menanggapi si pria. “Aku tidak boleh mengatakannya kecuali Pu yang minta, jadi jangan mengorek soal itu. Ngomong-ngomong, perasaanku saja atau Distrik Selatan memang penuh sama tenda pengungsi?” “Bukan perasaanmu saja,” jawab si pemilik kedai, raut mukanya sudah lebih santai dan kini ia tidak sungkan ‘tuk menyobek paha kalkun lalu mengisi cangkir dengan anggur sendiri. “Kita kewalahan menangani aliran pengungsi dari Azura dan Tzudi musim ini, belum lagi pungutan sama iuran wajib.” “Oh, kau juga kena pungutan wajib?” “Tentu saja!” sergahnya, semangat melahap kalkun dan menenggak anggur langsung dari poci. “Aku menyesal tidak mengambil wajib militer tahun lalu, tahu begini lebih baik pergi ke barak saja.” “Berapa yang harus kau bayar, Saudara?” “Setengah keuntunganku per bulan—bayangkan! Kau pikir itu adil, hah?” “Hem.” Kulipat tanganku kemudian memperhatikan suasana kedai sekilas. “Kurasa jika tahun lalu keluargaku tidak pergi berlibur terus bengkelku masih beroperasi di sini hari ini aku juga akan diperas sepertimu, bahkan mungkin lebih parah.” “Bengkel?” “Aku pemilik baru Bengkel Long An, jangan bilang kau tidak tahu.” “Heh?” Pria di depanku terbelalak. “Aku memang dengar si kurcaci pemarah menjual bengkel tua di Distrik Selatan pada seseorang, tapi diriku belum pernah melihat siapa pemilik barunya. Jadi orang itu kau?” “Ya.” Kuanggukkan kepala dua kali. “Aku beruntung gegara mertuaku memesan paket liburan sekeluarga ke Dataran Tengah seminggu sebelum serangan Serindi, jika tidak mungkin nasib kita akan sama.” “Jadi alasanmu masuk milisi Dataran Tengah karena …?” “Benar. Kuil Widupa tepat di depan hotel tempat kami menginap, kau pikir diriku bisa mengindar?” “Hahaha. Bagian ini lucu. Kudengar Saintess cuma memanggil para pejuang, tapi siapa sangka kalau di antara mereka akan ada kelas pedagang juga.” “Setidaknya aku gak harus bayar iuran setengah keuntungan.” “Itu menyakitkan, Saudara.” “Apa lagi yang terjadi setelah keluargaku pergi?” “Sebelum ke sana, bagaimana caramu bisa kemari padahal pasukan utama kalian masih jauh di belakang?” “Aku membayar seratus lima puluh emas buat kuda sama kesempatan datang kemari—” “Hahaha. Ini lebih parah, hahaha ….” Ya, tertawalah selagi bisa. ***

Segenggam Cinta 'tuk Berlian

Validasi Depan Belakang

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Pada dasarnya, validasi bisa dilakukan di bagian depan/front-end. Misal, untuk field yang wajib diisi, maka sebaiknya kita disable tombol submit jika field tersebut belum diisi atau diisi dengan karakter kosong saja. Tapi validasi di depan saja tidak cukup. Validasi harus dilakukan juga di bagian belakang/back-end. Karena pasti ada aja user yang iseng, apa lagi aplikasi kita itu aplikasi yang berhubungan dengan uang. Mereka bisa mem-bypass validasi di front-end, mau secanggih apapun validasinya. Bagaimana caranya? Cara pertama, bisa pakai software interceptor macam Burpsuite. Caranya, kita isi dulu datanya dengan benar, kemudian klik submit. Lalu buka Burpsuite, dan modifikasi payload yang dikirim ke server. Cara kedua, bisa langsung pakai HTTP client macam Postman. Selama kita punya authentication token, pada dasarnya kita bisa melakukan request apapun ke server aplikasi tanpa front-end aplikasi. Jadi, sangat tidak disarankan untuk mengandalkan validasi hanya di frontend. Ketika mengembangkan backend aplikasi, selalu asumsikan bahwa user akan selalu berniat jahat terhadap aplikasi kita, supaya kita selalu sadar akan keamanan aplikasi dan senantiasa mengimplementasikan praktik secure coding. Pemahaman akan secure coding akan sangat membantu kita menemukan titik-titik yang sekiranya rentan terhadap serangan.

The Programmer's Mindset

Software Engineering Nggak Melulu Soal Kecepatan

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Di media sosial macam X atau Threads, perdebatan antar bahasa pemrograman sepertinya tidak ada habisnya. Misal, "PHP is slow, use JS". "Ruby is slow, use Golang". Padahal, dunia software engineering nggak sesederhana itu. Banyak faktor untuk memutuskan bahasa pemrograman yang akan dipakai, beberapa di antaranya: bahasa pemrograman apa yang paling dikuasai oleh timproduk apa yang akan dikembangkanseberapa besar ukuran timPemilihan bahasa pemrograman akan menentukan seberapa cepat kita deliver value ke user. Kalau tim tersebut memaksakan pakai Golang, tim akan lebih lama deliver value-nya ketimbang pakai PHP. Let's say, tim kita ternyata banyak yang menguasai PHP. Dan produk yang ingin dikembangkan pun nggak perlu handle concurrent user yang besar. PHP akan jadi pilihan yang bijaksana. Pun kalau misalnya user base kita semakin meningkat, memutuskan untuk menggunakana PHP di awal bukanlah sebuah kesalahan. Justru, itu tandanya aplikasi kita memecahkan permasalahan yang nyata dan memberi value kepada user-user kita. Urusan scaling, setiap bahasa pemrograman sepertinya punya caranya sendiri. Aplikasi yang dibuat oleh Ruby atau PHP lebih pas pakai horizontal scaling, alias banyakin servernya. Ini scaling yang paling mudah, karena kita hanya perlu mengeluarkan uang untuk meningkatkan performa aplikasi kita. Tentu saja ini harus dibarengi dengan kode yang sudah optimal. Tidak ada kode yang berjalan lambat karena N+1 query, belum pakai index yang memadai, atau kode kompleks yang masih bisa dibuat lebih sederhana. Penentuan bahasa pemrograman juga salah satu bentuk komitmen jangka panjang. Harus dilakukan secara bijaksana dengan memperhatikan hal-hal lain seperti yang saya tulis di atas, karena software engineering itu nggak melulu soal kecepatan bahasa pemrograman.

The Programmer's Mindset

Chunking

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Bayangkan kamu di-assign ke sebuah project yang scope-nya lumayan besar. Pasti kadang kepikiran, "duh, kerjaannya pasti banyak nih". Seringkali juga bingung mau mulai dari mana ngerjainnya. Di sinilah kemampuan kita untuk memecah pekerjaan besar menjadi pekerjaan-pekerjaan kecil supaya lebih mudah untuk diuji. Ini penting untuk mengurangi beban kognitif. Sehingga, ketimbang mikir satu pekerjaan besar harus selesai dalam satu waktu, kita bisa mengubah mindset kita untuk mengerjakan pekerjaan-pekerjaan kecil kita di waktu yang berbeda-beda. Misal, project tersebut kita bagi jadi 5 pekerjaan kecil. Pekerjaan 1 bisa selesai dalam waktu 3 hari. Pekerjaan 2 bisa dikerjakan secara paralel dengan pekerjaan 1. Pekerjaan 3 baru bisa dikerjakan setelah pekerjaan 1 selesai. Pekerjaan 4 dan 5 bisa dikerjakan juga secara paralel setelah pekerjaan 2 selesai. Sebisa mungkin, apa yang bisa dikerjakan secara paralel, maka kerjakan secara paralel. Sehingga, waktu pengerjaan bisa dua kali lebih cepat dibandingkan dengan dikerjakan secara berurutan. Membagi pekerjaan besar jadi beberapa pekerjaan kecil juga akan sangat membantu dalam proses pelacakan progress. Pelacakan progress jadi lebih objektif dan terukur. 50% di satu pekerjaan besar menurut satu orang, bisa saja progressnya itu baru 30% bagi orang lain. Sementara 5 pekerjaan kecil, jika dipukul sama rata, satu pekerjaan kecil selesai akan berkontribusi 20% terhadap progress pekerjaan secara keseluruhan. Di dunia programming, pemecahan pekerjaan ini jadi lebih mudah dengan adanya pull/merge request. Misal, kita sedang mengembangkan fitur autentikasi. Pekerjaan itu bisa dipecah jadi beberapa pull request: Pembuatan tabel users dan model-model yang berkaitanSlicing halaman loginSlicing halaman registrationSlicing halaman forget passwordSlicing halaman resend email confirmationImplementasi logic loginImplementasi logic registrationImplementasi logic forget passwordImplementasi logic resend email confirmationPoin 2 sampai 9 bergantung terhadap poin 1. Sehingga, poin 1 harus dikerjakan terlebih dahulu. Dengan chunking seperti ini, pekerjaan yang udah selesai bisa dirilis secepat mungkin, selama nggak mengganggu existing feature. Lebih baik lagi kalau pakai feature flag: suatu mekanisme untuk mengaktifkan/menonaktifkan fitur secara dinamis. Sehingga, kita nggak perlu deploy ulang aplikasi untuk mengaktifkan/menonaktifkan suatu fitur.

The Programmer's Mindset

Debugging

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Ngoding itu, nggak bisa lepas dari yang namanya bug. Mau kita ngoding pakai AI secanggih apapun, atau mau selengkap apapun kita bikin tes. Akan selalu ada hal-hal yang luput dari mata. Dan ini wajar. Makanya, dianjurkan untuk membuat tes, setidaknya di bagian-bagian yang krusial. Debugging sebenarnya gampang aja, selama kita memahami error pada log aplikasi. Kalau nggak paham, tinggal searching atau tanya AI aja. Yang sulit itu debug dua error ini: logical error dan race condition. Logical error itu, aplikasi kita berjalan seperti biasanya. Nggak ada error di log aplikasi, tapi hasilnya nggak sesuai dengan yang diharapkan. Untuk debug error ini, kita harus punya domain knowledge yang baik. Maksudnya, kita harus tau kode apa saja yang melibatkan suatu fitur, beserta proses bisnis di balik fitur tersebut. Saya pernah debug logical error berminggu-minggu karena saya nggak punya cukup knowledge di fitur tersebut. Saya harus cek kode-nya satu-satu, menguji setiap asumsi yang ada. Sampai akhirnya tiba di suatu fitur yang saya kurang familiar, namun ternyata justru di sinilah penyebab utamanya. Ternyata, ada satu kode yang pakai logic yang sama dengan fitur yang biasa saya handle, namun karena kode di fitur tersebut keliru, menyebabkan hasilnya juga jadi keliru. Race condition jauh lebih sulit untuk di-debug. Selain harus punya domain knowledge yang kuat, ada satu hal lagi yang cukup krusial untuk debug jenis error ini, yaitu: Imajinasi. Alasan race codition ini sulit de-debug, karena behaviornya bisa dibilang anomali, dan hanya sesekali terjadi. Misal, kasus pembelian suatu barang di toko online. Stok barang tersebut tersisa hanya 1. Secara bisnis, di kasus normal, hanya boleh ada 1 user lagi yang beli barang tersebut. Kalau stok barang habis, maka user tidak bisa membeli barang tersebut. Itu kalau dilakukan di waktu yang nggak bersamaan. Bagaimana kalau, suatu waktu, ada dua user yang membeli barang yang sama, di waktu yang bersamaan? Kalau nggak menerapkan pessimistic locking, bisa saja barang tersebut dibeli oleh 2 user! Makanya, saya bilang debug race condition ini perlu imajinasi juga, untuk membayangkan skenario tak terduga ini. karena, kalau pakai pola pikir di kasus normal, kita akan kebingungan sendiri cari penyebab utamanya.

The Programmer's Mindset

Software Development adalah Permainan Tradeoff

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Di dunia programming, nggak ada yang namanya silver bullet. Untuk setiap keputusan yang kita ambil, entah itu tech stack atau desain arsitektur aplikasi, akan selalu ada hal yang kita tukarkan. Misal: penggunaan ORM vs raw SQL. Mengunakan ORM akan membuat proses development lebih cepat dan sederhana. Tapi, tradeoffnya adalah performance. Menggunakan ORM berarti, setiap baris pada hasil query yang kita peroleh akan dipetakan menjadi sebuah object. Makanya, namanya ORM: Object Relational Mapper. Ini menciptakan satu layer tambahan, yang mana, secara matematis, pasti akan ada waktu tambahan untuk memprosesnya. Sementara itu, apa yang menjadi tradeoff ORM justru menjadi keuntungan bagi penggunaan raw query, dan apa yang menjadi keuntungan ORM justru menjadi tradeoff bagi penggunaan raw query. Nggak pakai ORM memang secara performance pasti lebih cepat, tapi kita harus mengorbankan development experience dan kecepatan development yang ditawarkan oleh ORM. Lalu, gimana solusinya? Pakai pendekatan hybridKalau ada dua aspek yang saling bertentangan, biasanya ini yang sering disarankan oleh ChatGPT, haha. Tapi, saya seringnya setuju dan mikir, "ah iya juga ya". Kita bisa menggunakan ORM di fitur-fitur di mana performance itu nggak krusial. Framework yang menyediakan ORM, biasanya juga menyediakan metode untuk memanggil raw SQL. Di Rails, misalnya, bisa menggunakan `ActiveRecord::Base.connection.execute(sql).to_a`. Hasilnya berupa array of hash (atau array of object kalau di JavaScript), tanpa di-mapping ke dalam class model terkait. Penggunaan ORM atau raw SQL itu bukan pilihan biner. Keduanya bisa saling melengkapi satu sama lain. Bijak dalam mengambil keputusanPenggunaan ORM dan raw SQL baru salah satu contoh permainan tradeoff. Di skala pengembangan software yang besar, semakin banyak kita harus melakukan tradeoff. Pengambilan keputusan ini perlu dilakukan secara bijak, dengan tetap memperhatikan apakah tradeoffnya setimpal dengan apa yang akan didapat.

The Programmer's Mindset

Mengembangkan Mata

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Ada satu topik yang DHH bahas di RailsConf 2014 yang cukup menarik perhatian saya, yaitu tentang *developing an eye*. Mengembangkan mata. Keynote-nya berjudul Writing Software. Dia menjelaskan bahwa untuk menjadi programmer yang baik, kita perlu: Membaca banyak kode.Menulis banyak kode.Mengembangkan kepekaan terhadap kejelasan.DHH membandingkannya dengan fotografer. Seorang fotografer yang berpengalaman bisa mengetahui faktor apa aja yang kurang dari suatu foto. Entah itu saturasinya, temperaturnya, dan sebagainya. Ini karena mata seorang fotografer berpengalaman udah terlatih melihat banyak foto, entah itu foto bagus, foto jelek, atau foto biasa aja. Konsep mengembangkan mata ini juga dapat diaplikasikan kepada programmer, dengan cara seperti yang DHH sampaikan pada keynote-nya. Saya sempat dapat pertanyaan dari salah satu kolega: "mas kok kayaknya tau A, B, C ya? biasanya dapat informasi tersebut darimana?" Lalu saya jawab: "dari banyak sumber. Dari X, dari GitHub, dari YouTube.". Saya juga sering bikin project-project kecil sebagai side hustle, seperti aplikasi pencatatan keuangan, undangan digital, dan to-do list satu hari. Kombinasi antara semua itulah yang membuat saya tau informasi yang mungkin kolega saya belum tau. Albert Einstein pun pernah berkata: It's not that I'm so smart, it's just that I stay with problems longer. Programmer pun kurang lebih begitu. Mengembangkan mata nggak cukup dalam waktu sebulan-dua bulan. Perlu waktu yang cukup lama, bahkan bisa sampai bertahun-tahun. It takes time, but it's worth.

The Programmer's Mindset

Versioning Aplikasi

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Ketika ada perubahan pada source code aplikasi, baik itu karena penambahan fitur atau perbaikan bug, maka versi aplikasi kita juga harus berubah. Ketika mau rilis ke production, kadang ada beberapa fitur yang belum siap untuk dirilis. Untuk itu, kita perlu mengecualikan fitur tersebut. Inilah yang disebut sebagai versioning aplikasi. Ada beberapa program yang biasa dipakai untuk versioning. Namun, yang paling lazim dan populer di kalangan programmer, bukan hanya di Indonesia aja, tapi di seluruh dunia, adalah Git. Seorang programmer wajib tau bagaimana cara pakai Git. Nggak harus yang advance banget. Saya aja sehari-hari cuma pakai beberapa command git: git stashgit addgit commitgit pushgit pullgit rebasegit mergegit remotegit reset git config10 command git itu adalah command-command dasar yang harus dikuasai oleh seorang programmer. Detail per command-nya silahkan cek di ChatGPT aja, karena akan kepanjangan kalau dibahas di sini, hehe. Semantic VersioningIni adalah aturan yang cukup populer digunakan untuk menentuka versi aplikasi. Formatnya MAJOR.MINOR.PATCH. MAJOR, MINOR, dan PATCH ini berupa angka. Versi MAJOR akan naik kalau ada perubahan besar yang nggak kompatibel dengan versi sebelumnya. Biasa disebut juga sebagai breaking changes. Contohnya, mengubah struktur response dari API yang udah ada dan dipakai oleh front-end. Versi MINOR akan naik kalau ada penambahan fitur yang masih kompatibel dengan versi sebelumnya. Contohnya, menambahkan fitur baru. Versi PATCH akan naik kalau ada perbaikan bug yang nggak mempengaruhi kompatibilitas. Contoh: perbaikan bug karena ada logic yang keliru. Selain MAJOR, MINOR, dan PATCH, biasanya juga ada tambahan keterangan lain, seperti `-alpha`, `-beta`, dan `-rc`. Tag `alpha` biasanya dibuat di awal-awal pengembangan. Versi ini masih belum stabil. Masih ada kemungkinan ditemukannya bug yang cukup besar, sehingga digunakan hanya untuk uji coba di lingkungan internal aja. Tag `beta` bisa dibilang versi lebih stabilnya dari tag alpha. Sebagian besar use case biasanya sudah di-handle di versi ini. Biasa digunakan untuk menandakan bahwa tag ini sudah bisa dites oleh tester. Tag `rc` (Release Candidate), seperti namanya, versi ini menjadi versi kandidat rilis yang paling mendekati, atau bahkan bisa aja sama dengan versi final. Di versi ini, semua skenario udah diuji dan lolos. Hanya menunggu verifikasi final aja. Buatlah changes yang backward-compatibleKalau front-end dan backend kita dipisah, pastikan bahwa setiap perubahan yang dilakukan selalu backward-compatible. Terlebih kalau kita punya aplikasi mobile, yang proses rilisnya nggak segampang aplikasi web karena harus melalui proses approval dari Google atau Apple. Kalau perubahannya itu breaking changes, lebih baik naikkan versi endpoint. di sini letak pentingnya versioning pada API.

The Programmer's Mindset

Bekerja dalam Tim

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Programmer di sebuah perusahaan biasanya dibagi menjadi beberapa divisi/tribe, sesuai dengan kondisi dan kebutuhan perusahaan. Sebagai anggota dalam divisi, penting untuk kita bisa berkolaborasi dan bekerja sama. Dimulai dari tahap perencanaan, hingga tahap pengujian aplikasi atau sistem. Tahap PerencanaanDi tahap perencanaan, setiap anggota harus sepaham dengan solusi yang akan diimplementasikan. Misal, kalau kamu adalah seorang backend programmer, pastikan format response dari backend nanti seperti apa. Kalau perlu ada perubahan di tengah-tengah proses development nanti, beri tau tim frontend sesegera mungkin. Kalau tim frontend perlu atribut tertentu, selama memungkinkan dan masuk akal, tambahkan saja. Berikan masukan secara teknis apakah fitur tersebut memungkinkan untuk dikerjakan dalam waktu yang ditentukan atau tidak. Kalau tidak, kamu punya dua opsi: minta tambahan waktu, atau minta tambahan orang untuk membantu pekerjaan supaya lebih cepat. Pastikan senior programmer juga terlibat dalam tahap perencanaan. Minta masukan terhadap solusi yang akan diimplementasikan, apakah solusinya sudah melingkupi requirements yang tertera di Product Requirement Document. Yang lebih pentingnya lagi, pastikan juga apakah solusi yang akan diimplementasikan itu scalable ke depannya atau tidak. Tahap PengembanganDi tahap pengembangan, pastikan solusimu benar-benar sesuai dengan apa yang telah disepakati di tahap perencanaan. Pun kalaupun ada perubahan, harusnya perubahannya pun bukan perubahan yang cukup besar. Kalau ternyata perlu, berarti ada yang keliru dengan solusi yang direncanakan sebelumnya. Tahap PengujianDi tahap ini, biasanya komunikasi berlangsung lebih intens, karena menyangkut koordinasi antara frontend, backend, dan QA. Penting untuk kita memiliki kemampuan komunikasi yang baik. Tidak bisa dipungkiri, ketika proses development selesai, dan meskipun kita udah buat tes untuk setiap skenario, masih akan ada ditemukan bug-bug yang masih belum ke-cover oleh tes. Sebagai seorang programmer, kita perlu bisa menyampaikan kompleksitas untuk fix bug tersebut, dan memperkirakan berapa lama estimasi waktu yang diperlukan untuk memperbaiki bug tersebut. Supaya, masing-masing rekan kerja punya alignment yang sama dengan kita.

The Programmer's Mindset

Kodemu Wajib Diuji

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Proses pengembangan aplikasi itu sebuah proses yang iteratif atau berulang. Dimulai dari Product Requirements Document (PRD). Di sini, product manager membeberkan rincian terkait pekerjaan yang akan dikerjakan. Dimulai dari konteks permasalahan, acceptance criteria, hingga rancangan desain kalau memang udah tersedia. Setiap penambahan fitur baru atau enhancement dari fitur yang udah ada, akan ada PRD baru lagi. Nggak jarang, perubahan tersebut akan mengubah fungsionalitas kode yang udah ada. Entah itu ditambah, dihapus, atau disesuaikan. Perubahan ini pasti akan berdampak terhadap fungsionalitas fitur yang udah ada. Untuk menjaga agar fungsionalitasnya tetap sesuai dengan ekspektasi, maka kita perlu membuat tes untuk setiap kode yang kita sesuaikan. Ada beberapa jenis tes di backend: unit testing, integration testing, functional testing. Unit TestingUnit testing biasanya dilakukan untuk mengecek suatu fungsi tertentu di sebuah bagian dalam kode, apakah dengan beberapa parameter testing, hasilnya sudah sesuai dengan harapan atau tidak. Contoh sederhananya, di dalam sebuah class, ada sebuah fungsi untuk mengecek bilangan ganjil atau genap. Lingkup unit testing hanyalah fungsi tersebut. Functional TestingFunctional testing dilakukan untuk menguji fungsionalitas sebuah fitur. Contohnya, fitur login. Asumsikan bahwa login tersebut menggunakan email. Maka, untuk menguji fitur login ini, ada beberapa skenario: Skenario 1 Login dengan mengosongkan email dan password. Ekspektasinya, tombol login tidak bisa diklik/tisabled Skenario 2 Login dengan mengosongkan salah satu field, entah itu email atau password. Ekspektasinya, muncul error “Email/password tidak sesuai”. Skenario 3 Login menggunakan email yang belum terdaftar. Ekspektasinya sama dengan Skenario 2. Skenario 4 Login menggunakan email yang sudah terdaftar, tapi password-nya tidak sesuai. Ekspektasinya sama dengan Skenario 2. Skenario 5 Login menggunakan email dan password yang sesuai. Eskepktasinya, user bisa masuk ke dalam aplikasi. Integration TestingIntegration testing biasanya gabungan antara sekumpulan functional test. Misal, skenario untuk membeli barang atau produk digital di e-commerce. Langkah-langkahnya: User membuka halaman produkUser menambahkan produk ke keranjangUser membuka halaman keranjangUser melanjutkan ke checkoutUser mengisi data pengiriman dan memilih metode pembayaranUser menyelesaikan pembayaranSistem membuat pesanan dan menampilkan halaman suksesTes yang Lebih Penting DuluKita bisa memprioritaskan untuk membuat tes pada fitur-fitur krusial. Untuk menentukan fitur mana yang krusial, bisa dilihat dari seberapa besar impactnya kalau fitur tersebut tiba-tiba ada bug atau tidak bisa digunakan sama sekali, sehingga mengakibatkan kerugian secara bisnis. Misal fitur autentikasi. Fitur autentikasi ini ibarat pintu depan dari sebuah rumah. Kalau pintunya aja rusak, bagaimana caranya kita masuk ke dalam rumah? Membuat tes untuk fitur-fitur yang krusial harus dibuat serinci mungkin. Sebisa mungkin semua kemungkinan ada tesnya masing-masing, meskipun kadang ini luput dari pandangan kita.

The Programmer's Mindset

Jangan Terlalu Bergantung dengan AI

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Ada satu tren yang mencuat di era AI sekarang, yaitu vibe coding. Hanya bermodal prompt, orang-orang sekarang udah bisa membuat sebuah aplikasi full stack. Di media sosial, cukup banyak yang share website yang mereka buat menggunakan platform no coding berbasis AI seperti Lovable, Bolt.new, dan sebagainya. Hasilnya pun lumayan, seperti buatan programmer sungguhan. Tampilannya juga menarik. Saya juga sempat menyinggung soal AI ini di part-part sebelumnya. Yang mana, sebenarnya ya sah-sah aja bikin aplikasi web cuma bermodal prompt. Hanya saja, alangkah lebih baiknya kita juga paham tentang kode hasil buatan AI tersebut. Jangan plek ketiplek apply kode yang dibikinin oleh AI. Karena bisa jadi, prompt yang kita buat kurang detail dan cukup ambigu, sehingga malah menimbulkan masalah baru. Apalagi, kalau kita masih dalam tahap belajar. Daripada memerintah AI untuk membuat sesuatu langsung jadi, kita bisa memanfaatkannya untuk proses brainstorming dan mempercepat proses belajar kita. Apa yang kita belum ngerti, bisa langsung tanyakan ke AI. Anggap aja AI ini sebagai search engine yang lebih canggih, jadi kita nggak perlu repot-repot buka halaman hasil pencarian satu per satu.

The Programmer's Mindset

Pelajari Deployment

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Kalau kamu adalah sebuah web developer, alangkah baiknya kalau kamu punya pengetahuan untuk deploy aplikasi kamu ke server. Dimulai dari bagaimana cara SSH ke server. Kemudian, install dependensi aplikasi kamu supaya bisa dijalankan: web server, database, in-memory database, dan sebagainya. Untungnya, sekarang ini ada Docker yang sangat memudahkan proses deployment. Tools deployment juga tersedia secara gratis, seperti Dokku dan Kamal. Saya nulis buku seputar deployment menggunakan Dokku, yang bisa diakses secara gratis di sini. Ada beberapa hal yang perlu diperhatikan ketika deploy aplikasi: Pastikan kita bisa mengakses log aplikasiBagaimanapun caranya. Entah itu menggunakan aplikasi pihak ketika, atau langsung simpan log-nya di server yang sama dengan aplikasi. Log ini penting karena aplikasi kita pasti nggak akan lepas dari yang namanya error. Kalau nggak ada log, gimana cara kita tau penyebabnya apa? Pastikan server dan aplikasi kita bisa dilacak penggunaan resource-nyaInilah fungsi utama dari Application Monitoring Tools. Biasanya, aplikasi ini menyediakan rata-rata informasi seperti rata-rata response time, throughput, jumlah error, penggunaan memory, dan application performance index (apdex). Contoh tampilan dashboard ScoutAPM Selain penggunaan resource aplikasi, utilisasi resource server juga perlu dapat dimonitor. Lebih baik lagi kalau kita bisa atur semacam sistem alerting kalau penggunaan resource sudah melewati threshold yang sudah kita tentukan sebelumnya. Misal, sistem akan mengirimkan notifikasi kalau aplikasi kita menggunakan memory server di atas 80%. Atau, ketika storage database kita sudah 95% penuh.

The Programmer's Mindset

Build it Yourself

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Memang nggak bisa dipungkiri, banyaknya library yang dibuat oleh programmer lain di luar sana sangat memudahkan kita untuk mengerjakan hal yang serupa. Kita nggak perlu repot lagi ngoding dari awal, cukup install aja library tersebut di project kita. Masalahnya, terlalu banyak menggunakan library eksternal sangat nggak baik untuk jangka panjang. Terutama, ketika framework atau bahasa pemrograman yang kita gunakan perlu naik versi. Biasanya, beberapa library eksternal memiliki batas minimum dan maksimum dari versi framework atau bahasa pemrograman yang digunakan. Ini berarti, semakin banyak kita install library eksternal, kemungkinan semakin sulit juga kita akan menaikkan versi bahasa pemrograman/framework yang kita gunakan. Pembaruan framework dan bahasa pemrograman perlu dilakukan secara berkala, karena setiap versi punya batas akhir dukungan terhadap versi tersebut. Selengkapnya bisa dicek di website https://endoflife.date. Jika sudah lewat dari batas akhir dukungan, maka tidak akan ada pembaruan lagi untuk versi tersebut. Dari sisi keamanan, ini hal yang berbahaya. Bisa saja hacker menemukan celah keamanan di versi framework/bahasa pemrograman versi lama yang sudah tidak didukung lagi oleh maintainer, namun ternyata celah tersebut sudah diperbaiki di versi selanjutnya. Makanya, penting bagi kita selaku programmer untuk menggunakan eksternal library seminimal mungkin. Lebih sedikit lebih baik. Yang sekiranya masih bisa dikoding sendiri, koding aja sendiri. Saya menerapkan ini di project terbaru saya. Hasilnya, saya hanya menginstall 2 library eksternal. Library pertama untuk generate chart. Untuk ini, saya memang harus menggunakan library, karena kalau koding dari awal cukup kompleks dan akan sangat memakan waktu. Library kedua untuk halaman admin. Halaman admin sebenarnya masih bisa koding secara manual. Tapi untuk menghemat waktu pengembangan dan nggak ingin terlalu ribet, saya pakai library saja. Lagipula, halaman admin hanya akan digunakan oleh saya pribadi. Saya menyadari bahwa bisa saja kelak akan ada kendala ketika hendak upgrade versi framework/bahasa pemrograman karena dua dependensi ini. Meskipun begitu, resikonya masih bisa dibilang rendah, karena jumlah dependensi eksternal di project tersebut sangat sedikit. Sehingga, resiko tersebut masih bisa saya terima. Selalu ingat dengan kalimat ini: software engineering is a game of tradeoffs. Hanya kita yang tahu, seberapa layak hal yang akan kita dapatkan dengan menukarkannya dengan hal yang lain. Jadi, putuskan dengan bijak library apa yang akan kita install. Hindari cargo cult programming sebisa mungkin.

The Programmer's Mindset

Pelajari Teknik Optimalisasi

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Salah satu hal yang menjadi nilai tambah dari seorang programmer adalah kemampuan untuk melakukan optimisasi terhadap sistem yang sudah ada. Mari kita ambil contoh di bidang web development, khususnya di backend, karena bidang ini adalah bidang yang saya kuasai. Katakanlah ada suatu halaman yang pada aplikasi sangat penting, sedemikian rupa sehingga kalau halaman ini nggak berfungsi dengan baik, maka akan sangat berpengaruh terhadap mau atau nggaknya pengguna menggunakan aplikasi kita. Pada suatu waktu, halaman ini menjadi sangat lambat untuk dimuat. Kita ditugaskan untuk mengoptimalisasi halaman tersebut. Langkah pertama yang harus dilakukan adalah mengetahui penyebab utama halaman tersebut menjadi lemot. Inilah pentingnya kita menginstall Application Performance Monitoring seperti New Relic dan ScoutAPM. Kita memperoleh informasi yang cukup mendetail terkait suatu halaman tertentu di aplikasi monitoring. Termasuk berapa lama rata-rata suatu halaman dimuat, dan di kode bagian mana suatu halaman menghabiskan waktu yang cukup lama. Biasanya ada dua penyebab yang sering bikin aplikasi lemot, yaitu karena issue N+1 query dan slow query. N+1 queryBayangkan kita ingin menampilkan 5 tulisan terakhir, beserta dengan komentar di masing-masing tulisan. Kodenya kurang lebih seperti berikut: PlainBashC++C#CSSDiffHTML/XMLJavaJavaScriptMarkdownPHPPythonRubySQLposts = Post.order(id: :desc).take(5) posts.each do |post| puts post.title puts post.comments end Kode, ini, jika diubah ke dalam SQL, maka akan menghasilkan query sebagai berikut: PlainBashC++C#CSSDiffHTML/XMLJavaJavaScriptMarkdownPHPPythonRubySQLSELECT * FROM posts ORDER BY id DESC LIMIT 5 SELECT * FROM comments WHERE post_id = 1 SELECT * FROM comments WHERE post_id = 2 SELECT * FROM comments WHERE post_id = 3 SELECT * FROM comments WHERE post_id = 4 SELECT * FROM comments WHERE post_id = 5 Untuk query seperti ini saja, sampai menghabiskan 6 query. Padahal, query tersebut bisa dibuat lebih optimal. Inilah yang disebut dengan N+1 query. Untuk kasus ini, N adalah jumlah tulisan yang ditampilkan, yaitu 5. 1 adalah banyaknya query yang dilakukan di setiap perulangan, yaitu query untuk mendapatkan komentar. Bisa dilihat, query kedua sampai ketiga adalah query yang mirip-mirip. Yang membedakan hanya `post_id`-nya. Sehingga, query tersebut bisa diubah menjadi 2 query saja seperti berikut: PlainBashC++C#CSSDiffHTML/XMLJavaJavaScriptMarkdownPHPPythonRubySQLSELECT * FROM posts ORDER BY id DESC LIMIT 5 SELECT * FROM comments WHERE post_id IN (1, 2, 3, 4, 5) Jika diimplementasikan dalam kode, maka kita perlu menambahkan `preload` PlainBashC++C#CSSDiffHTML/XMLJavaJavaScriptMarkdownPHPPythonRubySQLposts = Post.preload(:comments).order(id: :desc).take(5) posts.each do |post| puts post.title puts post.comments end Jika ingin menjadi 1 query saja, kita bisa menggunakan `eager_load`. Namun, kita juga perlu tau konsekuensi apa yang akan kita hadapi untuk dua hal ini. Preloading memang menghasilkan query sedikit lebih banyak daripada eager loadinging. Namun, query yang dijalankan bisa jadi lebih cepat, apalagi kalau kita sudah menerapkan indexing yang layak pada tabel. Sementara itu, preloading memang menghasilkan query yang sedikit, tapi biasanya akan memakan memory yang cukup besar. Tugas kita sebagai programmer adalah mengetahui kapan harus menggunakan preload, dan kapan harus menggunakan eager load. Slow querySlow query yang saya maksud di sini adalah sebuah query tunggal yang waktu eksekusinya bisa beberapa puluh hingga seratus millisecond. Penyebabnya beragam. Bisa jadi karena connection pool nya terpakai semua. Bisa juga karena query tersebut tidak menggunakan index. Salah satu cara untuk mengetahui apakah query yang kita gunakan sudah optimal, bisa menggunakan `EXPLAIN ANALYZE`. Jika query yang kita pakai ada join ke tabel lain, pastikan bahwa foreign key sudah menggunakan index. Cari juga apakah ada query yang terdapat sequential scan. Bandingkan hasilnya dengan query yang sudah diperbaiki, apakah lebih cepat atau malah justru lebih lambat.

The Programmer's Mindset

Punya Framework Andalan itu Perlu

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Saya pernah menulis ini di blog saya, tapi biar saya tulis ulang dalam bahasa Indonesia. *** Apa yang membuat saya takjub di bidang web development adalah, kita bisa membuat apapun yang kita mau menggunakan tech stack web apapun. Web tidak dimiliki oleh bahasa pemrograman dan tech stack yang spesifik. Kita bisa membuat aplikasi keren menggunakan Rails, Laravel, Django, NextJS, atau apapun itu - bahkan framework dan tooling kita sendiri. Tentunya sangat menyenangkan ketika eksplorasi tech stack web yang tersedia. Kita bisa punya pemahaman terhadap tech stack dan paradigma di dalamnya. Tapi, ketika berbicara soal rapid development, kita sebaiknya punya framework andalan. Bayangkan, jika tiba-tiba, kita dapat tawaran untuk mengembangkan aplikasi yang kompleks dalam kurang dari tiga bulan. Client bersedia untuk membayar sekitar, katakanlah, 100 juta. Atau, bayangkan kalau kita adalah seorang _indie hacker_ yang bertarung dengan runway dana kita sendiri. Kita punya banyak ide yang perlu di tes, sehingga kita perlu merealisasikan ide tersebut secepat mungkin untuk melihat apakah ada pasar untuk ide tersebut atau tidak. Hal-hal tersebut akan sulit dilakukan kalau kita nggak punya framework andalan. Tips memilih framework andalan: pilihlah framework yang membuat kita produktif dan bisa koding lama-lama. Saya memilih Ruby on Rails sebagai framework andalan, selain karena framework yang sudah matang, salah satunya karena ini. Orang lain mungkin memilih Larave/Django/NextJS/apapun yang mereka kehendaki. Dan itu oke banget, selama pilihan tersebut membuat kita produktif. Jangan terlalu mendengarkan orang yang berkata "framework ini lambat", atau "framework ini nggak scalable". Kita selalu bisa mengoptimisasi kode kita dengan berbagai cara, ketika pengguna kita bertambah dan aplikasi kita menjadi lebih besar. Masalah utamanya adalah, bagaimana caranya kita bisa mencapai jumlah pengguna yang banyak? Nggak ada artinya juga kalau kita menggunakan tech stack web yang sangat modern, canggih, dan cepat untuk aplikasi dengan nol pengguna aktif. Ketika sudah punya framework andalan, belajar framework lain pun harusnya nggak akan terlalu sulit. Guru saya pernah bilang, "untuk bertahan hidup di dunia ini, kita harus punya minimal satu kemampuan utama". Petuah ini beliau ucapkan sekitar tahun 2009, dan masih relevan hingga saat ini, bahkan bertahun-tahun kemudian. Memiliki framework andalan berarti kita punya keahlian mendalam di bidang web development: kompetensi utama kita. Dunia teknologi ini gila. Semakin berjalannya waktu, semakin banyak framework yang library yang tersedia. Tapi, kalau diamati lagi, semua baru framework yang tampak bersinar itu pada dasarnya melakukan hal yang sama dengan framework andalan kita. Bahkan, framework andalan kita bisa jadi lebih baik, karena lebih stabil dan dukungan komunitas yang lebih besar dibandingkan dengan framework-framework baru tersebut. Jadi, ya, pilih framework andalan kamu. Pilih yang sesuai dengan preferensi kamu dan membuat programming menjadi menyenangkan lagi.

The Programmer's Mindset

Perkuat Fundamental

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Banyaknya opsi framework yang bisa digunakan saat ini sering kali membuat orang yang tertarik untuk mendalami programming, menurut saya, salah langkah, dengan bertanya "framework apa ya yang bagus untuk buat aplikasi web?". Padahal, framework hanyalah alat untuk membantu proses development menjadi lebih cepat. Sebagai seorang programmer, kita harus memahami dulu fundamental dari suatu teknologi. Misalnya, di bidang web development, ada baiknya kita memahami bagaimana proses suatu halaman web ditampilkan, dari awal hingga akhir. Ketika kita mengetik di browser, misal, https://google.com, maka client (browser) akan mengirimkan sebuah permintaan ke server. Server kemudian mengecek ketersediaan resource yang diminta. Kalau ada, maka server akan mengirimkannya kembali ke client. Client kemudian menampilkan hasilnya, sehingga muncullah tampilan website Google. Kalau nggak ada, maka server akan mengirimkan pesan 404 Not Found. Sederhananya begitu. Supaya alur tersebut bisa bekerja, maka diperlukan suatu aturan baku dari awal sampai akhir agar client dan server dapat saling berkomunikasi satu sama lain. Inilah yang disebut sebagai protokol. HTTP dan WebSocket adalah dua protokol yang lazim digunakan di dunia web development. HTTP, seperti namanya: Hyper Text Transfer Protocol, merupakan sebuah protokol untuk mengakomodasi proses transfer sebuah hyper text (HTML) antara server dan client. WebSocket biasanya digunakan untuk handle proses yang realtime. Misal, ketika ngetik pesan di WhatsApp, maka tulisan typing akan muncul di aplikasi WhatsApp lawan chatting kita. Sebelum menggunakan framework, ada baiknya kita juga mencoba membuat aplikasi sederhana tanpa framework sama sekali. Ini adalah cara paling efektif yang saya rasakan untuk memperkuat fundamental di web development. Semasa kuliah, saya belajar membuat aplikasi CRUD sederhana menggunakan PHP native. Saya belajar bagaimana proses menampilkan data hasil query ke browser. Belajar bagaimana cara menambahkan, mengubah, dan menghapus data. Karena pakai PHP native, saya juga belajar bagaimana membangun koneksi ke database. Bagaimana proses sanitasi input, sehingga aplikasi kita aman dari vulnerabilities yang ada. Percayalah, coding from scratch adalah salah satu investasi terbaik belajar pemrogaman. Suatu waktu, ketika masih proses belajar web development, saya coba baca-baca dokumentasi Laravel. Hasilnya? Saya pusing sendiri 🤣 Banyak istilah teknis yang saya nggak. Tapi, seiring waktu berjalan, perlahan saya mulai paham sedikit demi sedikit dokumentasi yang ada. Jadi ya, belajar programming pasti akan memerlukan waktu. Tapi dengan bantuan AI, saya rasa sekarang proses belajar bisa 10x lebih cepat.

The Programmer's Mindset

Ikuti Tren Teknologi

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Tidak dapat dipungkiri bahwa perkembangan di bidang teknologi informasi itu sangat cepat. Setiap periode punya tren-nya masing-masing. Periode 2010an adalah periode di mana digitalisasi mulai marak di mana-mana. Start-up bermunculan. Lowongan kerja IT sangat menggiurkan. Gaji yang ditawarkan pun sangat menggiurkan. Tidak heran, karena pada masa ini, jumlah permintaan tenaga kerja IT di Indonesia lebih tinggi daripada supply yang ada. Era ini mulai bergeser pasca COVID-19 menyerang. Lowongan kerja IT semakin sulit. Banyak layoff di mana-mana. Banyak perusahaan start-up yang gulung tikar. Gaji yang ditawarkan nggakl semenggiurkan sebelumnya. Banyak yang bilang bahkan para pekerja IT diberi penawaran yang jauh dari harga sebelumnya. Orang-orang tech menyebut fenomena ini sebagai "tech winter". Di tengah tech winter, muncul tren baru: Artificial Intelligence. Banyak perusahaan mulai mengimplementasikan AI di produknya masing-masing. Bukan hanya perusahaan, tapi para indie hacker juga membuat product-product yang memanfaatkan AI. Ada yang menggunakannya untuk membuat foto selfie, ada yang menggunakannya untuk transkrip naskah, dan sebagainya. Tren AI juga memunculkan istilah baru: vibe coder. Vibe coder adalah programmer yang memanfaatkan AI untuk bikin SaaS, meskipun tanpa pengetahuan tentang coding sama sekali. Jika dicek di situs ProductHunt, banyak produk buatan indie hacker yang mengiming-imingi AI di dalamnya. Per saya menulis ini, 2 top product of the day ada label AI-nya. Ini menandakan bahwa demand terhadap product-product yang memanfaatkan AI saat ini sedang cukup tinggi. Munculnya tren AI ini menciptakan banyak peluang, ancaman, dan tantangan baru. Salah satu ancamannya adalah berkurangnya lapangan pekerjaan yang kemungkinan bisa digantikan oleh AI. Programmer mungkin salah satunya, tapi menurut saya tidak dalam waktu dekat. Nggak mustahil untuk ke depannya juga akan muncul tren baru setelah AI. Bisa jadi AGI (Artificial General Intelligence). Atau laptop dengan teknologi quantum computing. Sebagai seorang programmer, kita harus selalu tetap mengikuti perkembangan tren saat ini. Pelajari bagaimana AI bekerja, dan bagaimana kita bisa memanfaatkan AI supaya menjadi lebih produktif.

The Programmer's Mindset

Bersahabat Dengan Error

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Orang yang pertama kali ngoding mungkin akan takut dan bingung ketika menjalankan program yang sudah ditulis, kemudian tiba-tiba layar komputer jadi banyak tulisan berwarna merah. Padahal, hal tersebut merupakan makan sehari-hari bagi seorang programmer. Sangat sulit, bahkan hampir mustahil, untuk menulis aplikasi yang cukup besar tanpa mengalami error sedikitpun. Entah itu error syntax karena kurang titik koma, atau error yang lebih sulit dilacak seperit logic yang kurang sesuai, atau race condition. Sebagai seorang programmer, kemampuan untuk memahami pesan error pada program/aplikasi sangat penting. Ini merupakan kemampuan dasar yang harus dimiliki oleh seorang programmer selain kemampuan programming itu sendiri. Kemampuan ini diperlukan supaya kita bisa mencari cara untuk memperbaiki error tersebut secara tepat. Kemampuan memahami pesan error akan sangat membantu debugging. Debugging sederhananya adalah proses pencarian penyebab bug yang menyebabkan suatu error. StackOverflow dan AI adalah sahabat terbaikCara paling gampang untuk memahami persan error adalah dengan copy-paste pesan error dan cari di Google. Biasanya, akan diarahkan ke forum seperti StackOverflow atau forum-forum teknis lain. Terkadang ada juga yang memang sengaja membuat blog post untuk memperbaiki error tersebut. Terkadang, solusi dari StackOverflow masih belum bisa solve issue utamanya. Biasanya, kalau begini saya sendiri tanya ke AI seperti Claude, ChatGPT, dan Gemini. Solusi yang ditawarkan sangat jelas, dan seringkali berhasil. Tergantung prompt yang kita pakai, dan seberapa beruntungnya kita, hehe. Beberapa kali saya juga mendapatkan error yang jawabannya kurang spesifik di StackOverflow, tapi ketika mencoba bertanya kepada AI, jawabannya cukup mudah dimengerti dan solusi yang ditawarkan ternyata berhasil.

The Programmer's Mindset

Mulai dari Masalah Sendiri

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Jika kamu ingin membuat suatu portfolio atau lagi belajar pemrograman, tapi bingung mau bikin apa, ada satu tips: mulailah dengan menyelesaikan masalah pribadi menggunakan kode. Misal, kita kesulitan melacak pemasukan dan pengeluaran setiap bulan. Kita juga ingin mengalokasikan budget untuk beberapa kategori pengeluaran. Untuk itu, kita bisa membuat aplikasi financial tracker menggunakan bahasa pemrograman yang kita kuasai. Aplikasi yang dibuat bebas, apakah berupa aplikasi desktop, web, mobile, atau bahkan aplikasi CLI. Jangan berhenti di tengah pengembangan aplikasi. Sesulit apapun, aplikasi harus tetap dikembangkan hingga selesai. Saya sendiri kesulitan untuk menentukan pekerjaan yang perlu diprioritaskan. Kadang saya lupa, apakah suatu pekerjaan telah dilakukan atau belum. Oleh karena itu, saya mengembangkan suatu aplikasi to-do yang sesuai dengan mental model saya di atas. Namanya Gaweeun. Bisa diakses secara gratis di https://gaweeun.my.id (sekarang sedang nonaktif). Saya juga kesulitan melihat tanggal merah terdekat, karena waktu itu di rumah belum beli kalender, hehe. Akhirnya saya buat aja jadi aplikasi web, bisa diakses di https://adipurnm.com/tools/tanggal-merah. Ide ini bukan ide asli dari saya, tapi terinspirasi dari project orang lain. Hanya saja, ada hal yang saya butuhkan tapi tidak ada di website tersebut, yaitu lihat semua hari libur dalam satu tahun dan tombol yang mengarah ke Google Calendar. Jadi, saya bikin aja versi saya sendiri. See? Kalau memang kamu tidak punya masalah yang bisa diselesaikan dengan programming, kita masih bisa menyelesaikan masalah orang lain, atau sekedar melakukan penambahan fitur seperti yang saya lakukan di website Tanggal Merah Terdekat. Kita hanya perlu lebih peka terhadap permasalahan yang ada di sekitar kita. Karena pada dasarnya, programming adalah seni menyelesaikan permasalahan menggunakan kode.

The Programmer's Mindset

Jam Terbang Ditingkatkan

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Dulu, waktu masih kuliah. Dosen saya nggak bosan-bosannya mewanti-wanti kami, mahasiswa yang beliau ajar, begini sebelum perkuliahan selesai: practice makes perfect, jam terbang ditingkatkan. Petuah menjadi pegangan saya hingga hari ini. Saya cobalah mengerjakan soal-soal pemrograman di luar tugas kampus. Dulu saya latihan di https://projecteuler.net/. Dulu mungkin sudah ada LeetCode, tapi saya aja yang nggak tau. Semakin sering latihan, saya semakin terbiasa berpikir secara rinci. Ketika ada quiz ngoding di kertas pun nggak masalah, karena sudah terbiasa. Kalau hanya mengandalkan materi di kelas/bootcamp, wah, sulit. Programming itu tentang kebiasaan. Semakin tinggi jam terbang, semakin terbiasa. Semakin sering mengerjakan soal-soal yang sulit, otak kita juga akan semakin terbiasa berpikir sekompleks mungkin. Prosesnya memang melelahkan. Bikin pusing. Sakit kepala. Pas lagi ngobrol sama orang pun, kadang otak kita masih mikir solusi soal-soal tersebut. Tapi ya itu prosesnya. Programmer memang harus ulet. Karena, di dunia kerja pun, prosesnya nggak jauh-jauh dari hal begini. Pernah, waktu masih kuliah, saya vakum ngoding cukup lama. Mungkin sekitar 3 sampai 5 bulan. Pas balik lagi ngoding, beuh, jadi kagok. Otak jadi kaku aja, nggak bisa mikir terperinci seperti sebelumnya. Kalau diibaratkan, udah kayak motor kedinginan. Harus dipanasi dulu. Dan manasinnya lumayan lama. Supaya nggak cepat burn-out, kita perlu batasi per hari mau latihan berapa jam. Kalau sudah melebihi jam yang ditentukan, stop. Keluar dulu, main sama teman. Hidup nggak selalu tentang ngoding, toh?

The Programmer's Mindset

Bahasa Pemrograman Hanyalah Alat

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Di chapter sebelumnya, saya sudah bahas bahwa bahasa pemrograman itu hanyalah alat supaya komputer melakukan perintah apapun yang kita inginkan. Meskipun begitu, tidak ada salahnya kita memiliki alat yang sangat kita sukai, tanpa menutup kemungkinan untuk mempelajari alat lainnya jika ternyata memang diperlukan. Ada cukup banyak bahasa pemrograman yang cukup populer saat ini. Setiap bahasa memiliki sintaks yang berbeda-beda. Ada yang harus pakai titik koma, ada yang nggak. Ada yang cara menulisannya harus `camelCase`, ada yang harus `snake_case`. Ada yang harus pakai kurung kurawal, ada yang nggak. Saran saya, coba baca dulu dokumentasi suatu bahasa pemrograman di website resminya atau website-website tutorial, supaya tahu penggunaannya bagaimana. Pilih bahasa pemrograman membuat kamu tertarik, atau coba dulu bahasa pemrograman yang sintaksnya sederhana dan sangat mendekati prosa bahasa Inggris, seperti Python dan Ruby. Pengalaman pertama kamu memilih bahasa pemrograman cukup menentukan kesan kamu terhadap programming. Saya dulu pertama kali dikenalkan ke bahasa C dan C++ ketika kuliah, dan kesan pertama saya: wah, kok ribet ya. Haha. Mungkin karena memang program studi saya teknik informatika, jadi memang mahasiswa diharapkan mampu memahami bagaimana cara komputer bekerja dengan memilih bahasa pemrograman yang low-level. Menurut saya, hal ini masih bisa dipelajari sekalipun kita belajar bahasa pemrograman yang high level dulu. Fokus dulu sama bahasa yang bisa bikin kita betah ngoding lama-lama, karena ini berkaitan dengan chapter selanjutnya, yaitu Jam Terbang.

The Programmer's Mindset

Semuanya Berawal dari Algoritma

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Yap. Beberapa dari pembaca mungkin sudah familiar dengan istilah ini, tapi biar saya tulis ulang definisinya di buku ini ya. Sederhananya, algoritma adalah langkah-langkah terstuktur yang dilakukan untuk menyelesaikan suatu permasalahan. Yang namanya langkah-langkah, sudah pasti dong harus ada awal dan akhirnya. Contohnya begini: Bayangkan ada dua gelas berisi air. Kita diminta untuk menukarkan isi gelas pertama ke gelas kedua, dan sebaliknya. Bagaimana caranya? Langkah yang paling mudah adalah dengan menyediakan wadah baru untuk menampung isi gelas secara sementara. Sehingga, langkah-langkahnya kurang lebih begini: Pindahkan air dari gelas pertama ke wadah baruPindahkan air dari gelas kedua ke gelas pertamaPindahkan air dari wadah baru ke gelas keduaContoh lain. Misal, kita lagi nggak punya uang, dan kita mau pinjam dulu seratus ke teman. Gimana aja langkah-langkanya? Kebanyakan mungkin akan berpikir begini: Lagi nggak punya uangPinjam dulu seratus ke temanLangkah-langkah tersebut, kalau diperinci bisa jadi begini: Lagi nggak punya uangKalau perlu uang cepatPinjam dulu ke temanTentukan mau pinjam ke siapaTentukan mau menghubungi teman via apa, apakah ketemu langsung/via WhatsApp/Instagram, dan sebagainyaTanya kabar temanBasa basi sedikitKeluarkan jurus "Boleh pinjam dulu seratus?"Kalau dikasihBersyukur dan bilang makasihKasih tenggat waktu kapan akan dikembalikanKalau nggak dikasih,Jangan maksaBilang makasih dan maaf udah menggangu waktunyaKembali ke poin 2.a.iKalau nggak:Sabar aja duluMemang harus serinci itu ya?Harus dong. Komputer itu bukan kang sulap yang bim salabim bisa melakukan apapun. Karena beginilah cara kerja komputer. Jika ingin mendalami programming, kita harus mulai terbiasa dengan ini. Cara tercepat untuk terbiasa yaitu harus sering-sering latihan. Selain contoh memindahkan isi dari 2 gelas di atas, masih banyak lagi contoh dalam kehidupan sehari-hari yang bisa kita jadikan sebagai bahan latihan algoritma: Belanja ke warung. Coba pikirkan skenario berikut dan tulis secara rinci apa yang harus dilakukanCuaca sedang hujanBelanja lebih banyak dari uang yang dibawaWarung tutupMenurut saya, kesalahan yang cukup sering dilakukan oleh orang yang baru mendalami programming adalah langsung pilih bahasa pemrograman. Padahal, bahasa pemrograman hanyalah alat dan bisa dipelajari dalam waktu yang cepat dengan membaca dokumentasi yang tersedia. Selama kita sudah terbiasa dengan algoritma, ketika kita diharuskan ganti bahasa, kita akan beradaptasi lebih cepat. Karena, pada dasarnya semua pemrograman itu punya hal-hal berikut. Variabel dan tipe dataPerulanganKondisionalStruktur dataSisanya, biasanya fitur-fitur atau paradigma spesifik yang dimiliki oleh setiap bahasa pemrograman. Hal tersebut akan selalu bisa dipelajari.

The Programmer's Mindset

Prakata

Di publikasikan 23 Dec 2025 oleh Adi Purnama

Halo semua 👋 Sebelumnya saya mau mengucapkan terima kasih banyak karena telah bersedia membeli buku ini. Buku ini saya tulis untuk memberikan gambaran kepada para pembaca semua yang tertarik untuk mempelajari programming, tentang bagaimana aja sih dunia programming itu, dan tips-tips sederhana yang berkaitan dengan programming. Buku ini bukan buku teknis, jadi tidak akan ada tutorial belajar bahasa pemrograman tertentu di buku ini. Meskipun begitu, ada beberapa istilah teknis di buku ini dan sedikit contoh untuk menjelaskan istilah teknis tersebut. Buku ini berisi beberapa pola pikir yang harus dimiliki oleh seorang programmer supaya bisa tetap beradaptasi mengikuti perkembangan teknologi. Semoga buku ini bisa memberikan sedikit insight tentang dunia programming/software engineering. Oiya, buku ini akan selalu diupdate secara berkala, jadi tetap pantengin ya! Salam, Adi

The Programmer's Mindset

Cara merubah data diri di Fenulis.com

Di publikasikan 05 Dec 2025 oleh Fenulis

Login terlebih dahulu di https://www.fenulis.com/loginMasukkan email dan password kamuSetelah login, kamu akan ada dihalaman dashboard. Klik gambar avatar kanan atas, lalu pilih menu "Pengaturan" atau bisa langsung kunjungi halaman https://www.fenulis.com/settings/profileUntuk merubah profile picture, klik pada gambar Foto profilUntuk Nama lengkap, dan Bio bisa langsung ketik kolom datanya yang ingin diubahSetelah selesai, klik tombol "Simpan"

Panduan

Hati vs Gunung

Di publikasikan 03 Dec 2025 oleh Bangun

Suatu ketika, penulis mengikuti dan menyimak kelas dari Ustadz Umar Indra yang membahas Kitabut Tauhid karya Syeikh Muhammad Bin Abdul Wahab. Pada saat itu kami tibalah pada pembahasan bab Firman Allah. Kita ketahui dulu bahwa apa yang ada didalam Al Quran itu berasal dari betul-betul perkataan Allah. Pada bab tersebut kita dibawa untuk melihat begitu dahsyatnya Allah, begitu berkuasanya Allah, begitu kuatnya Allah. Syeikh Muhammad bin Abdul Wahab didalam kitabnya membawakan hadits qudsi ini yang menggambarkan bagaimana keadaan para malaikat ketika mendengar setiap kali Allah berbicara, terdapat pada surat As Saba' ayat 23 حَتّٰىٓ اِذَا فُزِّعَ عَنْ قُلُوْبِهِمْ قَالُوْا مَاذَاۙ قَالَ رَبُّكُمْۗ قَالُوا الْحَقَّۚ وَهُوَ الْعَلِيُّ الْكَبِيْرُ Sehingga apabila telah dihilangkan ketakutan dari hati mereka. Mereka berkata, "Apa yang telah difirmankan Rabb kalian?" Mereka menjawab "Kebenaran". Dan Dia maha tinggi lagi maha besar. Ustadz Abu Umar Indra menggambarkan keadaan detail malaikat ketika mendengar Kalamullah (perkataan Allah), penulis lupa beliau mengutip perkataan sahabat/tabiin siapa. Jika Allah ingin memberikan wahyu, langit-langit bergetar karenanya. Karena saking takutnya para Malaikat ketika mendengar firman Allah, seluruh penghuni langit pingsan dan keadaan mereka bersujud kepada Allah. Lalu malaikat pertama yang mengangkat kepalanya adalah Jibril Alaihissalam, lalu Allah menyampaikannya kepada Jibril Alaihissalam, kemudian Jibril turun melewati beberapa langit, dan setiap malaikat penjaga langit bertanya, apa yang di ucapkan Rabb kita? lalu Jibril mengabarkan kepada mereka, begitu seterusnya disetiap lapis langit sampai Jibril menyampaikannya kepada siapa Allah mengirimkan wahyuNya. Setelah kita dibawa untuk melihat betapa Aziz nya Allah, lalu Ustadz Abu Umar Indra membawakan firman Allah surat Al A'raf ayat 143 yang menceritakan tentang permintaan Nabi Musa untuk melihat Allah. وَلَمَّا جَاۤءَ مُوْسٰى لِمِيْقَاتِنَا وَكَلَّمَهٗ رَبُّهٗۙ قَالَ رَبِّ اَرِنِيْٓ اَنْظُرْ اِلَيْكَۗ قَالَ لَنْ تَرٰىنِيْ وَلٰكِنِ انْظُرْ اِلَى الْجَبَلِ فَاِنِ اسْتَقَرَّ مَكَانَهٗ فَسَوْفَ تَرٰىنِيْۚ فَلَمَّا تَجَلّٰى رَبُّهٗ لِلْجَبَلِ جَعَلَهٗ دَكًّا وَّخَرَّ مُوْسٰى صَعِقًاۚ فَلَمَّآ اَفَاقَ قَالَ سُبْحٰنَكَ تُبْتُ اِلَيْكَ وَاَنَا۠ اَوَّلُ الْمُؤْمِنِيْنَ Dan tatkala Musa datang untuk (munajat dengan Kami) pada waktu yang telah kami tentukan dan Tuhan telah berfirman (langsung) kepadanya, berkatalah Musa, "Ya Tuhanku, tampakkanlah (diri Engkau) kepadaku agar aku dapat melihat kepada Engkau". Allah berfirman, "Kamu sekali-kali tidak sanggup melihatKu, tapi lihatlah ke bukit itu, maka jika ia tetap di tempatnya niscaya kamu dapat melihatKu. Tatkala TuhanNya menampakkan diri kepada gunung itu, dijadikan gunung itu hancur luluh dan Musa pun jatuh pingsan. Maka setelah Musa sadar kembali, dia berkata, "Maha Suci Engkau, aku bertobat kepada Engkau dan aku orang yang pertama-tama beriman." Disini ada perkataan yang membuat saya betul-betul merenung, beliau mengatakan Gunung melihat Allah saja bisa hancur. Manusia hatinya bergetarpun tidak, padahal hatinya kecil, tapi kerasnya melebihi gunung. Hati kita itu sekeras apa kok hancur-hancur gitu lho. Allahu Akbar. --- Coba kita renungkan seberapa sering kita melalaikan adzan berkumandang, tidak segera shalat, menunda-nunda shalat. Seberapa sering kita mendengar ayat-ayat Allah dibacakan, tapi hati kita gak ada bergetar sedikitpun. Seberapa sering kita hadir duduk di kajian, dibacakan hadits-hadits, firman-firman Allah tapi kita sambil main handphone. Sekeras itu kah hati kita daripada gunung? 🏔️ Semoga Allah jaga hati kita semua dengan keimanan yang sempurna, dan semoga Allah jaga Ustadz Abu Umar Indra beserta keluarganya.

Renungan

Muqoddimah

Di publikasikan 03 Dec 2025 oleh Bangun

بِسْمِ اللَّهِ الرحمن الرَّحِيمِ Segala puji hanya untuk Allah Azza Wa Jalla, yang dengan segala kebesaranNya, keagunganNya, kemuliaanNya membuat kita semakin yakin bahwa kita sebagai manusia diberikan kehidupan oleh Allah di dunia ini semata-mata hanya untuk beribadah kepadaNya. Sebagimana firman Allah dalam surat Adz Dzariyat ayat 56 yang berbunyi وَمَا خَلَقْتُ الْجِنَّ وَالْإِنْسَ إِلَّا لِيَعْبُدُونِ Dan tidaklah aku ciptakan jin dan manusia kecuali untuk beribadah kepadaku. Dengan melihat ayat ini, apapun yang kita lakukan di dunia ini, segala sesuatunya niatkan untuk beribadah kepada Allah semata, meskipun itu perkara yang mubah. Shalawat serta salam kita sampaikan kepada Nabi kita Muhammad ﷺ yang dengan syariat yang beliau ﷺ bawa, membuat kita hidup di dunia ini terarah, bukan tanpa arah, teratur bukan tanpa aturan, semua rambu-rambu syariat telah sempurna beliau ﷺ sampaikan. Tugas kita sebagai yang mengaku mengikuti nabi ﷺ adalah dengan benar-benar mengikutinya. Semoga Allah menjadikan kita semua hamba-hamba yang memiliki keimanan yang kuat, karena tanpa keimanan yang kuat hati kita tidak mudah untuk tersentuh, merenung akan kebesaran Allah. Dan semoga Allah memasukkan kita semua ke surga Firdaus, surga tertinggi yang telah Allah siapkan bagi orang-orang yang beriman dan beramal shaleh. Karena kata nabi ﷺ "Jika engkau minta kepada Allah, maka mintalah surga Firdaus."  Allahuma amin...

Renungan