YAML

YAML Ain't Markup Language atau disingkat YAML adalah bahasa yang digunakan untuk serialisasi data.

Software Engineering

Mau Belajar

Software Engineering

GRATIS?

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!

IKUT KURSUS GRATIS

Mau Belajar

Software Engineering

GRATIS?

Apa itu YAML?

Pengertian YAML
Pengertian YAML

YAML Ain't Markup Language atau disingkat YAML adalah bahasa yang digunakan untuk serialisasi data. Dengan kata lain, YAML dirancang untuk membantu menyimpan data dalam format yang mudah dipahami dan dibaca.

YAML populer digunakan oleh developer dan berbagai sistem operasi karena sederhana, fleksibel, dan mudah dibaca. Dalam dunia software engineering, YAML juga sering digunakan dalam konfigurasi aplikasi, proses otomatisasi, dan banyak hal lainnya.

Format YAML memudahkan penggunanya untuk mendefinisikan instruksi berbasis teks yang bisa dipahami oleh komputer dan juga manusia. Dengan menggunakan YAML, developer bisa membuat dokumen konfigurasi, merancang template, dan banyak lagi.

Secara struktural, YAML menggunakan indentasi untuk menunjukkan hubungan antara berbagai elemen dalam dokumen. Seperti halnya Python, indentasi (penulisan yang menjorok ke dalam) dalam YAML sangat penting dan menentukan struktur data yang diwakili. Setiap tingkat indentasi mewakili sebuah level dalam struktur data.

Hal yang perlu diingat saat berinteraksi dengan YAML adalah sifatnya yang case-sensitive, artinya huruf besar dan kecil dianggap berbeda. Misalnya, kata "Key" dan "key" akan dianggap sebagai dua elemen berbeda. Selain itu, YAML juga mendukung tipe data berbeda, seperti integer, float, string, dan boolean.

Fungsi YAML

YAML memiliki peran penting dalam proses pengembangan software. Salah satu fungsi utamanya adalah sebagai file konfigurasi. File konfigurasi YAML dapat memuat semua informasi yang dibutuhkan untuk menjalankan aplikasi atau proses tertentu.

Berikut fungsi lain dari YAML:

  • Mudah dibaca: dibandingkan dengan format lain (seperti JSON dan XML), YAML lebih mudah dibaca oleh manusia. Struktur YAML yang jelas dan ringkas membantu memahami konfigurasi dan data yang disajikan dengan cepat.
  • Portabilitas data: YAML mendukung struktur data kompleks termasuk list, map, dan scalar types, seperti integer, boolean, dan float. Dengan demikian, developer bisa dengan mudah memindahkan data antara bahasa pemrograman yang berbeda.
  • Mendukung bahasa pemrograman lintas platform: YAML dapat digunakan dalam berbagai bahasa pemrograman, seperti Python, Java, Ruby, dan JavaScript. Fungsi ini efektif untuk proyek yang melibatkan berbagai platform dan bahasa.
  • Penggunaan dalam CI/CD: YAML sering digunakan dalam alur kerja integrasi dan pengiriman terus menerus (CI/CD). Misalnya, GitLab dan Jenkins menggunakan file YAML untuk mendefinisikan pekerjaan CI/CD.
  • Menggunakan "Ankors" untuk menghindari duplikasi: developer bisa membuat "ankor" (alias) untuk item yang mungkin digunakan berulang kali dalam dokumen. Proses ini membantu menghindari duplikasi dan membuat kode lebih rapi dan efisien.
  • Konfigurasi software: YAML sering kali digunakan untuk konfigurasi perangkat lunak. Format yang dimiliki oleh YAML memudahkan pengguna untuk mengubah konfigurasi tanpa perlu memahami kode program yang rumit.

Kapan Menggunakan YAML?

YAML adalah bahasa yang dirancang untuk memudahkan pembacaan dan penulisan konfigurasi. Oleh karena itu, waktu paling tepat untuk menggunakan YAML adalah saat developer perlu membuat atau mengubah konfigurasi aplikasi, infrastruktur, atau hal lain yang membutuhkan pengaturan khusus.

Jika developer sedang mengerjakan proyek yang membutuhkan banyak konfigurasi dan ingin memudahkan pembacaannya, YAML bisa menjadi pilihan tepat. Misalnya, developer membangun aplikasi web dan perlu menyimpan konfigurasi seperti rute atau pengaturan database, mereka bisa menggunakan YAML.

Lebih jauh, YAML memiliki struktur yang jelas sehingga menjadikannya pilihan untuk serialisasi data file konfigurasi dan bahkan untuk bahasa coding seperti Ansible dan Docker. Saat developer memerlukan penanganan data secara berkala, ingin bekerja secara efisien, dan perlu membaca data dengan mudah, YAML bisa berfungsi dengan baik.

