Apa Itu Preset System? Memahami Konsep Konfigurasi Modular dalam Pengembangan Software

Panduan lengkap sistem preset

Saat mempelajari teknologi modern seperti UnoCSS, Vite, Babel, ESLint, atau berbagai alat pengembangan lainnya, Anda mungkin akan menemukan istilah Preset. Bagi banyak orang, istilah ini terdengar sederhana, tetapi konsep di baliknya sebenarnya cukup penting karena mewakili cara baru dalam membangun perangkat lunak yang fleksibel, modular, dan mudah dikustomisasi.

Mengapa Saya Bingung Saat Pertama Kali Mendengar Preset?

Kebingungan biasanya muncul karena banyak dokumentasi langsung menjelaskan cara menggunakan preset tanpa menjelaskan terlebih dahulu apa sebenarnya preset itu.

Akibatnya, seseorang hanya melihat contoh seperti:

presets: [
  presetA(),
  presetB(),
  presetC()
]

Tanpa memahami bahwa preset sebenarnya bukan fitur khusus CSS, melainkan sebuah pola desain sistem yang dapat digunakan hampir di semua jenis software.

Jika dipahami dari sudut pandang yang lebih luas, preset hanyalah kumpulan konfigurasi yang sudah dipaketkan menjadi satu unit yang siap digunakan.

Definisi Sederhana Preset System

Preset System adalah metode di mana sebuah aplikasi, engine, atau framework mendapatkan perilaku dan kemampuannya melalui paket konfigurasi yang dapat dipasang, dilepas, diganti, atau digabungkan sesuai kebutuhan.

Alih-alih semua fitur ditanam langsung ke dalam inti sistem, fitur-fitur tersebut dipisahkan menjadi modul-modul yang disebut preset.

Dengan kata lain:

  • Core hanya menyediakan mesin dasar.
  • Preset menyediakan kemampuan tambahan.
  • Pengguna memilih sendiri kemampuan yang ingin diaktifkan.

Konsep ini sering disebut sebagai pendekatan modular architecture.

Analogi Sederhana: Mobil Tanpa Aksesori

Bayangkan sebuah pabrik mobil membuat satu jenis rangka mobil standar.

Rangka tersebut belum memiliki:

  • Sistem audio.
  • Kamera parkir.
  • GPS.
  • Sunroof.
  • Kursi premium.

Semua fitur tersebut tersedia dalam bentuk paket tambahan.

Saat membeli mobil, pelanggan dapat memilih:

  • Paket Sport.
  • Paket Luxury.
  • Paket Touring.
  • Paket Safety.

Dalam analogi ini:

  • Rangka mobil = Core Engine.
  • Paket tambahan = Preset.
  • Pelanggan = Developer.

Preset pada software bekerja dengan prinsip yang hampir sama.

Mengapa Preset System Menjadi Populer?

Dulu banyak software dibuat dengan pendekatan monolitik.

Artinya semua fitur langsung dimasukkan ke dalam sistem inti.

Masalahnya:

  • Aplikasi menjadi besar.
  • Performa menurun.
  • Sulit dikustomisasi.
  • Banyak fitur tidak digunakan tetapi tetap dimuat.

Preset System muncul sebagai solusi.

Developer hanya memuat fitur yang benar-benar dibutuhkan.

Hasilnya:

  • Lebih cepat.
  • Lebih ringan.
  • Lebih fleksibel.
  • Lebih mudah dirawat.

Perbedaan Framework Tradisional dan Sistem Berbasis Preset

Framework Tradisional Sistem Berbasis Preset
Fitur sudah ditentukan sejak awal Fitur dipilih sesuai kebutuhan
Lebih besar ukurannya Lebih ringan
Kurang fleksibel Sangat fleksibel
Semua pengguna mendapatkan fitur yang sama Setiap pengguna bisa memiliki konfigurasi berbeda

Bagaimana Cara Kerja Preset?

Secara umum prosesnya terdiri dari empat tahap:

1. Core Engine Dijalankan

Mesin utama aplikasi dijalankan terlebih dahulu.

Pada tahap ini kemampuannya masih sangat terbatas.

2. Preset Dibaca

Sistem membaca daftar preset yang dipilih pengguna.

3. Preset Menambahkan Fitur

Masing-masing preset akan menambahkan konfigurasi, aturan, atau kemampuan baru.

