control flow swift

Control Flow

Posted by

Halo semuanya, kita akan lanjut untuk membahas swift lebih dalam. Kali ini, kita akan membahas mengenai pengambilan keputusan dan perulangan. Mari kita bahas satu per satu.

Conditional Statement

Dalam pemograman, pasti ada akan ada suatu kondisi dimana kita harus melakukan tindakan yang berbeda untuk kondisi yang berbeda. Terdapat beberapa conditional statement, kita akan bahas satu persatu.

  1. If Statement

    If statement mengekspresikan sebuah pengambilan keputusan apakah true atau false dan mengeksekusi block code yang berbeda untuk setiap expression tergantung pada hasil expression apakah true atau false. If statement akan dijalankan dari atas kebawah. Begitu expression adalah true, code didalam if statement akan dieksekusi.
    Syntax:

    if expression {
   
       // block code yang dieksekusi jika expression true

    }

    Block code akan dieksekusi jika expression boolean true. Jika false, maka block code tidak akan dieksekusi.

    let number = 5
    
if number > 0 {
   
       print("bilangan positif")

    }
    //
output: “bilangan positif”. number>0 memenuhi kondisi true
    
    
contoh:2

    if number < 0 {
   
       print("bilangan negatif")

    }
    //
kondisi tidak terpenuhi maka block code tidak dieksekusi

    if…else statement
    syntax:

    if expression {

       // block code yang dieksekusi jika expression true

    } else {
   
       // block code yang dieksekusi jika expression false

    }

    Kondisi dimana jika expression boolean false maka block code yang dieksekusi adalah block code else.
    Contoh:

    let number = -1
    
if number > 0 {

       print("bilangan positif")

    } else {

       print("bilangan negatif")

    }
    
// output: bilangan negatif. Karena number=-1 tidak lebih besar dari 0

    if…else if…else statement

    Kondisi else if akan dieksekusi jika if statement tidak terpenuhi. Dan else akan dieksekusi jika if statement dan else if statement tidak terpenuhi.

    if expression1 {

       // block code yang dieksekusi jika expression1 true

    } else if expression2 {

       // block code yang dieksekusi jika expression1 false, expression2 true

    } else {

       // block code yang dieksekusi jika tidak ada satupun expression1 maupun expression2 yang true
    
}

    Didalam satu statement juga bisa menggunakan beberapa expression boolean. Ekspresi boolean ini akan dihubungkan menggunakan (&&, || ). Operator pembanding yang digunakan dalam ekspresi boolean yaitu ==, ===, >, >=, <, <=, !=.

  2. Ternary Operator
    Merupakan bentuk singkat dari if… else statement.
    Syntax :
    expression ? value_if_true : value_if_false

    Jika expression true akan mengembalikan value_if_true. jika expression false akan mengembalikan value_if_false. Ternary ini hanya untuk assignment bukan untuk mengeksekusi block code. Tujuan utama menggunakan ternary ini untuk membuat code lebih pendek.

  3. Switch Case

    Switch case digunakan untuk menguji kesamaan suatu variable dengan list value, dimana value itu adalah case. Ketika variable sama dengan case maka akan mengeksekusi suatu block case tersebut.
    Syntax:

    switch variable {
    
   case value1:
    
         //block code
    
   case value2:

          //block code
    
   default: //di eksekusi jika tidak ada satupun yg terjadi diatas
 
          //block code
    
}

    Contoh:

    var number = 1
    switch number {
    case 1:
        print("one")
    case 2:
        print("two")
    default:
        print("invalid")
    }
    //output: one

    Cara kerjanya: number akan dibandingkan dengan setiap value case. Jika number sama dengan case maka akan melakukan eksekusi block code case tersebut. Dan eksekusi switch statement selesai. Jika tidak sesuai dengan case maka akan melakukan pengecekan dengan case berikutnya. Jika tidak satupun case yang sesuai maka akan mengeksekusi block code default.
    Di dalam case juga bisa berisi temporary variable constant yang berisi value dari variable. Konstanta ini bisa digunakan dalam sebuah boolean expression yang jika true akan mengeksekusi block code didalamnya.
    Syntax:

    switch variable {

       case value1:

          //block code
    
   case let value2 where expression:

          //block code

       default: //di eksekusi jika tidak ada satupun yg terjadi diatas
       
          //block code

    }

    Contoh:

    let value = 80
    switch value {
    case let value1 where 80...100 ~= value1:
        print("A")
    case let value2 where 65...79 ~= value2:
        print("B")
    case let value3 where 55...64 ~= value3:
        print("C")
    case let value4 where 45...54 ~= value4:
        print("D")
    default:
        print("E")
    }
    // output: A karena value masuk dalam kondisi >=80 dan <=100

    Kita juga bisa memeriksa multiple value dalam satu switch statement yaitu dengan menggunakan tuple. Setiap elemen tuple bisa ditest terhadap value di case.

    let grades = (score: 60, grade: "A")
    switch grades {
    case let(score, "A") where 80...100 ~= score:
        print("class A")
    case let(score, "B") where 65...79 ~= score:
        print("class B")
    case let(score, "C") where 55...64 ~= score:
        print("class C")
    case let(score, "D") where 45...54 ~= score:
        print("class D")
    case let(score, grade):
        print("class \(grade) with score \(score)")
    }
    //output: class A. Dimana score masuk dalam range 80-100 dan grade dalam case adalah A

    Di dalam case juga bisa memeriksa multiple value yang dipisahkan oleh koma(,). Jika salah satu value case sesuai dengan variable maka akan mengeksekusi block code case tersebut.
    Contoh:

    let car = "Pajero"
    switch car {
    case "Avanza", "Land Cruiser", "Fortuner", "Rush":
        print("Toyota")
    case "BR-V", "Brio", "Mobilio", "Jazz":
        print("Honda")
    case "Xpander", "Pajero", "Triton", "L300":
        print("Mitsubishi")
    default:
        print("invalid")
    }

    Output dari program diatas adalah Mitsubishi karena value variable car sesuai dengan salah satu value dalam case Xpander, Pajero, Triton, L300

