Pengantar Perancangan Spesifikasi Aplikasi

 


Pengantar Perancangan Spesifikasi Aplikasi

Pernahkah Anda membayangkan diri Anda sebagai seorang koki profesional di sebuah restoran berbintang? Sebelum menyalakan kompor atau memotong daging, ada satu ritual sakral yang selalu dilakukan: mise en place. Ini adalah proses menyiapkan alat, menata bahan, dan memastikan dapur bersih sebelum memasak. Tidak ada koki hebat yang bekerja di tengah kekacauan karena kekacauan di dapur akan berujung pada hidangan yang gagal.

Dalam pengembangan perangkat lunak modern yang dibantu oleh kecerdasan buatan (Artificial Intelligence atau AI), prinsip ini berlaku mutlak. Jika pada modul sebelumnya kita telah mengubah pola pikir dari sekadar "pengetik kode" menjadi "arsitek", kini saatnya kita mempraktikkan “mise en place”.

Pertanyaannya adalah bagaimana cara menyuruh Kiro agar hasil kerjanya sesuai dengan keinginan kita?

Kiro, sebagai asisten AI Anda, adalah koki pendamping yang sangat cerdas dan patuh. Namun, ia tidak dapat membaca pikiran. Ia hanya mengeksekusi apa yang Anda tuliskan. Tanpa persiapan konteks dan instruksi yang jelas, kecerdasan Kiro akan sia-sia.

Modul ini akan memandu Anda mempelajari seni "berbicara" dengan AI, mulai dari memilih mode interaksi yang tepat, menyusun konteks, hingga merancang dokumen spesifikasi teknis yang presisi. Berikut adalah tujuan pembelajaran yang akan Anda capai dalam modul ini.

  • Menyusun dokumen spesifikasi (spec file) yang memuat User Stories, Tech Stack, dan aturan bisnis menggunakan format Markdown.
  • Menerapkan teknik Prompt Engineering yang eksplisit agar Kiro dapat memahami intent (tujuan) tanpa ambiguitas.
  • Menganalisis fitur Context di Kiro untuk menentukan file mana yang relevan dibaca oleh AI sebelum bekerja.
  • Mengevaluasi Execution Plan yang ditawarkan oleh Kiro sebelum menyetujui pembuatan kode.
  • Menggunakan fitur Command Modes (seperti /edit, /chat) sesuai kebutuhan instruksi.

Mari kita mulai perjalanan ini dengan memahami dua mode utama dari asisten Anda, Kiro.

Dua Mode Kiro: Mode Vibe vs. Spec

Dalam ekosistem Kiro, Anda akan selalu dihadapkan pada satu pertanyaan fundamental sebelum mengetikkan instruksi: "Apakah saya harus menggunakan Mode Vibe atau Mode Spec?" Kesalahan dalam memilih mode ini ibarat menggunakan palu untuk memotong kertas; alatnya benar, tetapi penggunaannya salah konteks.

Mari kita bedah perbedaannya secara mendalam.

Mode Vibe: Sang Musisi Jazz (Eksploratif & Cepat)

AD_4nXeIWtosLIGmJnvw9DBvryNgl4DPeJSnjngWWr_BtbSwXBZe298VmO87Z1nJy3cY-1_K0VCFkUss7cOlIJl8DYewv2-Hf7OsCNk8kLCuZOSMb6jd_iwPqNiDaw1nbMr9NrAuhxLfR3lkjuqUWtDmSEBFfeNx?key=VCE2UDhCUSjvRbWTbSQiig

Bayangkan Anda sedang jamming musik jazz dengan teman. Tidak ada partitur yang ketat, Anda hanya mengikuti alur, mencoba nada baru, dan jika terdengar fals, Anda langsung memperbaikinya di tempat. Inilah filosofi Mode Vibe.

Dalam mode ini, Kiro bertindak sebagai pair programmer yang santai. Ia merespons instruksi pendek dengan cepat tanpa menuntut dokumen persyaratan formal.

Kapan sebaiknya menggunakan Mode Vibe?

  1. Perubahan Visual Ringan:
    "Kiro, tolong ubah warna tombol 'Submit' jadi biru muda dan tambahkan efek bayangan."
  2. Perbaikan Bug Sederhana:
    "Ada error 'null pointer' di baris 45. Tolong perbaiki."
  3. Eksplorasi Ide (Prototyping):
    "Buatkan kerangka kasar halaman 'Tentang Kami' dengan tiga kolom foto tim."
  4. Bertanya tentang Kode:
    "Jelaskan apa fungsi reduce() di blok kode ini?"

Kelebihan dan kekurangan:

  • Cepat: Tidak perlu persiapan dokumen. Langsung ketik, langsung jadi.
  • Fleksibel: Mudah untuk bereksperimen.
  • Risiko: Karena tidak ada "jangkar" dokumen, jika digunakan untuk fitur besar, kode bisa melenceng dari arsitektur awal (spaghetti code).


Mode Spec: Sang Arsitek Gedung (Terstruktur & Disiplin)

AD_4nXdFC8MEH1vIdREnqRh9g8ClP9ChYNsm5QAGghiOYuR-5aqXvV7KusCX5oerZOqpo3KDuLF1zrGo1ZQKdhpuPnQ0GN9iyiRyUZLn6o6FeHMHAbuZoTZkOjoJCGAryO2HUmz2auysitrxQL5rebmTZflrGQ?key=VCE2UDhCUSjvRbWTbSQiig

Sekarang, ubah pola pikir Anda. Anggap Anda adalah mandor proyek pembangunan gedung pencakar langit. Anda tidak bisa menyuruh tukang dengan berteriak, "Eh, tolong tambah kamar mandi di situ!" tanpa mengubah gambar denah. Jika Anda melakukannya, pipa air bisa bocor ke ruang listrik.

Inilah Mode Spec. Di mode ini, Kiro tidak lagi mendengarkan perintah lisan (chat) sebagai kebenaran utama, melainkan patuh sepenuhnya pada Dokumen Spesifikasi (Spec File).

