Intro to Swift
Pertemuan pertama tidaklah selalu mudah. Baik peserta maupun instrukturnya sama-sama beradaptasi satu sama lain dengan situasi virtual class. Meskipun begitu kita akan sama-sama berprogress untuk menjadi lebih baik dalam proses kegiatan belajar mengajar di iOS Bootcamp.
Full Video -> https://youtu.be/x61msEQL8gQ
Link Source Code -> https://drive.google.com/file/d/1NW4oqCbbUv7qT5cKDsfWYcacAFag3uyM/view?usp=sharing
PS: Channel Youtube diatas tidak akan dimonetisasi adsenses
Untuk teman-teman yang baru pertama kali mengenal konsep-konsep dalam pemrograman, tim instruktur rencananya akan membuat topik khusus yang membahas tentang konsep dasar dan terminologi pemrograman.
Selain itu di tutorial kali ini, silahkan untuk mengikuti step by stepnya terlebih dahulu. Apabila ada hal yang belum dimengerti, bisa di sampaikan di Discord Server iSwift iOS Bootcamp.
Constant dan Variable
Konsep dasar dari Constant
dan Variable
mirip dengan apa yang sudah kita pelajari di Matematika. Misalnya persamaan ini:
x = y + 10
Dimana x
dan y
adalah sebuah variabel yang nilainya bisa berubah-ubah. Sementara 10
adalah nilai konstanta (atau nilai tetap).
Di bahasa pemrograman Swift, variabel di deklarasikan dengan keyword var
, sementara konstanta di deklarasikan dengan keyword let
. Jika persamaan matematika diatas kita deklarasikan kedalam Swift code, jadinya seperti ini:
let constant = 10var y = 10var x = y + constant
Dan jika code diatas kita running di Playground, hasilnya muncul seperti ini:
Kita bebas memberi nama apapun untuk Variable dan Constant asalkan tetap meaningful atau sesuai konteksnya. Contohnya:
let maxJumlahPercobaanLogin = 10var jumlahPercobaanLogin = 0
Untuk lebih memahami perbedaan antara Constant dan Variable, ketik dan jalankan code dibawah pada Playground:
jumlahPercobaanLogin = 2maxJumlahPercobaanLogin = 7
Akan muncul pesan error pada Constant maxJumlahPercobaanLogin
karena sekalinya kita menginisialisasi suatu value / nilai pada sebuah Constant, nilai tersebut tidak bisa kita ubah. Sementara pada variable jumlahPercobaanLogin
nilainya bisa diubah.
Type Inference / Type Annotation
Bahasa pemrograman Swift memiliki banyak sekali fitur yang membuat code yang kita tulis menjadi terlihat clean dan usable. Salah satunya adalah fitur Type Inference
atau bisa juga disebut Type Annotation
.
Setiap variabel di Swift, memiliki Type nya masing-masing. Ada 4 macam Type yang sering diolah sebagai tipe data pemrograman yaitu Integer, String, Boolean, dan Double atau Float. Dan fitur Type Inference di Swift memungkinkan kita untuk mendeklarasikan sebuah variabel tanpa harus secara eksplisit menentukan tipe datanya.
Misalnya;
var pesan: Stringpesan = "Hello"// alternatifnya bisa var pesan = "Hello"let constant = 5var number = 4var result = number + constant
Pada variabel pesan
, kita secara eksplisit menetapkan tipe data String
. Sementara pada let constant = 5
, Swift secara cerdas (dengan fitur Type Inferencenya) menetapkan nilai 5
sebagai tipe data Integer
.
String Interpolation
Swift merekomendasikan sebuah teknik untuk menggabungkan beberapa tipe data kedalam satu variabel. Misalnya;
var number = 4var pesan = "Hello"print(pesan + " saya punya " + "\(number)" + " ekor ayam")// outputnya akan seperti iniHello saya punya 4 ekor ayam
Tuples
Fitur Tuple bisa memasukkan dia nilai kedalam sebuah variabel
let httpError = (404, "Not Found")print("\(httpError.0" \(httpError.1)")// atau bisa juga dibuat lebih informatif seperti contoh code dibawah inilet responseStatus = (code: 200, message: "OK")print("\(responseStatus.code): \(responseStatus.message)")
Understanding Optionals
Barangkali kita pernah punya pengalaman saat membuka aplikasi iOS, lalu klik beberapa tombol dan tiba-tiba force close atau aplikasinya crash. Kenapa bisa terjadi seperti itu? Bukan diminta untuk upgrade device ya, hehe. Tapi salah satu penyebabnya yang paling umum adalah aplikasi tersebut hendak mengakses sebuah variabel yang tidak ada value nya alias nil
.
Apakah ada cara untuk mengantisipasi supaya aplikasi tidak crash?
Jawabannya: Setiap bahasa pemrograman tentu memiliki strateginya masing-masing. Nah kalau di Swift, ada fitur yang namanya Optionals
. Ide fundamental dari fitur Optionals ini sebenarnya simpel yaitu: Sebelum mengakses sebuah variabel, pastikan untuk lakukan langkah verifikasi terlebih dahulu. Sebagai programmer, kita perlu membuat sebuah langkah verifikasi bahwa sebuah variabel memang memiliki suatu Nilai / Value
.
Dan di Swift, fitur Optionals ini menjadi sangat powerful untuk mengantisipasi variable yang nilainya Nil. Cara deklarasikan Optionals yaitu dengan simbol "?"
Misalnya kita membuat sebuah form pendaftaran peserta iOS Bootcamp. Variable yang akan kita deklarasikan adalah: Nama, Email, Pekerjaan. Dari tiga variabel tersebut, Nama dan Email wajib memiliki value, sementara Pekerjaan boleh untuk dikosongkan (tidak diisi value). Supaya aplikasi kita tidak crash, kita bisa menuliskan variable nya seperti ini:
var name = "John Doe"var email = "johndoe@gmail.com"var pekerjaan: String?
Kita bisa lihat variabel yang tidak kita set initial valuenya, Swift akan secara otomatis memberikan special value yaitu Nil
. Sementara variabel yang kita set initial value akan memunculkan valuenya masing-masing sesuai dengan apa yang sudah di set.
Force Unwrapping
Setelah kita set tipe data "Optionals", langkah selanjutnya adalah melakukan verifikasi dan proses unwrap
value. Caranya dengan Forced Unwrapping melalui IF Statements:
// Forced Unwrappingif pekerjaan != nil { var pesan = "Pekerjaan Anda adalah " + pekerjaan!}
Operator "!=" mendeskripsikan bahwa apabila pekerjaan tidak sama dengan nil, maka pekerjaan harus memiliki sebuah nilai / value yang diverifikasi dengan memberikan tanda exclamation mark
"!". Jadi pada statement var pesan = "Pekerjaan Anda adalah " + pekerjaan!
dimana pada pekerjaan
ada tanda "!", itu artinya kita memastikan pada xcode bahwa variabel ini sudah saya verifikasi dan sudah pasti ada valuenya.
Force Unwrapping dilakukan ketika kita yakin bahwa sebuah variabel akan memiliki suatu value.
Optional Binding
Cara lain yang lebih direkomendasikan oleh Swift adalah dengan melakukan "Optional Binding".
Dengan sample code yang sama seperti Forced Unwrapping, kita bisa rewrite code nya menjadi seperti ini:
// Optional Bindingif let pekerjaanWithValue = pekerjaan { var pesan = "Pekerjaan Anda adalah " + pekerjaanWithValue}
Gunakan if let
untuk langkah verifikasi dan validasi apakah variabel pekerjaan
memiliki value. Jika iya, maka value tersebut akan di assign atau di set ke sebuah constant yang kita berinama pekerjaanWithValue
.
Jadi tidak perlu menggunakan exclamation mark. if let
ini adalah cara yang paling aman dan paling direkomendasikan.
Array and Dictionary
Array dan Dictionary merupakan konsep pemrograman yang akan sering kita gunakan sebagai iOS Engineer selain konsep variabel, constant, optionals, control flow (if statement), dll yang telah kita bahas diatas.
Array
Sejauh ini kan untuk variabel itu hanya bisa menyimpan single value
. Jika kita perlu untuk menyimpan multiple value kedalam suatu variabel, maka gunakanlah Array
.
contohnya:
// Arrayvar seriesCollection = ["Squid Game", "Alice in Borderland", "Money Heist", "Hospital Playlist"]seriesCollection[0]
Coba jalankan code diatas pada Playground.
Variable seriesCollection
kita beri initial value berupa Array ["Squid Game", "Alice in Borderland", "Money Heist", "Hospital Playlist"]
. Nilai di dalam sebuah Array, bisa diakses berdasarkan urutan indeksnya dan dimulai dari indeks ke - 0, ke - 1, ke - 2, dst.
Misalnya kita ingin mengakses data seriesCollection dengan value "Squid Game", maka gunakan seriesCollection[0]
Untuk mengetahui berapa jumlah items di sebuah Array, caranya seperti ini:
seriesCollection.count
Range Operator
Kalau kita ingin memunculkan setiap items yang ada di sebuah Array, caranya gimana? Coba cara ini:
print(seriesCollection[0])print(seriesCollection[1])print(seriesCollection[2])print(seriesCollection[3])
Bisa, tapi tidak praktis ya?
Nah ada cara yang lebih baik yaitu menggunakan Range Operator "for in"
for index in 0..<count { print(seriesCollection[index])}
Outputnya akan sama seperti yang kita buat pada code sebelumnya tapi yang ini lebih clean dan praktis.
Dictionary
Hampir mirip dengan konsepnya Array
, Dictionary juga bisa digunakan untuk menyimpan multiple value kedalam sebuah variabel. Perbedaannya terletak pada cara akses valuenya.
Jika di Array untuk mengakses suatu value menggunakan nomor indeks, kalau di Dictionary untuk mengakses suatu value menggunakan metode Key - Value
. Jadi setiap value pada Dictionary akan punya Key
yang terasosiasi kepada valuenya masing-masing.
Misalnya pada variabel seriesCollection
yang sudah kita deklarasikan, tiap judul ada Series ID nya masing-masing.
Contoh codenya:
var seriesCollectionDict = ["243567": "Squid Game","123456": "Alice in Borderland","756894": "Money Heist","098765": "Hospital Playlist",]
Lalu untuk mengakses salah satu value dari variabel seriesCollectionDict:
seriesCollectionDict["098765"]
Silahkan jalankan di Playground dan lihat hasilnya yang muncul apa.
Lalu jika ingin mengakses semua valuenya, ketikkan code berikut ini di Playground:
for (key, value) in seriesCollectionDict { print("Series ID: \(key)") print("Judul: \(value)")}
Hasilnya ketika dijalankan:
💡Ikuti perkembangannya di akun Twitter Hidayat Abisena ⚡️!