YAML menawarkan keunggulan dalam hal keterbacaan dan kemudahan penggunaan, terutama bagi pemula. Sebelum memutuskan bahasa apa yang akan gunakan, developer perlu mempertimbangkan terlebih dahulu kebutuhan proyek dan tingkat kenyamanan.

Contoh Penggunaan YAML

Bagi software engineer, YAML berperan dalam banyak penggunaan aplikasi, termasuk penggunaan kontainer seperti Docker dan Kubernetes.

Sebagai contoh, seorang engineer sedang mengerjakan proyek yang menggunakan Docker, sebuah platform yang memungkinkan penggunanya untuk mengotomatiskan proses deployment aplikasi dalam kontainer yang ringan dan portabel.

Docker memanfaatkan YAML dalam file Docker Compose untuk mendefinisikan layanan, jaringan, dan volume.

Berikut contoh dari file Docker Compose:

Contoh YAML
Contoh YAML

Pada contoh di atas, engineer mendefinisikan dua layanan, yaitu 'web' dan 'redis'. Layanan 'web' dibangun dari Dockerfile dalam direktori saat ini dan dipetakan ke port 5000 pada mesin host. Sementara itu, layanan 'redis' menggunakan image redis versi alpine.

Contoh lainnya adalah penggunaan YAML dalam Kubernetes, sebuah platform open-source yang berfungsi untuk mengelola aplikasi berbasis kontainer. Di dalam Kubernetes, YAML dipakai untuk mendefinisikan semua objek dan konfigurasi.

Berikut contoh penggunaan YAML dalam Kubernetes untuk mendefinisikan deployment:

Contoh YAML
Contoh YAML

Dalam contoh ini, engineer membuat deployment yang menjalankan tiga replika dari aplikasi Nginx. Engineer mendefinisikan label, template, dan spesifikasi lainnya untuk deployment menggunakan YAML.

FAQ (Frequently Asked Question)

Dalam pekerjaan sehari-hari, software engineer sering kali berurusan dengan berbagai jenis format data. Dua format yang paling umum adalah YAML dan JSON. Kedua format ini memiliki perbedaan dan keunggulan masing-masing dan pemilihan antara keduanya tergantung pada kebutuhan dan preferensi pengguna.

JavaScript Object Notation atau JSON, adalah format yang sering digunakan untuk pertukaran data antar aplikasi. Format ini mudah dibaca dan ditulis oleh mesin, namun lebih sulit dimengerti manusia jika datanya kompleks. 

Keunggulan dari JSON adalah kompatibilitasnya yang luas dengan berbagai bahasa pemrograman, sehingga menjadikannya pilihan tepat untuk integrasi sistem yang berbeda.

Dibandingkan JSON, YAML adalah alternatif yang lebih user-friendly. YAML lebih mudah dibaca dan ditulis oleh manusia, terutama untuk data yang lebih kompleks. Namun, YAML tidak sekompatibel JSON karena tidak semua bahasa pemrograman memiliki library untuk mem-parsing YAML.

Perbedaan utama antara JSON dan YAML adalah cara keduanya menangani data. JSON bekerja dengan berbagai jenis data, termasuk string, angka, objek, array, dan nilai boolean. Sementara itu, YAML dapat menangani lebih banyak jenis data yang tidak bisa ditangani oleh JSON, termasuk tanggal dan null,

Namun, meski YAML lebih mudah dibaca, format ini juga lebih rentan terhadap kesalahan sintaks karena membutuhkan indentasi yang tepat. Jika indentasi tidak sesuai, data YAML bisa menjadi tidak valid. Di sisi lain, JSON lebih toleran terhadap kesalahan sintaks.

Pada akhirnya, pilihan antara YAML dan JSON sebenarnya tergantung pada kebutuhan dan situasi masing-masing engineer. Jika membutuhkan format data yang mudah dibaca oleh manusia dan dapat menangani berbagai jenis data, engineer dapat mengandalkan YAML.

Namun, jika membutuhkan kompatibilitas yang luas dan toleransi yang tinggi terhadap kesalahan, JSON bisa menjadi pilihan yang lebih baik.

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:
Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program:

Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion.

Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)

Kata kunci lainnya

Mulai karirmu dalam

Software Engineering

Di RevoU, tidak hanya teori, penerapan, serta career coaching. Kamu juga mendapatkan akses ke Community Hub dengan 6000+ member. Di sini, kamu akan selalu terupdate informasi seputar job openings, industry news, dan upskilling events!
ikut kursus gratis
Menu