Skip to main content

Pertemuan-05

PRAKTIKUM: Percabangan & Looping

Mata Kuliah: Pemrograman Berbasis Komputer


๐Ÿ“˜ Materi ini disusun berdasarkan video tutorial: Visual C#, Percabangan dan Looping โ€” Channel A Dj (2026)


Daftar Isiโ€‹

  1. Pendahuluan
  2. Setup Project
  3. Percabangan (if/else)
  4. Pernyataan Switch
  5. Perulangan (Looping)
  6. Nested Loop
  7. Latihan & Tugas
  8. Referensi

Pendahuluanโ€‹

Apa itu Percabangan & Looping?โ€‹

Dalam pemrograman, alur eksekusi program tidak selalu berjalan lurus dari atas ke bawah. Ada dua mekanisme utama yang mengubah alur tersebut:

1. Percabangan (Selection) โ€” if / switchโ€‹

Program memilih jalur eksekusi berdasarkan kondisi tertentu (benar/salah).

if (nilai >= 70)
Console.WriteLine("LULUS");
else
Console.WriteLine("TIDAK LULUS");

2. Perulangan (Iteration) โ€” for / while / foreachโ€‹

Program mengulang blok kode berkali-kali selama kondisi terpenuhi.

for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}

Mengapa Penting?โ€‹

โš ๏ธ Hampir setiap program nyata โ€” dari kalkulator sederhana hingga aplikasi enterprise โ€” bergantung pada percabangan dan looping. Memahami kedua konsep ini adalah fondasi logika pemrograman.


Setup Projectโ€‹

Membuat Windows Form App di Visual Studioโ€‹

Langkah 1: Buka Visual Studio โ†’ Create New Projectโ€‹

Pilih template Windows Forms App (.NET). Pastikan bukan Console App.

Langkah 2: Beri Nama Projectโ€‹

Contoh: PercabanganLooping, lalu klik Create.

Langkah 3: Desain Formโ€‹

Seret komponen dari Toolbox ke Form Designer:

  • Label โ€” untuk menampilkan teks
  • TextBox โ€” untuk input user
  • Button โ€” untuk trigger event
  • ListBox / RichTextBox โ€” untuk output

Langkah 4: Double-click Button โ†’ Edit Event Handlerโ€‹

Visual Studio otomatis membuat method button1_Click(). Tulis logika program di sini.

Langkah 5: Run dengan F5โ€‹

  • F5 โ€” Run dengan debug
  • Ctrl+F5 โ€” Run tanpa debug

Tip Komponen Pentingโ€‹

// Membaca input dari TextBox
string input = textBox1.Text;
int nilai = int.Parse(input); // bisa crash jika input bukan angka

// Lebih aman dengan TryParse
if (int.TryParse(textBox1.Text, out int nilai))
{
// input valid
}

// Konversi ke integer (untuk perhitungan)
int nilai = Convert.ToInt32(txtNilai.Text);

// Menampilkan hasil di Label
label1.Text = "Hasil: " + nilai;

// Dialog pop-up
MessageBox.Show("Program berjalan!");

Percabangan (if/else)โ€‹

Diagram Alur if/elseโ€‹

     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ MULAI โ”‚
โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜
โ”‚
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ kondisi โ”‚
โ”‚ == true? โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Ya โœ“ โ”‚ Tidak โœ—
โ”Œโ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”‚
โ–ผ โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚Blok if โ”‚ โ”‚Blok else โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚ โ”‚
โ””โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ SELESAI โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3.1 โ€” if Sederhanaโ€‹

// Mengambil nilai dari TextBox
int nilai = int.Parse(txtNilai.Text);

if (nilai >= 70)
{
lblHasil.Text = "LULUS";
lblHasil.ForeColor = Color.Green;
}

3.2 โ€” if / elseโ€‹

int nilai = int.Parse(txtNilai.Text);

if (nilai >= 70)
{
lblHasil.Text = "LULUS";
lblHasil.ForeColor = Color.Green;
}
else
{
lblHasil.Text = "TIDAK LULUS";
lblHasil.ForeColor = Color.Red;
}

3.3 โ€” if / else if / else (Multi-kondisi)โ€‹

Contoh konversi nilai ke grade:

int nilai = int.Parse(txtNilai.Text);
string grade;

if (nilai >= 90)
grade = "A";
else if (nilai >= 80)
grade = "B";
else if (nilai >= 70)
grade = "C";
else if (nilai >= 60)
grade = "D";
else
grade = "E";

lblGrade.Text = $"Grade: {grade}";

Tabel Konversi:

NilaiGrade
90โ€“100A
80โ€“89B
70โ€“79C
60โ€“69D
< 60E

