Episode ini mengajarkan sintaks dasar Swift: deklarasi variabel dan konstanta dengan var dan let, tipe dasar seperti Int, Double, String, dan Bool, struktur kontrol if, switch, for-in, while, dan repeat-while, serta fungsi dan closures sebagai warga kelas satu.

Di episode 2 kalian memahami arsitektur Swift. Sekarang saatnya menulis kode sungguhan. Episode 3 membahas sintaks dasar dan struktur kode Swift — blok bangunan yang akan kalian pakai di setiap baris kode selama menjadi developer Swift.
Sintaks Swift dirancang ringkas tetapi ekspresif. Kalian akan melihat bahwa banyak boilerplate yang wajib di bahasa lain bisa dihilangkan, tanpa mengorbankan kejelasan. Kuasai episode ini dengan baik karena semua episode lanjutan berdiri di atasnya.
Swift membedakan tegas antara nilai yang bisa berubah dan yang tidak. Deklarasikan dengan var jika nilai bisa berubah, dan let jika sekali diisi tidak boleh diganti:
var skor = 10
skor += 5
let namaAplikasi = "Swift Notes"
print(namaAplikasi)
print(skor)let namaAplikasi = "Swift Notes" membuat konstanta — mencoba menugaskan ulang akan gagal saat kompilasi. Biasakan memakai let secara default dan var hanya saat nilai memang perlu berubah.
Kalian tidak perlu selalu menulis tipe secara eksplisit — compiler menyimpulkannya dari nilai awal:
let jumlahKursi: Int = 12
let tinggi: Double = 1.75
let kategori: String = "premium"
let aktif: Bool = trueTipe dasar Swift mencakup Int, Double, Float, String, dan Bool. Catatan penting: Double dan Float tidak bisa dicampur secara implisit — konversi harus eksplisit dengan Double(nilai) atau Float(nilai).
Percabangan if ditulis dengan kurung opsional dan harus memiliki blok:
let nilai = 85
if nilai >= 90 {
print("Luar biasa")
} else if nilai >= 75 {
print("Bagus")
} else {
print("Perlu latihan lagi")
}Untuk pencocokan banyak kemungkinan, switch di Swift jauh lebih kuat daripada di C: setiap case tidak perlu break, dan semua kemungkinan harus tercakup atau dilengkapi default:
let kategoriUmur = "remaja"
switch kategoriUmur {
case "anak":
print("Di bawah 12 tahun")
case "remaja":
print("13 sampai 19 tahun")
case "dewasa":
print("20 tahun ke atas")
default:
print("Kategori tidak dikenal")
}switch kategoriUmur mengevaluasi nilai sekali dan memilih case yang cocok. Swift juga mendukung range seperti case 0..<13 untuk pola numerik.
Loop for-in mengiterasi koleksi atau range:
for angka in 1...5 {
print("Iterasi ke-\(angka)")
}Range 1...5 mencakup 1 sampai 5 inklusif. Gunakan 1..<5 jika ingin eksklusif di batas atas. Untuk loop berbasis kondisi, while memeriksa kondisi di awal, dan repeat-while memeriksa di akhir sehingga body selalu dieksekusi minimal sekali:
var counter = 3
while counter > 0 {
print("Mundur \(counter)")
counter -= 1
}
repeat {
print("Selalu jalan sekali")
} while falseFungsi dideklarasikan dengan kata kunci func, dengan tipe parameter dan tipe kembalian yang eksplisit:
func hitungDiskon(harga: Double, persen: Double) -> Double {
let potongan = harga * (persen / 100)
return harga - potongan
}
let total = hitungDiskon(harga: 500_000, persen: 15)
print(total)hitungDiskon(harga:persen:) memakai label argumen yang wajib ditulis saat memanggil. Ini membuat kode terbaca seperti kalimat natural. Default value memungkinkan parameter dihilangkan saat memanggil.
Closure adalah blok kode mandiri yang bisa disimpan dan diteruskan — warga kelas satu. Sintaksnya mirip fungsi tanpa nama:
let daftar = [3, 1, 4, 1, 5, 9, 2]
let naik = daftar.sorted { (a: Int, b: Int) -> Bool in
return a < b
}
print(naik)Versi ringkasnya memakai parameter implisit $0 dan $1:
let turun = daftar.sorted { $0 > $1 }
print(turun)daftar.sorted { $0 > $1 } mengurutkan descending tanpa menulis tipe sama sekali — pola yang sangat umum di seluruh codebase Swift, terutama bersama map, filter, dan reduce yang akan kalian pakai di episode 5.
Tip
Maksimalkan type inference saat menulis closures. Mulailah dengan versi eksplisit untuk memahami tipe, lalu pangkas ke bentuk ringkas setelah yakin. Keterbacaan tetap lebih penting daripada singkatnya.
Inti yang harus dibawa pulang:
let sebagai default dan var hanya saat nilai harus berubah.if dan switch menangani percabangan; switch Swift bebas dari break.for-in mengiterasi range dan koleksi, while dan repeat-while mengulang berbasis kondisi.func dan mendukung label serta nilai default.Di episode 4 selanjutnya kita akan membahas tipe data lanjutan dan koleksi — Array, Dictionary, Set, dan tuple, optional beserta optional chaining dan nil coalescing, enum dengan associated values dan raw values, serta perbedaan struct dan class dalam hal value dan reference semantics. Siapkan keyboard kalian!