Golang x04 - Kondisi Percabangan

Thu Nov 19 2020

Adverse Prelude

@ywnv

gambar golang

Photo by Rebecca Campbell on Unsplash

Secara kita tidak sadar program menjalankan prosedur dari atas ke bawah. Semakin paling atas baris posisi suatu prosedur ditulis maka dijalankan semakin dahulu, prinsip ini disebut FIFO (First In, First Out) Siapa masuk saat awal maka keluar lebih awal.

Namun bagaimana bila ada bagian prosedur dari kode kita yang tidak ingin dijalankan dan kita ingin menjalankan baris selanjutnya, ini yang akan kita bahas pada tulisan ini : Percabangan.

Bagaimana kita membuat cabang yang akan menjalankan prosedur yang kita inginkan dan tidak dalam kondisi tertentu.

Daftar Isi

  1. Percabangan
    1. Pernyataan If
    2. Pernyataan If-Else
    3. Pernyataan Else If
    4. Pernyataan Switch
  2. Penutup
    1. Referensi

Percabangan

Pernahkah kamu bingung dalam menentukan pilihan seperti memilih barang yang keduanya bagus sehingga lupa tujuan awal, untuk memilih kita harus melihat apakah barang yang kita pilih memiliki keunggulan dan kekurangan dalam memenuhi kebutuhan kita. Setelah kita memilih lalu kita mengambil barang tersebut.

Hal ini serupa dengan kita menulis percabangan pada kodingan kita, percabangan memerlukan perbandingan/batasan untuk mengambil keputusan untuk melanjutkan prosedur berikutnya. Contoh sebelumnya menjelaskan batasan kita untuk mengambil barang berdasarkan kebutuhan, begitu juga ngoding.

Saat kita ngoding cara untuk mengambarkan percabangan mengunakan 2 pernyataan kondisional : pernyataan if dan switch. Kondisional berarti memiliki penyesuaian terhadap batasan, dalam hal ini operator bernilai lojik.

Pernyataan If

Dalama Bahasa, if berarti Jika, contoh pernyataan: Jika hujan maka mandi hujan. Pernyataan Jika digunakan untuk kita memilih kondisi berdasarkan benar atau tidak, jika benar dianggap memenuhi kondisi dan sebaliknya.

Berikut aturan penulisan pernyataan jika:

if [operasi]{
[blok kode]
}

Penjelasan aturan penulisan :

[operasi], ini berisi operasi yang menghasilkan benar/salah (data lojik) seperti operasi relasional dan lojik. Contoh true,3 < 5.

[blok kode], berisi prosedur yang akan dijalankan bila opersi bernilai benar(true) bila salah tidak akan dijalankan.

Berikut ini gambaran kondisi apa yang akan dijalankan berdasarkan hasil operator

if [operasi]{    +---------+
   [blok kode] <-+ (true)  |
}			   |
 <-------------------------+ (false)

Contoh dalam kode:

if 3 > 4 {
fmt.Println("Benar")
}

Operasi diatas menghasilkan nilai false, dan tidak menampilkan Benar ke konsol. Untuk membuatnya menampilkan ubah kondisi agar menghasilkan nilai true.

if 4 > 3 {
fmt.Println("Benar")
}

Pernyataan If-Else

Bila kondisi tidak memenuhi pernyataan If maka blok kode akan dilewat, bagian ini membahas blok kode bila tidak memenuhi pernyataan maka akan dijalankan : Pernyataan else (selain).

if [operasi]{
[blok kode]
}else{
[blok kode]
}

Pernyataan selain berarti menangkap kondisi tidak memenuhi kondisi Jika.

if [operasi]{  --+---------+   
   [blok kode] <-+ (true)  |
}else{           	   |
   [blok kode] <-----------+ (false)
}			 

Dan perlu di ingat ini hanya menjalankan satu blok kode yang sesuai setelah keluar dari pernyataan if, tidak menjalankan membaca blok kode selanjutnya setelah blok kondisi yang cocok.

Contoh dalam kode :

var hujan = false
if hujan {
fmt.Println("Hari ini hujan")
}else{
fmt.Println("Hari ini tidak hujan")
}

Pernyataan Else-if

Pernyataan ini bertujuan untuk menyambungkan antar pernyataan if.

if [operasi]{
[blok kode]
}else if [operasi] {
[blok kode]
}

else-if dalam penerapan ini digunakan untuk menguji batasan yang lebih diutamakan dalam suatu kasus.

contoh terdapat dua pernyataan satu menguji apakah namanya cocok masuk daftar lulus atau piket.

var nama = "Houshou Marin"
var namaPiket,namaLulus = nama,nama

if nama == namaLulus {
fmt.Println(nama + " masuk daftar lulus")
}else if nama == namaPiket {
fmt.Println(nama + " masuk daftar piket")
}

Dalam contoh lanjutan pernyataan if dapat digunakan untuk menangkap nilai dari berdasakan kondisi tertentu, contoh kali ini menampilkan ganjil-genap positif.

var batas = -2
for batas < 11 {
if batas < 0 {
fmt.Println("Bilangan negatif")
}else if (batas % 2) == 0 {
fmt.Println("Bilangan genap")
}else{
fmt.Println("Bilangan ganjil")
}
batas++
}

Pernyataan switch

switch bila diartikan ke kata benda dalam bahasa : saklar, filosofinya bila ada nilai yang sesuai dengan kasus saklar (case) maka akan menjalankan blok kode didalamnya seperti pernyataan if.

Perbedaanya, pernyataan switch menguji nilai apakah cocok tidak hanya mengecek data lojik dari operasi (data numerik dan karater juga dicek).

Aturan penulisan pernyataan switch:

switch [variable bernilai/operator bernilai] {
case [nilai bandingan]:
[blok kode]
...
default:
[blok kode]
}
  • switch, kata kunci untuk mendefinisikan penyataan switch.

  • case, kata kunci untuk mendefinisikan nilai yang ingin dibandingkan, bila cocok maka blok kode dibawahnya akan dijalankan.

  • default, bagian blok kode akan dieksekusi bila tidak ada bandingan yang cocok, serupa else pada pernyataan if.

Contoh pernyataan switch dalam program:

var bulan = 5
switch bulan {
case 1:
fmt.Println("Januari")
case 2:
fmt.Println("Februari")
case 3:
fmt.Println("Maret")
case 4:
fmt.Println("April")
case 5:
fmt.Println("Mei")
case 6:
fmt.Println("Juni")
case 7:
fmt.Println("Juli")
case 8:
fmt.Println("Agustus")
case 9:
fmt.Println("September")
case 10:
fmt.Println("Oktober")
case 11:
fmt.Println("November")
case 12:
fmt.Println("Desemeber")
}

Contoh kode diatas akan menguji variable bulan dengan nilai 5 dengan pernyataan switch, karena terdapat case dengan nilai 5 maka akan menjalan blok tersebut dan menampilkan string Mei ke konsol.

Penutup

Percabangan secara singkat, memberikan alur bagi kode kita dengan memberikan saklar kondisi pada bagian kode kita untuk dijalankan. Batasan kondisi yang menjadi basis percabangan untuk berkerja mengecek nilai variable / hasil operasi yang menjadi sakral untuk blok mana yang akan dieksekusi.

Jadi, Penerapan percabangan menjadi pengatur rute berjalan program (logika program) agar program memiliki karakter sehingga tidak hanya menjalankan prosedur terunut dan monoton.

Sekian tulisan ini, bila ada kesalahan saya mohon maaf.

Referensi

Adverse Prelude

Functional & System Programming Enthusiats