Apa yang dimaksud dengan YAML?
Jelajahi IBM® watsonx Code Assistant untuk Red Hat Ansible Lightspeed Pesan demo langsung
Rekan kerja melihat kode di monitor komputer

Diterbitkan: 11 Desember 2023
Kontributor: Tasmiha Khan, Michael Goodwin

Apa yang dimaksud dengan YAML?

YAML adalah bahasa serialisasi data serbaguna yang dapat dibaca manusia yang biasa digunakan untuk menulis file konfigurasi.

Format ini menyediakan format standar untuk merepresentasikan data terstruktur dengan cara yang mudah dimengerti oleh manusia dan dapat ditafsirkan oleh mesin. "YAML" adalah singkatan dari "YAML Ain't Markup Language" atau "Yet Another Markup Language." Yang pertama dimaksudkan untuk menggarisbawahi bahwa bahasa ini ditujukan untuk data, bukan dokumen.

Pada intinya, YAML dirancang dengan mempertimbangkan kesederhanaan dan keterbacaan. YAML menggunakan sintaksis yang bersih dan minimalis, mengandalkan indentasi, pasangan nilai kunci, dan konvensi intuitif. Pendekatan ini memungkinkan pengembang dan pengguna mengekspresikan struktur data yang kompleks dalam format yang menyerupai bahasa alami dan mudah dipahami dalam sekejap.

Penekanan pada keterbacaan manusia membuat YAML sangat cocok untuk berbagai aplikasi, termasuk file konfigurasi (config) dan pertukaran data antarsistem yang berbeda. Strukturnya yang lugas dan intuitif meningkatkan kegunaannya di berbagai domain, memungkinkan pengguna menentukan dan mengatur data dengan cara yang jelas dan mudah dipahami. YAML mendukung karakter Unicode, yang memungkinkan representasi berbagai macam karakter dan simbol dari berbagai bahasa dan set karakter. YAML yang valid menghasilkan spesifikasi tanpa kesalahan sintaksis.

Kemampuan beradaptasi YAML menjadikannya pilihan serbaguna di seluruh spektrum aplikasi yang luas. Dari manajemen konfigurasi hingga pertukaran data dan otomatisasi, kegunaan YAML menjangkau berbagai domain, menawarkan cara yang dapat diakses dan terstruktur untuk merepresentasikan dan mengelola data.

Minta demo

Sekarang saatnya untuk meningkatkan otomatisasi Anda dengan kekuatan AI generatif. Jadwalkan demo personal selama 30 menit dengan salah satu pakar kami untuk melihat IBM watsonx Code Assistant untuk Red Hat Ansible Lightspeed beraksi.

Konten terkait

Berlangganan buletin IBM

Sintaksis dan atribut YAML

Ada berbagai atribut dan elemen kunci dalam sintaksis YAML. Sangat penting untuk memahami struktur, jenis data, dan konvensi yang digunakan dalam file YAML untuk memastikan representasi data yang efisien dan keterbacaan.

Peta (kamus)

Di YAML, kamus direpresentasikan sebagai pemetaan. Kamus adalah kumpulan pasangan kunci nilai tempat setiap kunci dikaitkan dengan sebuah nilai. Struktur data ini menyerupai konsep kamus atau peta yang ditemukan dalam berbagai bahasa pemrograman. 

Indentasi

Sintaksis YAML sangat bergantung pada indentasi dan jumlah spasi untuk mewakili struktur data. Spasi putih, bukan karakter tab, yang dilarang di YAML, digunakan di YAML untuk menunjukkan hierarki dan bersarang. Karena YAML bergantung pada indentasi untuk struktur, konsistensi di seluruh dokumen YAML sangatlah penting.

Baris baru mewakili jeda baris, atau akhir baris dalam format YAML yang digunakan untuk memisahkan elemen yang berbeda.

Tanda kutip

Untuk sebagian besar skalar di YAML, tanda kutip tidak diperlukan. Namun, tanda kutip mungkin diperlukan untuk menghindari kebingungan dalam skenario tertentu, seperti di sekitar string teks yang berisi karakter khusus dan dapat disalahartikan dengan sintaksis YAML. Atau jika Anda memiliki string yang hanya terdiri dari "true" yang tidak ingin dikonversi ke boolean, misalnya. Dalam kasus seperti ini, tanda kutip tunggal atau ganda dapat digunakan, tergantung pada data dan apa yang perlu diungkapkan.