3.4 โ€” Operator Logikaโ€‹

OperatorArtiContohHasil
&&DAN (AND)a > 0 && b > 0true jika KEDUA kondisi true
||ATAU (OR)a == 1 || b == 1true jika SALAH SATU true
!BUKAN (NOT)!(a == 0)membalik nilai boolean
==Sama dengannilai == 100true jika nilai persis 100
!=Tidak samanama != ""true jika nama bukan string kosong
>Lebih besarumur > 17true jika umur lebih besar dari 17
<Lebih kecilnilai < 100true jika nilai lebih kecil dari 100
>=Lebih besar/samanilai >= 70true jika nilai โ‰ฅ 70
<=Lebih kecil/samanilai <= 100true jika nilai โ‰ค 100

Contoh Operasi Logikaโ€‹

int umur = 20;
bool pelajar = true;

// AND (&&) โ€” kedua kondisi harus true
if (umur >= 18 && pelajar)
{
lblInfo.Text = "Mahasiswa dewasa";
}

// OR (||) โ€” salah satu cukup true
if (umur < 12 || pelajar)
{
lblDiskon.Text = "Dapat diskon";
}

// NOT (!) โ€” membalik nilai
if (!pelajar)
{
lblStatus.Text = "Bukan pelajar";
}

Pernyataan Switchโ€‹

Kapan Gunakan switch?โ€‹

switch digunakan ketika satu variabel dibandingkan dengan banyak nilai tetap (konstanta). Lebih bersih daripada banyak else if.

Contoh: Pilih Nama Hariโ€‹

int hari = int.Parse(txtHari.Text);
string namaHari;

switch (hari)
{
case 1:
namaHari = "Senin";
break;
case 2:
namaHari = "Selasa";
break;
case 3:
namaHari = "Rabu";
break;
case 6:
case 7:
namaHari = "Akhir Pekan"; // dua case, satu aksi
break;
default:
namaHari = "Tidak valid";
break;
}

lblHasil.Text = namaHari;

Perbandingan if/else vs switchโ€‹

Kriteriaif/elseswitch
KondisiRange / ekspresi kompleksNilai tetap / konstanta
Contohnilai >= 80hari == 1
Tipe dataSemua tipeint, char, string, enum
KeterbacaanBaik untuk 2โ€“4 kondisiLebih bersih untuk 5+ pilihan

โš ๏ธ Jangan Lupa break!โ€‹

// โŒ SALAH โ€” tanpa break, jatuh ke case berikutnya
switch (x)
{
case 1:
Console.WriteLine("Satu");
// tanpa break, eksekusi lanjut ke case 2
case 2:
Console.WriteLine("Dua");
break;
}

// โœ… BENAR โ€” setiap case dengan break
switch (x)
{
case 1:
Console.WriteLine("Satu");
break;
case 2:
Console.WriteLine("Dua");
break;
}

Perulangan (Looping)โ€‹

Looping memungkinkan program mengulang blok kode tanpa harus menulis ulang. Ada empat jenis utama di C#:

Jenis-jenis Loopโ€‹

LoopKapan DipakaiCek KondisiMin Iterasi
forJumlah iterasi diketahuiDi awal0 kali
whileIterasi sampai kondisi FALSEDi awal0 kali
do-whileMinimal 1x harus jalanDi akhir1 kali
foreachIterasi koleksi/arrayDi awal0 kali

5.1 โ€” for Loopโ€‹

Sintaks: for (inisialisasi; kondisi; update)

Anatomi for loop:

for ( int i = 0 ; i < 10 ; i++ )
โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ โ”‚ โ””โ”€โ”€ Update counter (i++)
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€ Kondisi berhenti (i < 10)
โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Inisialisasi (int i = 0)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ for keyword

Contoh 1: Deret Angka 1โ€“10โ€‹

listBox1.Items.Clear();

for (int i = 1; i <= 10; i++)
{
listBox1.Items.Add(i);
}

// Output: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Contoh 2: Faktorialโ€‹

int n = int.Parse(txtN.Text);
long faktorial = 1;

for (int i = 1; i <= n; i++)
{
faktorial *= i;
}

lblHasil.Text = $"{n}! = {faktorial}";

// Contoh: 5! = 1 ร— 2 ร— 3 ร— 4 ร— 5 = 120

5.2 โ€” while Loopโ€‹

Kondisi diperiksa di awal. Jika false sejak awal, body tidak pernah dijalankan.

while (kondisi)
{
// kode di sini dijalankan selama kondisi true
}

Contoh: Jumlah Digit Angkaโ€‹

int angka = int.Parse(txtAngka.Text);
int jumlah = 0;
int temp = Math.Abs(angka); // nilai absolut

