Swift : Control Flow

Dalam setiap bahasa pemrograman kita memerlukan control flow. Dalam artikel kali ini kita akan membahas control dalam swift yang terdiri dari :

  • Conditional IF
  • SWITCH CASE
  • FOR LOOP
  • WHILE LOOP

Mari kita bahas satu per satu

Conditional Statement (if)

Mungkin ini adalah control yang akan sering kita gunakan. Conditional IF memungkinkan kita membuat aplikasi yang bercabang sesuai kondisi tertentu. Format dari conditional statement (if) adalah sebagai berikut:

if kondisi {
   //lakukan ini
} else {
   //lakukan yang lain
}

Pada code di atas, kondisi menggambarkan suatu expression yang bernilai boolean, dengan nilai true atau false. Jika nilai kondisi adalah true, maka program akan mengerjakan "lakukan ini" sedangkan jika salah akan melakukan blok "lakukan yang lain"

Jika belum, silakan buka playground baru dan ketikan code berikut:

// Playground - noun: a place where people can play

import UIKit

//silakan ganti nilai a, b atau c untuk melihat perubahan

let a = 1, b = 2, c = 3
let D = b * b - 4 * a * c

//conditional if
if D<0 {
    println("Akar Imajiner")
} else {
    println("Akar Real")
}

Kemudian cobalah bermain-main dengan mengganti nilai a, b atau c untuk menghasilkan nilai D yang berbeda. Lihat di layar sebelah kanan dari playground, apakah ada perubahan.

Kita bisa membuat kondisi majemuk dengan conditinal IF. Maksudnya kita bisa menggunakan lebih dari satu kondisi dalam kalimat IF dengan menambahkan operator && (AND) dan || (OR) seperti berikut.

import UIKit

let nama = "Ayya"
let umur = 17
let sehat = true

if umur>10 && umur<25 {
    println("Anda masih muda, yang rajin!")
}

if umur<5 || !sehat {
    println("Makan yang banyak!")
}

Silakan bermain-main dengan nilai umur dan sehat untuk menilat perubahannya.

Switch Case

Jika conditional statement di atas merujuk pada suatu kondisi, maka switch case tersedia untuk menangani miltiple conditions. Hal ini seperti kita menggunakan conditional if yang berkali-kali. Berikut contohnya:

let jumlahAnak = 2

switch jumlahAnak {
case 0:
    println("Kok belum punya anak?")
case 1:
    println("Alhamdulillah. Tambah lagi dong")
case 2,3,4:
    println("Bagus!")
default:
    println()
}

Silakan coba ubah jumlahAnak untuk melihat apa yg terjadi.

Sebetulnya switch-case di swift sangat powerful, untuk lebih detilnya bisa lihat di http://www.rustamaji.net/computing/switch-case-di-swift-makin-kaya-rasa

For-condition-increment

Ini adalah jenis loop yang jumlah loopnya ditentukan oleh condition dan increment. Loop ini akan terus berjalan sampai suatu kondisi terpenuhi, dalam setiap perulangan loop, suatu variable akan di-increment (dinaikkan).

Berikut contohnya : Loop di bawah ini akan mencetak 10 bilangan genap pertama.

var bilanganGenap = 0

for var i=1; i<=10; i++ {
    bilanganGenap = i*2
    println(bilanganGenap)
}

Di playground hanya ditampilkan "10 times". Jika kits ingin melihat kesepuluh bilangan ini, buka assistant editor dengan mengklik tombol bulat di sebelah kata "10 times" sehingga tampil seperti gambar di bawah ini

For-in

Loop ini, digunakan untuk meloop sebuah Array atau dictionary. JIka pada loop FOR sebelumnya jumlah loop ditentukan oleh kombinasi increment dan condistion, maka FOR-IN loop akan melakukan pengulangan sejumlah angggota Array/Dictionary yang digunakan. Berikut contohnya

let bilanganPrima = [2,3,5,7,11,13,17]

for bil in bilanganPrima {
    println(bil)
}

let daftarKota = ["JKT":"Jakarta", "BDG":"Bandung", "SBY":"Surabaya"]

for (kode, nama) in daftarKota {
    println("Kode =\(kode) Nama = \(nama)")
}

While-loop

While loop akan terus melakukan loop selama kondisi yang disebutkan di while berlaku. Loop ini akan berhenti begitu kondisi tersebut tidak dipenuhi. Contoh :

import Foundation

var bilangan:UInt32 = 0

while bilangan != 5 {
    bilangan = arc4random()%10
    println(bilangan)
}

Pada contoh di atas, maka selama bilangan tidak sama dengan 5, maka loop tersebut akan mencari bilangan random (0-9) dalam baris bilangan = arc4random()%10