Go From Zero to Hero #05: Mengenal Logika Percabangan Menggunakan if, else if, dan else

Go From Zero to Hero #05: Mengenal Logika Percabangan Menggunakan if, else if, dan else

Table of Contents

Haloo Go Developers! Selamat datang kembali di seri belajar Go From Zero to Hero.

Di artikel kemarin kita telah berhasil membuat program penghitung volume balok yang interaktif dengan menggunakan input dari user lalu diolah menjadi output hasil perhitungan. Keren sekalikan! selain input output kita juga membahas tentang operator aritmatika dan perbandingan.

Jika kemarin kita sudah menerapkan operator aritmatika ke dalam kode program, di artikel kali ini kita akan menerapkan operator perbandingan menggunkan metode percabangan if, else if dan else.

Bayangkan kamu sedang berdiri di depan persimpangan jalan saat langit mendung. Di kepalamu, otomatis muncul sebuah skenario keputusan:

"Jika hari ini hujan, maka aku akan naik taksi online. Tapi jika hanya gerimis, aku pakai jas hujan saja. Selain dari itu (jika cerah), aku akan naik motor seperti biasa."

Tanpa sadar, setiap hari kita selalu mengambil keputusan berdasarkan kondisi tertentu. Kabar baiknya, komputer juga bisa melakukan hal yang sama!

Di sinilah Logika Percabangan (Control Flow) mengambil peran penting.

Sudah siap membuat program pertamamu yang bisa mengambil keputusan? Yuk, kita mulai!

Tips 💡

Sebelum melanjutkan, pastikan kamu sudah paham konsep tipe data boolean dan operator perbandingan (seperti >, <, ==) yang kita bahas di bab #04, karena keduanya adalah “bahan bakar” utama dalam menentukan kondisi percabangan.

Apa itu Logika Percabangan

Secara standar komputer akan membaca kode kita seperti membaca buku dari atas kebawah baris demi baris saat mengeksekusi kode. Logika percabangan (atau sering disebut conditional statement / control flow) adalah sebuah fitur yang memungkinkan program kita mengambil keputusan sendiri dan memilih jalur eksekusi sendiri sesuai kondisi yang kita tentukan di program.

Sederhananya, percabangan adalah kemampuan program untuk berkata:

“Jika kondisi A terpenuhi, lakukan perintah X. Tapi jika tidak, lakukan perintah Y.”

Menghubungkan Data dengan Keputusan

Mari kita ambil contoh menarik menggunakan variabel umur yang diinput oleh pengguna. Komputer tidak tahu secara insting apa arti “Remaja” atau “Dewasa”. Kita harus membantu komputer mengambil keputusan menggunakan operator perbandingan sebagai tolok ukurnya.

alter-text

Perhatikan bagaimana alur data umur diubah menjadi sebuah keputusan oleh komputer:

  • Kondisi 1: Jika pengguna menginput umur >= 21 (Umur lebih besar atau sama dengan 21), komputer mengambil keputusan bahwa statusnya adalah “Dewasa”.
  • Kondisi 2: Jika kondisi pertama tidak terpenuhi, tetapi pengguna menginput umur >= 15 (Umur lebih besar atau sama dengan 15), komputer mengambil keputusan bahwa statusnya adalah “Remaja”.
  • Kondisi Akhir: Jika semua angka di atas tidak terpenuhi (misal menginput angka 10), komputer akan mengambil jalur alternatif terakhir, yaitu “Anak-anak”.

Di dalam bahasa Go (dan hampir semua bahasa pemrograman lainnya), kita bisa menanamkan kemampuan “berpikir” ini ke dalam komputer menggunakan kombinasi kata kunci if, else if, dan else.

Yuk, kita bedah satu per satu bagaimana cara menulis sintaksisnya agar tidak error saat di-compile!

Struktur if (Kondisi Utama)

Kondisi ini menyatakan sebab akibat jadi jika kondisi terpenuhi maka akan melakukan aksi di dalam if tersebut

  1. Kondisi, yaitu sesuatu syarat atau ketentuan dari suatu percabangan. Kondisi ini harus bernilai boolean, baik itu variabel ataupun operasi tipe data.
  2. Aksi, yaitu kumpulan instruksi yang akan dilakukan apabila kondisi terpenuhi atau bernilai true. Artinya baris aksi tidak secara default dieksekusi, tetapi ada syarat yang harus terpenuhi terlebih dahulu sehingga aksi dapat dieksekusi.

Sintaks dasar Go

Notasi dalam PseudocodeNotasi dalam Bahasa Go
if kondisi then
    // aksi
endif
if kondisi {
    // aksi
}

Warning

Perhatikan Perbedaannya: Di bahasa Go, kita tidak lagi menulis kata kunci then dan endif. Sebagai gantinya, Go menggunakan kurung kurawal { } untuk membungkus aksi atau blok kode yang akan dieksekusi. Selain itu, kondisi if di Go tidak membutuhkan tanda kurung ().