Kapan sebaiknya menggunakan Mode Spec?

  1. Membangun Fitur Baru yang Kompleks:
    Misalnya, membuat sistem Login dan Register lengkap dengan validasi email, enkripsi password, dan penyimpanan token.
  2. Merancang Skema Database:
    Menentukan relasi tabel, tipe data, dan aturan integritas data.
  3. Refactoring Besar-besaran:
    Mengubah struktur folder proyek atau memisahkan logika bisnis dari tampilan (UI) agar kode lebih bersih.
  4. Menjaga Konsistensi Tim:
    Saat bekerja dalam tim, Mode Spec memastikan semua orang (dan AI) mengacu pada aturan bisnis yang sama yang tertulis di dokumen .md.

Kelebihan dan kekurangan:

  • Akurat & Konsisten: Minim halusinasi karena AI memiliki panduan tertulis yang lengkap.
  • Dokumentasi Hidup: Spesifikasi selalu up-to-date dengan kode.
  • Butuh Waktu di Awal: Anda harus meluangkan waktu menulis spesifikasi sebelum melihat hasil kode.

Cara kerja Mode Spec:

  1. Anda menulis/mengedit berkas spec.md.
  2. Kiro membaca berkas tersebut.
  3. Kiro membuat rencana (plan) untuk mengubah kode agar sesuai dengan spec.md.
  4. Jika ada bug, Anda tidak memperbaiki kode. Anda memperbaiki spec.md, lalu Kiro akan meregenerasi kodenya.



Studi Kasus: Vibe vs. Spec di Dunia Nyata

Agar pemahaman Anda semakin matang, mari kita posisikan diri sebagai seorang Software Developer yang harus mengambil keputusan cerdas dalam dua situasi berbeda. Kapan harus santai menggunakan Vibe, dan kapan harus serius menggunakan Spec?

Simak dua skenario berikut ini.

Skenario 1: Revisi Teks Halaman Depan

Anda mendapatkan permintaan mendadak dari manajer produk untuk mengubah kalimat sapaan di landing page aplikasi.

  • Tantangan: Mengubah tulisan "Selamat Datang" menjadi "Halo, Kawan!".
  • Keputusan: Gunakan Mode Vibe.
  • Alasannya:
    Perubahan ini bersifat kosmetik dan sangat sederhana. Menulis dokumen spesifikasi formal hanya untuk mengubah dua kata adalah tindakan yang tidak efisien (overkill). Dengan Mode Vibe, Anda cukup memberikan instruksi singkat dan perubahan selesai dalam hitungan detik.


Skenario 2: Pengembangan Fitur "Keranjang Belanja"

Kali ini, Anda diminta membangun fitur shopping cart. Fitur ini melibatkan perhitungan harga total, validasi diskon, pengurangan stok di database, dan pembaruan antarmuka secara real-time.

  • Tantangan: Fitur ini memiliki logika yang kompleks. Anda harus menghitung total harga, memvalidasi kode diskon, memastikan stok di database berkurang saat checkout, serta memperbarui tampilan antarmuka secara real-time.
  • Keputusan Mode: Gunakan Mode Spec.
  • Alasannya:
    Risiko kesalahan logika di sini sangat tinggi. Jika hanya mengandalkan Mode Vibe (instruksi biasa), AI mungkin melewatkan detail krusial, seperti lupa mengurangi stok barang. Dengan Mode Spec, Anda menuliskan aturan bisnis secara eksplisit (contoh: "Stok wajib berkurang otomatis setelah pembayaran berstatus sukses"). Kiro akan mematuhi aturan tertulis tersebut dengan presisi sehingga meminimalkan bug fatal.

Memilih mode yang tepat hanyalah langkah awal. Anda memerlukan media untuk menyampaikan instruksi tersebut.



Mengenal Fitur Chat Kiro

Panel Chat di Kiro dirancang sebagai jembatan utama antara Anda dan kode Anda. Di sinilah Anda berinteraksi dengan codebase menggunakan bahasa alami (natural language), seperti sedang mengobrol dengan rekan kerja, bukan mengetik perintah robot yang kaku.

Prinsipnya sederhana: Katakan saja apa yang Anda butuhkan.

Berdasarkan dokumentasi resminya [2], Panel Chat Kiro memungkinkan Anda melakukan berbagai hal ajaib sambil tetap menjaga konteks proyek secara utuh.

  • Bertanya tentang codebase: Bingung di mana letak konfigurasi database? Tanyakan saja.
  • Meminta penjelasan logika rumit: Ada fungsi warisan (legacy code) yang sulit dipahami? Minta Kiro menjelaskannya baris demi baris.
  • Menghasilkan fitur baru: Minta Kiro membuat fitur dari nol berdasarkan ide Anda.
  • Melakukan debugging: Mintalah solusi untuk masalah-masalah pelik yang sulit dipecahkan.
  • Otomatisasi tugas: Biarkan Kiro menangani tugas-tugas repetitif yang membosankan.

Panel Chat menyediakan wadah untuk berkomunikasi. Namun, kualitas jawaban yang Anda terima sangat bergantung pada "otak" yang menggerakkannya. Anda memiliki kendali penuh untuk menentukan "otak" mana yang akan memproses instruksi Anda berdasarkan tingkat kompleksitas tugas.

Strategi Pemilihan Model AI untuk Optimalisasi Tugas

Kiro menyediakan berbagai pilihan agen AI yang sangat kuat untuk menangani tugas pengembangan Anda dengan karakteristik yang berbeda-beda. Pemilihan model yang tepat merupakan bagian penting dari manajemen sumber daya dan kualitas kode.

AD_4nXfrKkoy6AP15C8wwPwbn2gBP914TTOH9SgVvhzts3cus-7sdM8eVzbE2fpOnDsv7Fqc_oKErwooxwwpRIeObcHfvX2miATdSqym5X0ql7zjTdYllDEvdnfKUXqWLgM_JypO7HPAms02VMkFGvW8fKwKk344?key=VCE2UDhCUSjvRbWTbSQiig

Memahami Karakteristik Model yang Tersedia

