
Go From Zero to Hero #05: Mengenal Logika Percabangan Menggunakan if, else if, dan else
- Daffa Fadhil
- Golang , Code
- 23 Mei 2026
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.
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
- Kondisi, yaitu sesuatu syarat atau ketentuan dari suatu percabangan. Kondisi ini harus bernilai boolean, baik itu variabel ataupun operasi tipe data.
- 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 Pseudocode | Notasi 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 Pseudocode | Notasi 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 Pseudocode | Notasi 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):
- Input dari User: Program harus meminta kasir untuk memasukkan 2 data secara interaktif:
hargaBarang(angka bulat / integer)jumlahBarang(angka bulat / integer)
- Operasi Aritmatika: Program harus menghitung
totalBelanjasebelum diskon dengan rumus matematika dasar (hargaBarangdikalijumlahBarang). - Operator Perbandingan & Percabangan: Gunakan operator perbandingan untuk mengecek apakah
totalBelanjalayak 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! 👇