Contoh kode if (Kondisi Utama)

Kita akan membuat kode program klasifikasi umur

package main

import "fmt"

func main() {
    var umur int
    //Membuat variable untuk menyimpan input umur

    fmt.Print("Masukkan umur: ") // Tampilan input
    fmt.Scan(&umur) // Input di scan dan di simpan di variable umur

    if umur >= 21 { // Kondisi
    // Jika umur lebih besar atau sama dengan 21
        fmt.Println("Status: Dewasa.") // Aksi
    }
}

Di atas adalah contoh kode dengan satu percabangan saja nanti kita lanjutkan dengan menambahkan kondisi dan aksi agar komputer bisa memilih dari banyak kondisi untuk melakukan aksi. Sekarang kita lanjut dulu ke materi else dulu

Struktur else (Kondisi cadangan)

Kondisi else merupakan jalur alternatif terakhir (fallback). Jika kondisi pada if tidak terpenuhi atau bernilai false, maka program otomatis akan menjalankan aksi yang ada di dalam blok else.

Contoh sederhananya, jika kita hanya punya 2 pilihan (A dan B), saat pilihan A salah, maka jawabannya sudah pasti B. Namun, jika ada banyak pilihan skenario, komputer akan mengecek kondisi tersebut satu per satu dari atas ke bawah. Jika semua kondisi di atas salah (false), barulah komputer mengeksekusi kode alternatif terakhir yang ada di dalam blok else.

Sintaks dasar Go

Notasi dalam PseudocodeNotasi dalam Bahasa Go
if kondisi then
    // aksi
else
    // aksi
endif
if kondisi {
    // aksi
else
    // aksi
}

Warning

