Cheat Sheet Swift
Terakhir diperbarui
Hello World & dasar
Swift tidak butuh boilerplate di tingkat atas: satu baris saja sudah bisa dijalankan.
| Operasi | Sintaks |
|---|---|
| Mencetak satu baris | print("Hello, World!") |
| Mencetak tanpa baris baru | print("Hi", terminator: "") |
| Interpolasi string | print("Hi \(name)") |
| Komentar | // this is a comment |
| Komentar beberapa baris | /* ... */ |
| Mengimpor module | import Foundation |
| Menjalankan file | swift run atau swift main.swift |
Variabel (let / var) & tipe
Pakai let untuk konstanta dan var untuk nilai yang bisa berubah; tipe biasanya disimpulkan otomatis.
| Operasi | Sintaks |
|---|---|
| Konstanta | let age = 30 |
| Variabel | var count = 0 |
| Tipe eksplisit | let name: String = "Ada" |
| Tipe dasar | Int, Double, String, Bool, Character |
| Konversi tipe | Double(i), String(n), Int("42") |
| Tuple | let pair = (1, "a") |
| Alias tipe | typealias ID = Int |
| Memeriksa tipe | value is String, value as? String |
Optional
Optional memodelkan kemungkinan tidak adanya nilai; buka (unwrap) dulu sebelum dipakai.
| Operasi | Sintaks |
|---|---|
| Mendeklarasikan optional | var name: String? = nil |
| Optional binding | if let n = name { ... } |
| Unwrap dengan guard | guard let n = name else { return } |
| Nil-coalescing | let n = name ?? "default" |
| Optional chaining | user?.address?.city |
| Force unwrap (tidak aman) | name! |
| Implicitly unwrapped | var name: String! |
| Map pada optional | name.map { $0.count } |
String
String adalah value type dengan dukungan Unicode penuh.
| Operasi | Sintaks |
|---|---|
| Panjang | s.count |
| Huruf besar / kecil | s.uppercased(), s.lowercased() |
| Menggabungkan | "foo" + "bar" |
| Interpolasi | "Total: \(price)" |
| Mengandung teks | s.contains("ell") |
| Punya awalan / akhiran | s.hasPrefix("he") |
| Memecah | s.split(separator: ",") |
| Mengganti | s.replacingOccurrences(of: "a", with: "b") |
| String beberapa baris | """ ... """ |
Collection (Array, Dictionary, Set)
Tiga tipe collection inti, semuanya value type.
| Operasi | Sintaks |
|---|---|
| Literal array | var nums = [1, 2, 3] |
| Append | nums.append(4) |
| Akses / jumlah | nums[0], nums.count |
| Map / filter | nums.map { $0 * 2 }, nums.filter { $0 > 1 } |
| Literal dictionary | var ages = ["Ada": 30] |
| Akses dictionary | ages["Ada"] mengembalikan optional |
| Literal set | var ids: Set = [1, 2, 3] |
| Menyisipkan ke set | ids.insert(4) |
| Iterasi dictionary | for (k, v) in ages { ... } |
Alur kontrol
Kondisi tidak perlu tanda kurung; switch harus mencakup semua kemungkinan.
| Operasi | Sintaks |
|---|---|
| If / else | if x > 0 { ... } else { ... } |
| Ternary | let r = x > 0 ? "pos" : "neg" |
| Switch | switch n { case 1: ...; default: ... } |
| Switch dengan range | case 1...5: ... |
| For-in loop | for i in 0..<10 { ... } |
| For-in pada array | for item in items { ... } |
| While loop | while x < 100 { ... } |
| Repeat-while | repeat { ... } while x < 100 |
| Break / continue | break, continue |
Fungsi & closure
Fungsi punya parameter berlabel; closure adalah blok kode yang berdiri sendiri.
| Operasi | Sintaks |
|---|---|
| Mendefinisikan fungsi | func add(a: Int, b: Int) -> Int { a + b } |
| Label eksternal | func greet(to name: String) { ... } |
| Parameter default | func greet(name: String = "World") { ... } |
| Parameter variadic | func sum(_ nums: Int...) -> Int { ... } |
| Beberapa nilai kembalian (tuple) | func bounds() -> (min: Int, max: Int) { ... } |
| Ekspresi closure | let f = { (x: Int) -> Int in x * x } |
| Trailing closure | nums.map { $0 * 2 } |
| Argumen singkat | { $0 + $1 } |
Struct vs class
Struct adalah value type (disalin); class adalah reference type (dipakai bersama).
| Operasi | Sintaks |
|---|---|
| Mendefinisikan struct | struct Point { var x: Int; var y: Int } |
| Mendefinisikan class | class Person { var name: String } |
| Initializer class | init(name: String) { self.name = name } |
| Membuat instance | let p = Point(x: 1, y: 2) |
| Method struct yang mutating | mutating func move() { x += 1 } |
| Method class | func greet() { ... } |
| Inheritance (khusus class) | class Student: Person { ... } |
| Computed property | var area: Int { width * height } |
| Anggota static | static let shared = Manager() |
Enum
Enum mengelompokkan nilai yang saling terkait dan bisa membawa data terkait.
| Operasi | Sintaks |
|---|---|
| Mendefinisikan enum | enum Direction { case north, south } |
| Memakai sebuah case | let d = Direction.north |
| Switch pada enum | switch d { case .north: ... } |
| Raw value | enum Status: Int { case ok = 200 } |
| Mengakses raw value | Status.ok.rawValue |
| Inisialisasi dari raw value | Status(rawValue: 200) |
| Associated value | case result(Int, String) |
| Method pada enum | func label() -> String { ... } |
Sintaks Swift yang paling sering kamu pakai, dalam satu halaman. Cheat sheet Swift ini adalah referensi cepat untuk inti bahasanya: konstanta dan variabel, optional, string, collection, alur kontrol, fungsi dan closure, ditambah struct, class, dan enum yang kamu pakai untuk membangun aplikasi iOS dan macOS.
Semua yang ada di sini adalah Swift standar dan bisa kamu compile dengan toolchain resmi. Salin yang kamu butuhkan, atau coba setiap potongan kode langsung di playground Swift, tanpa perlu Xcode.
FAQ cheat sheet Swift
Apakah cheat sheet Swift ini gratis?
Ya. Cheat sheet Swift ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari pola optional, sintaks closure, atau method collection.
Bagaimana cara unwrap optional di Swift?
nil, jadi kamu perlu unwrap dulu sebelum memakainya. Cara yang aman adalah optional binding (if let n = name { ... }), guard let di awal fungsi, operator nil-coalescing (name ?? "default"), dan optional chaining (user?.name). Force unwrap dengan name! memang bisa, tetapi program akan crash jika nilainya nil, jadi pakai hanya saat kamu benar-benar yakin.Apa perbedaan struct dan class di Swift?
struct adalah value type: memasukkannya ke variabel lain atau mengirimnya akan membuat salinan, jadi perubahan tidak memengaruhi aslinya. class adalah reference type: salinannya berbagi instance yang sama, dan hanya class yang mendukung inheritance. Panduan dari Apple adalah memakai struct secara default dan memakai class saat kamu butuh state bersama yang bisa diubah atau inheritance.Bisakah saya berlatih Swift secara online?
Bisa. Buka playground Swift untuk menjalankan potongan kode apa pun dari cheat sheet ini di browsermu, tanpa perlu menginstal Xcode. Kalau kamu ingin belajar terarah, kursus Swift interaktif gratis dari Coddy membawamu dari optional dan collection sampai struct, class, dan enum, langkah demi langkah.
Apakah cheat sheet ini cocok untuk pemula?
Cocok. Isinya disusun mulai dari topik yang paling umum (variabel, optional, alur kontrol) sampai yang lanjutan (closure, struct vs class, enum), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.