Pengkondisian Dalam Pascal dan Flowgorithm

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.

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.

kasus pengkondisian

kasus pengkondisian

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.

StatementKeterangan
if – thenMelakukan pengecekan terhadap sebuah kondisi dan mengeksekusi perintah selanjutnya apabila kondisi tersebut terpenuhi.
if – else – thenMelakukan 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.

flowchart budi nonton bioskop

flowchart budi nonton bioskop

Seperti ini hasilnya jika dijalankan dalam Flowgorithm.

output flowgorithm kasus budi

output flowgorithm kasus budi

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.

OperatorKeterangan
ANDMenghasilkan TRUE hanya jika dua kondisi terpenuhi.
ORMenghasilkan TRUE jika salah satu kondisi terpenuhi.
NOTMenghasilkan 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.

flowchart budi nonton bioskop lihat cuaca

flowchart budi nonton bioskop lihat cuaca

output flowgorithm budi nonton bioskop lihat cuaca

output flowgorithm budi nonton bioskop lihat cuaca

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 LahirGenerasi
1944 – 1964Baby Boomer
1965 – 1979Generasi X
1980 – 1994Generasi Y (Millenial)
1995 – 2015Generasi 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 AngkaHasil
85-100A
75-84B
60-74C
50-59D
0-49E

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.

pascal perulangan pengkondisian

Leave a Reply