while (temp > 0)
{
jumlah += temp % 10; // ambil digit terakhir
temp /= 10; // buang digit terakhir
}

lblHasil.Text = $"Jumlah digit: {jumlah}";

// Contoh: 12345 โ†’ 1+2+3+4+5 = 15

5.3 โ€” do-while Loopโ€‹

Body dieksekusi dulu, baru kondisi diperiksa. Cocok untuk validasi input.

do
{
// kode di sini minimal dijalankan 1 kali
} while (kondisi);

Contoh: Validasi Input Angka Positifโ€‹

int angka;

do
{
string input = Microsoft.VisualBasic.Interaction
.InputBox("Masukkan angka positif:");
int.TryParse(input, out angka);

if (angka <= 0)
lblInfo.Text = "Input harus positif!";
}
while (angka <= 0); // ulangi sampai input valid

MessageBox.Show($"Input valid: {angka}");

Perbedaan while vs do-whileโ€‹

while: cek kondisi di AWAL โ†’ bisa 0 kali jalan

do-while: cek kondisi di AKHIR โ†’ minimal 1 kali jalan


5.4 โ€” foreach Loopโ€‹

Iterasi pada setiap elemen koleksi. Lebih bersih dari for ketika tidak butuh index.

foreach (tipe_data variabel in koleksi)
{
// akses variabel di sini
}

Contoh: Array ke ListBoxโ€‹

string[] mataKuliah = { "C#", "Database", "Web", "Mobile" };

listBox1.Items.Clear();

foreach (string mk in mataKuliah)
{
listBox1.Items.Add(mk);
}

// Output:
// C#
// Database
// Web
// Mobile

Contoh: Array of Objectsโ€‹

int[] nilaiMahasiswa = { 85, 90, 78, 92, 88 };
int total = 0;

foreach (int nilai in nilaiMahasiswa)
{
total += nilai;
}

double rataRata = total / (double)nilaiMahasiswa.Length;
lblRata.Text = $"Rata-rata: {rataRata:F2}"; // F2 = 2 desimal

break & continueโ€‹

for (int i = 1; i <= 20; i++)
{
if (i % 2 == 0)
continue; // lewati angka genap

if (i > 15)
break; // berhenti jika i > 15

listBox1.Items.Add(i);
}

// Output: 1, 3, 5, 7, 9, 11, 13, 15
KeywordFungsiContoh
breakKeluar dari loop segeraif (x > 100) break;
continueSkip ke iterasi berikutnyaif (x % 2 == 0) continue;

Nested Loopโ€‹

Loop di dalam Loopโ€‹

Loop bisa diletakkan di dalam loop lain. Sangat berguna untuk membuat tabel, matriks, atau pola karakter.

Contoh 1: Tabel Perkalian 5ร—5โ€‹

richTextBox1.Text = "";

for (int i = 1; i <= 5; i++) // baris
{
for (int j = 1; j <= 5; j++) // kolom
{
int hasil = i * j;
richTextBox1.Text += hasil.ToString("D3") + " ";
}
richTextBox1.Text += "\r\n"; // pindah baris
}

// Output:
// 1 2 3 4 5
// 2 4 6 8 10
// 3 6 9 12 15
// 4 8 12 16 20
// 5 10 15 20 25

Contoh 2: Pola Bintang Segitigaโ€‹

int n = int.Parse(txtN.Text);
richTextBox1.Text = "";

for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{
richTextBox1.Text += "* ";
}
richTextBox1.Text += "\r\n";
}

// Output (n=4):
// *
// * *
// * * *
// * * * *

Contoh 3: Bilangan Primaโ€‹

listBox1.Items.Clear();

for (int i = 2; i <= 100; i++)
{
bool isPrima = true;

for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
isPrima = false;
break;
}
}

if (isPrima)
listBox1.Items.Add(i);
}

// Output: 2, 3, 5, 7, 11, 13, 17, 19, 23, ...

โš ๏ธ Hati-hati: Infinite Loop!โ€‹

// โŒ SALAH โ€” loop tanpa batas
for (int i = 0; i < 10; ) // i tidak pernah berubah!
{
Console.WriteLine(i);
}

// โœ… BENAR โ€” i diupdate
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}

Loop tanpa kondisi berhenti yang tepat akan membuat program freeze. Pastikan variabel counter selalu diupdate, atau kondisi loop suatu saat menjadi false.


Latihan & Tugasโ€‹

Latihan Percabanganโ€‹

  1. Buat form input nilai mahasiswa (0โ€“100)

    • Tampilkan grade (A/B/C/D/E)
    • Tampilkan keterangan lulus/tidak
  2. Buat kalkulator sederhana

    • Input 2 angka
    • Pilih operasi: +, โˆ’, ร—, รท
    • Gunakan if/else atau switch
  3. Cek jenis angka

    • Ganjil atau genap?
    • Positif atau negatif?
  4. Cek tahun kabisat

    • Habis dibagi 4 = kabisat
    • Kecuali habis dibagi 100 = bukan kabisat
    • Kecuali habis dibagi 400 = kabisat

