Opsional
Opsional
Opsional adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 1. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 1 pelajaran total.
Pendahuluan
Halo,
Opsional digunakan untuk menyatakan bahwa suatu variabel mungkin tidak memiliki nilai.
Jika variabel bertipe opsional memiliki nilai, variabel tersebut dibuka dan digunakan. Jika tidak, variabel tersebut tidak memiliki nilai.
Penggunaan Opsional untuk Berbagai Tipe di Swift
Opsional dapat dibandingkan dengan penunjuk nil dalam Obj-C. Namun, penunjuk nil hanya valid untuk tipe objek.
Opsional di Swift digunakan bukan hanya untuk tipe objek, tetapi juga untuk struktur, enumerasi, atau tipe sederhana.
var optionalVar: String?
// optionalVar is automatically set to nil]
/*
Since we define it as optional without
assigning a value, the variable
automatically takes the value of nil.
*/Nil di Swift dan nil di Obj-C tidak sama
Nil di Swift dan nil di Obj-C tidak sama.
Penunjuk nil di Obj-C menunjukkan ketiadaan objek. Di Swift, nil bukanlah penunjuk nil. Nil di Swift menunjukkan ketiadaan data dan dapat digunakan untuk berbagai tipe, bukan hanya tipe objek.
Pembukaan paksa
Variabel yang kita definisikan sebagai opsional dapat diakses menggunakan metode pembukaan paksa.
Dengan operator tanda seru, nilai dapat dipaksa untuk dibuka, tetapi secara umum penggunaannya tidak terlalu baik.
Jika data yang dirujuk tidak tersedia saat dilakukan pembukaan paksa, kita mendapatkan galat saat aplikasi berjalan.
let convertedNumber : Int? = 123
if convertedNumber != nil {
print("convertedNumber has an integer value of \(convertedNumber!).")
}
// Prints "convertedNumber has an integer value of 123."Mengakses Opsional dengan Pengikatan Opsional
Mengakses Opsional dengan Pengikatan Opsional
Dengan blok if let, kita dapat mengakses nilai variabel opsional dengan menetapkannya ke sebuah konstanta atau variabel.
Menggunakan cara ini daripada pembukaan paksa merupakan metode yang lebih elegan.
var possibleNumber : String? = "10"
if let actualNumber = possibleNumber {
print(actualNumber)
}Contoh
if let firstNumber = Int("4"), let secondNumber = Int("42"),
firstNumber < secondNumber && secondNumber < 100 {
print("\(firstNumber) < \(secondNumber) < 100")
}
// Prints "4 < 42 < 100"
/*
If at least one of them is false,
it will not be entered in the if blog.
*/
Opsional yang Dibuka Secara Implisit
Opsional yang Dibuka Secara Implisit
Dalam beberapa kasus, nilai opsional ditetapkan pada tahap awal dan pada tahap-tahap berikutnya nilainya dipastikan tidak nil.
Dalam kasus seperti ini, alih-alih menggunakan opsional (?), kita menyatakannya dengan operator (!) untuk menunjukkan bahwa opsional tersebut pasti tidak nil.
Bentuk definisi ini disebut sebagai "opsional yang dibuka secara implisit".
Dibuka secara implisit
Dibuka secara implisit
Penggunaan yang paling umum adalah pada tahap inisialisasi kelas.
Berbeda dari opsional tradisional, kita tidak perlu membuka variabel yang dinyatakan dibuka secara implisit.
let possibleString: String? = "An optional string."
// requires an exclamation mark
let forcedString: String = possibleString!
let assumedString: String! = "An implicitly unwrapped optional string."
// no need for an exclamation mark
let implicitString: String = assumedString Contoh
Jika kita menetapkan nil ke variabel bertipe ini, kita mendapatkan galat saat aplikasi berjalan.
Mari kita lihat contohnya
/*
We can use it during optional binding or we can check for nil.
So we use implicitly unwrapped optional
in the same way we use classic optional.
*/
var assumedString: String! = nil
if let definiteString = assumedString {
print(definiteString)
}
// Prints "An implicitly unwrapped optional string."Peringatan
Jika sebuah variabel berpotensi bernilai nil, jangan gunakan opsional yang dibuka secara implisit.
Operator Penggabungan Nil
Operator Penggabungan Nil
Operator ini memudahkan kita mengambil nilai dari tipe opsional.
Mari kita lihat contohnya.
let defaultColorName = "red"
// defaults to nil
var userDefinedColorName: String?
var colorNameToUse = userDefinedColorName ?? defaultColorName
/*
userDefinedColorName is nil,
so colorNameToUse is set to the default of "red"
*/
// a != nil ? a! : b
/*
We can think of it as a shortcut to the above expression.
A checks if a is nil, if a is not nil, it unwrap and eturn,
otherwise it returns the default value, ie b.
*/
Selamat
Selamat 🎉
Konsep opsional merupakan salah satu fitur terpenting Swift. Dengan menggunakan opsional, kita tidak perlu melakukan pemeriksaan nilai nihil, dapat menulis kode dengan lebih rapi, dan membuat aplikasi lebih aman.
Sampai jumpa di pelajaran berikutnya 🥳

Pertanyaan yang Sering Diajukan
Apakah pelajaran “Opsional” gratis?
Ya — teks lengkap “Opsional” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 1 pelajaran total.
Apa yang akan aku pelajari di “Opsional”?
Opsional Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 1.
Berapa lama pelajaran “Opsional” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.