Panduan Lengkap Belajar TOML Untuk Pemula
icon-toml

⛾ Home toml Sabtu, 26 November 2022 (Diupdate: Kamis, 19 Januari 2023) - 📗 8 Menit

Apa itu TOML?

TOML atau singkatan dari Tom's Obvious Minimal Language adalah sebuah format file yang digunakan untuk pertukaran data, menyimpan konfigurasi file atau untuk sekadar menyimpan data file biasa.

Siapa Pencipta Bahasa TOML?

Seperti nama panjang dari TOML yaitu Tom's Obvious Minimal Language. Dimana nama Tom's diambil dari nama pencipta bahasa TOML ini, yaitu Tom Preston-Werner.

Kapan TOML dibuat?

Bahasa TOML dirilis pertama kali pada tanggal 23 februari 2013.

Tujuan dibuatnya TOML

Bahasa TOML dibuat dengan tujuan sebagai bahasa konfigurasi file yang mudah dibaca manusia, minimal, dan mudah untuk ditulis.

Ekstensi File TOML

File toml ditandai dengan akhiran .toml.

Sebagai contoh, misalnya file dengan nama config.toml atau myconfiguration.toml.

Mulai Menulis TOML

Sebelum mulai menulis TOML, kamu perlu tahu bahwa umumnya file TOML selalu diawali karakter plus (+) tiga kali diawal dan diakhir isi file TOML.

Lihat contohnya dibawah ini:

1+++
2key1 = "value"
3key2 = "value"
4+++

Cara Menulis Sintaks TOML

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

1key = "value"
sintaks-toml

Contoh:

1hewan1 = "kucing"

Cara lain menulis sintaks TOML

Selain cara sebelumnya, kamu juga bisa menulis sintaks key = "value" dengan cara quoted key atau key yang menggunakan kutip.

Lihat contoh dibawah ini:

1"nama" = "doni setiawan"
2"hobi" = "ngoding"

Jika menggunakan cara quoted key, saat ingin memanggil atau menggunakan key tersebut haruslah menggunakan kutip atau petik dua juga.

Cara Membuat Komentar di TOML

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

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

1# ini adalah contoh komentar di TOML.

Tipe Data TOML

TOML memiliki beberapa jenis atau tipe data yang dapat digunakan. Berikut ini adalah daftar dari tipe data TOML:

  • string
  • integer
  • float
  • boolean
  • offset datetime
  • local datetime
  • local date
  • local time
  • Array
  • Table
  • Inline Table
  • Array of Tables

Contoh Tipe Data String

string

String ditandai dengan double quote atau petik dua pada awal dan akhir value.

1hewan1 = "kucing"

Kamu dapat membuat string menggunakan petik dua atau petik satu. Dibawah ini adalah contoh membuat string menggunakan petik satu:

1hewan2 = 'hamster'

Selain itu, kita juga dapat menggunakan backslash atau unicode untuk membuat baris baru, tab, dan lain-lain.

Cara menggunakannya cukup mudah. Kita hanya perlu menuliskannya di dalam string.

Lihat contoh dibawah ini:
1hewan = "- kucing adalah hewan mamalia yang banyak dipelihara dirumah-rumah.\n- anjing adalah hewan yang setia."

Secara sekilas memang tidak terlihat perubahannya, tetapi perubahannya akan terlihat jika nilai tersebut sudah digunakan atau dipanggil.

Misalnya saat salah satu nilai dari key toml (contohnya key copyright) ditampilkan di web statis hugo.

Daftar karakter unicode yang dapat digunakan:

1\b         - backspace       (U+0008)
2\t         - tab                   (U+0009)
3\n         - linefeed           (U+000A)
4\f         - form feed         (U+000C)
5\r         - carriage return (U+000D)
6\"         - quote                 (U+0022)
7\\         - backslash          (U+005C)
8\uXXXX     - unicode        (U+XXXX)
9\UXXXXXXXX   - unicode

Multiline String

Multiline string digunakan untuk membuat string yang panjang yang membutuhkan lebih dari satu baris.

Multiline string dibuat menggunakan tiga petik dua diawal dan diakhir atau dengan tiga petik satu diawal dan diakhir string.

Lihat contoh dibawah ini:

1str1 = """
2Kucing adalah hewan mamalia karnivora
3yang banyak dipelihara dirumah-rumah.
4"""

1str2 = '''
2Kucing adalah hewan mamalia karnivora
3yang banyak dipelihara dirumah-rumah.
4'''

Contoh Tipe Data Integer

integer

Integer adalah bilangan atau angka bulat tanpa koma.

1int1 = 10

Gunakan simbol + untuk membuat angka integer positif, dan gunakan simbol - untuk membuat angka integer negatif.

