Apa itu YAML
YAML, akronim yang berarti "YAML Ain't Markup Language," adalah format serialisasi data yang dapat dibaca oleh manusia. Dirancang untuk interoperabilitas di antara berbagai bahasa pemrograman, membuatnya menjadi alat serbaguna bagi para pengembang.
Dalam dunia komputasi, serialisasi data adalah metode untuk mengubah struktur data kompleks menjadi format yang dapat dengan mudah disimpan atau ditransmisikan, dan kemudian direkonstruksi kembali. YAML menyediakan cara yang sederhana dan efisien untuk mencapai hal ini. Struktur dan sintaksnya dirancang agar mudah dipahami oleh manusia, sehingga membaca dan menginterpretasikan file YAML menjadi mudah.
Meskipun namanya, YAML sebenarnya adalah jenis bahasa markup, seperti XML atau JSON. Nama yang unik, "YAML Ain't Markup Language," sebenarnya adalah akronim rekursif dan ungkapan main-main terhadap desain yang ramah pengguna.
Sintaks YAML
Aturan Dasar
Sintaks YAML dirancang dengan tujuan agar mudah dibaca oleh manusia. Berikut beberapa aturan dasar:
- File YAML harus diakhiri dengan
.yaml
atau.yml
. - YAML bersifat case sensitive.
- YAML tidak mengizinkan penggunaan tab. Spasi digunakan sebagai ganti untuk indentasi.
- Indentasi dengan spasi digunakan untuk menunjukkan struktur.
- Anggota daftar ditandai dengan tanda hubung di depan (
-
).
Tipe Data
YAML mendukung beberapa tipe data yang umum digunakan dalam banyak bahasa pemrograman, termasuk bilangan bulat, bilangan desimal, string, null, boolean, dan tanggal serta waktu.
Tipe Data Skalar
Tipe skalar adalah jenis data paling sederhana. Mereka termasuk:
Bilangan Bulat
: Urutan angka. Contoh:7
Bilangan Desimal
: Angka yang memiliki titik desimal. Contoh:7.1
String
: Urutan karakter. Dalam YAML, string dapat ditandai dengan menggunakan tanda kutip tunggal atau ganda. Contoh:"Halo, Dunia!"
Boolean
: Tipe data dengan dua nilai mungkin,true
danfalse
.Null
: Tipe data yang tidak memiliki nilai, direpresentasikan dengannull
atau~
.
Tipe Data Koleksi
YAML juga memiliki tipe data koleksi, yang meliputi:
- Daftar
Juga dikenal sebagai urutan, daftar adalah kumpulan item. Dalam YAML, daftar ditandai dengan tanda hubung di depan.
pets:
- cat
- dog
- fish
- Peta
Juga dikenal sebagai kamus, peta adalah kumpulan pasangan kunci-nilai.
pets:
cat: Whiskers
dog: Rover
fish: Bubbles
Penggunaan Umum YAML
Kesederhanaan, serbaguna, dan kemampuan dibaca oleh manusia yang dimiliki oleh YAML telah menyebabkan adopsinya dalam berbagai aplikasi.
Berkas Konfigurasi
Mungkin penggunaan paling umum YAML adalah dalam berkas konfigurasi. Aplikasi, server, dan alat sering memerlukan berkas konfigurasi untuk mengatur parameter dan pengaturan awal. Karena kemudahan dibaca dan kesederhanaannya, YAML adalah format ideal untuk berkas-berkas ini. Ini memungkinkan para pengembang dan administrator sistem untuk dengan cepat memahami dan memodifikasi pengaturan sesuai kebutuhan.
Misalnya, Docker menggunakan YAML dalam berkas Docker Compose untuk mendefinisikan aplikasi multi-container, sementara Kubernetes menggunakan YAML untuk berkas konfigurasinya untuk mengendalikan penyebaran dan peningkatan aplikasi.
Serialisasi Data
Serialisasi data adalah proses mengonversi data menjadi format yang dapat dengan mudah disimpan atau ditransmisikan, dan kemudian direkonstruksi kembali. YAML adalah pilihan populer untuk serialisasi karena kemampuannya dalam menangani struktur data kompleks dan mempertahankan keterbacaan.
Ini menjadikan YAML pilihan yang sangat baik untuk pertukaran data antara bahasa pemrograman dengan struktur data yang berbeda. Sebagai contoh, program Python dapat melakukan serialisasi struktur data kompleks ke dalam berkas YAML, yang kemudian dapat dibaca dan dipahami oleh program JavaScript.
Infrastruktur sebagai Kode (IaC)
IaC adalah proses mengelola dan menyediakan infrastruktur komputasi melalui berkas definisi yang dapat dibaca oleh mesin, bukan melalui konfigurasi perangkat keras fisik atau alat konfigurasi interaktif.
YAML, dengan kemampuannya dalam mewakili struktur data kompleks dengan mudah, sering digunakan dalam skenario IaC. Alat-alat seperti Ansible dan Kubernetes menggunakan berkas YAML untuk mendefinisikan dan mengelola keadaan infrastruktur, memanfaatkan keterbacaan dan kesederhanaan YAML untuk membuat definisi ini jelas dan dapat dipahami.