Pasangan kunci nilai

YAML menggunakan format pasangan kunci nilai langsung yang dipisahkan oleh titik dua untuk representasi asosiasi data.  

Misalnya:

profesi: guru

Urutan (array)

Urutan (array atau daftar dalam bahasa lain), memungkinkan Anda menentukan daftar item dalam YAML. Indentasi memisahkan urutan dari induknya, dan setiap item daftar dimulai dengan tanda hubung (-) yang diikuti dengan spasi. Semua item dalam urutan harus menjorok ke dalam dengan jumlah yang sama.

Sebagai contoh:

buah-buahan:
    - apel
    - jeruk
    - pir

Urutan juga dapat direpresentasikan dalam urutan aliran menggunakan tanda kurung dan koma.1

buah-buahan: [apel, jeruk, pir]

Tipe data

YAML mendukung berbagai jenis data seperti string, integer, float, boolean, dan nilai nol. Jenis data ini memberikan fleksibilitas dalam merepresentasikan berbagai jenis informasi.

Komentar

YAML mendukung komentar yang dilambangkan dengan simbol #. Komentar membantu dalam menambahkan penjelasan, catatan atau konteks dalam file YAML.

String multibaris

YAML mendukung string multibaris, yang memungkinkan teks menjangkau beberapa baris tanpa memerlukan jeda baris secara eksplisit. String multibaris berguna untuk menyertakan blok teks dalam dokumen YAML.

File YAML

File YAML biasanya menggunakan ekstensi seperti .yaml atau .yml. Konvensi dalam penamaan dan penataan file YAML memastikan konsistensi dan interpretasi data yang tepat. File YAML juga dapat dibaca di Perl, Ruby, dan Python.

YAML, JSON, dan XML

YAML dan JSON memiliki kesamaan dalam representasi data, namun, YAML menonjol karena keterbacaan, ekspresif, dan dukungannya untuk struktur data yang kompleks. YAML adalah superset dari JSON, yang berarti berisi semua fitur JSON selain fitur dan perintah yang diperluas.

JSON (JavaScript Object Notation) menggunakan sintaksis yang lebih eksplisit dengan tanda kurung {}, tanda kurung [], dan koma. Meskipun ringkas dan banyak digunakan, sintaksis JSON mungkin menjadi kurang mudah dibaca, terutama pada set data yang lebih besar. Dukungan JSON untuk struktur data relatif terbatas, terutama menampilkan array, objek, dan nilai skalar.

JSON sering kali disukai karena kompatibilitas silangnya untuk pertukaran data dalam aplikasi web dan API, sementara YAML lebih umum digunakan dalam skenario yang memerlukan keterbacaan manusia dan struktur data yang lebih kompleks, seperti file konfigurasi serta jenis dokumentasi dan pertukaran data tertentu.2

Jika dibandingkan dengan XML, YAML menawarkan alternatif yang lebih ringkas dan ramah manusia, menekankan kesederhanaan dan kemudahan pemahaman dalam representasi dan pertukaran data. YAML dan XML memiliki perbedaan mendasar dalam hal sintaksis dan tujuan.

XML sangat terstruktur, mengandalkan tag pembuka dan penutup secara eksplisit, sehingga sedikit membingungkan. Sebaliknya, YAML menggunakan struktur yang lebih sederhana dan lebih mirip bahasa alami, dengan berfokus pada keterbacaan melalui identasi dan pasangan nilai kunci tanpa tag penutup yang eksplisit.

Contoh penggunaan YAML

YAML dapat digunakan dengan semua bahasa pemrograman dan sering digunakan untuk file konfigurasi, serta pertukaran data dan dokumentasi. Formatnya yang dapat dibaca manusia meningkatkan kejelasan dokumentasi.

YAML dan DevOps

