Selalu ingin mencoba hal - hal yang baru meski penuh resiko dan tantangan yang sulit. "Kain kafan tidak berkantung".

Golang tutorial indonesia – Control flow : For, if dan switch

0
Degananda.com -

Control flow

Pada ulasan sebelumnya kita telah mempelajari mengenai pendeklerasian variable pada golang. Terdapat beberapa cara melakukan deklarasi terhadap go yang membuat kita bingung. Namun menggunakan := adalah best practice yang disarankan.

Controlflow sangat penting dalam pemrograman karena kita dapat mengatur aliran data yang akan diproses ataupun disajikan.

Namun, variabel yang telah dideklarasikan tersebut belum memiliki manfaat jika kita belum mengunakannya untuk berbagai macam keperluan. Ulasan ini akan membahas mengenai control flow. Sesuai dengan namannya control flow atau menkontrol aliran/jalan. Dalam konteks pemrograman go control flow adalah suatu makanisme untuk mengatur jalannya program. Contoh sederhana dari controlflow yaitu percabangan. Jika terdapat kondisi A maka akan melakukan aksi B , jika terdapat kondisi C akan melakukan aksi D dan seterusnya.

Jenis control flow

Terdapat tiga jenis control flow yang ada pada pemrograman golang. Pertama adalah perulangan atau kita kenal sebagai for loop. Kedua adalah if atau kita kenal sebagai percabangan dan terahir adalah switch yang memiliki fungsi layaknya “if” / percabangan namun dengan bentuk penulisan yang berbeda. Meski if dan switch memiliki fungsi sama yaitu melakukan percabangan tetapi jika statement yang dihandle sangat banyak jenisnya dan hanya melibatkan satu variable  maka switch merupakan pilihan yang lebih cocok.

Fungsi control flow

Fungsi utama dari controlflow yaitu untuk mengatur alur berjalannya suatu program. Contohnya kita akan membangun program untuk mencari bilangan ganjil dan genap dari suatu deret. Program tersebut hanya dapat dibuat jika kita menerapkan control flow. Kira – kira seperti ini “flowchartnya” (dalam bentuk tulisan).

  1. Program melakukan looping atau perulangan terhadap deret tertentu
  2. Program melakukan check dengan if else statement apakah suatu angka tersebut adalah ganjil atau genap dengan menggunakan modulus(%). jika angka % 2 adalah 0 maka angka tersebut adalah genap jika tidak nol a.k.a memiliki sisa maka angka tersebut adalah ganjil
  3. Memapilkan nilai ganjil genap

itulah control pemanfaatan controlflow secara sederhana. Apapun program yang kita buat pasti memerlukan controlflow ini untuk mengatur proses dan aliran data. Sehingga controlflow merupakan suatu hal yang fundamental dalam pemrograman apapun.

Implemenetasi

1. Perulangan

Perulangan atau looping adalah kondisi dimana suatu aksi atau statement akan dieksekusi selama memenuhi kondisi tertentu(ketika kondisi true maka perulangan akan tejadi). Contohnya melakukan perulangan ketika nilai x kurang dari sama dengan 10. X memiliki nilai awal sebesar 1 dan pada setiap perulangan akan bertambah nilainya sebanyak 1 (incremental). kasus ini jika kita terjemahkan dalam looping adalah sebagai berikut ini

package main

import (
	"fmt"
)

func main() {

	for i := 1; i <= 10; i++ {
		fmt.Println(i)
	}

}

incremental atau perubahan nilai pada variable yang digunakan sebagai acuran looping sangat penting baik increment ataupun decrement. Jika variable acuan tidak berubah maka kondisi akan selalu “true” dan akan mengakibatkan infinite loop. Jika anda tidak nyaman dengan penulisan diatas maka looping juga dapat ditulis dengan format sebagai berikut ini

package main

import (
	"fmt"
)

func main() {

	var i int = 1
	for i <= 10 {
		fmt.Println(i)
		i = i + 1
	}
}

kedua cara membuat looping diatas sama saja perbedaanya hanya pada pendeklarasian variable dan nilai incrementalnya. Jika anda lebih senang format ringkas (1 line) maka gunakanlah cara 1. Namun jika anda adalah orang yang sangat detial dan rapi maka gunakahlah cara yang kedua dengan mendeklerasikan dan membuat loop berbeda line.

2. If

If adalah percabangan yang setiap cabang akan memiliki statement tersendiri untuk dieksekusi. Contohnya kita akan membuat percabangan untuk menentukan nilai ganjil genap suatu angka. Perhatikan kode dibawah ini

package main

import (
	"fmt"
)

func main() {

	var i int = 1
	for i <= 10 {
		if i%2 == 0 {
			fmt.Println("genap")
		} else if i%2 != 0 {
			fmt.Println("ganjil")
		} else {
			fmt.Println("something wrong")
		}
		i = i + 1
	}
}

if statement adalah kondisi disetiap cabang. Jika kondisi telah terpenuhi maka kondisi dibawahnya tidak akan dieksekusi. Barulah jika keseluruhan kondisi tidak terdapat yang memenuhi akan masuk pada kondisi else.

if sangat cocok untuk mengevaluasi statement yang memiliki lebih dari satu variable. Contohnya apabila ingin mengevaluasi apakah seseorang sedang terkena demam berdarah maka kondisi yang harus dipenuhi diantarannya

  1. Lemas
  2. Suhu badan tinggi
  3. Meriang

Namun, ketika hanya terdapat satu variable yang dievaluasi dan terdapat banyak sekali nilai percabangan untuk variabel tersebut maka proses percabangan harus dilakukan menggunakan switch bukanlagi if. Perhatikan contohnya pada bagian switch.

3. Switch

untuk mengilustrasikan kapan menggunakan if dan switch maka kita akan menggunakan suatu kasus. Contohnya kita diminta untuk membuat program menampilkan karakter dan posisi karakter dalam alfabet. Contoh A=1, B=2 maka jika menggunakan if kode yang akan ditulis sebagai berikut ini

package main

import (
	"fmt"
)

func main() {

	var karakter string = "a"
	if(karakter == "a"){
		fmt.Println("1")
	} else if(karakter == "b"){
		fmt.Println("2")
	} else if(karakter == "c"){
		fmt.Println("3")
	} else if(karakter == "d"){
		fmt.Println("4")
	}
}

penulisan percabangan seperti diatas sangat tidak cocok untuk menggunakan switch karena kita harus menuliskan kembali statementnya (karakter == something). Ini akan menguras tenaga kita dan memperbanyak jumlah line of code. More core = less performance. Maka jika kasusnya kita mengevaluasi satu variable dan memiliki banyak kemungkinan seperti kasus diatas penggunaan switch sangat tepat. Perhatikan kode percabangan dibawah ini ketika mengimplemetnasikan switch

package main

import (
	"fmt"
)

func main() {

	var karakter string = "a"

	switch karakter {
	case "a":
		fmt.Println("1")
	case "b":
		fmt.Println("1")
	case "c":
		fmt.Println("1")
	case "d":
		fmt.Println("1")
	}

}

lebih rapi dan jumlah karakter yang kita tuliskan semakin sedikit. Gunakanlah switch ketika anda menghadapi kondisi seperti itu