Panduan Lengkap Belajar YAML Untuk Pemula
icon-yaml

⛾ Home ─ yaml Kamis, 01 Desember 2022 (Diupdate: Kamis, 19 Januari 2023) - 📗 7 Menit

Apa itu YAML?

YAML (YAML A’int Markup Language) adalah bahasa berorientasi data yang digunakan untuk mengkonfigurasikan file atau untuk sekadar menyimpan data file biasa.

Sejarah singkat YAML

Awalnya YAML merupakan singkatan dari Yet Another Markup Language yang artinya bahasa markup yang berbeda dari bahasa markup umumnya (seperti HTML, XML, DLL).

Namun didefinisikan ulang menjadi YAML A’int Markup Language (artinya YAML bukan bahasa markup).

Alasan didefinisikan ulang karena tujuan awal dari bahasa YAML itu sendiri memang berbeda dari bahasa markup umumnya, yaitu sebagai file konfigurasi yang berorientasi data bukan sebagai markup dokumen.

Jadi, mereka (tim pembuat YAML) mendefinisikan ulang istilah atau kepanjangan dari YAML.

Siapa pencipta YAML?

YAML diusulkan oleh Clark Evan dan didesain oleh Ingy döt Net dan Oren Ben-Kiki.

Kapan YAML dibuat?

YAML dibuat atau dirilis pada 11 Mei 2001

Ekstensi file YAML

File YAML memiliki akhiran .yaml (direkomendasikan) atau .yml.

Silahkan pilih salah satu, .yaml atau .yml.

Sebagai contoh, misalnya file dengan nama config.yaml atau configuration.yml.

Cara Menulis Sintaks YAML

Menulis sintaks YAML sebenarnya sangat mudah. Kamu hanya memerlukan sebuah key dan value.

1key: value

Perhatikan juga karakter : sebagai bagian dari sintaks YAML.

Contoh lainnya

1hewanku: kucing

Perhatikan juga bahwa setelah karakter : ada satu spasi, ini digunakan untuk membedakan antara key dan value dari key.

sintaks-yaml

Catatan Dalam Menulis YAML

File YAML diawali dengan karakter tanda hubung (-) tiga kali dan diakhiri oleh dot (titik) tiga kali diakhir file YAML.

Lihat contohnya dibawah ini:

Benar:

1---
2key1: value
3key2: value
4...

Kamu juga bisa membuat file YAML tanpa tanda hubung seperti contoh dibawah ini:

Benar:

1key1: value
2key2: value

YAML di dalam file markdown

Kamu juga perlu tahu bahwa YAML yang terhubung dengan file markdown selalu menggunakan karakter tanda hubung (-) tiga kali diawal dan diakhir isi file YAML sebagai pemisah antara bagian YAML dan bagian markdown.

Lihat contoh dibawah ini:

postingan1.md

1---
2# disini adalah bagian YAML
3key1: value
4key2: value
5---
6Disini dan seterusnya adalah bagian dari markdown

indentasi (tab atau spasi) di YAML sangat penting!.

Jadi pastikan selalu memperhatikan indentasi, karena akan berakibat fatal jika kamu tidak menggunakan indentasi atau indentasi yang diberikan tidak tepat.

Contoh penggunaannya seperti pada array, dictionary, dan lainnya di YAML.

Nanti saya akan membahasnya.

Cara Membuat Komentar di YAML

Seperti bahasa-bahasa lainnya, bahasa YAML juga dapat menggunakan komentar untuk mendokumentasikan kode.

Komentar di TOML ditandai dengan simbol #. Berikut adalah contohnya:

1# ini adalah contoh komentar di YAML

Tipe Data YAML

YAML memiliki beberapa tipe data yang dapat digunakan.

Berikut ini adalah daftar tipe data YAML:

  • String
  • Integer
  • Float
  • Hexadecimal
  • Octal
  • Boolean
  • Array
  • Dictionary
  • Null
  • NaN
  • Infinity

String

Terdapat 3 cara penulisan string di YAML. Berikut ini adalah penjelasannya:

  1. Tanpa tanda petik (best practice)
1hewanku: kucing
  1. Menggunakan petik dua
1hewanku: "kucing"
  1. Menggunakan petik satu
1hewanku: 'kucing'

Ketiga cara diatas sama-sama valid (bisa digunakan). Cara pertama adalah yang paling simpel dan paling banyak digunakan.