Lihat contoh dibawah ini:

1int2 = +7   # sama dengan 7
2int3 = -3

Contoh Tipe Data Float

float

Tipe data float adalah angka yang menggunakan koma.

Perlu kamu ketahui, koma di TOML ditandai dengan titik . bukan ,

Lihat contoh dibawah ini:

1flt1 = 7.21

Sama seperti integer, tipe data float juga memiliki nilai positif (+) dan negatif (-).

Lihat contoh dibawah ini:

1flt2 = +3.2   # sama dengan 3.2
2flt3 = -4.31

Contoh Tipe Data Boolean

boolean

Seperti kebanyakan bahasa pemrograman, bahasa TOML juga memiliki tipe data boolean.

Walaupun bahasa TOML bukan termasuk ke dalam bahasa pemrograman itu sendiri.

Tipe data boolean hanya memiliki dua nilai yaitu true dan false. true menandakan kondisi benar dan false menandakan kondisi salah.

1bool1 = true
2bool2 = false

Contoh Tipe Data Offset Date-Time

Offset date-time di TOML mengikuti format iso8601, lihat selengkapnya.

Begini format penulisannya:

1waktu = tahun-bulan-tanggalTjam:menit:detikZ

Selalu gunakan T dan Z sesuai format seperti yang saya contohkan.

1dt1 = 2022-11-22T18:54:37Z

Sebenarnya kamu juga bisa menghilangkannya atau lebih tepatnya mengganti kata T dengan spasi.

Lihat contoh dibawah ini:

1dt2 = 2022-11-25 21:30:00Z   # ini valid alias bisa

Contoh Tipe Data Local Date-Time

Mirip seperti offset datetime, cara menuliskan local date-time hampir sama dengan offset datetime.

Perbedaanya hanyalah pada penggunaan huruf Z yang menandakan zona waktu.

Lihat contoh local datetime dibawah ini:

1waktuLokal = 2022-11-25T21:30:00

Contoh Tipe Data Local Date

Local date adalah format waktu hanya tanggal (tanpa jam, menit, dan detik).

1localDate = 2022-11-25

Contoh Tipe Data Local Time

Local time adalah format waktu yang hanya menunjukkan waktunya (tanpa tahun, bulan, dan tanggal).

1localTimes = 22:17:27

Contoh Tipe Data Array

array

Tipe data array ditandai dengan kurung siku buka dan kurung siku tutup [].

Lihat contoh dibawah ini:

1colors = [ "merah", "kuning", "hijau" ]

Array di TOML tidak terbatas pada satu tipe data saja.

Kita bisa mengisi array di TOML dengan beberapa tipe data yang berbeda.

Misalnya integer, float, string, dan boolean seperti contoh dibawah ini:

1contoh = [ "kucingku beranak", 5, "berkurang", 2.0, true ]

Cara Menulis Nested Key di TOML

Di TOML, kita bisa membuat sub key dari satu key tertentu.

Maksud dari sub key yaitu key yang mempunyai key didalamnya. Bisa di ibaratkan seperti key yang memiliki anak.

Saya akan memberikan contohnya di TOML dan akan terlihat seperti apa jika di JSON (hanya untuk memperjelas, agar kamu paham).

Nested key di TOML

1buah.anggur = "ungu"
2buah.pisang = "kuning"
3buah.apel = "merah"

Di JSON akan terlihat seperti ini:

1{
2  "buah": {
3    "anggur": "ungu",
4    "pisang": "kuning",
5    "apel": "merah"
6  }
7}

Selain seperti contoh tadi, kita juga bisa membuat sub key dengan kutip atau petik dua seperti contoh dibawah ini:

1hewan."nama" = "kucing"
2hewan."jenis" = "mamalia"

Jika menggunakan cara seperti diatas, pastikan saat ingin memanggil atau menggunakan sub key, selalu gunakan petik dua-nya.

Contoh Tipe Data Table

Table atau tabel adalah bentuk lain dari nested key (atau sub-key).

Ini sama seperti nested key, hanya saja cara penulisannya lebih mudah dan simpel.

Lihat contoh penulisan table dibawah ini:

1[apel]
2warna = "merah"
3rasa = "manis"
4tekstur = "halus"
5jumlah = 1

Contoh diatas sama dengan nested key dibawah ini:

1apel.warna = "merah"
2apel.rasa = "manis"
3apel.tekstur = "halus"
4apel.jumlah = 1

Nested key di table

1[buah]
2apel.warna = "merah"
3apel.rasa = "manis"
4apel.tekstur = "halus"
5apel.jumlah = 1

Contoh diatas sama dengan nested key dibawah ini:

1buah.apel.warna = "merah"
2buah.apel.rasa = "manis"
3buah.apel.tekstur = "halus"
4buah.apel.jumlah = 1

