ALGORITMA DAN PEMROGRAMAN STMIK - E

advertisement
MODUL
ALGORITMA DAN PEMROGRAMAN
Rajif Agung Yunmar, S.Kom., M.Cs.
STMIK “AMIKOM” Yogyakarta
2014
MODUL 3
STRUKTUR KENDALI : PERCABANGAN
Control flow dalam bahasa Indonesia dapat diartikan sebagai struktur kendali. Yaitu
bagaimana urutan eksekusi perintah dalam program. Beberapa contoh control flow
yang dikenal dalam C++ yaitu percabangan (branching), perulangan (looping),
perpindahan (jumping).
Modul ini akan membahas mengenai struktur kendali percabangan. Dalam
pengambilan keputusan, percabangan melakukan pengujian terhadap suatu kondisi
kemudian menentukan apakah suatu baris atau blok instruksi akan diproses atau
tidak. Pengujian tersebut didasarkan kepada pernyataan boolean (TRUE atau
FALSE) dan dihubungkan dengan operator logika.
3.1 Pernyataan IF
Dalam pemrograman, pernyataan IF digunakan untuk memeriksa sebuah kondisi,
kemudian menjalankan blok instruksi dibawahnya jika kondisi yang disyaratkan
memang terpenuhi. Jika tidak, makan blok instruksi tersebut akan diabaikan. Bentuk
umum dari pernyataan IF adalah sebagai berikut:
if(kondisi){
pernyataan
...
}
Contoh 1
Berikut ini adalah kode program untuk menampilkan kaliman “Selamat anda lulus” ke
layar monitor apabila nilai yang diinputkan oleh pengguna lebih besar atau sama
dengan 60.
status_kelulusan.cpp
#include <iostream.h>
#include <conio.h>
void main(){
int nilai;
cout << "Masukkan nilai = ";
cin >> nilai;
if(nilai >= 60){
cout << "Selamat anda lulus.";
}
getch();
}
3.2 Pernyataan IF ELSE
Dalam banyak hal, seringkali terjadi kasus yang melibatkan lebih dari satu kondisi.
Tentu saja pemrograman dengan IF saja tidaklah cukup. Untuk menangani hal ini,
C++ menyediakan pernyataan IF ELSE.
Pernyataan ini mengeksekusi suatu blok pernyataan apabila sebuah kondisi
terpenuhi dan mengeksekusi blok pernyataan lainnya jika kondisi tersebut tidak
terpenuhi. Bentuk umum dari pernyataan IF ELSE adalah sebagai berikut:
if(kondisi){
pernyataan
...
} else {
pernyataan_lain
...
}
Contoh 2
Berikut ini adalah modifikasi dari contoh pertama, program dapat menentukan status
kelulusan mahasiswa (lulus/tidak lulus) dari nilai yang diinputkan oleh pengguna.
status_kelulusan.cpp
#include <iostream.h>
#include <conio.h>
void main(){
int nilai;
cout << "Masukkan nilai = ";
cin >> nilai;
if(nilai >= 60){
cout << "Selamat anda lulus.";
} else {
cout << "Maaf, anda belum lulus.";
}
getch();
}
Latihan 1
Buatlah program yang dapat menerima sebuah input bilangan dari
pengguna. Kemudian tentukan apakah bilangan tersebut termasuk
kedalam kelompok bilangan ganjil atau bilangan genap.
3.3 Pernyataan IF ELSE IF
Pernyataan IF ELSE IF digunakan apabila terdapat lebih dari dua kondisi dalam
memutuskan sesuatu. Pernyataan ini biasanya digunakan untuk merumuskan lebih
banyak alternatif. Bentuk umum dari pernyataan IF ELSE IF adalah sebagai berikut:
if(kondisi_1){
pernyataan_1
...
} else if(kondisi_2){
pernyataan_2
...
} else {
pernyataan_lain
...
}
Contoh 3
Berikut ini adalah kode program untuk menentukan index nilai sebuah matakuliah dari
seorang mahasiswa. Input berupa nilai dari pengguna sedangkan outputnya adalah
index nilai matakuliah dalam bentuk string (A, B, C, D, E).
index_nilai.cpp
#include <iostream.h>
#include <conio.h>
#include <string>
void main(){
int nilai;
string index;
cout << "Masukkan nilai = ";
cin >> nilai;
if(nilai >= 80){
index = "A";
} else if(nilai >= 70){
index = "B";
} else if(nilai >= 60){
index = "C";
} else if(nilai >= 40){
index = "D";
} else {
index = "E";
}
cout << "Nilai anda = " << nilai << endl;
cout << "Index = " << index << endl;
getch();
}
Latihan 2
Toko Buku “Wijaya” mempunyai kebijakan dalam penjualan buku tulis.
Jika pelanggan membeli lebih dari 100 eksemplar, maka ia mendapat
diskon 20%. Apabila membeli antara 20 hingga 100, pelanggan
mendapat diskon 10%. Lainnya tidak mendapat diskon. Input : harga satuan buku,
jumlah buku yang dibeli. Output : total harga.
3.4 Percabangan dengan operator boolean
Percabangan tipe ini digunakan ketika sebuah blok instruksi meminta dua buah
kondisi atau lebih secara bersamaan. Artinya, blok instruksi tersebut hanya bisa
dijalankan ketika kondisi-kondisi yang diminta terpenuhi. Operator-operator boolean
yang dapat digunakan adalah:
Table 3.1 Operator Boolean
Operator
Keterangan
Simbol dalam C++
AND
Konjungsi
&&
OR
Disjungsi
||
NOT
Negasi
!
XOR
Exclusive OR
^
Contoh 4
Berikut ini adalah contoh program penerimaan pegawai baru. Syarat seseorang
diterima sebagai pegawai adalah ia harus memiliki nilai tes minimal 250 poin dan
berumur maksimal 35 tahun.
penerimaan_pegawai.cpp
#include <iostream.h>
#include <conio.h>
void main(){
int nilai, umur;
cout
cin
cout
cin
<<
>>
<<
>>
"Masukkan nilai tes = ";
nilai;
"Masukkan umur = ";
umur;
if(nilai >= 250 && umur <= 30){
cout << "Selamat, anda diterima sebagai pegawai.";
} else {
cout << "Mohon maaf, anda belum memenuhi syarat.";
}
getch();
}
Contoh 5
Berikut ini adalah contoh program menentukan asal provinsi berdasarkan nama
kabupaten yang dimasukkan oleh pengguna.
kab_provinsi.cpp
#include <iostream.h>
#include <conio.h>
#include <string>
void main(){
string kab_asal;
cout << "Masukkan asal kabupaten anda = ";
cin >> kab_asal;
if(kab_asal == "Sleman" || kab_asal == "Bantul"){
cout << "Anda berasal dari Provinsi D.I. Yogyakarta.";
} else {
cout << "Kemungkinan anda berasal dari provinsi lain.";
}
getch();
}
3.5 Percabangan Bersarang
Percabangan tipe ini digunakan apabila terdapat pernyataan percabangan dibawah
sebuah pernyataan percabangan lainnya. Adapun bentuk umum dari percabangan ini
adalah sebagai berikut:
if(kondisi_1){
if(sub_ondisi_1){
sub_pernyataan_1
...
} else {
sub_pernyataan_lain
...
}
} else {
pernyataan_lain
...
}
Contoh 6
Berikut ini adalah contoh program untuk menentukan status kelulusan mahasiswa
berdasarkan nilai matakuliah disertai dengan index nilainya.
status_kelulusan.cpp
#include <iostream.h>
#include <conio.h>
#include <string>
void main(){
int nilai;
string index, keterangan;
cout << "Masukkan nilai = ";
cin >> nilai;
if(nilai >= 60){
keterangan = "Selamat anda lulus.";
if(nilai >= 80){
index = "A";
} else if(nilai >= 70){
index = "B";
} else {
index = "C";
}
} else {
keterangan = "Maaf, anda belum lulus.";
if(nilai >= 40){
index = "D";
} else {
index = "E";
}
}
cout << "Status = " << keterangan << endl;
cout << "Index Nilai = " << index << endl;
getch();
}
3.6 Pernyataan SWITCH-CASE
Pernyataan SWITCH-CASE merupakan bentuk alternatif dari pernyataan IF ELSE IF.
Pernyataan ini digunakan hanya untuk membandingkan variabel tunggal dengan
dengan beberapa kemungkinan nilai-nilai. Dalam penggunaannya, pernyataan
SWITCH-CASE tidak dianjurkan untuk pilihan yang melibatkan jangkauan (range).
Contoh 6
Berikut ini adalah kode program untuk mengetahui deskripsi prestasi dari sebuah
index nilai matakuliah. Masukan dari pengguna berupa karakter A, B, C, D.
deskripsi_nilai.cpp
#include <iostream.h>
#include <conio.h>
#include <string>
void main(){
char index;
string keterangan;
cout << "Masukkan index nilai anda : ";
cin >> index;
switch(index){
case 'A':
keterangan
break;
case 'B':
keterangan
break;
case 'C':
keterangan
break;
case 'D':
keterangan
break;
default:
keterangan
}
= "Excelent";
= "Good";
= "Fair";
= "Poor";
= "Tidak diketahui";
cout << "Keterangan index nilai = " << keterangan << endl;
getch();
}
Tugas
1. Buatlah program untuk menentukan nilai terbesar dari dua buah bilangan. Input:
dua bilangan (A dan B). Ouput: bilangan terbesar dari kedua input tersebut.
2. Seseorang dinyatakan lulus dalam kuliah Algoritma jika nilai akhirnya lebih besar
atau sama dengan 60. Nilai akhir diperoleh diperoleh dengan formula UTS (30%),
UAS (40%) dan Responsi (30%). Input: nilai UTS, UAS dan Responsi. Output:
nilai akhir dan keterangan.
3. Buatlah program untuk melakukan operasi aritmatika. Pengguna dapat memilih
operasi aritmatika yang diinginkannya dengan ketentuan:
Angka 1 : Penjumlahan
Angka 2 : Pengurangan
Angka 3 : Perkalian
Angka 4 : Pembagian
Jika pilihan yang dimasukkan bukan angka 1 s.d 4 muncul pesan "Kesalahan
memasukkan pilihan". Input: angka 1 s.d 4. Output: hasil operasi aritmatika
sesuai pilihan.
4. PT. Maju Selalu memiliki beberapa golongan karyawan. Gaji masing-masing
karyawan ditentukan dari golongan dan lama ia bekerja (jumlah jam kerja per
bulan). Gaji per jam untuk masing-masing golongan karyawan dapat dilihat pada
tabel berikut:
Golongan
Gaji per Jam
1
10000
2
12500
3
15000
4
17500
5
20000
Buatlah program yang dapat menghitung total gaji yang didapatkan dari seorang
karyawan perbulannya. Input: golongan dan jumlah jam kerja. Output: total gaji.
5. PT. Sukses Berat memiliki kebijakan yang berbeda. Selain ditentukan oleh
golongan dan lama ia bekerja (jumlah jam kerja per bulan), setiap karyawan
karyawan juga mendapatkan gaji tetap. Gaji tetap dan gaji per jam untuk masingmasing golongan karyawan dapat dilihat pada tabel berikut:
Golongan
Gaji Tetap
Gaji per Jam
1
1500000
10000
2
1750000
12500
3
2000000
15000
4
2500000
17500
5
3000000
20000
Jika seorang karyawan bekerja lebih dari 120 jam dalam sebulan, maka
kelebihannya akan dihitung sebagai lembur, dengan gaji per jam adalah 1.5 kali
gaji biasa. Buatlah program yang dapat menghitung total gaji yang didapatkan dari
seorang karyawan perbulannya. Input: golongan dan jumlah jam kerja. Output:
jumlah jam kerja, jumlah jam lembur, gaji per jam, gaji lembur, total gaji.
6. Sebuah usaha penyewaan kendaraan memberlakukan tarif sebagai berikut. Lama
penyewaan untuk dua jam pertama adalah 1000. Untuk jam berikutnya sampai
dengan 12 jam tarif perjamnya adalah 400. Sedangkan untuk jam berikutnya maka
tarif perjamnya menjadi 300. Buatlah program yang menentukan berapa banyak
biaya yang harus dibayar konsumen untuk lama peminjaman tertentu. Input :
lama peminjaman. Output : total pembayaran.
7. Buatlah program dengan pernyataan SWITCH-CASE untuk mengkonversi angka
hari menjadi nama hari. Pengguna diminta memasukkan angka antara 1 sampai 7,
untuk
selanjutnya
ditampilkan
nama
hari
yang
sesuai.
Jika
pengguna
memasukkan angka yang tidak termasuk dalam batasan, maka ditampilkan pesan
"Kesalahan memasukkan angka". Input: angka dari 1 s.d 7. Output: nama hari.
Download