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.
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.
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")
}
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 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++
}
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.
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.
Adverse Prelude
Functional & System Programming Enthusiats