SWICH

algoritma C++

Pencabangan

Jalankan program berikut dan isikan umur = 20, 19, 21, 23, dst. Bagaimana keluarannya?. Bagian mana yang salah dan bagaimana modifikasinya?

#include
main()
{ int umur;
cout << “Masukkan umur anda = “;
cin >> umur;
if (umur = 20)
cout << “Umur anda tepat duapuluh tahun”;
else
cout << “Umur anda bukan duapuluh tahun”;
}

Pencabangan berganda: SWITCH
Jalankan program berikut dan isikan kategori = A,B,C,D, atau E. Bagaimana keluarannya?. Modifikasilah agar menjadi benar.

#include
main() {
char kategori;
float diskon;
cout << “Kategori pelanggan (A/B/C/D/E) = “;
cin >> kategori;
switch (kategori) {
case ‘A’:
diskon = 40;
case ‘B’:
diskon = 25;
case ‘C’:
case ‘D’:
diskon = 10;
default:
diskon = 0;
}
cout << “Diskon = ” << diskon << “%”;
}

Lompatan: label dan goto
Buatlah program di bawah ini. Jalankan dan tulislah tampilan yang muncul. Terangkan fungsi
dari label dan goto.

#include
main()
{
cout << “Ini langkah pertama” << endl;
goto LABEL2;
LABEL1:
cout << “Ini langkah kedua” << endl;
goto LABEL3;
LABEL2:
cout << “Ini langkah ketiga” << endl;
goto LABEL1;
LABEL3:
cout << “Ini langkah keempat” << endl;
}

Pencabangan & lompatan untuk perulangan

#include
#include
main()
{ float C, F;
int tombol;
Ulangi
cout << “Masukkan suhu dalam Celcius = “;
cin >> C;
F = 1.8*C+32;
cout << “Suhu dalam Fahrenheit = ” << F
<< endl;
cout << “Apakah mau mengulangi (Y/T)? “;
tombol = getch();
cout << endl;
if (tombol == ‘Y’)
goto Ulangi;
cout << “Selesai”;
}

Kompile program di atas, ada error yaitu kesalahan dalam menulis label, bagaimana yang benar? Perbaiki dan jalankan. Modifikasi program tersebut untuk dapat mengulangi jika diberi
jawaban karakter Y maupun y. Apakah fungsi dari getch()

Kalang bersyarat “periksa-jalankan” : WHILE

#include
#include
main()
{ char nama[80];
int tombol;
while ((tombol == ‘Y’)||(tombol == ‘y’)) {
cout << “Masukkan nama anda = “;
cin >> nama;
cout << “Halo ” << nama << endl << endl;
cout << “Apakah mau mengulangi (Y/T)? “;
tombol = getch();
cout << endl << endl;
}
cout << “Selesai”;
}

Jalankan program di atas, apa yang terjadi dan mengapa bisa begitu?. Bagaimana yang benar?. Perbaiki dan jalankan.

Kalang bersyarat “jalankan- periksa”: DO-WHILE
#include
#include
main()
{ char nama[80];
int tombol, cacah = 0;
float nilai, jumlah = 0, rerata;
cout << “Menghitung rerata nilai\n”;
cout << “Masukkan nilai, “
<< “isikan negatif jika selesai\n\n”;
do {
cacah++;
cout << “Data ke-” << cacah << ” = “;
cin >> nilai;
jumlah = jumlah+nilai;
} while (nilai >= 0);
rerata = jumlah/cacah;
cout << “\nBanyaknya data = ” << cacah;
cout << “\nJumlah = ” << jumlah;
cout << “\nRerata = ” << rerata;
}

Apa fungsi instruksi cacah++.

Jalankan program di atas dan masukkan beberapa nilai untuk dihitung reratanya, akhiri masukan
dengan memberikan nilai negatif (jangan cuma tanda minus thok). Periksa jawabannya, apakah
jawaban yang diperoleh sudah benar? Perbaiki program tersebut agar menjadi benar.

Buatlah program untuk menghitung jumlah & rerata nilai, tetapi dengan memasukkan dahulu
berapa banyaknya nilai yang akan dimasukkan. Tampilannya adalah sbb (huruf tebal adalah nilai
yang diisikan melalui keyboard). Buatlah dalam 2 versi, pertama menggunakan kalang WHILE, dan kedua menggunakan kalang DO-WHILE.

Banyaknya nilai = 3
Data ke-1 = 10
Data ke-2 = 9
Data ke-3 = 8
Jumlah = 27
Rerata = 9

Menu: Program konversi suhu dengan SWITCH
Buat pula program yang sama dengan pada bagian akhir Modul III menggunakan struktur
SWITCH, Buat dahulu flowchartnya baru programnya.

Comments

Popular Posts