Model Auto merupakan pilihan yang sangat direkomendasikan karena bertindak sebagai router cerdas yang akan memilihkan model terbaik untuk setiap tugas secara otomatis. Penggunaan model Auto terbukti lebih efektif secara biaya, yaitu sekitar 23 persen lebih murah (menurut dokumentasi resmi-nya) dibandingkan penggunaan model papan atas secara langsung. Namun, ia tetap memberikan kualitas hasil yang setara dengan model Sonnet 4.0.

Untuk tugas yang membutuhkan kecerdasan maksimal, Anda dapat memilih Claude Opus 4.6 atau Opus 4.5. Model ini sangat unggul dalam melakukan perencanaan jangka panjang, menavigasi berkas kode yang sangat besar, serta memiliki kemampuan koreksi diri yang lebih baik melalui debugging yang mendalam.

Keseimbangan Antara Kecepatan dan Biaya

Di sisi lain, jika Anda lebih mengutamakan kecepatan respons dan efisiensi biaya untuk tugas-tugas yang tidak terlalu kompleks, model Claude Haiku 4.5 adalah pilihan yang paling bijak. Model ini mampu memberikan kecerdasan yang hampir setara dengan model kelas menengah, tetapi dengan kecepatan dua kali lebih cepat.

Memahami perbedaan konsumsi kredit antar model, seperti Opus yang mengonsumsi kredit 2.2 kali lipat dibandingkan model Auto, akan membantu Anda dalam mengelola anggaran proyek secara lebih efisien. Sebagai praktik terbaik, gunakanlah model Auto untuk pekerjaan pengembangan umum dan cadangkanlah kekuatan Opus hanya untuk tantangan rekayasa perangkat lunak yang paling sulit.

Kunci dari semua kemampuan chat adalah Konteks. Kiro tidak bekerja dengan ingatan kosong; ia memahami proyek Anda secara menyeluruh. Namun, agar hasilnya semakin presisi, Anda perlu membantunya dengan memberikan informasi dan konteks yang relevan.

Konteks Adalah Raja: Memilih Berkas yang Relevan

Salah satu kesalahpahaman terbesar saat berinteraksi dengan AI adalah menganggap bahwa AI "maha tahu" tentang seluruh isi proyek Anda secara instan.

Padahal, AI memiliki keterbatasan memori jangka pendek (context window). Jika Anda tidak memberikannya informasi yang tepat, AI akan mencoba menebak-nebak, dan tebakan itu sering kali salah atau yang biasa disebut "halusinasi".

Mari gunakan analogi sederhana. Misalkan, Anda memiliki seorang karyawan magang baru yang bernama Kiro. Di hari pertamanya, Anda langsung berkata:

"Tolong perbaiki bug di fitur pembayaran, ya!"

Karyawan magang tersebut pasti akan bingung. "Fitur pembayaran yang mana? Berkas kodenya di folder apa? Logika pembayarannya seperti apa?" Tanpa informasi tersebut, si karyawan magang mungkin akan mengotak-atik berkas yang salah dan malah merusak sistem.

Hal serupa terjadi pada Kiro. Agar Kiro dapat memberikan solusi yang akurat, Anda harus memberikan Konteks Eksplisit.

Cara Memberikan Konteks di Kiro

Di dalam Kiro, Anda memiliki kendali penuh untuk menentukan berkas mana yang harus "dibaca" oleh AI sebelum ia menjawab pertanyaan.

AD_4nXd2eOU6J1j8cTEoNtK2w9UZZSpW3eJVDUzPyJsWR5bc08n1_JJBbRF3gv3SP_5mltyJhpLjVQLTfEmT4fITWVhRfZ7__zxHdrY2o49tpL3L5PG_ad8LGszXUbFEZJA9rKwlmg9IPuDxezkpbeGAsJxCb_KK?key=VCE2UDhCUSjvRbWTbSQiig

