09. Toolkit print
Sejak Bab 07, print sudah jadi jendela kamu untuk
melihat isi program yang sedang berjalan. Ternyata ia bisa lebih dari
sekadar menampilkan satu string. Bab ini mengumpulkan semua trik yang
akan kamu pakai dari sini: beberapa nilai sekaligus, menyambung
potongan-potongan jadi satu baris, dan baris kosong.
Beberapa nilai, dipisah tab
Pisahkan nilai-nilai dengan koma untuk mengoper lebih dari satu ke
print. Semuanya akan dicetak dalam satu baris dengan
tab di antara masing-masing:
print("Name", "Level", "HP")
print("Keiko", 7, 95)Keluaran (jarak antar nilai adalah tab, jadi kolomnya kurang lebih sejajar):
Name Level HP
Keiko 7 95
Ada dua hal yang perlu diperhatikan. Nilai boleh berbeda tipe —
string dan angka bisa dicampur bebas. Dan angka tidak perlu tanda kutip;
7 adalah angka, "7" adalah string.
Satu nilai, disambung dengan
..
Cara koma selalu memberi tab di antara nilai. Untuk mengontrol spasi
sepenuhnya, bangun string dengan .., operator penggabung
dari Bab 07:
print("Level " .. 7 .. " reached!")Keluaran:
Level 7 reached!
Dengan .. tidak ada tab otomatis — kamu yang menentukan
apa yang ada di antara potongan-potongan, termasuk spasi. Angka yang
ditempatkan di samping .. otomatis berubah jadi teks.
Buka exercises/09/01-comma-vs-glue.lua. Program ini
mencetak tiga nilai dua kali: sekali dengan koma, sekali disambung
dengan ... Jalankan dan bandingkan hasilnya.
Koma atau ..: mana
yang dipakai?
Keduanya boleh. Panduan kasarnya:
- Koma: paling cepat untuk sederetan nilai ketika jarak tab sudah cukup (debugging, tabel cepat).
..: untuk kalimat yang rapi dengan spasi dan tanda baca yang tepat, seperti"Keiko has 95 HP".
local name = "Keiko"
local hp = 95
print(name, "has", hp, "HP") -- Keiko has 95 HP
print(name .. " has " .. hp .. " HP") -- Keiko has 95 HPBaris kedua terbaca seperti kalimat; baris pertama punya jarak tab di antaranya.
Baris kosong
print() tanpa apa pun di dalamnya mencetak satu baris
kosong. Gunakan ini untuk memberi jarak pada keluaran supaya lebih mudah
dibaca:
print("Chapter 1")
print()
print("Chapter 2")Keluaran:
Chapter 1
Chapter 2
Angka bukan teksnya
Satu hal lagi. Dua ini terlihat sama tapi bertipe berbeda:
print(7) -- the number seven
print("7") -- a string containing the character 7Keduanya menampilkan 7, tapi yang satu adalah angka dan
yang lain teks — tipe yang berbeda. Lua kadang bisa
menjembatani perbedaan ini, tapi jangan bergantung padanya. Kamu akan
bertemu tipe-tipe di bagian berikutnya. Untuk sekarang, cukup tahu bahwa
angka dan versi teksnya berbeda meskipun tampilannya sama. Ini penting
di bab input, di mana apa yang diketik pengguna masuk sebagai teks.
PR
File PR ada di exercises/09/homework/.
Soal 1 — Baris statistik
Buka exercises/09/homework/01-stat-row.lua. Menggunakan
satu print dengan koma, cetak ini dalam
satu baris: string Keiko, angka 7, dan angka
95. Jalankan dan perhatikan jarak tabnya.
Soal 2 — Baris yang rapi
Buka exercises/09/homework/02-polished-line.lua. Cetak
baris ini persis:
Keiko has 95 HP at level 7
menggunakan .. untuk menyambung potongan-potongannya,
dengan name, hp, dan level dari
variabel-variabel di bagian atas. Spasi harus sama persis.
Soal 3 — Diberi jarak
Buka exercises/09/homework/03-spaced-out.lua. Cetak tiga
baris teks dengan satu baris kosong di antara masing-masing, menggunakan
print() untuk baris kosongnya. Total lima pemanggilan.
Tantangan — Struk belanja
Buka exercises/09/homework/04-receipt.lua. Tiga item
dengan harganya tersimpan dalam variabel. Cetak sebuah struk: setiap
item di barisnya sendiri sebagai name .. ": " .. price,
satu baris kosong, lalu baris total yang dibangun dengan
... Kamu sudah menghitung totalnya sebelumnya.
Mentok atau sudah selesai? Buka halaman solusi PR.