Namun, ada kondisi tertentu yang membutuhkan petik dua atau petik satu.

Contohnya saat ingin mengubah integer (angka) menjadi sebuah string.

Multiline String

Selain string biasa, kita juga dapat menuliskan tipe data string memanjang kebawah, alias multiline.

Terdapat 2 jenis multiline string yang dapat digunakan.

  1. Multiline string tapi menghasilkan string seperti string biasa (alias hasilnya satu baris tapi ditulis memanjang kebawah).

Gunakan karakter > untuk membuat multiline string yang hasilnya dicetak dalam satu baris.

Lihat contohnya dibawah ini:

1kucing: >
2  Kucing adalah hewan yang bisa dipelihara.
3  Kucing merupakan hewan karnivora (pemakan daging).  

Output:

Kucing adalah hewan yang bisa dipelihara. Kucing merupakan hewan karnivora (pemakan daging).

  1. Multiline string yang menghasilkan string persis seperti apa yang dituliskan.

Gunakan karakter pembatas | untuk membuat multiline string yang dicetak sesuai dengan apa yang dituliskan.

Lihat contohnya dibawah ini:

1joni: |
2  Nama saya joni
3  Hobi saya ngoding  

Output: Nama saya joni Hobi saya ngoding

Sekali lagi saya peringatkan, perhatikan indentasi (tab atau spasi) pada sintaks YAML!.

Integer

1bil15: 15

Float

1beratBadan: 56.7

Hexadecimal (diawali 0x)

1hex1: 0x12dr4
2hex2: 0x21345

Octal (diawali angka 0)

1key1: 05412
2key2: 02344

Boolean

Terdapat 3 cara mendefinisikan boolean di YAML.

Berikut ini adalah ketiga caranya:

1. Menggunakan True dan False

1benar1: True
2salah2: False

2. Menggunakan On dan Off

1benar2: On
2salah2: Off
3
4# contoh penggunaannya
5lampuNyala: On
6lampuMati: Off

3. Menggunakan Yes dan No

1benar3: Yes
2salah3: No

Array

Terdapat 2 cara untuk membuat array di YAML.

Berikut ini adalah caranya:

  1. Menggunakan tanda hubung (-)
1- ikan
2- sapi
3- burung
  • Array di dalam key (alias array sebagai nilai key)
1Peliharaanku:
2  - ikan
3  - sapi
4  - burung

Perhatikan indentasinya (tab)!

  1. Menggunakan kurung siku []
1[andi, dimas, joni]
  • Array di dalam key (alias array sebagai nilai key)
1murid: [andi, dimas, joni]

Dictionary

Dictionary di YAML ditandai dengan kurung kurawal {}.

Terdapat 3 cara penulisan dictionary. Berikut ini adalah caranya:

  1. Ditulis dalam satu baris
1{ peliharaan1: kucing, peliharaan2: ikan cupang }
  • Dictionary didalam key
1peliharaanku: { peliharaan1: kucing, peliharaan2: ikan cupang }
  1. Ditulis memanjang kebawah
1{
2  murid1: joni,
3  murid2: andi
4}
  • Dictionary didalam key
1daftar_murid:
2{
3  murid1: joni,
4  murid2: andi
5}

Perhatikan juga simbol koma pada setiap key didalam dictionary.

  1. Tanpa menggunakan kurung kurawal
  • Dictionary didalam key
1daftar_murid:
2  murid1: agus
3  murid2: joni

Null

Null artinya tidak ada atau kosong. Atau biasa juga disebut None.

Ini digunakan untuk mendefinisikan data yang tidak ada (tidak ditemukan atau kosong).

Terdapat 2 cara untuk mendefinisikan sebuah data yang dianggap null. Cara pertama menggunakan kata null dan cara kedua menggunakan karakter ~.

1# Cara 1 menggunakan null:
2key1: null
3
4# Cara 2 menggunakan karakter ~:
5key2: ~

NaN (Not a Number)

NaN digunakan untuk mendefinisikan nilai yang bukan merupakan sebuah angka.

1key: .NAN

Perhatikan, terdapat sebuah titik atau dot diawal kata NAN.

Infinity

Infinity digunakan untuk mendefinisikan sebuah nilai yang tidak terhingga (tidak dapat dihitung).

Terdapat 2 jenis data infinity di YAML.

  1. infinity positif (tak terhingga positif)
  2. infinity negatif (tak terhingga negatif)