YAML memainkan peran penting dalam DevOps dan berperan penting dalam otomatisasi, orkestrasi, dan manajemen konfigurasi. Dalam praktik DevOps, file YAML berfungsi sebagai cetak biru untuk menentukan urutan tindakan dan konfigurasi dalam format yang mudah dimengerti. File ini digunakan untuk secara tepat menguraikan langkah dan prosedur yang diperlukan untuk otomatisasi, memungkinkan representasi yang jelas dan ringkas dari alur kerja yang kompleks.

Infrastruktur sebagai kode (IaC)

YAML digunakan untuk mendefinisikan infrastruktur sebagai kode, yaitu penggunaan kode, bukan proses manual, untuk mendefinisikan dan mengelola infrastruktur IT. IaC memungkinkan konfigurasi infrastruktur IT yang lebih efisien dan konsisten. YAML dapat digunakan untuk mendefinisikan konfigurasi infrastruktur yang diinginkan seperti mesin virtual, jaringan, dan penyimpanan, dan untuk menggambarkan hubungan antara komponen infrastruktur IT.

Penerapan

YAML digunakan untuk membuat file penyebaran untuk aplikasi yang menentukan konfigurasi aplikasi, ketergantungan, batas sumber daya, dan informasi lain yang penting untuk penyebaran dan kinerja aplikasi yang efisien. File YAML membantu mengurangi kesalahan penerapan dan meningkatkan kecepatan pengiriman aplikasi melalui kontrol versi dan otomatisasi.

Konfigurasi pipa CI/CD

YAML dapat memainkan peran penting dalam pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD), sebuah alur kerja DevOps tangkas yang penting. Serupa dengan konfigurasi dan penerapan infrastruktur, file YAML digunakan untuk menentukan langkah dan target pipeline, dan pada akhirnya membantu mengotomatiskan proses CI/CD.

Alat bantu YAML dan DevOps

Banyak alat dan program yang digunakan oleh tim DevOps yang memanfaatkan YAML, termasuk:

Ansible

Ansible adalah aplikasi perangkat lunak otomatisasi sumber terbuka yang menggunakan file berformat YAML, yang dikenal sebagai buku pedoman, untuk mendefinisikan tugas dan prosedur otomatisasi. ​​Template YAML memungkinkan pengguna memprogram otomatisasi tugas yang berulang tanpa pengetahuan tentang bahasa pemrograman tingkat lanjut.3

Dengan menggunakan IBM watsonx Code Assistant untuk Red Hat Ansible Lightspeed, pengguna bisa menulis tugas dalam bahasa Inggris dan menerima rekomendasi kode YAML untuk tugas otomatisasi. Rekomendasi kode ini digunakan untuk membuat Ansible Playbooks.3

Kubernetes

Kubernetes adalah platform orkestrasi kontainer sumber terbuka yang digunakan untuk mengotomatiskan penerapan, penskalaan, dan pengelolaan aplikasi dalam kontainer. Kubernetes bekerja berdasarkan "state", mencoba mencapai state yang diinginkan dari state saat ini berdasarkan instruksi tertentu. File YAML dapat digunakan untuk membuat sumber daya Kubernetes seperti pod, objek, dan penerapan, serta untuk menentukan dan mengomunikasikan status objek Kubernetes yang diinginkan.

GitHub

GitHub, sebuah platform berbasis web untuk kontrol versi dan kolaborasi dalam pengembangan perangkat lunak, menggabungkan YAML untuk menentukan alur kerja. Konfigurasi berbasis YAML di repositori GitHub memungkinkan pengaturan alur kerja otomatis untuk integrasi berkelanjutan dan manajemen proyek.

docker menyusun

Docker Compose adalah alat untuk mendefinisikan dan menjalankan aplikasi Docker multikontainer.4  File YAML digunakan di Docker Compose untuk mengonfigurasi layanan aplikasi.

Berbagi data lintas bahasa

YAML tidak bergantung pada bahasa, sehingga ideal untuk berbagi data lintas bahasa. Setelah file YAML didefinisikan, file tersebut dapat dieksekusi dalam bahasa lain seperti Python atau Ruby.

File log

File log adalah file data tekstual yang dihasilkan komputer yang berisi informasi tentang operasi dan pola dalam aplikasi, sistem, server, dan sumber daya atau perangkat IT lainnya. File log digunakan untuk mengukur kinerja sumber daya dan memainkan peran penting dalam observabilitas sistem. Karena kesederhanaannya, YAML digunakan untuk membuat file log yang intuitif dan bersih.

