Kali ini kita akan membahas secara singkat mengenai pengkondisian di dalam sebuah program. Khususnya yang menggunakan bahasa Pascal. Untuk memudahkan, saya sertakan pula bagan alurnya dengan menggunakan software Flowgorithm.
Bagi yang belum menginstall Free Pascal Compiler (FPC) maupun Flowgorithm bisa merujuk pada bahasan sebelumnya.
Karena terbatasnya ruang, pembahasan di sini hanya bersifat rangkuman saja. Teman-teman bisa mencari referensi lain yang lebih lengkap untuk mendalami konsep pengkondisian tersebut.
Daftar Isi
Konsep Pengkondisian
Pengkondisian berkaitan erat dengan pengambilan keputusan.
Sebagai contoh, suatu hari Budi diajak Wati untuk pergi menonton film bioskop. Sebelum mengiyakan, Budi mengecek isi dompetnya terlebih dahulu. Jika uangnya cukup, ia akan ikut dengan Wati. Jika tidak, Budi bakal tetap di rumah saja.
Skenario di atas bisa digambarkan dengan bagan alur sebagai berikut.
Setiap pengkondisian akan selalu menghasilkan 2 cabang. Satu untuk kondisi BENAR (TRUE), satu lagi untuk kondisi SALAH (FALSE).
Pada contoh kasus di atas, kondisi TRUE akan terpenuhi apabila uang Budi cukup untuk menonton film. Hal itu berujung pada keputusan Budi untuk ikut dengan Wati.
Dalam bahasa Pascal, salah satu statement yang berkaitan adalah if - then
dan if - else - then
.
Statement | Keterangan |
---|---|
if – then | Melakukan pengecekan terhadap sebuah kondisi dan mengeksekusi perintah selanjutnya apabila kondisi tersebut terpenuhi. |
if – else – then | Melakukan pengecekan terhadap sebuah kondisi, mengeksekusi perintah selanjutnya apabila kondisi terpenuhi, serta menyiapkan perintah lain apabila kondisi tersebut tidak terpenuhi. |
Berikut contoh implementasi dalam bentuk program.
program ContohPengkondisian;
uses Math, crt, SysUtils;
var uangBudi : real;
begin
clrscr;
Write('Uang Budi: ');
readln(uangBudi);
if (uangBudi>30000) then
begin
Writeln('Budi pergi ke bioskop')
end
else
begin
Writeln('Budi di rumah saja')
end;
readln;
end.
Saat program dijalankan, kita akan diminta untuk memasukkan jumlah uang yang dimiliki Budi.
Write('Uang Budi: ');
readln(uangBudi);
Input jumlah uang Budi ini disimpan dalam variabel uangBudi bertipe real yang telah dideklarasikan sebelumnya.
var uangBudi : real;
Saya tidak membahas mengenai variabel dan konstanta, mohon untuk mencari referensi di tempat lain, ya.
Nah, dengan asumsi harga tiket bioskop adalah Rp 30.000,-, maka dilakukan pengecekan apakah uang Budi lebih dari 30000.
if (uangBudi>30000) then
Jika ya, maka ditampilkan tulisan bahwa Budi akan pergi ke bioskop.
Writeln('Budi pergi ke bioskop')
Jika tidak, maka ditampilkan tulisan bahwa Budi di rumah saja.
Writeln('Budi di rumah saja')
Tidak sulit, bukan?
Dan berikut implementasinya dalam bentuk bagan alur.
Seperti ini hasilnya jika dijalankan dalam Flowgorithm.
Sebenarnya masih ada dua lagi statement yang berkaitan dengan perulangan. Yaitu case
dan case - else
. Kita akan membahasnya di lain waktu.
Oh ya. Dalam melakukan pengkondisian, kita bisa menggunakan lebih dari satu kondisi sebagai bahan pengambilan keputusan.
Sebagai contoh, Budi hanya akan pergi ke bioskop jika cuaca cerah. Jika cuaca hari itu mendung, Budi tetap akan di rumah saja walau uangnya mencukupi.
Hal ini bisa kita implementasikan dengan menggunakan bantuan OPERATOR.
Operator | Keterangan |
---|---|
AND | Menghasilkan TRUE hanya jika dua kondisi terpenuhi. |
OR | Menghasilkan TRUE jika salah satu kondisi terpenuhi. |
NOT | Menghasilkan nilai kebalikan dari sebuah kondisi. Jika kondisi TRUE, maka operator ini akan menghasilkan FALSE. Begitu pula sebaliknya. |
Dengan tambahan cuaca sebagai pertimbangan, maka program dan bagan alur di atas kita modifikasi sebagai berikut.
program ContohPengkondisian;
uses Math, crt, SysUtils;
var
uangBudi : real;
cuaca : integer;
begin
clrscr;
Write('Uang Budi: ');
readln(uangBudi);
Write('Cuaca (1=cerah, 0=mendung): ');
readln(cuaca);
if (uangBudi>30000) and (cuaca=1) then
begin
Writeln('Budi pergi ke bioskop')
end
else
begin
Writeln('Budi di rumah saja')
end;
readln;
end.
Contoh Program
Sebagai pelengkap pembahasan, kita akan mencoba menyelesaikan beberapa soal yang erat kaitannya dengan pengkondisian.
Saya juga sengaja memberikan variasi yang berbeda dalam penulisan kode sumber untuk masing-masing soal agar teman-teman bisa mendapatkan tambahan referensi.
Ganjil Genap
User diminta untuk memasukkan sebuah angka. Program akan menentukan apakah angka tersebut termasuk angka ganjil atau genap.
Pada kasus ini, kunci utamanya adalah mengecek apakah bilangan atau angka yang diinputkan habis dibagi 2 atau tidak. Jika ya, maka angka tersebut merupakan bilangan genap. Sebaliknya, jika tidak, maka merupakan bilangan ganjil.
if (angka mod 2=0) then
begin
writeln(angka, ' merupakan bilangan genap');
end
else
begin
writeln(angka, ' merupakan bilangan ganjil');
end;
Kode sumber selengkapnya bisa diunduh melalui tautan yang tersedia di akhir artikel.
Generasi Baby Boomer, Gen X, Gen Y, atau Gen Z
User diminta untuk memasukkan tahun kelahiran. Program akan menentukan generasi user berdasarkan tahun kelahirannya tersebut. Acuan yang digunakan adalah sebagai berikut.
Tahun Lahir | Generasi |
---|---|
1944 – 1964 | Baby Boomer |
1965 – 1979 | Generasi X |
1980 – 1994 | Generasi Y (Millenial) |
1995 – 2015 | Generasi Z |
Di sini terdapat beberapa syarat yang harus dipenuhi sehingga kita harus hati-hati dalam menggunakan operator pengkondisian. Salah satu contohnya adalah untuk menentukan apakah user termasuk kaum millenial atau bukan.
if (tahunLahir>=1980) and (tahunLahir<=1994) then writeLn('Anda termasuk generasi Y / kaum millenial');
Kode sumber selengkapnya bisa diunduh melalui tautan yang tersedia di akhir artikel.
Menentukan Nilai Ujian
User diminta untuk memasukkan nilai ujiannya. Program akan menentukan apakah nilai ujian dari user termasuk nilai A, B, C, D, atau E.
Soal kali ini tidak jauh berbeda dengan sebelumnya. Kita hanya perlu mengecek rentang nilai untuk menentukan hasilnya.
Acuan yang digunakan adalah sebagai berikut.
Nilai Angka | Hasil |
---|---|
85-100 | A |
75-84 | B |
60-74 | C |
50-59 | D |
0-49 | E |
Kode sumber selengkapnya bisa diunduh melalui tautan yang tersedia di akhir artikel.
Gemuk atau Kurus
User diminta untuk memasukkan tinggi (cm) dan berat badan (kg). Program akan menghitung nilai BMI (Body Mass Index) atau Indeks Massa Tubuh berdasarkan dua inputan tersebut.
Rumus BMI adalah berat badan dibagi dengan hasil kuadrat tinggi badan dalam satuan meter.
Jika nilai BMI di bawah 18.5 berarti user termasuk kurus / kekurangan berat badan.
Jika berada di atas 25 berarti user termasuk gemuk / kelebihan berat badan.
Sedang jika berada di antaranya, maka ia termasuk langsing atau sehat.
Selain pengkondisian, poin utama dalam soal ini adalah rumus penghitungan BMI.
tinggi := tinggi / 100;
bmi := berat / (tinggi*tinggi);
Pada kode di atas, mula-mula kita mengubah input tinggi badan yang berupa centimeter ke dalam satuan meter dengan cara membaginya dengan 100.
Setelah itu baru kita bisa menghitung nilai BMI-nya sesuai dengan rumus di atas.
Kode sumber selengkapnya bisa diunduh melalui tautan yang tersedia di akhir artikel.
Penutup
Sesuai thumbnail, awalnya saya memang berniat untuk menggabungkan materi pengkondisian dan perulangan dalam satu bahasan artikel saja. Namun ternyata pembahasan mengenai pengkondisian ini lebih panjang dari yang saya perkirakan.
Agar lebih mudah dipahami, saya putuskan pada akhirnya untuk memisahkan kedua materi tersebut. Jadi, untuk bahasan berikutnya, bisa ditunggu mengenai konsep perulangan, ya.
Selamat belajar algoritma dan pemrograman!
P.S.: Seluruh file kode sumber dan flowchart bisa diunduh di sini.
Leave a Reply