Loop

  1. For In Loops

    For-in loops digunakan untuk menjalankan task untuk jumlah item yang sudah ditentukan. Perulangan setiap item didalam collections(link collections) ataupun dalam range tertentu.
    Syntax

    for iteratorVariable in collectionName {
    
   //logic bisnis untuk individual element
    
}

    Contoh:

    var wordNumbers: [String] = ["One", "Two", "Three"]
    for item in wordNumbers {
        print("\(item)")
    }
    /*Output:
    One
    Two
    Three
    */

    Loop dengan spesifik Range

    for item in 1…3 {
        print("\(item)")
    }
    /*
output:
    
1
    
2
    
3
    */

    Loop tanpa menggunakan iterator variable menggunakan _

    for _ in 1…3 {
        print("hello world")
    }
    /*
output:

    hello world

    hello world

    hello world
    */

    Untuk dictionary iterator variable diberikan 2 variable didalam kurung (key, value)
    syntax:

    for (key, value) in collectionDictionaryName {

       // logic bisnis untuk item key value

    }

    Contoh:

    let values: [String: Int] = ["A":80, "B": 60, "C": 50, "D": 40, "E":30]
    for (key, value) in values {
        print("\(key) = \(value)")
    }
    output:
    
B = 60
    C = 50
    A = 80
    D = 40
    E = 30

    Mengakses Index Collection

    Jika ingin mengakses index dari array gunakan method enumerated. Method Enumerated mengembalikan sebuah tuple yaitu index dan value.
    Syntax:

    for (index, item) in collectionName.enumerated() {
       //business logic
    

}

    contoh:

    for (index, item) in wordNumbers.enumerated() {
        print("\(index) = \(item)")
    }
    
Output:
    
0 = One
    1 = Two
    2 = Three

    Filter element dalam for-in loops

    for iteratorVariable in collectionName where condition {


       //business logic
    }

    contoh:

    for (index, item) in wordNumbers.enumerated() where !item.elementsEqual("Two") {
        print("\(index) = \(item)")
    }

    output:

    0 = One
    2 = Three
  2. While Loops

    While loop menjalankan sekumpulan task dengan jumlah iterasi yang tidak diketahui. While loop mengeksekusi block code didalam while selama boolean expression true. Boolean expression dicek sebelum setiap iterasi. Ketika expression false, maka loop akan berhenti.
    syntax:

    while booleanExpression {
       
    

}

     

    Boolean expression bisa memiliki beberapa expression yang dihubungkan dengan logical operators (&&, ||, !). Dan operator pembanding (==, ===, <=, !=).
    Contoh:

    var index = 0
    while index < 3 {
        print("\(index)")
        index += 1
    }
    output:

    0
    
1
    
2

    contoh 2:

    var index = 5
    while index < 3 {
        print("\(index)")
        index += 1
    }
    //tidak akan masuk ke dalam block code while karena expression false
  3. Repeat While Loop

    Sama seperti while loop, repeat while juga menjalankan sekumpulan task dengan jumlah iterasi yang tidak diketahui. Repeat while mengecek expression setelah setiap iterasi sehingga memastikan akan menjalankan block code setidaknya sekali. Setelah expression dievaluasi false, maka iterasi akan berhenti.
    syntax:

    repeat {
       //business logic
    } while booleanExpression

    contoh:

    var index = 0
    repeat {
        print("\(index)")
        index += 1
    } while index < 3

    output:
    
0
    
1
    
2

    contoh 2:

    var index = 5
    repeat {
        print("\(index)")
        index += 1
    } while index < 3

    output:
5
    
//block code dieksekusi sekali dan langsung keluar dari block code karena expression false

Control Statement

  1. Continue Statement

    Statement untuk memberitahu loop untuk menghentikan eksekusi dan mulai lagi iterasi berikutnya melalui loop.
    Syntax:

    continue

    contoh

    for index in 1...5 {
        if index == 3 {
            continue
        }
        print("\(index)")
    }
    /*output:

    1
    
2
    
4
    
5
    */
  2. Break Statement

    Statement digunakan untuk mengakhiri loop dan keluar dari block code loop
    Syntax:

    break

    contoh:

    for index in 1...5 {
        if index == 3 {
            break
        }
        print("\(index)")
    }
    /*output:

    1
    
2
    */
  3. Fallthrough Statement

    Mengeksekusi block code dibawahnya tidak peduli benar atau tidak booleanexpressionnya.
    Syntax:

    fallthrough

    contoh:

    index = 5
    switch index {
    case 10:
        print("value index 10")
    case 5:
        print("value index 5")
        fallthrough
    case 6:
        print("value index 6")
    
    default:
        print("default index")
    }
    /*output:
    
value index 5
 
    value index 6
    */

    Contoh-contoh diatas bisa dilihat pada link github berikut.
    Oke sekian pembahasan kita kali ini, semoga bermanfaat, tunggu tulisan saya selanjutnya, kita akan membahan topik-topik lainnya.

    Thankyou for reading

Share to
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Leave a Reply

Your email address will not be published. Required fields are marked *