Bekerja dengan String

Teks di AHA! Lang: literal, escape sequence, penggabungan, perbandingan, dan panjang string.

Bekerja dengan String

String adalah data teks — nama, kalimat, pesan, atau apa pun yang berbentuk huruf. Di AHA! Lang, string ditulis di antara tanda kutip ganda: `"..."

Membuat String

let nama = "Budi";
let pesan = "Selamat datang di AHA! Lang!";
let kosong = "";

Mencetak dan Menggabungkan

Untuk menggabungkan dua string, gunakan +:

let nama = "Budi";
let sapaan = "Halo, " + nama + "!";

print_str(sapaan); // Halo, Budi!

Penggabungan bekerja untuk string dengan string saja — "umur " + 25 akan ditolak kompiler karena tipe tidak cocok (String + Int).

Escape Sequence

Beberapa karakter khusus butuh cara khusus untuk ditulis di dalam string:

EscapeMakna
\nBaris baru
\tTab
\\Garis miring \
\"Tanda kutip ganda
\rCarriage return
\0Null

Contoh:

print_str("Kelas A\tKelas B\nSelesai");

Output:

Kelas A	Kelas B
Selesai

Bagaimana kalau mau mencetak tanda kutip di dalam string? Pakai \":

print_str("Dia berkata, \"AHA!\"");

Panjang String dengan len()

Builtin len() mengembalikan jumlah karakter:

print(len("hello"));  // 5
print(len(""));       // 0
print(len("AHA! Lang"));
// 9 — hitung sendiri!

len() di AHA! Lang sangat cepat: panjang string sudah disimpan sebagai bagian dari data, jadi dibaca langsung dalam O(1) — tidak perlu menghitung ulang.

Membandingkan String

String bisa dibandingkan isinya dengan == dan !=:

let jawaban = "aha";

if jawaban == "aha" {        // hasilnya 1 (benar)
    print_str("Benar!\n");
} else {
    print_str("Salah.\n");
}

Perbandingan membandingkan isi"aha" == "aha aja" adalah 0 (salah).

String di Dalam Fungsi

String bisa dikirim ke fungsi dan dikembalikan dari fungsi:

fn seru(teks) {
    teks + "!"
}

fn sapaan_panjang(nama) {
    "Halo, " + nama + "! Semoga harimu menyenangkan."
}

print_str(seru("yuhuu"));              // yuhuu!
print_str(sapaan_panjang("Dina"));     // Halo, Dina! ...

Kompiler menyimpulkan tipe kembalian fungsi secara otomatis.

Ringkasan

OperasiSintaksContoh
Gabung+"a" + "b""ab"
Sama dengan=="a" == "a"1
Tidak sama!="a" != "b"1
Panjanglen(s)len("abc")3

Latihan

  1. Gabungkan "Nama saya " dengan nama kamu, lalu cetak.
  2. Cetak baris puisi tiga baris menggunakan satu print_str dengan \n.
  3. Buat fungsi kata_sambutan(jam) yang mengembalikan "Selamat pagi!" jika jam < 12 dan "Selamat malam!" jika bukan (petunjuk: pakai if yang akan kamu pelajari lebih dalam di pelajaran berikutnya — boleh coba sekarang!).
  4. Cetak panjang nama lengkapmu dengan len().

Lanjut ke Keputusan dengan if / else