Kiro menyediakan cara mudah untuk "menyuapi" konteks ke AI menggunakan simbol tagar (#) berikut:

  • #Files: Gunakan ini untuk menyuruh Kiro membaca file tertentu [2].
    Contoh: "Tolong jelaskan logika di #auth.ts."
  • #Codebase: Gunakan ini jika pertanyaan Anda menyangkut seluruh proyek [2]. Kiro akan memindai seluruh file untuk mencari jawaban.
    Contoh: "#codebase di mana saja variabel userToken digunakan?"
  • #Folder: Fokuskan perhatian AI pada satu folder spesifik.
  • #Current File: File yang sedang aktif di editor saat ini.
  • #Docs: Gunakan berkas documentation dan kontennya.
  • #Spec: Gunakan spesifik spec (requirements, design, tasks)

Tips: Jangan Copy-Paste Error, Gunakan konteks #terminal!

Fitur ini sangat powerful untuk debugging. Saat Anda menyertakan #terminal, Kiro otomatis mengakses riwayat perintah, output, dan pesan error terakhir di terminal Anda.

Skenario Penggunaan:

  • Build Gagal: "#terminal Build saya gagal, apa penyebabnya?"
  • Debug Test: "#terminal Unit test ini merah semua, bantu saya paham kenapa."
  • Isu Git: "#terminal Saya terjebak merge conflict di sini."
  • Masalah Dependensi: "#terminal npm install melempar banyak error."

Kiro akan menganalisis pola error langsung dari sumbernya dan memberikan solusi spesifik. Jadi, lupakan cara lama menyalin pesan error secara manual!

Contoh Kasus Sederhana:
Anda ingin menambahkan validasi nomor telepon pada formulir pendaftaran.

  • Cara Salah: "Buatkan validasi nomor telepon." (Kiro tidak tahu formulir mana yang dimaksud).
  • Cara Benar: "Tambahkan validasi nomor telepon Indonesia (+62) pada fungsi validateInput di dalam berkas #RegisterForm.js."

Dengan memberikan konteks #RegisterForm.js, Kiro langsung paham variabel apa yang tersedia dan gaya penulisan kode (coding style) yang Anda gunakan di berkas tersebut.

Seni Menulis Prompt: Menghindari Kalimat Ambigu

Dalam dunia pengembangan perangkat lunak berbasis AI, kualitas instruksi (prompt) Anda menentukan kualitas kode yang dihasilkan. Ada istilah populer: "Garbage In, Garbage Out". Jika instruksi Anda ambigu atau "tidak jelas", kode yang dihasilkan pun akan membingungkan.

Bahasa manusia penuh dengan nuansa subjektif, sedangkan komputer membutuhkan kepastian teknis. Mari kita pelajari teknik mengubah bahasa manusia yang abstrak menjadi instruksi teknis yang presisi.

Jebakan Kata Sifat Subjektif

Hindari penggunaan kata sifat yang subjektif seperti "bagus", "keren", "cepat", atau "modern" tanpa definisi teknis.

Contoh:

  • Instruksi Ambigu: "Buatkan halaman profil yang modern."
    Apa definisi modern menurut AI? Bisa jadi ia membuat desain futuristik dengan warna neon yang justru tidak cocok dengan aplikasi toko Anda.
  • Instruksi yang seharusnya: "Buat halaman profil dengan tata letak Grid 3 kolom. Gunakan warna latar putih (#FFFFFF) dan font Sans-Serif. Tambahkan bayangan tipis (box-shadow) pada setiap kartu profil."


Rumus Prompt Efektif: Peran, Tugas, dan Batasan

Agar instruksi Anda selalu tajam, gunakan kerangka berpikir berikut ini:

  1. Peran (Role): Berikan identitas kepada AI.
    • Contoh: "Bertindaklah sebagai Senior Frontend Developer yang ahli dalam React dan aksesibilitas (a11y)."
  2. Tugas (Task): Jelaskan apa yang harus dikerjakan secara spesifik.
    • Contoh: "Buat komponen Button yang dapat digunakan ulang (reusable)."
  3. Batasan (Constraints): Berikan aturan main yang tidak boleh dilanggar.
    • Contoh: "Gunakan Tailwind CSS untuk gaya. Jangan gunakan pustaka tambahan apa pun. Pastikan tombol bisa diakses menggunakan keyboard (tab index)."

Mari kita lihat perbandingan nyata antara instruksi vibe coder pemula dan senior.

Instruksi Pemula:

"Tolong buat fungsi untuk menghitung diskon."

AI mungkin membuat fungsi sederhana yang hanya memotong persen, tanpa memikirkan batas maksimal diskon atau validasi input.

Instruksi Senior:

"Buat fungsi JavaScript bernama calculateDiscount. Fungsi ini menerima dua parameter: price (number) dan percent (number).

Aturan Bisnis:

  1. Jika price di bawah 50.000, kembalikan harga asli tanpa diskon.
  2. Diskon maksimal adalah 20.000, tidak peduli seberapa besar persentasenya.
  3. Pastikan fungsi mengembalikan nilai number yang sudah dibulatkan ke bawah."

Lihat bedanya? Instruksi kedua memberikan pagar pengaman yang jelas. AI tidak perlu menebak-nebak aturan bisnis Anda, sehingga kode yang dihasilkan bisa langsung dipakai dengan minim revisi.

Mengenal Kiro Specs: Cetak Biru yang Hidup

Sebelum kita melangkah lebih jauh, mari kita bedah apa yang sebenarnya dimaksud dengan Spec di dalam Kiro. Apakah ini dokumen Word, PDF, atau secarik kertas catatan?

Berdasarkan dokumentasi resminya, Kiro Specs adalah berkas berbasis teks (biasanya format Markdown atau .md) yang berfungsi sebagai jembatan antara ide Anda dan eksekusi AI.

Jangan bayangkan ini sebagai dokumen spesifikasi "jadul" yang ditulis sekali lalu dilupakan. Di Kiro, Spec adalah dokumen yang hidup. Ia memiliki tiga karakteristik utama yang membuatnya sangat powerful:

  1. Sumber Kebenaran (Single Source of Truth)
    Dalam pengembangan tradisional, dokumentasi sering kali tertinggal dari kode aktual. Di Kiro, Spec adalah pemimpinnya. Kode program hanyalah implementasi dari apa yang tertulis di Spec. Jika Anda ingin mengubah perilaku aplikasi, Anda tidak mengubah kode secara langsung, melainkan mengubah Spec-nya terlebih dahulu. Kiro kemudian akan menyesuaikan kode agar selaras dengan Spec baru tersebut.
  2. Konteks yang Terfokus
    Kiro Specs dirancang untuk memberikan konteks yang sangat spesifik kepada AI. Saat Anda menjalankan Kiro dalam Mode Spec, AI tidak hanya "menebak" keinginan Anda. Ia membaca berkas .md tersebut sebagai instruksi mutlak.
    Ini menjawab masalah terbesar dalam coding dengan AI, yaitu "hilang fokus". Dengan adanya Spec, AI tahu persis batasan masalah, teknologi yang digunakan, dan hasil akhir yang diharapkan tanpa perlu Anda ulang-ulang di chat.
  3. Format Markdown yang Familier
    Anda tidak perlu mempelajari bahasa pemrograman baru yang rumit untuk menulis Spec. Kiro menggunakan standar Markdown. Jika Anda bisa menulis teks dengan bullet points, huruf tebal, dan heading, berarti Anda sudah bisa menulis Kiro Spec. Kesederhanaan ini memungkinkan Anda fokus pada logika bisnis, bukan pada sintaks yang rumit.

Dengan memahami konsep ini, Anda tidak akan lagi menganggap menulis dokumen sebagai beban, melainkan sebagai cara untuk mengendalikan AI sepenuhnya.

Tiga Berkas Utama Kiro Specs

Pernahkah Anda merasa bingung saat harus memulai fitur baru? Menatap layar kosong, lalu bertanya-tanya, "Saya harus mulai ngetik apa dulu, ya?"

Kiro menghilangkan kebingungan itu. Saat Anda membuat Spec baru (misalnya fitur Login), Kiro tidak memberikan halaman kosong. Ia langsung menyiapkan "paket lengkap" berupa folder yang berisi tiga berkas utama. Ketiga berkas ini bekerja estafet dari ide abstrak menjadi tugas teknis yang nyata.

Mari kita lihat isinya satu per satu.

A. requirements.md

Ini adalah berkas pertama yang harus Anda isi. Di sini, kita hanya bicara soal "Apa yang diinginkan pengguna", bukan "Bagaimana cara coding-nya".

Sering kali, kita mendapat permintaan fitur yang absurd seperti: "Tolong buat form yang canggih." Kata "canggih" itu tidak bisa diukur.

Untuk mengatasi ini, Kiro menggunakan format bahasa yang disebut EARS (Easy Approach to Requirements Syntax). Jangan takut dengan namanya, konsepnya sangat sederhana, yaitu dengan pola seperti berikut.

SAAT [sesuatu terjadi] ... MAKA SISTEM HARUS [melakukan ini].

Contoh:

Daripada menulis: "Validasi password harus aman" Lebih baik tulis:

  • SAAT (WHEN) pengguna memasukkan password kurang dari 8 karakter,
  • MAKA SISTEM HARUS (THE SYSTEM SHALL) menolak dan memunculkan pesan peringatan.

Dengan cara ini, tidak ada lagi ruang untuk salah tafsir antara Anda, Manajer Produk, dan AI.

B. design.md

Setelah keinginannya jelas, barulah kita masuk ke berkas kedua: design.md. Di sinilah sisi engineering Anda bekerja.

Anggap file ini sebagai papan tulis tempat Anda menggambar skema sistem. Kiro akan membantu Anda mendefinisikan:

  • Arsitektur: Komponen apa saja yang terlibat?
  • Data Model: Tabel database apa yang perlu dibuat? Kolomnya apa saja?
  • Diagram Alur: Jika pengguna klik A, datanya lari ke mana dulu sebelum disimpan?

Jika requirements.md adalah daftar menu makanan yang dipesan pelanggan, design.md adalah resep rahasia koki di dapur untuk memasaknya.

C. tasks.md

Nah, ini bagian favorit para developer. Setelah resepnya siap, Kiro memecah pekerjaan besar tersebut menjadi potongan-potongan kecil di file tasks.md.

Isinya adalah daftar periksa (checklist) yang sangat detail.

  • Buat tabel User di database.
  • Buat API endpoint /login.
  • Buat tampilan halaman Login.

Anda bisa melihat progresnya secara langsung. Kiro akan mencentang otomatis tugas yang sudah selesai (completed) dan menandai yang sedang dikerjakan (in-progress). Rasanya sangat memuaskan melihat daftar tugas ini berubah hijau satu per satu!

Alur Kerja (Workflow):

Kiro dirancang untuk "memaksa" kita disiplin dengan cara yang menyenangkan. Ada aturan main yang disebut Workflow. Prinsipnya: Selesaikan satu tahap sebelum lanjut ke tahap berikutnya.

Bayangkan Anda sedang membangun rumah. Anda tidak mungkin memasang atap kalau temboknya belum berdiri, kan? Begitu juga di Kiro:

  1. Fase Requirements (Kebutuhan)
    Tulis dulu kemauannya di requirements.md.
  2. Fase Design (Perancangan)
    Rancang struktur teknisnya di design.md.
  3. Fase Implementation Planning (Perencanaan Tugas)
    Kiro akan memecah desain tadi menjadi daftar tugas di tasks.md.
  4. Fase Execution (Eksekusi)
    Barulah di sini coding dimulai. Kiro akan mengerjakan tugas satu per satu sesuai urutan.

Menyusun Spesifikasi (The Spec)

Puncak dari perancangan spesifikasi adalah pembuatan Kiro Specs. Ini adalah sumber kebenaran tunggal (Single Source of Truth) yang memuat tiga komponen utama: User Stories (perspektif pengguna), Tech Stack (teknologi yang digunakan), dan Business Rules (logika validasi).

Sebuah spesifikasi yang baik setidaknya memuat tiga komponen utama [2]:

  1. User Stories (Cerita Pengguna)
    Jelaskan fitur dari sudut pandang pengguna.
    Format: Sebagai [peran], saya ingin [fitur], agar [tujuan].
    Contoh: "Sebagai pelanggan, saya ingin melihat riwayat pesanan agar saya bisa melacak belanjaan saya."
  2. Tech Stack & Constraints (Teknologi & Batasan)
    Beri tahu AI "bahan bangunan" apa yang boleh dipakai.
    Contoh: "Gunakan Next.js 14 (App Router), Tailwind CSS untuk style, dan Supabase untuk database."
  3. Business Rules (Aturan Bisnis)
    Ini adalah logika "boleh/tidak boleh" yang menjaga integritas aplikasi.
    Contoh: "Password minimal 8 karakter dan harus mengandung angka."

Mari kita lihat contoh nyata file spec.md yang baik:

# Spesifikasi Fitur: Tambah Catatan Baru

## 1. User Story
Sebagai pengguna, saya ingin bisa menulis catatan baru beserta judulnya, agar saya tidak lupa hal penting.

## 2. Tech Stack
- Frontend: React dengan TypeScript
- State Management: React Context API
- Styling: CSS Modules

## 3. Aturan Bisnis & Validasi
- Judul catatan wajib diisi (tidak boleh kosong).
- Panjang judul maksimal 50 karakter.
- Isi catatan minimal 10 karakter.
- Jika validasi gagal, tampilkan pesan error berwarna merah di bawah kolom input.
- Setelah berhasil disimpan, kolom input harus dikosongkan kembali.

Lihat betapa jelasnya instruksi di atas. Dengan dokumen ini, Kiro tidak perlu menebak panjang judul atau warna pesan error. Semuanya sudah tertulis.

Namun, sebelum Kiro mulai menulis kode, terdapat tahap krusial yang harus Anda lalui, yaitu Mengevaluasi Execution Plan. Sebelum menyetujui pembuatan kode, Kiro akan menawarkan rencana pengerjaan di berkas tasks.md. Sebagai "arsitek spesifikasi", tugas Anda adalah sebagai berikut.

  • Meninjau Urutan Tugas: Pastikan tugas yang dibuat Kiro logis (misalnya, membuat model data sebelum membuat API).
  • Verifikasi Keselarasan: Apakah rencana tersebut sudah sesuai dengan apa yang tertulis di requirements.md?
  • Persetujuan Eksekusi: Jangan biarkan AI bekerja secara membabi buta. Jika rencana tersebut mengandung kesalahan, Anda harus memperbaiki dokumen spesifikasinya terlebih dahulu, bukan memperbaiki kodenya. Setelah rencana terlihat sempurna, barulah Anda menyetujui eksekusi kode.

Praktik Terbaik: Iterasi Spesifikasi secara Berkelanjutan 

Spesifikasi di Kiro dirancang untuk penyempurnaan berkelanjutan (continuous refinement). Seiring berkembangnya proyek, Anda perlu memperbarui spesifikasi agar tetap sinkron dengan kebutuhan bisnis.

Berikut adalah cara melakukan iterasi pada spesifikasi:

  • Perbarui Kebutuhan (Update Requirements): Anda dapat mengubah berkas requirements.md secara langsung atau memulai sesi spesifikasi baru dan menginstruksikan Kiro untuk menambah persyaratan atau elemen desain baru melalui percakapan.
  • Perbarui Rancangan (Update Design): Navigasikan ke berkas design.md dan pilih tombol Refine. Tindakan ini akan memperbarui dokumentasi desain dan daftar tugas terkait agar mencerminkan perubahan pada kebutuhan yang baru saja Anda buat.
  • Perbarui Tugas (Update Tasks): Terakhir, buka berkas tasks.md dan pilih Update tasks. Kiro akan membuat tugas-tugas baru yang dipetakan langsung dari kebutuhan terbaru Anda.

Iterasi ini memastikan bahwa Anda tidak pernah bekerja dengan peta yang kedaluwarsa. Setiap perubahan terdokumentasi dengan baik dan dipahami oleh AI sebelum eksekusi kode dimulai.

Latihan: Membuat Spesifikasi Pertama Anda

Setelah memahami teori di atas, sekarang saatnya Anda mempraktekkannya. Ikuti langkah-langkah berikut untuk membuat spesifikasi fitur pertama Anda di Kiro:

  1. Pada panel Kiro, klik tombol + di bagian atas sejajar dengan judul SPECS. Sebagai alternatif, Anda dapat memilih opsi Spec langsung dari panel chat. Tindakan ini akan menyiapkan folder spesifikasi baru untuk Anda.
    AD_4nXf8RsmxHAdsX4bYefdql11vyra1EA1qADjg5bD3f_HUv8yvmVfjlLltjXdTGJ6aJFPqOy-AwOYdyG6Tw0mWavi6iuZ_Ht98p6D2Sa3-VGnDCoVDSqL7hFfe_nKTRc8XiMaKznLGeZYRDGJH0qRCgwVZR4P9?key=VCE2UDhCUSjvRbWTbSQiig
  2. Tuliskan ide proyek Anda secara singkat dan jelas. Gunakan teknik prompting yang telah dipelajari. Misalnya: "Saya ingin membuat aplikasi frontend sederhana todolist app".
  3. Tunggu hingga Kiro selesai generate berkas requirements.md.
    AD_4nXd1E-PaKmYewWIC0S3h3zJbUwCZaRPkDP5xvIFIpZNiFC0Zk8UHny4cz8Fqpr50Xsx43pfOurfsAt88KKfmKw6RwKASNiR6wByssY1dtPdmBgMgm3p0224qBy4w-sMMwppYPqRyYztDVIgVXZ3FudRuEHey?key=VCE2UDhCUSjvRbWTbSQiig
  4. Jika sudah selesai, akan terdapat tiga fase yang terbagi sebagai berikut.
    1. Fase Requirements: Isi dan setujui kebutuhan di requirements.md.
    2. Fase Design: Tinjau arsitektur teknis atau design UI di design.md.
    3. Fase Implementation: Evaluasi rencana kerja di tasks.md. Jangan menekan tombol eksekusi sebelum Anda yakin bahwa rencana tersebut sudah benar.
      AD_4nXdwGHzMlLnxhcDFaID0KxGG6K6aUQM8QR8f2tlfWKMr8mFGQ0XniejUVdWFvD8w_6rLIhiTPMmjNPCGZ9wSa70qgE1VPMcsxv-BNLFFpGU_lkM0TN5h2BFkuS5C8beOWkHoKdXxeutSPWLW83MeGAGhdmeg?key=VCE2UDhCUSjvRbWTbSQiig Selesaikan setiap fase sebelum lanjut ke fase berikutnya.
  5. Karena dokumen requirements.md berformat markdown, Anda dapat melihat preview-nya dengan cara klik icon mata.
    AD_4nXf8Ddrb6V5pOR8CmkMjYlaJI0pGysdvDHjDKZV2nZZDnP_cya0nM3-hHUKCVTYjAdvyt2sj78kkXVoa8HF21_K99EiwAyBfmBG3GyJ4iYbbKn6876fVFL1BKGyCvnIPgm6g10I4Sq904xMnSuvs3GxDWg?key=VCE2UDhCUSjvRbWTbSQiig 
  6. Tentunya dalam bentuk preview akan lebih nyaman untuk dibaca.
    AD_4nXcMeymfzkdHZvLGvfk3_6Xp2apqsKf6yalYyPSppeoM0cf-ZKsqAu57NIYTrXnoVoue6TtneZFieA8f0dqPqOdlaxZD-sEtHxRWbtBEWWNZS9H5k-DTCK4Y9GHJcbLNqY_6-UA1JNgrZn7vBZOyxaexNEBe?key=VCE2UDhCUSjvRbWTbSQiig 
  7. Jika sudah selesai review dan perbaikan berkas requirements, cukup klik tombol seperti berikut yang ada di chat panel untuk lanjut ke design.
    AD_4nXfw0s1dB-u89M4xrNvNRBTsaImUsbVVsVIrV-nGvKUTD6FM-t8iD3HJwN5z3eKCIoafebOCnoh1VGskJiU88P64_VRxAiMm7HKzBFKZz0keJ-pr-0MQ68NZo3p4uL4vahIO7pJe92Zp8RdkmA5J5h32yg?key=VCE2UDhCUSjvRbWTbSQiig 
  8. Anda akan melihat sebuah dokumen design.md yang berisi design UI komprehensif seperti UI/UX guidelines untuk tampilan yang clean dan user-friendly.
    AD_4nXfNM976m-Y-Uufp1rVa-od-HZDQBxCyYUysfmDUA9CJnCnA8HOf8zY-kQMIvraRXEZFOQ1imcZZfg3asff5CqLi-V3Jpr8GQScfatpFVH69hNut05wKJM-XyAQSCX-vBR4mm6U9_FR2Ss0uUuZ99nr42a1o?key=VCE2UDhCUSjvRbWTbSQiig
  9. Jika sudah selesai, kita bisa lanjut ke fase berikutnya.
  10. Akan muncul list tugas yang akan dijalankan oleh Kiro untuk implementasi aplikasi todolist.
    AD_4nXdD44lorOfCxYUdC5dPkvUPnES5gnU_jlzRQ3JlDc8gJSxuCPYQ5IjdPdWcLfW0R-g4PU5_DqIkHwUhDR9NyNlqTCREM5L0i5XI1jhJ_Dyw6kBDptv6rIqB6TX_1k3yoEIYHpkVTko_aiTWgUznpqviCQ?key=VCE2UDhCUSjvRbWTbSQiig

Namun, jangan dijalankan terlebih dahulu. Kita akan melakukannya di modul selanjutnya. Jadi, ayo kita lanjut!

Rangkuman Perancangan Spesifikasi Aplikasi

Anda sudah di penghujung modul Perancangan Spesifikasi Aplikasi. Mari kita uraikan materi yang sudah Anda pelajari untuk menyegarkan ingatan Anda tentang materi tersebut.


Mode Vibe: Sang Musisi Jazz (Eksploratif & Cepat)

Dalam mode ini, Kiro bertindak sebagai pair programmer yang santai. Ia merespons instruksi pendek dengan cepat tanpa menuntut dokumen persyaratan formal.

Kapan sebaiknya menggunakan Mode Vibe?

  1. Perubahan Visual Ringan:
    "Kiro, tolong ubah warna tombol 'Submit' jadi biru muda dan tambahkan efek bayangan."
  2. Perbaikan Bug Sederhana:
    "Ada error 'null pointer' di baris 45. Tolong perbaiki."
  3. Eksplorasi Ide (Prototyping):
    "Buatkan kerangka kasar halaman 'Tentang Kami' dengan tiga kolom foto tim."
  4. Bertanya tentang Kode:
    "Jelaskan apa fungsi reduce() di blok kode ini?"


Mode Spec: Sang Arsitek Gedung (Terstruktur & Disiplin)

Di mode ini, Kiro tidak lagi mendengarkan perintah lisan (chat) sebagai kebenaran utama, melainkan patuh sepenuhnya pada Dokumen Spesifikasi (Spec File).

Kapan sebaiknya menggunakan Mode Spec?

  1. Membangun Fitur Baru yang Kompleks:
    Misalnya, membuat sistem Login dan Register lengkap dengan validasi email, enkripsi password, dan penyimpanan token.
  2. Merancang Skema Database:
    Menentukan relasi tabel, tipe data, dan aturan integritas data.
  3. Refactoring Besar-besaran:
    Mengubah struktur folder proyek atau memisahkan logika bisnis dari tampilan (UI) agar kode lebih bersih.
  4. Menjaga Konsistensi Tim:
    Saat bekerja dalam tim, Mode Spec memastikan semua orang (dan AI) mengacu pada aturan bisnis yang sama yang tertulis di dokumen .md.


Mengenal Fitur Chat Kiro

Panel Chat di Kiro dirancang sebagai jembatan utama antara Anda dan kode Anda. Di sinilah Anda berinteraksi dengan codebase menggunakan bahasa alami (natural language), seperti sedang mengobrol dengan rekan kerja, bukan mengetik perintah robot yang kaku.

Prinsipnya sederhana: Katakan saja apa yang Anda butuhkan.

Berdasarkan dokumentasi resminya [2], Panel Chat Kiro memungkinkan Anda melakukan berbagai hal ajaib sambil tetap menjaga konteks proyek secara utuh.

  • Bertanya tentang codebase: Bingung di mana letak konfigurasi database? Tanyakan saja.
  • Meminta penjelasan logika rumit: Ada fungsi warisan (legacy code) yang sulit dipahami? Minta Kiro menjelaskannya baris demi baris.
  • Menghasilkan fitur baru: Minta Kiro membuat fitur dari nol berdasarkan ide Anda.
  • Melakukan debugging: Mintalah solusi untuk masalah-masalah pelik yang sulit dipecahkan.
  • Otomatisasi tugas: Biarkan Kiro menangani tugas-tugas repetitif yang membosankan.


Memahami Karakteristik Model yang Tersedia

Model Auto merupakan pilihan yang sangat direkomendasikan karena bertindak sebagai router cerdas yang akan memilihkan model terbaik untuk setiap tugas secara otomatis. Penggunaan model Auto terbukti lebih efektif secara biaya, yaitu sekitar 23 persen lebih murah (menurut dokumentasi resmi-nya) dibandingkan penggunaan model papan atas secara langsung. Namun, ia tetap memberikan kualitas hasil yang setara dengan model Sonnet 4.0.


Keseimbangan Antara Kecepatan dan Biaya

Di sisi lain, jika Anda lebih mengutamakan kecepatan respons dan efisiensi biaya untuk tugas-tugas yang tidak terlalu kompleks, model Claude Haiku 4.5 adalah pilihan yang paling bijak. Model ini mampu memberikan kecerdasan yang hampir setara dengan model kelas menengah, tetapi dengan kecepatan dua kali lebih cepat.


Cara Memberikan Konteks di Kiro

Kiro menyediakan cara mudah untuk "menyuapi" konteks ke AI menggunakan simbol tagar (#) berikut:

  • #Files: Gunakan ini untuk menyuruh Kiro membaca file tertentu [2].
    Contoh: "Tolong jelaskan logika di #auth.ts."
  • #Codebase: Gunakan ini jika pertanyaan Anda menyangkut seluruh proyek [2]. Kiro akan memindai seluruh file untuk mencari jawaban.
    Contoh: "#codebase di mana saja variabel userToken digunakan?"
  • #Folder: Fokuskan perhatian AI pada satu folder spesifik.
  • #Current File: File yang sedang aktif di editor saat ini.
  • #Docs: Gunakan berkas documentation dan kontennya.
  • #Spec: Gunakan spesifik spec (requirements, design, tasks)


Seni Menulis Prompt: Menghindari Kalimat Ambigu

Dalam dunia pengembangan perangkat lunak berbasis AI, kualitas instruksi (prompt) Anda menentukan kualitas kode yang dihasilkan. Ada istilah populer: "Garbage In, Garbage Out". Jika instruksi Anda ambigu atau "tidak jelas", kode yang dihasilkan pun akan membingungkan.

Bahasa manusia penuh dengan nuansa subjektif, sedangkan komputer membutuhkan kepastian teknis. Mari kita pelajari teknik mengubah bahasa manusia yang abstrak menjadi instruksi teknis yang presisi.


Jebakan Kata Sifat Subjektif

Hindari penggunaan kata sifat yang subjektif seperti "bagus", "keren", "cepat", atau "modern" tanpa definisi teknis.


Rumus Prompt Efektif: Peran, Tugas, dan Batasan

Agar instruksi Anda selalu tajam, gunakan kerangka berpikir berikut ini:

  1. Peran (Role): Berikan identitas kepada AI.
    • Contoh: "Bertindaklah sebagai Senior Frontend Developer yang ahli dalam React dan aksesibilitas (a11y)."
  2. Tugas (Task): Jelaskan apa yang harus dikerjakan secara spesifik.
    • Contoh: "Buat komponen Button yang dapat digunakan ulang (reusable)."
  3. Batasan (Constraints): Berikan aturan main yang tidak boleh dilanggar.
    • Contoh: "Gunakan Tailwind CSS untuk gaya. Jangan gunakan pustaka tambahan apa pun. Pastikan tombol bisa diakses menggunakan keyboard (tab index)."


Mengenal Kiro Specs: Cetak Biru yang Hidup

Berdasarkan dokumentasi resminya, Kiro Specs adalah berkas berbasis teks (biasanya format Markdown atau .md) yang berfungsi sebagai jembatan antara ide Anda dan eksekusi AI.

Jangan bayangkan ini sebagai dokumen spesifikasi "jadul" yang ditulis sekali lalu dilupakan. Di Kiro, Spec adalah dokumen yang hidup. Ia memiliki tiga karakteristik utama yang membuatnya sangat powerful:

  1. Sumber Kebenaran (Single Source of Truth)
    Dalam pengembangan tradisional, dokumentasi sering kali tertinggal dari kode aktual. Di Kiro, Spec adalah pemimpinnya. Kode program hanyalah implementasi dari apa yang tertulis di Spec. Jika Anda ingin mengubah perilaku aplikasi, Anda tidak mengubah kode secara langsung, melainkan mengubah Spec-nya terlebih dahulu. Kiro kemudian akan menyesuaikan kode agar selaras dengan Spec baru tersebut.
  2. Konteks yang Terfokus
    Kiro Specs dirancang untuk memberikan konteks yang sangat spesifik kepada AI. Saat Anda menjalankan Kiro dalam Mode Spec, AI tidak hanya "menebak" keinginan Anda. Ia membaca berkas .md tersebut sebagai instruksi mutlak.
    Ini menjawab masalah terbesar dalam coding dengan AI, yaitu "hilang fokus". Dengan adanya Spec, AI tahu persis batasan masalah, teknologi yang digunakan, dan hasil akhir yang diharapkan tanpa perlu Anda ulang-ulang di chat.
  3. Format Markdown yang Familier
    Anda tidak perlu mempelajari bahasa pemrograman baru yang rumit untuk menulis Spec. Kiro menggunakan standar Markdown. Jika Anda bisa menulis teks dengan bullet points, huruf tebal, dan heading, berarti Anda sudah bisa menulis Kiro Spec. Kesederhanaan ini memungkinkan Anda fokus pada logika bisnis, bukan pada sintaks yang rumit.

Dengan memahami konsep ini, Anda tidak akan lagi menganggap menulis dokumen sebagai beban, melainkan sebagai cara untuk mengendalikan AI sepenuhnya.


Menyusun Spesifikasi (The Spec)

Puncak dari perancangan spesifikasi adalah pembuatan Kiro Specs. Ini adalah sumber kebenaran tunggal (Single Source of Truth) yang memuat tiga komponen utama: User Stories (perspektif pengguna), Tech Stack (teknologi yang digunakan), dan Business Rules (logika validasi).

Sebuah spesifikasi yang baik setidaknya memuat tiga komponen utama [2]:

  1. User Stories (Cerita Pengguna)
    Jelaskan fitur dari sudut pandang pengguna.
    Format: Sebagai [peran], saya ingin [fitur], agar [tujuan].
    Contoh: "Sebagai pelanggan, saya ingin melihat riwayat pesanan agar saya bisa melacak belanjaan saya."
  2. Tech Stack & Constraints (Teknologi & Batasan)
    Beri tahu AI "bahan bangunan" apa yang boleh dipakai.
    Contoh: "Gunakan Next.js 14 (App Router), Tailwind CSS untuk style, dan Supabase untuk database."
  3. Business Rules (Aturan Bisnis)
    Ini adalah logika "boleh/tidak boleh" yang menjaga integritas aplikasi.
    Contoh: "Password minimal 8 karakter dan harus mengandung angka."

Bersambung Ke:


Comments

Popular posts from this blog

Ceritakan cerita saya:

Aplikasi/Gaming/Koding: NKHM Nusantara:

STUDIUM GENERALE