Latihan Loopingโ€‹

  1. Tampilkan bilangan prima antara 1โ€“100 di ListBox
  2. Tabel perkalian 10ร—10 di RichTextBox
  3. Hitung deret Fibonacci ke-n menggunakan while loop
  4. Tampilkan deret terbalik
    • Input: 12345
    • Output: 54321

Tugas Proyek Miniโ€‹

Proyek 1: Konversi Nilaiโ€‹

  • Input nilai 5 mahasiswa
  • Hitung rata-rata
  • Tampilkan siapa yang di atas rata-rata
  • Gunakan loop + if
// Pseudocode
int[] nilai = new int[5];
double rataRata = 0;

// input nilai
for (int i = 0; i < 5; i++)
{
nilai[i] = int.Parse(textBox[i].Text);
rataRata += nilai[i];
}
rataRata /= 5;

// cek di atas rata-rata
for (int i = 0; i < 5; i++)
{
if (nilai[i] > rataRata)
listBox1.Items.Add($"Mahasiswa {i+1}: {nilai[i]}");
}

Proyek 2: Angka Sempurnaโ€‹

Cek apakah sebuah bilangan adalah angka sempurna.

Angka sempurna = jumlah faktor (selain diri sendiri) sama dengan bilangan itu.

Contoh: 6 = 1 + 2 + 3 (6 adalah angka sempurna)

int n = int.Parse(txtAngka.Text);
int jumlah = 0;

for (int i = 1; i < n; i++)
{
if (n % i == 0) // i adalah faktor n
jumlah += i;
}

if (jumlah == n)
lblHasil.Text = $"{n} adalah angka sempurna!";
else
lblHasil.Text = $"{n} bukan angka sempurna";

Referensiโ€‹

Video Tutorialโ€‹

๐Ÿ“บ Visual C#, Percabangan dan Looping

Dokumentasi Resmi Microsoftโ€‹

TopikLink
if / elsedocs.microsoft.com/csharp/language-reference/statements/selection-statements
switch expressiondocs.microsoft.com/csharp/fundamentals/control-flow/pattern-matching
Iteration statementsdocs.microsoft.com/csharp/language-reference/statements/iteration-statements
Windows Forms Guidedocs.microsoft.com/dotnet/desktop/winforms

Cheat Sheet Cepatโ€‹

Percabanganโ€‹

// Sederhana
if (kondisi) { }

// Dua jalur
if (kondisi) { } else { }

// Banyak jalur
if (c1) { }
else if (c2) { }
else if (c3) { }
else { }

// Switch-case
switch (variabel)
{
case nilai1:
// aksi 1
break;
case nilai2:
// aksi 2
break;
default:
// aksi default
break;
}

Loopingโ€‹

// for โ€” iterasi tertentu
for (int i = 0; i < n; i++) { }

// while โ€” sampai kondisi false
while (kondisi) { }

// do-while โ€” minimal 1 kali
do { } while (kondisi);

// foreach โ€” iterasi koleksi
foreach (var item in koleksi) { }

// Kontrol alur
break; // keluar dari loop
continue; // skip ke iterasi berikutnya

Fungsi Bergunaโ€‹

FungsiKeterangan
int.Parse()Konversi string โ†’ int (bisa crash)
int.TryParse()Konversi aman (return bool)
Math.Abs()Nilai absolut
Math.Pow(x, n)x pangkat n
Math.Sqrt(x)Akar kuadrat
MessageBox.Show()Dialog pop-up
string.EmptyString kosong ("")

Ringkasan Poin Pentingโ€‹

โœ… if/else โ€” Percabangan memilih jalur eksekusi berdasarkan kondisi

โœ… switch-case โ€” Lebih rapi untuk nilai tetap / konstanta

โœ… for โ€” Gunakan saat jumlah iterasi diketahui sebelumnya

โœ… while & do-while โ€” Untuk kondisi yang tidak pasti berapa kali

โœ… foreach โ€” Iterasi koleksi/array dengan mudah

โœ… Nested loop โ€” Tabel, matriks, pola dengan loop bersarang

โœ… break โ€” Keluar dari loop segera

โœ… continue โ€” Skip ke iterasi berikutnya


Selamat belajar! ๐ŸŽ“

Disusun untuk mata kuliah Pemrograman Berbasis Komputer IDE: Visual Studio 2022+ ยท Bahasa: C# ยท Platform: .NET Framework