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โ
- Pendahuluan
- Setup Project
- Percabangan (if/else)
- Pernyataan Switch
- Perulangan (Looping)
- Nested Loop
- Latihan & Tugas
- 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 teksTextBoxโ untuk input userButtonโ untuk trigger eventListBox/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:
| Nilai | Grade |
|---|---|
| 90โ100 | A |
| 80โ89 | B |
| 70โ79 | C |
| 60โ69 | D |
| < 60 | E |
3.4 โ Operator Logikaโ
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
&& | DAN (AND) | a > 0 && b > 0 | true jika KEDUA kondisi true |
|| | ATAU (OR) | a == 1 || b == 1 | true jika SALAH SATU true |
! | BUKAN (NOT) | !(a == 0) | membalik nilai boolean |
== | Sama dengan | nilai == 100 | true jika nilai persis 100 |
!= | Tidak sama | nama != "" | true jika nama bukan string kosong |
> | Lebih besar | umur > 17 | true jika umur lebih besar dari 17 |
< | Lebih kecil | nilai < 100 | true jika nilai lebih kecil dari 100 |
>= | Lebih besar/sama | nilai >= 70 | true jika nilai โฅ 70 |
<= | Lebih kecil/sama | nilai <= 100 | true 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โ
| Kriteria | if/else | switch |
|---|---|---|
| Kondisi | Range / ekspresi kompleks | Nilai tetap / konstanta |
| Contoh | nilai >= 80 | hari == 1 |
| Tipe data | Semua tipe | int, char, string, enum |
| Keterbacaan | Baik untuk 2โ4 kondisi | Lebih 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โ
| Loop | Kapan Dipakai | Cek Kondisi | Min Iterasi |
|---|---|---|---|
| for | Jumlah iterasi diketahui | Di awal | 0 kali |
| while | Iterasi sampai kondisi FALSE | Di awal | 0 kali |
| do-while | Minimal 1x harus jalan | Di akhir | 1 kali |
| foreach | Iterasi koleksi/array | Di awal | 0 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
| Keyword | Fungsi | Contoh |
|---|---|---|
break | Keluar dari loop segera | if (x > 100) break; |
continue | Skip ke iterasi berikutnya | if (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โ
-
Buat form input nilai mahasiswa (0โ100)
- Tampilkan grade (A/B/C/D/E)
- Tampilkan keterangan lulus/tidak
-
Buat kalkulator sederhana
- Input 2 angka
- Pilih operasi: +, โ, ร, รท
- Gunakan
if/elseatauswitch
-
Cek jenis angka
- Ganjil atau genap?
- Positif atau negatif?
-
Cek tahun kabisat
- Habis dibagi 4 = kabisat
- Kecuali habis dibagi 100 = bukan kabisat
- Kecuali habis dibagi 400 = kabisat
Latihan Loopingโ
- Tampilkan bilangan prima antara 1โ100 di ListBox
- Tabel perkalian 10ร10 di RichTextBox
- Hitung deret Fibonacci ke-n menggunakan while loop
- 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
- Channel: A Dj
- Upload: 14 April 2026
- Link: youtu.be/A56dCZr0fl8
Dokumentasi Resmi Microsoftโ
| Topik | Link |
|---|---|
| if / else | docs.microsoft.com/csharp/language-reference/statements/selection-statements |
| switch expression | docs.microsoft.com/csharp/fundamentals/control-flow/pattern-matching |
| Iteration statements | docs.microsoft.com/csharp/language-reference/statements/iteration-statements |
| Windows Forms Guide | docs.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โ
| Fungsi | Keterangan |
|---|---|
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.Empty | String 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