---
title: "Craft Coding: Filosofi Menulis Kode di Era Vibe Coding"
description: "Di antara menolak AI dan menyerahkan semuanya padanya, ada jalan tengah yang rasional. Eksplorasi craft coding dari perspektif filosofi software engineering."
author: "Adrian Prat"
author_url: https://devmode.id/adrianprat
url: https://devmode.id/adrianprat/craft-coding-filosofi-era-ai-7pam
published: 2026-08-16T15:10:00.000Z
updated: 2026-08-16T15:10:00.000Z
language: id
tags: ["ai", "vibe-coding", "software-engineering", "programming"]
publisher: "DEVMODE Community"
---

# Craft Coding: Filosofi Menulis Kode di Era Vibe Coding

Oleh [Adrian Prat](https://devmode.id/adrianprat) · 2026-08-16

Ketika Andrej Karpathy mempopulerkan istilah *vibe coding* awal tahun ini, banyak developer merasa lega. Akhirnya, kita bisa fokus pada *apa* yang ingin dibangun tanpa terjebak dalam detail *bagaimana*. AI menulis kode, manusia mengarahkan. Terdengar seperti utopia produktivitas. Tapi apa yang terjadi ketika kita menyerahkan terlalu banyak pada mesin?

Saya baru saja membaca dua artikel yang membuat saya berhenti sejenak dari rutinitas ngoding harian. Yang pertama dari [Peter Bloem, dosen ilmu komputer di VU Amsterdam](https://peterbloem.nl/blog/craft-coding), yang mengajukan konsep *craft coding*. Yang kedua dari [Joe Davidsen yang menegaskan bahwa fundamental software engineering justru lebih penting dari sebelumnya](https://rhonabwy.com/2026/08/15/software-engineering-fundamentals-matter-more-than-ever/) di era agentic AI. Keduanya menyampaikan pesan yang sama dengan cara berbeda: kecepatan tidak selalu sebanding dengan keunggulan.

## Tiga Jenis Pembuat Kode

Bloem menggunakan analogi tiga pembuat roti yang sangat membantu untuk memahami posisi kita sekarang. Bayangkan Hanna, seorang *home baker* fanatik. Dia menguleni adonan dengan tangan, mengontrol suhu dengan obsesif, menciptakan beberapa *loaf* roti yang sempurna. Hasilnya luar biasa, tapi tidak scalable. Dia tidak peduli. Kemudian ada Vivian, pemilik *bakery* komersial. Semua keputusan proses diserahkan pada *food scientist*. Yang dia pantau hanya statistik agregat: berapa biaya produksi dan seberapa laku rotinya. Kualitas intrinsik tidak penting, yang penting roti cukup bagus untuk terjual. Di tengah-tengah, ada Cara: *craft baker*. Dia tahu dia tidak bisa menguli dengan tangan untuk skala komersial, tapi dia juga tidak menyerahkan kualitas begitu saja. Dia peduli pada setiap detail proses, menggunakan mesin hanya ketika itu benar-benar meningkatkan hasil, dan mendapatkan kepuasan dari penguasaan atas pekerjaannya.

Dalam konteks pengembangan perangkat lunak, Hanna adalah *hand coder* yang menolak AI sama sekali. Mereka memilih menjaga kerajinan kuno hidup, apakah itu secara komersial *viable* atau tidak. Vivian adalah *vibe coder* modern. Bukan dalam arti santai atau sekadar bersenang-senang seperti [definisi awal istilah itu](https://en.wikipedia.org/wiki/Vibe_coding), melainkan profesional yang menyerahkan produksi kode pada AI dan hanya memantau apakah *test* lulus atau ada masalah di produksi. Mereka tidak membaca setiap baris. Cara, dalam analogi ini, adalah *craft coder*: programmer yang menulis setiap karakter dengan jari mereka sendiri, memahami setiap aspek *codebase*, tapi tidak malu menggunakan AI sebagai *reviewer* yang superhuman.

## Apa yang Salah dengan Vibe Coding?

Masalah dengan *vibe coding* bukanlah bahwa kode tidak berfungsi. Sering kali kode itu berjalan. Masalahnya adalah apa yang hilang dalam prosesnya. Bloem menunjukkan bahwa ketika kita menyerahkan *doing* dan *checking* pada mesin yang sama, kita kehilangan kemampuan untuk mengukur seberapa dalam pemahaman kita. Di universitas, salah satu keterampilan paling berharga yang dipelajari mahasiswa adalah mengajukan pertanyaan sulit pada diri sendiri untuk menguji apakah mereka benar-benar memahami sebuah konsep. Menyerahkan segalanya pada AI berarti mekanisme pengukuran itu tidak pernah berkembang. Anda tidak hanya dengan sengaja mengambil *shortcut*, Anda menipu diri sendiri dengan berpikir telah menguasai sesuatu.

Joe Davidsen menambahkan perspektif teknis yang menarik. LLM tidak "berpikir" dalam arti manusiawi. Mereka memprediksi *token* berikutnya, dan model itu sendiri adalah pengetahuan manusia yang terkompresi. Jika *reasoning trace* tidak ada dalam data pelatihan, mereka tidak bisa menghasilkannya. [Paper dari Apple yang berjudul *The Illusion of Thinking*](https://machinelearning.apple.com/research/illusion-of-thinking) mengkonfirmasi betapa buruknya LLM dalam *reasoning* yang sebenarnya, terutama untuk masalah yang memerlukan perencanaan mendalam. Simon Willison pernah menciptakan istilah [*lethal trifecta*](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/): LLM tidak bisa membedakan antara saran yang baik dan buruk, secara fundamental tidak mampu mencegah *prompt injection*, dan sesuatu yang dengan gigih mengikuti instruksi tanpa *reasoning* yang baik adalah *nightmare fuel*.

## Craft Coding dalam Praktik

Lalu apa solusinya? Bloem menawarkan pendekatan yang ia sebut *craft coding*: *you code, AI checks*. Bukan sebaliknya. Dogma praktisnya jelas. Pertama, tidak ada AI di IDE dalam bentuk *autocomplete*. Setiap karakter ditulis oleh jari Anda. Kedua, beri AI akses *read-only* ke *codebase*, atau lebih baik lagi *copy-paste snippet* ke *web interface*. Ketiga, AI tidak boleh menjalankan apa pun. Ia menyarankan, Anda yang mengeksekusi. Keempat, jangan *copy-paste* kode dari *chat box*. Kelima, jangan gunakan AI untuk hal yang bisa dilakukan dengan *plain search*. Keenam, baca dokumentasi sebelum bertanya pada AI. Ketujuh, minta AI untuk solusi hanya jika Anda tidak bisa menyelesaikannya sendiri setelah memberi waktu untuk berpikir. Kedelapan, periksa kode Anda sendiri sebelum minta AI mereview. Kesembilan, jalankan kode untuk memeriksa masalah, baru kemudian minta AI menemukan sisanya. Kesepuluh, jangan implementasikan saran yang tidak Anda pahami.

## Mengapa Ini Penting

Manfaat dari pendekatan ini signifikan. Sebagai *reviewer*, AI modern bersifat superhuman dalam menemukan *bug*. Ia bisa menangkap masalah *runtime* yang mungkin tidak pernah kita temukan sendiri. Lebih penting lagi, dalam era *AI-powered cyberattack*, kode yang ditulis tangan tanpa review AI menjadi tidak aman. *Attacker* dengan kemampuan AI bisa menemukan celah yang lolos dari mata manusia. [Mythos dan Fable dari Anthropic telah memunculkan kekhawatiran keamanan yang cukup serius](https://www.theguardian.com/technology/2026/apr/22/what-is-anthropic-mythos-ai-threat-global-cybersecurity) hingga membuat pemerintah AS turun tangan.

Ada juga manfaat psikologis. Ketika Anda menulis kode sendiri lalu meminta AI mereview, Anda akan menemukan diri Anda berusaha lebih keras meminimalkan *bug* sebelum *submission*. Seperti mahasiswa yang ingin *impress* dosen pembimbing, Anda secara tidak sadar mendorong diri untuk kualitas lebih tinggi. Proses ini juga mencegah *deskilling*. Seperti otot, keterampilan kognitif sulit didapat dan mudah hilang. *Vibe coding* adalah *Guitar Hero* equivalent of coding: game yang sangat menyenangkan, membuat Anda merasa *powerful* dan kreatif, sambil menghilangkan semua *friction* yang sebenarnya membuat Anda belajar.

## Ruang untuk Craft Coding

Tentu saja, *craft coding* bukan solusi untuk semua orang. Jika Anda bekerja di perusahaan yang menjual "roti untuk supermarket", *craft coding* akan sulit dijual. Perusahaan seperti itu peduli pada statistik agregat: apakah jualan naik, apakah *customer* menerima produknya. Tapi seperti Cara yang menemukan *niche* di pasar yang muak dengan homogenitas produk supermarket, ada ruang untuk *craft coding*. Kode ilmiah, misalnya, harus *craft coded* karena penulis *paper* menjamin bahwa kode secara eksak mengimplementasikan ide. [Linus Torvalds sendiri mendukung penggunaan AI untuk review](https://lore.kernel.org/linux-media/CAHk-=wi4zC+Ze8e+p3tMv8TtG_80KzsZ1syL9anBtmEh5Z40vg@mail.gmail.com/), bukan untuk produksi kode kernel. Tool seperti [Sashiko](https://github.com/sashiko-dev/sashiko) menangkap lebih dari 50% bug yang lolos dari review manusia.

## Tanah Tengah yang Rasional

Di tengah polarisasi yang semakin memanas antara mereka yang menolak AI sepenuhnya dan mereka yang memeluknya tanpa kritik, *craft coding* menawarkan tanah tengah yang rasional. Kita tidak perlu menjadi Hanna yang fanatik. Kita juga tidak boleh menjadi Vivian yang hanya memantau *dashboard*. Kita bisa menjadi Cara: menggunakan mesin untuk meningkatkan kualitas, bukan menggantikan pemahaman.

Pertanyaan yang saya tinggalkan untuk Anda renungkan: jika Anda benar-benar percaya bahwa AI hanyalah *parlor trick*, mengapa Anda tidak mau membuktikannya dengan rutin meminta AI mereview kode Anda? Mungkin ada sesuatu dalam diri Anda yang tidak ingin tahu bahwa mesin telah mengungguli Anda di bidang tertentu. Dan mungkin, justru di situ letak alasan mengapa kita perlu *craft coding* lebih dari sebelumnya.

---

Sumber: https://devmode.id/adrianprat/craft-coding-filosofi-era-ai-7pam (DEVMODE Community)
