Belajar Golang #5 Pengkondisian If Else di Golang

Source: https://unsplash.com/@artmatters

Halo semua, terimakasih telah berkunjung di Hobi Koding. Saat ini teman-teman sedang berada di series belajar golang.

Di series ini kita akan belajar fundamental golang hingga advance golang.

Percabangan

Ketika membuat program pasti akan mendapati percabangan. Misalnya mengecek user sudah login atau belum, user termasuk admin atau tidak dan lain sebagainya.

Di golang, seleksi kondisi bisa dengan dua cara yaitu if-else dan switch.

Pada pengkondisian, apabila kondisi bernilai benar maka akan masuk kode scope sesuai kondisinya.

Contoh: apabila nilai mahasiswa lebih dari 80 maka dia mendapat nilai A.

If - Else

Seleksi konisi dengan if-else termasuk yang paling sering digunakan kebanyakan programmer.

Penulisan syntaxnya seperti ini,

package main

import "fmt"

func main() {
  var grade string
  var nilai = 95

  if nilai > 80 {
    grade = "A"
  }

  fmt.Printf("Grade mahasiswa adalah: %s dengan nilai: %d\n", grade, nilai)
}

// result
// Grade mahasiswa adalah: A dengan nilai: 95

Untuk menambahkan kondisi lainnya, kita bisa memasukannya ke scope else

...
  var nilai = 50

  if nilai > 80 {
    grade = "A"
  } else {
    grade = "B"
  }
...

// result
// Grade mahasiswa adalah: B dengan nilai: 50

Untuk menambahkan kondisi lainnya,

...
  var nilai = 45

  if nilai > 80 {
    grade = "A"
  } else if nilai > 60 {
    grade = "B"
  } else if nilai > 40 {
    grade = "C"
  } else if nilai > 30 {
    grade = "D"
  } else {
    grade = "E"
  }
...

// result
// Grade mahasiswa adalah: C dengan nilai: 45

Penjelasan:

  1. Kondisi nilai (45) akan diseleksi, ketika nilai lebih dari 80 maka grade diubah nilainya menjadi A
  2. Apabila tidak terpenuhi kondisi pertama, namun nilai lebih dari 60 maka grade diubah nilainya menjadi B
  3. Apabila tidak terpenuhi kondisi kedua, namun nilai lebih dari 40 maka diubah nilainya menjadi C
  4. Apabila tidak terpenuhi kondisi ketiga, namun nilai lebih dari 30 maka diubah nilainya menjadi D
  5. Apabila semua kondisi tidak terpenuhi maka diubah nilainya menjadi E

If-Else Nested

If-else nested adalah kondisi ketika if berada di dalam if lain.

Contoh: apabila nilai lebih dari 80, kemudian apabila pernah menjadi juara maka gradenya cumlaude, namun apabila tidak pernah menjadi juara maka gradenya A. Apabila nilai tidak lebih dari 80 maka gradenya B.

Ketika dituliskan dalam kode menjadi,

package main

import "fmt"

func main() {
  var grade string
  var juara bool = true
  var nilai = 81

  if nilai > 80 {
    if juara {
      grade = "CUMLAUDE"
    } else {
      grade = "A"
    }
  } else {
    grade = "B"
  }

  fmt.Printf("Grade mahasiswa adalah: %s dengan nilai: %d\n", grade, nilai)
}

// result
// Grade mahasiswa adalah: CUMLAUDE dengan nilai: 81

Pada kode yang ditandai di atas adalah if-else nested. Yaitu if-else yang berada dalam scope if-else lain.

Kondisi Boolean

Pada kode di atas sebenarnya kita sudah menerapkan if-else dengan kondisi boolean, untuk lebih jelasnya sebagai berikut,

package main

import "fmt"

func main() {
  var juara bool = true

  if juara {
    fmt.Println("Selamat kamu juara!")
  } else {
    fmt.Println("Sayang sekali kamu belum juara!")
  }
}

// result
// Selamat kamu juara!

Pada line 8, kita langsung menggunakan kondisi juara (dengan nilai true) untuk menyeleksi.

Kita juga bisa menuliskannya seperti ini,

...
  if !juara {
    fmt.Println("Sayang sekali kamu belum juara!")
  } else {
    fmt.Println("Selamat kamu juara!")
  }
...

// result
// Selamat kamu juara!

Multi Kondisi

Multi-kondisi digunakan ketika kondisi yang akan kita seleksi memiliki lebih dari satu. Misalnya jika mahasiswa juara dan menjabat sebagai ketua, maka mendapat beasiswa kuliah.

package main

import "fmt"

func main() {
  var juara bool = true
  var ketua bool = true

  if ketua && juara {
    fmt.Println("Selamat kamu mendapatkan beasiswa kuliah")
  }
}

// result
// Selamat kamu mendapatkan beasiswa kuliah

Seperti pada artikel sebelumnya bahwa expresi AND menggunakan simbol &&.

Penutup

Demikian pengkondisian if-else pada golang. Kita akan melanjutkan materi lainnya mengenai swith-case pada series golang.