Template Literals — JavaScript

Coba liat dua cara nulis pesan ucapan dengan nama dinamis di JavaScript: "Halo, " + nama + "! Saldo kamu sekarang Rp " + saldo + ", makasih udah top up Rp " +…

Template literal adalah string yang ditulis di antara dua backtick (`), bukan tanda kutip. Di dalamnya kamu bisa menyelipkan nilai langsung ke teks dengan ${...}, tanpa menyambung potongan teks pakai +. Mirip formulir dengan kolom kosong yang terisi sendiri.

🧪 Tebakan cepat: "Halo ${nama}" ditulis pakai kutip dua biasa. Yang tercetak nama orangnya atau bukan? Tebak dulu, jawabannya ada di bagian "Backtick, bukan kutip biasa".

Menyelipkan nilai dengan ${...}

const nama = "Budi";
const nilai = 80;

const pesan = `Halo ${nama}, nilaimu ${nilai}.`;
console.log(pesan); // Halo Budi, nilaimu 80.

Hasilnya sama dengan "Halo " + nama + ", nilaimu " + nilai + ".", tapi lebih pendek dan spasinya gampang dicek.

Isi slot boleh ekspresi apa saja

const harga = 15000;
const jumlah = 2;
const nilai = 80;

console.log(`Total: ${harga * jumlah}`); // Total: 30000
console.log(`Status: ${nilai >= 75 ? "Lulus" : "Belum lulus"}`); // Status: Lulus

Backtick, bukan kutip biasa

const nama = "Budi";

console.log("Halo ${nama}"); // Halo ${nama}
console.log(`Halo {nama}`);  // Halo {nama}
console.log(`Halo ${nama}`); // Halo Budi

Teks beberapa baris

function label(judul, isi) {
  return `${judul}:\n${isi}`;
}

console.log(label("Catatan", "Beli kopi"));
// Catatan:
// Beli kopi

⚠️ Jebakan yang sering ketemu

TL;DR: Template literal ditulis di antara backtick dan bisa menyelipkan nilai dengan ${...}: `Halo ${nama}`. Slot boleh berisi ekspresi apa saja, misalnya ${harga * jumlah}. Di dalam kutip biasa, ${...} gak diisi, dan tanpa $ slotnya jadi teks biasa. Buat pindah baris pakai \n, atau tekan Enter di dalam backtick dengan ingat spasi di awal baris ikut masuk.

Yang akan kamu pelajari