Keuntungan dari YAML

YAML telah menjadi bahasa serialisasi data yang populer karena beberapa alasan, termasuk kesederhanaan, kompatibilitas, dan kegunaannya dalam membuat file konfigurasi.

Kesederhanaan

Sintaksis YAML menyerupai struktur bahasa alami. Kesederhanaan dan desainnya yang minimalis membuatnya mudah dimengerti oleh para pengembang dan pengguna non-teknis, meningkatkan pemahaman dan mengurangi kesalahan.

Penggunaan untuk file konfigurasi

YAML sangat cocok untuk file konfigurasi karena formatnya yang terstruktur dan mudah dibaca. YAML menyederhanakan proses penentuan konfigurasi dengan menggunakan pasangan indentasi dan nilai kunci, sehingga mudah dikelola dan beradaptasi untuk berbagai aplikasi perangkat lunak.

Kompatibilitas

Sifat YAML yang tidak bergantung pada platform memastikan kompatibilitas di berbagai sistem dan bahasa pemrograman, memfasilitasi pertukaran data yang mulus dan interoperabilitas antara berbagai platform dan lingkungan.

Alat untuk pemrosesan YAML

PyYAML adalah pustaka Python terkemuka yang digunakan untuk mengurai dan bekerja dengan file YAML dalam aplikasi berbasis Python. PyYAML menyediakan metode untuk memuat data YAML ke dalam objek Python. PyYAML memungkinkan konversi file YAML ke dalam struktur data praktis dalam aplikasi Python dan sebaliknya.5

Alat seperti PyYAML dan pengurai serta validator YAML lainnya, seperti yamllint dan YAML Validator, berperan penting dalam menjaga keakuratan, validitas, dan integritas file YAML. Fungsi utamanya melibatkan validasi sintaksis YAML, mengidentifikasi kesalahan, dan memastikan konsistensi dalam dokumen YAML. 

Solusi terkait
IBM watsonx Code Assistant untuk Red Hat Ansible Lightspeed

IBM watsonx Code Assistant untuk Red Hat Ansible Lightspeed mengungkap proses pembuatan Ansible Playbook melalui rekomendasi konten bertenaga AI generatif. Produk yang dibuat khusus untuk mempercepat otomasi IT ini dirancang untuk memberikan rekomendasi konten otomasi untuk pengalaman Ansible yang lebih baik.

Lihat watsonx Code Assistant untuk Red Hat Ansible Lightspeed Pesan demo langsung

IBM watsonx Code Assistant

IBM watsonx Code Assistant memanfaatkan AI generatif untuk mempercepat pengembangan dengan tetap mempertahankan prinsip kepercayaan, keamanan, dan kepatuhan pada intinya. Pengembang dan Operator IT dapat mempercepat upaya modernisasi aplikasi dan menghasilkan otomatisasi untuk meningkatkan skala lingkungan IT dengan cepat.

Menjelajahi IBM watsonx Code Assistant

Ambil langkah selanjutnya

Siap untuk memajukan otomatisasi Anda, didukung oleh AI generatif? Lihat apa yang dapat dilakukan watsonx Code Assistant untuk Red Hat Ansible Lightspeed saat Anda menjadwalkan demo langsung atau berbicara dengan salah satu ahli kami.

Lihat watsonx Code Assistant untuk Red Hat Ansible Lightspeed Pesan demo langsung
Catatan kaki

1 "Cara merepresentasikan array di YAML" (tautan berada di luar ibm.com)," Tarun Telang, Educative, Inc., 2023

2 "Apa perbedaan antara YAML dan JSON" (tautan berada di luar ibm.com), Amazon Web Services, 2023

“Apa itu YAML” (tautan berada di luar ibm.com), Redhat.com, 3 Maret 2023

4 "Ikhtisar Docker Compose" (tautan berada di luar ibm.com), Docker.com, 2023 

5 “YAML Python | Panduan Menyerahkan File YAML” (tautan berada di luar ibm.com), Gabriel Ramuglia, 11 September 2023