Contoh Tipe Data Inline Table

Inline table atau tabel sebaris adalah tipe data tabel yang ditulis dalam satu baris saja.

Tujuannya untuk memperingkas tabel itu sendiri.

Inline table ditandai menggunakan kurung kurawal buka dan kurung kurawal tutup, yaitu { dan }.

Gunakan koma , untuk memisahkan satu key dengan key lainnya.

Lihat contoh inline table dibawah ini:

1# inline table
2pisang = { warna = "kuning", rasa = manis, tekstur = "lembut" }
3
4# nested key di inline table
5buah = { apel.warna = "merah", apel.rasa = "manis", apel.tekstur = "halus", apel.jumlah = 1 }

Contoh Tipe Data Array Of Tables

Array of tables adalah array yang berisi susunan tabel.

Kita dapat membuat beberapa tabel dengan nama yang sama menggunakan array of tables ini.

Lihat contoh dibawah ini:

 1[[buah]]
 2nama = "anggur"
 3bentuk = "bulat"
 4warna = "ungu"
 5
 6[[buah]]
 7nama = "pisang"
 8bentuk = "panjang dan lengkung"
 9warna = "kuning"
10
11# nested key di array of tables
12[[hewan]]
13nama = "kucing anggora"
14
15[[hewan.jenis]]
16nama = "anggora"
17
18[[hewan.makanan]]
19nama = "whiskas"
20
21[[hewan]]
22nama = "kucing kampung"
23
24[[hewan.jenis]]
25nama = "Moggy"
26
27[[hewan.makanan]]
28nama = "ikan"

Di JSON akan terlihat seperti ini:

 1{
 2  "hewan": [
 3    {
 4      "nama": "kucing anggora",
 5      "jenis": {
 6        "nama": "Anggora"
 7      },
 8      "makanan": {
 9        "nama": "whiskas"
10      }
11    },
12    {
13      "nama": "kucing kampung",
14      "jenis": {
15        "nama": "Moggy"
16      },
17      "makanan": {
18        "nama": "ikan"
19      }
20    }
21  ]
22}

Contoh Tipe Data Array of Inline Tables

Selain array of tables, kita juga dapat menulis array of inline tables.

Lihat contoh array of inline table dibawah ini:

 1# array of tables
 2[[buah]]
 3nama = "anggur"
 4bentuk = "bulat"
 5warna = "ungu"
 6
 7[[buah]]
 8nama = "pisang"
 9bentuk = "panjang dan lengkung"
10warna = "kuning"
11
12# array of inline tables
13buah = [
14  { nama = "anggur", bentuk = "bulat", warna = "ungu" },
15  { nama = "pisang", bentuk = "panjang dan lengkung", warna = "kuning" }
16]

Cara memudahkan membaca angka dengan banyak digit.

Di TOML, kita dapat menggunakan garis bawah _ untuk meningkatkan keterbacaan angka.

Cara ini dapat digunakan pada tipe data integer dan float.

Lihat contohnya dibawah ini:

1sepuluhJT = 10_000_000   # angka disamping sama dengan 10000000 atau 10 juta.

Tipe Data Lainnya yang dapat digunakan di TOML

Selain tipe data yang sudah disebutkan sebelumnya, kamu juga dapat menggunakan tipe data lainnya seperti hexadecimal, octal, biner, dan lain-lain.

 1# hexadecimal selalu diawali dengan format '0x'
 2hex1 = 0xabcdefab
 3hex2 = 0xABCDEFAB
 4
 5# octal selalu diawali dengan format '0o'
 6oct1 = 0o01234567
 7oct2 = 0o76543210
 8
 9# binary selalu diawali dengan format '0b'
10bin1 = 0b00001111
11bin2 = 0b01101000
12
13# keterangan:
14# ^ artinya pangkat
15# 10^(6) artinya 10 pangkat 6
16
17# fractional (sama dengan tipe float)
18bil1 = 7.5
19bil2 = +67.4
20bil3 = -31.7
21
22# exponent
23bil4 = 1e-6  # sama dengan 1 x 10^(-6) 
24bil5 = 1e6   # sama dengan 1 x 10^(6)
25
26# fractional + exponent
27bil6 = 2.5e-10  # sama dengan 2.5 x 10^(-10)
28
29# infinity (tak terbatas)
30inf1 = inf   # positif infinity
31inf2 = +inf  # positif infinity
32inf3 = -inf  # negatif infinity
33
34# NaN (not a number)
35nan1 = nan   # digunakan untuk pengkondisian boolean
36nan2 = +nan  # sama dengan 'nan'
37nan3 = -nan  # digunakan untuk pengkondisian boolean

Kategori: Toml

captcha-img