1# infinity positif
2key1: .inf
3
4# infinity negatif
5key2: -.Inf

Dates

Dates adalah format waktu di YAML. Kamu harus mengikuti format waktu YAML agar waktu yang dimasukkan valid. Formatnya adalah: Tahun-Bulan-TanggalTJam:Menit:Detik.ZonaWaktuZ

1hari3: 2022-12-3T18:59:13.1Z

T Digunakan sebagai pengidentifikasi waktu.

Z Digunakan sebagai pengidentifikasi Zona Waktu tempatmu saat ini.

Hanya Tahun-Bulan-Tanggal

1thnBlnTgl: 2022-12-3

Cara membuat banyak dokumen dalam satu file YAML

Di YAML, kita dapat menggabungkan banyak dokumen ke dalam satu file YAML.

Jadi, dengan fitur ini kita dapat memasukkan banyak data atau informasi yang berbeda-beda ke dalam satu file YAML saja.

Caranya adalah dengan menggunakan pembatas berupa tanda hubung tiga kali .

Lihat contohnya dibawah ini:

 1---
 2# dictionary
 3murid:
 4  murid1: agus
 5  murid2: joni
 6---
 7# array
 8es_enak:
 9  - es teh
10  - es dawet
11  - es boba
12...

Seperti penulisan sintaks yang sudah saya jelaskan sebelumnya. Gunakan titik tiga kali diakhir file YAML untuk menandakan akhir dari file YAML.

Reference Key (Anchor dan Alias) di YAML

Reference key adalah sebuah cara untuk mempermudah kita dalam menggunakan suatu nilai yang sama berulang kali.

Jadi, ini seperti menulis sebuah key yang nilai dari key tersebut dapat kita gunakan berkali-kali.

Sebelum saya berikan contohnya, kamu perlu memahami beberapa aspek penting, yaitu istilah Anchor dan **Alias.

Anchor ditandai dengan simbol & dan di ikuti dengan nama Anchor dibelakangnya.

Nama Anchor dapat berupa kata apa saja.

Alias ditandai dengan simbol * dan di ikuti dengan nama Anchornya.

Untuk penjelasan lebih lanjut, silahkan lihat catatan dibawah ini:

Anchor sebagai sumber reference. Gunakan simbol dan format sebagai berikut:

1&NamaAnchor

NamaAnchor terserah kamu menamainya apa. Alias sebagai duplikat dari Anchor. Nilainya akan sama persis seperti yang ada pada nilai Anchor.

Gunakan format seperti ini:

1*NamaAnchornya

Setelah memahami penjelasan dan catatan diatas. Sekarang saya akan memberikan contoh penggunaannya.

Lihat contoh penggunaan reference key dibawah ini:

 1# Anchor
 2nilaiA: &A
 3  nilai: A
 4  status: sangat memuaskan
 5nilaiB: &B
 6  nilai: B
 7  status: cukup memuaskan
 8
 9# key yang menggunakan Alias
10Anto: *A  # merujuk/reference ke nilaiA
11Desi: *B  # merujuk/reference ke nilaiB
12Danang: *A  # merujuk/reference ke nilaiA

Dictionary di dalam array

Terdapat 2 cara untuk membuat dictionary di dalam sebuah array.

  1. Menggunakan kurung siku dan kurung kurawal
  2. Tanpa menggunakan kurung siku dan kurung kurawal

Lihat contohnya dibawah ini:

 1# Cara 1:
 2[
 3  {
 4     nama: anto,
 5     umur: 24
 6  },
 7  {
 8    nama: danang,
 9    umur: 21
10  }
11]
12
13
14# Cara 2 (simpel & rekomended):
15- nama: anto
16  umur: 24
17- nama: danang
18  umur: 21

Array di dalam dictionary

Sama seperti dictionary didalam array.

Array di dalam dictionary juga memiliki 2 cara berbeda.

  1. Menggunakan kurung kurawal dan kurung siku
  2. Tanpa menggunakan kurung kurawal dan kurung siku

Lihat contohnya dibawah ini:

 1# Cara 1:
 2{
 3  murid: [anto, deni, joni],
 4  guru: [bu dewi, pak danar, bu wati, pak ridwan]
 5}
 6
 7# Cara 2 (simpel dan rekomended):
 8murid:
 9  - anto
10  - deni
11  - joni
12guru:
13  - bu dewi
14  - pak danar
15  - bu wati
16  - pak ridwan
Kategori: Yaml

captcha-img