Menu
CoddyTech

Cheat Sheet Swift

Terakhir diperbarui

Hello World & dasar

Swift tidak butuh boilerplate di tingkat atas: satu baris saja sudah bisa dijalankan.

OperasiSintaks
Mencetak satu barisprint("Hello, World!")
Mencetak tanpa baris baruprint("Hi", terminator: "")
Interpolasi stringprint("Hi \(name)")
Komentar// this is a comment
Komentar beberapa baris/* ... */
Mengimpor moduleimport Foundation
Menjalankan fileswift run atau swift main.swift

Variabel (let / var) & tipe

Pakai let untuk konstanta dan var untuk nilai yang bisa berubah; tipe biasanya disimpulkan otomatis.

OperasiSintaks
Konstantalet age = 30
Variabelvar count = 0
Tipe eksplisitlet name: String = "Ada"
Tipe dasarInt, Double, String, Bool, Character
Konversi tipeDouble(i), String(n), Int("42")
Tuplelet pair = (1, "a")
Alias tipetypealias ID = Int
Memeriksa tipevalue is String, value as? String

Optional

Optional memodelkan kemungkinan tidak adanya nilai; buka (unwrap) dulu sebelum dipakai.

OperasiSintaks
Mendeklarasikan optionalvar name: String? = nil
Optional bindingif let n = name { ... }
Unwrap dengan guardguard let n = name else { return }
Nil-coalescinglet n = name ?? "default"
Optional chaininguser?.address?.city
Force unwrap (tidak aman)name!
Implicitly unwrappedvar name: String!
Map pada optionalname.map { $0.count }

String

String adalah value type dengan dukungan Unicode penuh.

OperasiSintaks
Panjangs.count
Huruf besar / kecils.uppercased(), s.lowercased()
Menggabungkan"foo" + "bar"
Interpolasi"Total: \(price)"
Mengandung tekss.contains("ell")
Punya awalan / akhirans.hasPrefix("he")
Memecahs.split(separator: ",")
Menggantis.replacingOccurrences(of: "a", with: "b")
String beberapa baris""" ... """

Collection (Array, Dictionary, Set)

Tiga tipe collection inti, semuanya value type.

OperasiSintaks
Literal arrayvar nums = [1, 2, 3]
Appendnums.append(4)
Akses / jumlahnums[0], nums.count
Map / filternums.map { $0 * 2 }, nums.filter { $0 > 1 }
Literal dictionaryvar ages = ["Ada": 30]
Akses dictionaryages["Ada"] mengembalikan optional
Literal setvar ids: Set = [1, 2, 3]
Menyisipkan ke setids.insert(4)
Iterasi dictionaryfor (k, v) in ages { ... }

Alur kontrol

Kondisi tidak perlu tanda kurung; switch harus mencakup semua kemungkinan.

OperasiSintaks
If / elseif x > 0 { ... } else { ... }
Ternarylet r = x > 0 ? "pos" : "neg"
Switchswitch n { case 1: ...; default: ... }
Switch dengan rangecase 1...5: ...
For-in loopfor i in 0..<10 { ... }
For-in pada arrayfor item in items { ... }
While loopwhile x < 100 { ... }
Repeat-whilerepeat { ... } while x < 100
Break / continuebreak, continue

Fungsi & closure

Fungsi punya parameter berlabel; closure adalah blok kode yang berdiri sendiri.

OperasiSintaks
Mendefinisikan fungsifunc add(a: Int, b: Int) -> Int { a + b }
Label eksternalfunc greet(to name: String) { ... }
Parameter defaultfunc greet(name: String = "World") { ... }
Parameter variadicfunc sum(_ nums: Int...) -> Int { ... }
Beberapa nilai kembalian (tuple)func bounds() -> (min: Int, max: Int) { ... }
Ekspresi closurelet f = { (x: Int) -> Int in x * x }
Trailing closurenums.map { $0 * 2 }
Argumen singkat{ $0 + $1 }

Struct vs class

Struct adalah value type (disalin); class adalah reference type (dipakai bersama).

OperasiSintaks
Mendefinisikan structstruct Point { var x: Int; var y: Int }
Mendefinisikan classclass Person { var name: String }
Initializer classinit(name: String) { self.name = name }
Membuat instancelet p = Point(x: 1, y: 2)
Method struct yang mutatingmutating func move() { x += 1 }
Method classfunc greet() { ... }
Inheritance (khusus class)class Student: Person { ... }
Computed propertyvar area: Int { width * height }
Anggota staticstatic let shared = Manager()

Enum

Enum mengelompokkan nilai yang saling terkait dan bisa membawa data terkait.

OperasiSintaks
Mendefinisikan enumenum Direction { case north, south }
Memakai sebuah caselet d = Direction.north
Switch pada enumswitch d { case .north: ... }
Raw valueenum Status: Int { case ok = 200 }
Mengakses raw valueStatus.ok.rawValue
Inisialisasi dari raw valueStatus(rawValue: 200)
Associated valuecase result(Int, String)
Method pada enumfunc 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?
Optional bisa berisi nilai atau 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.

Ilustrasi bahasa pemrograman di Coddy

Belajar Swift bersama Coddy

Mulai