Aturan Wajib Go: Kamu tidak boleh menulis kata kunci else di baris baru setelah kurung kurawal tutup } milik if. Keyword else harus menempel di baris yang sama seperti contoh di atas: } else { . Jika melanggar, Go akan memicu compile error.

Contoh kode else (Kondisi cadangan)

Kita akan membuat kode program klasifikasi umur

package main

import "fmt"

func main() {
    var umur int
    //Membuat variable untuk menyimpan input umur

    fmt.Print("Masukkan umur: ") // Tampilan input
    fmt.Scan(&umur) // Input di scan dan di simpan di variable umur

    if umur >= 21 { // Kondisi
    // Jika umur lebih besar atau sama dengan 21
        fmt.Println("Status: Dewasa.") // Aksi
    } else {
        // Aksi ini berjalan jika input umur di bawah 21 (Kondisi IF bernilai FALSE)
        fmt.Println("Status: Belum Dewasa.") // Aksi
    }
}

Struktur else-if (Kondisi alternatif berlapis)

Kondisi else-if di gunakan ketika program kita memiliki lebih dari 2 skenario yang harus di putuskan. komputer akan mengecek semua kondisi sampai menemukan kondisi yang tepat atau alternatif terakhir sebagai pilihan.

Sintaks dasar Go

Notasi dalam PseudocodeNotasi dalam Bahasa Go
if kondisi then
    // aksi
else if
    // aksi
else
    // aksi
endif
if kondisi {
    // aksi
else if
    // aksi
else
    // aksi
}
Contoh kode else if (Kondisi Alternatif Berlapis)

Melanjutkan kode kita tadi dengan 3 skenario keputusan

package main

import "fmt"

func main() {
    var umur int

    fmt.Print("Masukkan umur: ")
    fmt.Scan(&umur)

    if umur >= 21 {
        // Dieksekusi jika umur 21 ke atas
        fmt.Println("Status: Dewasa.")
    } else if umur >= 15 {
        // Dieksekusi jika lolos dari kondisi pertama, dan umur di antara 15 - 20
        fmt.Println("Status: Remaja.")
    } else {
        // Jalur terakhir jika umur di bawah 15 tahun
        fmt.Println("Status: Anak-anak.")
    }
}

Kita telah mempelajari dasar percabangan menggunkan if-else tidak lengkap rasanya kalau sudah materi tidak ada soal latihan kali ini ayo kita berlatih buat program dari studi kasus berikut ini.

🎯 Studi Kasus Mandiri: Sistem Kasir Toko Kelontong “Hero Jaya”

Untuk menguji pemahamanmu tentang kombinasi input user, aritmatika, operator perbandingan, dan logika if-else, coba selesaikan studi kasus dunia nyata berikut ini!

📖 Cerita Latar Belakang

Kamu diminta oleh pemilik Toko Kelontong “Hero Jaya” untuk membuatkan program kasir sederhana berbasis terminal. Pemilik toko ingin memberikan apresiasi kepada pelanggan setianya berupa Diskon Sebesar Rp 15.000 jika total belanjaan mereka mencapai atau melebihi Rp 100.000.

Namun, jika total belanjaan mereka berada di bawah Rp 100.000, mereka tidak mendapatkan potongan harga (harga tetap normal).

📋 Kriteria Pembatasan Program (Syarat):

  1. Input dari User: Program harus meminta kasir untuk memasukkan 2 data secara interaktif:
    • hargaBarang (angka bulat / integer)
    • jumlahBarang (angka bulat / integer)
  2. Operasi Aritmatika: Program harus menghitung totalBelanja sebelum diskon dengan rumus matematika dasar (hargaBarang dikali jumlahBarang).
  3. Operator Perbandingan & Percabangan: Gunakan operator perbandingan untuk mengecek apakah totalBelanja layak mendapatkan diskon atau tidak:
    • Jika total belanja mencapai/melebih Rp 100.000, kurangi total belanja tersebut dengan diskon Rp 15.000, lalu cetak struk pembayarannya.
    • Jika tidak, cetak harga total belanja tanpa potongan.

🖥️ Contoh Tampilan Output yang Diharapkan

Skenario 1 (Mendapat Diskon):

=== KASIR TOKO HERO JAYA ===
Masukkan harga satuan barang: 40000
Masukkan jumlah barang yang dibeli: 3

--- NOTA PEMBAYARAN ---
Total Belanja Awal : Rp 120000
Selamat! Anda mendapatkan diskon Rp 15.000.
Total yang harus dibayar: Rp 105000

Skenario 2 (Tidak dapat Diskon):

=== KASIR TOKO HERO JAYA ===
Masukkan harga satuan barang: 25000
Masukkan jumlah barang yang dibeli: 2

--- NOTA PEMBAYARAN ---
Total Belanja Awal : Rp 50000
Maaf, total belanja belum mencapai Rp 100.000. Tidak ada diskon.
Total yang harus dibayar: Rp 50000

Tip

💡 Petunjuk Bantuan (Clue):

  • Siapkan variabel harga, jumlah, dan total dengan tipe data int.

  • Gunakan fmt.Scan() untuk mengambil nilai input dari keyboard.

  • Gunakan operator * untuk perkalian aritmatikanya.

  • Gunakan operator perbandingan >= di dalam kondisi if.

  • Jangan lupa aturan penulisan } else { yang tidak boleh dipisah baris di bahasa Go!

Kesimpulan & Langkah Selanjutnya

Luar biasa! Kamu baru saja menyelesaikan salah satu fondasi paling krusial dalam dunia pemrograman. Dengan menguasai kata kunci if, else if, dan else, program Go yang kamu buat sekarang tidak lagi berjalan kaku, melainkan sudah bisa “berpikir” dan mengambil keputusan secara dinamis berdasarkan data yang masuk.

Selesaikan tantangan studi kasus kasir “Hero Jaya” di atas untuk melatih otot kodingmu. Jangan takut jika bertemu dengan error, karena dari sanalah insting debugging kamu akan terasah!

Apa Selanjutnya?

Bagaimana jika skenario keputusan kita ada sangat banyak dan spesifik? Misalnya mengecek menu makanan dari nomor 1 sampai 10, atau menentukan nama hari berdasarkan angka. Menggunakan else if yang terlalu panjang tentu akan membuat kode kita terlihat menumpuk dan sulit dibaca.

Di artikel berikutnya (Go From Zero to Hero #06: Logika Percabangan Bagian 2), kita akan membedah cara alternatif yang jauh lebih rapi dan elegan untuk menangani banyak kondisi spesifik, yaitu menggunakan Switch Case.

Jangan lewatkan keseruannya, tetap praktikkan kode hari ini, dan keep coding like a hero! 🚀


Punya pertanyaan atau kodenya masih error? Tuliskan kendalamu di kolom komentar di bawah, mari kita diskusikan bersama! 👇

Tags :
Share :
comments powered by Disqus

Related Posts

Go From Zero to Hero #04: Membuat Program Interaktif dan Mengolah Data dengan Operator Go

Go From Zero to Hero #04: Membuat Program Interaktif dan Mengolah Data dengan Operator Go

Halo Go Developers! Selamat datang kembali di seri Go From Zero to Hero. Di artikel ketiga kemarin, kita sudah berhasil memberikan “daya ingat” pada program kita lewat variabel dan tipe …

Go From Zero to Hero #01: Pengenalan Golang dan Cara Setup Environment di Laptopmu

Go From Zero to Hero #01: Pengenalan Golang dan Cara Setup Environment di Laptopmu

Kenapa kamu harus belajar golang? Bayangkan kalau kamu bisa punya bahasa pemrograman yang punya kecepatan setara C++, tapi cara nulis kodenya segampang Python. Terdengar terlalu indah untuk jadi …

Go From Zero to Hero #03: Memahami Variabel, Data, dan Tipe Data Dasar pada Go

Go From Zero to Hero #03: Memahami Variabel, Data, dan Tipe Data Dasar pada Go

Halo Go Developers! Selamat datang kembali di seri Go From Zero to Hero. Di artikel kedua kemarin, kamu berhasil membuat program Hello World dan membedah kodenya. Gimana, seru kan? Nah, kalau kemarin …