Di bab ini program kita mulai “berpikir”: bisa milih-milih alur pakai pengkondisian, dan bisa ngulang-ngulang kerjaan pakai perulangan. Program Data Nilai Mahasiswa kita juga makin pinter: bisa nerima input dari keyboard dan nentuin status kelulusan.
Dua Kemampuan Ajaib Program
Ada dua hal yang bikin program itu kerasa “hidup” yaitu bisa milih dan bisa ngulang.
Pengkondisian itu kayak aturan hidup sehari-hari: kalau hujan, bawa payung; kalau nggak, santai aja. Program juga gitu: dia jalan ngalir dari atas ke bawah, tapi bisa nyimpang sesuai kondisi.
Perulangan itu kayak drilling hafalan: ulangi sampai hafal. Program bisa ngerjain hal yang sama berkali-kali tanpa kita perlu nulis ulang kodenya.
Dua konsep ini bakal kepake di semua program yang lebih kompleks dari “hello world”. Serius. Jadi pelan-pelan aja.
Pengkondisian: if, else if, else
Bentuk paling dasar:
int nilai = 80;
if (nilai >= 75) { cout << "Lulus!" << endl;}Bacanya gini: kalau (if) nilai lebih besar sama dengan 75, jalanin kode di dalam kurung kurawal. Kalau nggak memenuhi, kode di dalamnya dilewatin.
Tapi hidup nggak cuma dua pilihan kan? Makanya ada else if dan else:
int nilai = 80;
if (nilai >= 90) { cout << "Grade A" << endl;} else if (nilai >= 75) { cout << "Grade B" << endl;} else { cout << "Grade C" << endl;}Alurnya dibaca berurutan dari atas: dicek nilai >= 90? Nggak. Dicek nilai >= 75? Iya, jalanin blok itu, selesai (yang bawah nggak dicek lagi). else di paling bawah itu “penampung terakhir”, jalan kalau semua kondisi di atas nggak ada yang ketemu.
Buat nulis kondisi, kita butuh operator perbandingan:
| Operator | Artinya | Contoh |
|---|---|---|
== | Sama dengan | nilai == 100 |
!= | Tidak sama dengan | nilai != 0 |
> | Lebih besar | ipk > 3.0 |
< | Lebih kecil | umur < 18 |
>= | Lebih besar sama dengan | nilai >= 75 |
<= | Lebih kecil sama dengan | umur <= 20 |
⚠️ Trap pemula nomor satu: = itu menugaskan nilai, == itu membandingkan. if (nilai = 5) nggak ngecek apa-apa; dia malah ngganti nilai jadi 5, terus dianggap true. Klasik! Pastiin kita selalu pakai == di dalam kondisi.
Kalau kondisinya lebih dari satu, bisa digabung pakai && (dan) serta || (atau).
if (ipk >= 3.0 && semester >= 6) { cout << "Berhak jadi kandidat wisudawan" << endl;}switch: Kakak if buat Pilihan Banyak
Kalau kita cuma ngebandingin satu variabel dengan banyak nilai tetap, switch lebih rapi dari rentetan if:
int pilihan = 2;
switch (pilihan) { case 1: cout << "Kamu pilih kopi" << endl; break; case 2: cout << "Kamu pilih teh" << endl; break; default: cout << "Pilihan nggak ada di menu" << endl;}switch nyari case yang cocok sama nilai variabelnya, jalanin kodenya, lalu break buat berhenti. Tanpa break, dia bakal nyasar ke case berikutnya; ini efek “fall-through” yang sering bikin kaget. default itu penampung kalau nggak ada case yang cocok. switch paling pas buat menu, kayak yang bakal kita kerjain di latihan nanti.
Perulangan: for, while, do-while
Ada tiga cara ngulang di C++, dan masing-masing punya “mood” sendiri:
1. for, juara buat jumlah yang udah pasti
for (int i = 1; i <= 3; i++) { cout << "Mahasiswa ke-" << i << endl;}Bentuknya punya 3 bagian dalam kurung: mulai (int i = 1), syarat lanjut (i <= 3), dan langkah (i++, tambah 1 tiap putaran). Outputnya:
Mahasiswa ke-1Mahasiswa ke-2Mahasiswa ke-3Kalau kita tau persis mau ngulang berapa kali, for itu pilihan paling natural.
2. while, ngulang selama kondisi masih true
int tebakan;int jawaban = 7;
cout << "Tebak angka (1-10): ";cin >> tebakan;
while (tebakan != jawaban) { cout << "Salah! Coba lagi: "; cin >> tebakan;}
cout << "Benar!" << endl;Kondisinya dicek di awal. Kalau dari sananya sudah false, bloknya nggak pernah dijalanin sama sekali. while pas buat situasi “terus ngulang sampai kondisi berubah” yang jumlahnya nggak pasti.
3. do-while, minimal jalan sekali baru cek kondisi
int pilihan;
do { cout << "Pilih menu (1-3): "; cin >> pilihan;} while (pilihan < 1 || pilihan > 3);Bedanya sama while: kondisinya dicek di akhir. Jadi bloknya dijalanin minimal satu kali dulu, baru dicek mau lanjut atau nggak. Ini paling pas buat menu yang “harus tampil dulu minimal sekali”.
break dan continue
Dua “tombol darurat” di dalam perulangan:
breaklangsung keluar dari perulangan.continuelompat ke putaran berikutnya, dan kode di bawahnya di pertengahan dilewatin.
for (int i = 1; i <= 5; i++) { if (i == 3) continue; // skip angka 3 if (i == 5) break; // berhenti di 5 cout << i << endl;}Hasilnya: 1 2 4 (3 di-skip, 5 keburu di-break sebelum dicetak).
Program Berkelanjutan: Ngisi Data Mahasiswa dari Keyboard
Balik ke program kita. Di bab lalu data Budi “dikunci” di kode, nggak seru. Sekarang kita upgrade: program bisa input dari keyboard, ngelakuin itu buat 3 mahasiswa (pakai for), dan nentuin status kelulusan tiap mahasiswa (pakai if).
#include <iostream>using namespace std;
int main() { string nama; float ipk;
for (int i = 1; i <= 3; i++) { cout << "--- Mahasiswa ke-" << i << " ---" << endl; cout << "Nama: "; cin >> nama; cout << "IPK : "; cin >> ipk;
if (ipk >= 3.0) { cout << nama << " lulus dengan pujian." << endl; } else if (ipk >= 2.75) { cout << nama << " lulus." << endl; } else { cout << nama << " belum lulus." << endl; } }
return 0;}Contoh jalannya:
--- Mahasiswa ke-1 ---Nama: BudiIPK : 3.75Budi lulus dengan pujian.--- Mahasiswa ke-2 ---Nama: AniIPK : 2.5Ani belum lulus.--- Mahasiswa ke-3 ---Nama: CitraIPK : 2.8Citra lulus.Yang terjadi: perulangan for muter 3 kali. Tiap muter, program minta nama + IPK, terus cabang if nentuin statusnya. Perhatiin cin >> nama dan cin >> ipk: sekarang data beneran masuk dari keyboard, bukan diketik di kode.
Kelemahan program ini: jumlah mahasiswanya kaku. Mau 3, ditulis i <= 3 di kodenya; mau 10 mahasiswa, harus edit kode. Lebih parah lagi, data mahasiswa cuma diproses sekaligus lalu ilang, nggak ada tempat nyimpen buat dipake lagi nanti. Nah, bab 04 (array) bakal jawab masalah ini: nyimpen banyak data sekaligus.
Latihan Soal: Kalkulator Menu
Bikinkan kalkulator sederhana buat bantu abang warung ngetung pesenan. Programnya gini:
- Tampilkan menu pakai
do-while:===== KALKULATOR WARUNG =====2. Tambah3. Kurang4. Kali5. Bagi6. KeluarPilih menu (1-5): - User milih pakai
switch. Untuk menu 1–4, minta dua bilangan, hitung, lalu cetak hasilnya. - Validasi pembagian: kalau menu 4 dan bilangan keduanya
0, tampilkan pesan"Error: nggak bisa bagi dengan nol!"supaya program nggak crash. - Keluar dari program kalau user pilih menu 5 (pakai
breakatau kondisi berhenti).
Contoh interaksi:
Pilih menu (1-5): 1Bilangan pertama: 10Bilangan kedua: 5Hasil: 15Pilih menu (1-5): 4Bilangan pertama: 8Bilangan kedua: 0Error: nggak bisa bagi dengan nol!Pilih menu (1-5): 5💡 Hint: buat menu,
do-while+switch+breakadalah kombinasi paling pas. Pikirin baik-baik di manabreakbakal bikin program keluar total.