4. Sistem Digabungkan

Semua konfigurasi digabung menjadi satu sistem yang siap digunakan.

Proses ini sering disebut sebagai composability atau composition system.

Mengapa UnoCSS Menggunakan Preset?

UnoCSS sering menjadi contoh menarik karena ia menerapkan konsep preset secara ekstrem.

Banyak framework CSS tradisional membawa ribuan utility class secara bawaan.

Sedangkan pada UnoCSS, inti sistem hampir tidak memiliki utility class.

Sebaliknya, utility tersebut berasal dari preset yang dipasang pengguna.

Karena itulah dokumentasi menyebutnya sebagai:

  • Engine.
  • Atomic CSS Generator.
  • On-demand CSS System.
  • Unopinionated Core.

Artinya inti sistem sengaja dibuat netral dan minimalis.

Filosofinya:

"Jangan paksa semua orang menggunakan konfigurasi yang sama."

Preset Bukan Hanya Ada di Dunia CSS

Inilah bagian yang paling penting untuk dipahami.

Preset bukan konsep milik UnoCSS.

Preset adalah pola desain software yang digunakan di banyak teknologi.

Babel

Babel memiliki preset untuk mengubah kode JavaScript modern menjadi versi yang kompatibel dengan browser lama.

ESLint

ESLint memiliki preset aturan coding yang bisa langsung digunakan.

Webpack

Webpack dapat menggunakan preset konfigurasi untuk berbagai kebutuhan build process.

Vite

Vite menggunakan plugin dan preset untuk memperluas kemampuannya.

Visual Studio Code

Extension Pack sebenarnya merupakan bentuk lain dari preset karena berisi kumpulan konfigurasi dan fitur yang dipasang sekaligus.

Hubungan Preset, Plugin, dan Configuration

Ketiga istilah ini sering tertukar.

Configuration

Pengaturan manual yang dibuat sendiri oleh pengguna.

Plugin

Modul tambahan yang menambahkan fitur tertentu.

Preset

Kumpulan konfigurasi dan plugin yang sudah dikemas menjadi satu paket siap pakai.

Secara sederhana:

Configuration = Pengaturan Individual

Plugin = Fitur Tambahan

Preset = Paket Siap Pakai

Filosofi Besar di Balik Preset System

Jika dilihat lebih dalam, preset sebenarnya lahir dari filosofi pemrograman modern:

  • Composition over Monolith.
  • Flexibility over Convention.
  • Minimal Core, Maximum Extensibility.
  • Pay Only for What You Use.

Software modern tidak lagi berusaha menjadi "semua hal untuk semua orang".

Sebaliknya, software menyediakan fondasi dasar, lalu pengguna merakit sendiri kemampuan yang dibutuhkan.

Mirip seperti menyusun balok LEGO daripada membeli patung yang sudah jadi.

Cara Mengingat Konsep Preset dengan Mudah

Jika suatu hari Anda lupa apa itu preset, cukup ingat satu kalimat berikut:

Preset adalah paket konfigurasi siap pakai yang menambahkan kemampuan tertentu ke sebuah sistem inti yang sengaja dibuat minimal.

Atau lebih singkat lagi:

Core adalah mesin, preset adalah paket kemampuannya.

Kesimpulan

Preset System bukanlah teknologi khusus milik UnoCSS maupun dunia CSS. Preset adalah pola arsitektur perangkat lunak modern yang memungkinkan sebuah sistem inti tetap kecil, cepat, dan fleksibel dengan cara memindahkan sebagian besar fitur ke modul konfigurasi yang dapat dipasang sesuai kebutuhan.

Saat Anda melihat istilah preset pada teknologi apa pun di masa depan, pikirkan bahwa Anda sedang melihat "paket kemampuan" yang diberikan kepada sebuah mesin dasar. Semakin banyak preset yang dipasang, semakin banyak kemampuan yang dimiliki sistem tersebut. Semakin sedikit preset yang digunakan, semakin ringan dan fokus sistem tersebut.

Dengan memahami konsep ini, Anda tidak hanya memahami UnoCSS, tetapi juga memahami salah satu pola desain yang sangat sering digunakan dalam pengembangan software modern.

Keywords: Preset System, Konfigurasi Modular, Software Development, Atomic CSS, UnoCSS, Preset, Engine, Framework

Diskusi & Komentar