Back to blog
Best Practice

Prinsip DRY, KISS, dan YAGNI: Panduan Simpel untuk Menulis Kode yang Lebih Baik

Tiga prinsip DRY, KISS, dan YAGNI adalah fondasi menulis kode yang bersih, efisien, dan mudah dipelihara tanpa over-engineering.

super admin·16 Juni 2026·3 min read
Prinsip DRY, KISS, dan YAGNI: Panduan Simpel untuk Menulis Kode yang Lebih Baik
Article Content

Tiga prinsip yang sering disebut, jarang dipraktikkan

DRY, KISS, dan YAGNI adalah singkatan yang sering muncul di diskusi coding. Banyak yang hafal kepanjangannya tetapi belum benar-benar menerapkannya dalam pekerjaan sehari-hari. Artikel ini membahas masing-masing prinsip dengan contoh nyata yang relevan.

DRY: Don't Repeat Yourself

Prinsip DRY menyatakan bahwa setiap potongan pengetahuan atau logika sebaiknya hanya ada satu representasi dalam sistem. Duplikasi kode bukan hanya masalah estetika, tetapi masalah maintainability.

Ketika logika yang sama ada di dua tempat dan kamu perlu mengubahnya, ada risiko lupa mengubah yang satunya lagi.

// Melanggar DRY: validasi email diduplikasi
function registerUser(data) {
  if (!data.email.includes('@')) throw new Error('Email tidak valid');
}

function updateProfile(data) {
  if (!data.email.includes('@')) throw new Error('Email tidak valid');
}

// Menerapkan DRY: ekstrak ke fungsi tersendiri
function isValidEmail(email) {
  return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}

function registerUser(data) {
  if (!isValidEmail(data.email)) throw new Error('Email tidak valid');
}

function updateProfile(data) {
  if (!isValidEmail(data.email)) throw new Error('Email tidak valid');
}

Perlu diingat, DRY bukan berarti menghindari semua pengulangan. Dua fungsi yang secara kebetulan punya kode mirip tapi tujuannya berbeda tidak harus digabung secara paksa.

KISS: Keep It Simple, Stupid

Prinsip KISS mendorong kamu untuk memilih solusi paling sederhana yang bisa menyelesaikan masalah. Kode yang kompleks lebih susah dibaca, lebih susah di-debug, dan lebih mudah mengandung bug.

// Terlalu kompleks tanpa alasan
function isEven(n) {
  return n % 2 === 0 ? true : false;
}

// Simple dan cukup
function isEven(n) {
  return n % 2 === 0;
}

Dalam skala besar, KISS berarti tidak membuat abstraksi yang terlalu dalam, tidak menggunakan design pattern hanya karena keren, dan tidak menambahkan layer yang tidak perlu.

YAGNI: You Aren't Gonna Need It

YAGNI menyatakan bahwa kamu tidak boleh menambahkan fitur atau kode yang saat ini tidak dibutuhkan hanya karena kamu pikir akan butuh di masa depan.

Over-engineering adalah salah satu pemborosan terbesar dalam software development. Waktu yang dihabiskan untuk membangun fitur yang tidak jadi dipakai adalah waktu yang terbuang.

  • Jangan tambahkan sistem plugin sebelum ada kebutuhan nyata.
  • Jangan bangun multi-tenancy sebelum ada lebih dari satu tenant.
  • Jangan abstraksi database layer sebelum ada alasan untuk ganti database.

Keseimbangan ketiga prinsip

Ketiga prinsip ini kadang bisa saling bertegangan. DRY mendorong abstraksi, tetapi terlalu banyak abstraksi melanggar KISS. YAGNI mencegah fitur prematur, tetapi kadang arsitektur yang sedikit lebih fleksibel sejak awal bisa menghemat waktu di masa depan.

Kuncinya adalah judgment: kemampuan membaca konteks dan memilih trade-off yang tepat. Ini berkembang seiring pengalaman.

Kesimpulan

DRY, KISS, dan YAGNI bukan aturan absolut. Mereka adalah panduan untuk berpikir. Gunakan sebagai pertanyaan saat code review: apakah kode ini perlu ada? Apakah ada duplikasi yang bisa dieliminasi? Apakah solusinya sesederhana mungkin?

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates