Membuat keputusan
Dalam aplikasi kehidupan nyata, Anda biasanya perlu mengubah urutan eksekusi sesuai dengan kondisi yang ditentukan. Kadang-kadang Anda perlu menggunakan kondisi sederhana seperti: "Jika dingin, pakailah mantel Anda". Dalam pernyataan ini tindakan resultan diambil jika kondisi dievaluasi sebagai BENAR (cuaca dingin). Namun, jika cuacanya baik, seluruh pernyataan akan dilewati. Beberapa kondisi bisa berlipat ganda, seperti yang ada di percakapan berikut: Baiklah, jika saya pulang lebih awal dari kerja, saya akan melihat Anda malam ini; jika sudah terlambat, saya akan melakukannya besok; kalau tidak, jika saudara laki-laki saya datang besok kita bisa berkumpul pada hari Selasa; kalau tidak, jika Selasa adalah hari libur maka biarlah hari Rabu; kalau tidak, saya akan menelepon Anda untuk mengatur pertemuan berikutnya! "
Sebenarnya, program Anda dapat dengan mudah menangani kondisi berantai, atau bersarang, selama Anda menulis kode yang memadai. Di Pascal ada dua struktur kontrol yang digunakan untuk menangani kondisi dan keputusan yang dihasilkannya: konstruksi pilihan biner IF-THEN-ELSE dan pilihan ganda dapat dilakukan dengan CASE.
Keputusan Sederhana: IF-THEN
Untuk mengekspresikan kondisi sederhana Anda dapat menggunakan pernyataan IF-THEN, seperti pada contoh berikut:
IF Age < 18 THEN
WRITELN('Umur Anda di bawah 18 Tahun')
Pernyataan tersebut dimulai dengan kata kunci IF, diikuti dengan ekspresi Boolean (kondisi yang akan diuji), diikuti oleh kata kunci THEN, diikuti dengan hasil yang akan dieksekusi jika kondisinya BENAR (pernyataan WRITELN). Seperti yang Anda lihat, konstruksi IF adalah satu pernyataan yang diakhiri dengan titik koma. Jika nilai variabel Umur kurang dari 18, bagian setelah kata kunci THEN dijalankan; jika tidak, seluruh pernyataan dilewati, dan eksekusi program melanjutkan aliran aslinya pada pernyataan berikutnya. Jenis kontrol program ini disebut percabangan bersyarat.
Pernyataan IF-THEN berbentuk umum:
JIKA (kondisi benar ) MAKA
pernyataan;
Susunannya ditulis dalam dua baris hanya agar mudah dibaca, tetapi ini adalah satu pernyataan yang diakhiri dengan titik koma, dan tidak ada kewajiban untuk meninggalkan spasi ekstra. Anda hanya perlu memisahkan kata kunci (seperti IF dan THEN) dari pernyataan lainnya dengan setidaknya satu spasi.
Contoh: Pengambilan Kartu Kredit Pascal
PROGRAM
PROGRAM FungsiIfKeSatu(INPUT,OUTPUT);
CONST Limit = 1000; VAR Jumlah... :REAL;
BEGIN
WRITE('Masukan Jumlah:'); READLN(Jumlah...);
IF Jumlah... <= Limit THEN WRITELN('Tagihan Anda diterima.');
WRITELN('Tekan ENTER untuk melanjutkan..'); READLN
END.
PROGRAM FungsiIfKeDua(INPUT,OUTPUT);
CONST Limit = 1000; VAR Jumlah :REAL;
BEGIN
WRITE('Isi Jumlah Jumlah:'); READLN(Jumlah);
IF Jumlah <= Limit THEN
WRITELN('Tagihan di Terima');
IF Jumlah > Limit THEN
WRITELN('Limit tidak mencukupi');
WRITELN('Press ENTER to continue..');
READLN
END.
{-FungsiIfKeDua-}
Using Blocks
{-FungsiIfKeTiga-}
PROGRAM FungsiIfKeTiga(INPUT,OUTPUT);
CONST Limit = 1000; VAR Jumlah :REAL;
BEGIN
WRITE('Isi Jumlah:');
READLN(Jumlah); IF Jumlah <= Limit THEN BEGIN
WRITELN('Pembayaran di Terima.');
WRITELN('Total Pembayaran Pajak Menjadi ',1.05*Jumlah:0:2)
END;
IF Jumlah > Limit THEN BEGIN
WRITELN('Saldo tidak mencukupi') ;
WRITELN('Sisa Saldo',Limit) { The semicolon is optional }
END;
WRITELN('Terima Kasih');
WRITELN('Press ENTER to continue..');
READLN
END.
{-FungsiIfKeTiga-}
The IF-THEN-ELSE
{-FungsiIfKeEmpat-}
PROGRAM CreditCard(INPUT,OUTPUT);
CONST Limit = 1000; VAR Jumlah :REAL;
BEGIN
WRITE('Isi Jumlah:'); READLN(Jumlah);
IF Jumlah <= Limit THEN BEGIN
WRITELN('Pembayaran di Teritma');
WRITELN('Pembayaran di tambah Pajak',1.05*Jumlah:0:2)
END
ELSE
BEGIN
WRITELN('Saldo tidak mencukupi');
WRITELN('Sisa Saldo adalah ',Limit)
END;
WRITELN('Terima Kasih');
{-FungsiIfKeEmpat-}
Penguji Karakter
{-FungsiIfKeLima-}
PROGRAM FungsiIfKeLimat(INPUT,OUTPUT);
VAR InputChar :CHAR;
BEGIN
WRITE('Please enter an alphabetic character:'); READLN(InputChar);
IF (ORD(InputChar) > 64) AND (ORD(InputChar) < 91) THEN WRITELN('Ini adalah huruf besar.')
ELSE IF (ORD(InputChar) > 96) AND (ORD(InputChar) < 123) THEN WRITELN('Ini adalah huruf kecil.')
ELSE IF (ORD(InputChar) > 47) AND (ORD(InputChar) < 58) THEN WRITELN('Hei, ini angka!')
ELSE WRITELN('Maaf, ini bukan surat.');
WRITELN('Tekan ENTER untuk melanjutkan ..');
READLN
END.
{-FungsiIfKeLima-}
{-FungsiIfKeEnam-}
PROGRAM MencariNilaiMatakuliah(INPUT,OUTPUT); VAR Score :INTEGER;
BEGIN
WRITE('Please enter the score:');
READLN(Score);
WRITELN;
IF Score > 59 THEN
IF Score > 69 THEN
IF Score > 79 THEN
IF Score > 89 THEN
WRITELN('Excellent. Your grade is ''A''')
ELSE WRITELN('Very good. Your grade is ''B''')
ELSE WRITELN('Good. Your grade is ''C''')
ELSE WRITELN('Passed. Your grade is ''D''')
ELSE WRITELN('Better luck next time. Your grade is ''F''');
WRITELN('Press ENTER to continue..');
READLN
END.
{-FungsiIfKeEnam-}
Fungsi Case
{-FungsiIfKeEnam-}
{-FungsiCaseKeSatu-}
PROGRAM FungsiCase(INPUT,OUTPUT);
CONST Baju = 25; Celana = 10; Sandal = 5;
VAR CoinWeight, Bayar :INTEGER;
BEGIN
WRITE('Pilih Nomor:'); READLN(CoinWeight);
CASE CoinWeight OF
35 : Bayar := Baju;
7 : Bayar := Celana;
15 : Bayar := Sandal;
END;
WRITELN('Bayar Sebanya ', Bayar, ' Rupiah'); READLN
END.
{-FungsiCaseKeSatu-}
Sangat jelas materi yang Bapak tulis dan jelaskan. Semoga saya bisa menjalankan nya.
BalasHapusApakah bisa langsung di praktek kan pak?
BalasHapusJelas pak,makasih
BalasHapusApa kita butuh alat praktek pak ?
BalasHapusterimakasih atas materi yang diberikan pak,sangat jelas materinya. akan sya coba praktekan pak...
BalasHapusApakah yang dimaksud dengan program Using Blocks..?dan apa fungsi program tersebut.?
BalasHapusTrimakasih
Mengapa harus menggunakan kondisi if then else dan case of?
BalasHapusTerimakasih
Masih sulit untuk di mengerti pak
BalasHapusMasih kurang paham pak
BalasHapusTerimakasih untuk materinya pak. Akan saya pelajari
BalasHapusSaya kurang mengerti pak,bisakah dipraktekkan pak?
BalasHapusTerima kasih
Komentar ini telah dihapus oleh pengarang.
BalasHapusMasih bingung 🤦🏻♂️
BalasHapusMaaf pak, saya kurang mengerti dibagian penguji karakter
BalasHapusSaya kurang ngerti yang penguji karakter itu pak
BalasHapusApa Fungsi Dari TRUE DAN FALSE
BalasHapusdalam Pemograman?
Saya kurang ngerti pak sama yang penguji karakter
BalasHapusVakum pak...
BalasHapusApakah nanti ada prakteknya pak .saya masih belom paham
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusApa kegunaan sederhana if then else dalam kehidupan sehari hari?
BalasHapusbagaimana jika writeln nya lebih dari satu pak?
BalasHapusMengapa harus menggunakan kartu kredit pascal pak
BalasHapusMaaf pak masih belum paham
BalasHapusPosting Komentar