Analisis kasus adalah konstruktor terpenting dalam algoritma pemrograman sehingga membuat teks algoritma yang sama dapat menghasilkan eksekusi yang berbeda-beda. Setiap statement dalam pascal normalnya dijalankan secara sekuensial ( beruntun ), dari atas kebawah seperti yang tertulis pada source code programnya. Analisis kasus dapat merubah urutan eksekusi.
Jika kita mendefinisikan analisis kasus berarti juga mendefinisikan :
Kondisi : yang berupa suatu ekpresi Boolean yang menghasilkan true atau false.
Aksi : yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan dipenuhi.
Suatu aksi hanya akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan terpenuhi (bernilai true). Penentuan kondisi Boolean dan aksi yang dilakukan bergantung pada jumlah kasus yang terdapat pada masalah tersebut.
Ungkapan kondisi dapat dihasilkan dengan operator perbandingan dan operator logika. ungkapan kondisi dapat dibentuk dengan mengkombinasikan operand yang bertipe sama dengan salah satu operator.
Contoh Kondisi:
X > y A + b >1 Str = ‘daspro’ Ketemu = true | I >= 100 Not true ( x < 0) and (y>20) ( x<0) or (y > 20) |
Struktur if…then
Satu kasus
Bentuk ini menunjukan, jika (if) kondisi yang diseleksi adalah benar( true ) maka statement yang mengikutinya akan diproses. Sebaliknya jika tidak benar (false) maka statement berikutnya tidak diproses.
Sintaks dalam pascal | |
If kondisi then Aksi; | If kondisi then Begin Aksi 1; Aksi 2; … End; |
Jika kondisi true (benar), maka aksi dikerjakan. Jika kondisi false ( tidak benar) maka tidak terjadi apa-apa (efek neto “kosong”)
Program Menerima masukan sebuad nama,jika nama tidak diisi tampilkan pesan
Program Name; Uses crt; var nama:string; begin clrscr; write('ketikan nama anda:'); readln(nama); if nama='' then writeln('isi dulu nama anda!!'); readln; end.
Program untuk mengecek apakah sebuah bilangan termasuk bilangan genap atau bukan. Jika termasuk bilangan genap tampilkan pesan.
program Bilangan_genap; uses crt; var bil:integer; begin clrscr; write('Masukan bilangan :'); readln(bil); if bil mod 2=0 then begin writeln('bilangan genap'); writeln('pengecekan bilangan selesai'); end; readln; end.
Dua kasus komplementer. (Bahasa kerennya If-Else bercabang)
Sintaks untuk analisis dengan dua kasus adalah dengan menggunakan struktur IF-ELSE
Sintaks dalam pascal | |
If kondisi then Aksi1 Else Aksi2; | If kondisi then Begin Aksi1; ….. End Else Begin Aksi2; . . . . End; |
Aksi satu akan dilaksanakan jika kondisi bernilai true (benar), tetapi jika kondisi bernilai false (salah), maka aksi-aksi yang akan dilaksanakan, ‘else’ menyatakan ingkaran/negasi dari kondisi.
Program untuk mengecek apakah sebuah bilangan termasuk bilangan genap atau bilangan ganjil.Jika termasuk bilangan genap,tampilkan pesan ’bilangan genap’,Jika termasuk bilangan ganjil tampilkan pesan’bilangan ganjil’
program genap_ganjil; uses crt; var bil:integer; begin clrscr; write('masukan bilangan :'); readln(bil); if bil mod 2 = 0 then writeln('bilangan genap') else writeln('bilangan ganjil'); readln; end.
Program untuk menentukan bilangan terbesar diantara dua bilangan yang dimasukkan.
program bilangan_terbesar; uses crt; var bill,bil2:integer; begin clrscr; write('masukan 2 bilangan :'); readln(bill,bil2); if bill>bil2 then begin writeln(bill,'>',bil2); writeln(bill,'bilangan terbesar'); end else begin writeln(bil2,'>',bill); writeln(bil2,'bilangan terbesar'); end; readln; end.
Struktur case…of
Struktur case-of dapat menyederhanakan penulisan if-else yang bertingkat-tingkat pada permasalahan dengan dua kasus atau lebih.
Sintaks dalam pascal | |
Case nama_variabel of Nilai1 : nilai2; Nilai2 : aksi2; . . . nilaiN : aksiN; [else aksiX;] End; | Case nama_variabel of Nilai1 : begin Aksi1; Aksi2; . . . . End; Nilai2 : aksi3; . . . nilaiN : aksiN; [else aksiX;] End; |
Nama variable sudah dideklarasikan sebelumnya dan sudah berisi nilai tertentu yang memiliki tipe data yang sama dengan nilai1, nilai2,…..nilaiN
Nilai1, nilai2,….,nilaiN adalah nilai yang bertipe integer, char, atau Boolean.
Program penentuan nama bulan jika diinput nomor bulannya
Program Nama_bulan; Uses crt; Var bulan:integer; begin clrscr; write('masukan nomor bulan: '); readln(bulan); case bulan of 1:writeln('januari'); 2:writeln('februari'); 3:writeln('maret'); 4:writeln('april'); 5:writeln('mei'); 6:writeln('juni'); 7:writeln('juli'); 8:writeln('agustus'); 9:writeln('september'); 10:writeln('oktober'); 11:writeln('november'); 12:writeln('desember'); else writeln('bukan bulan yang benar'); end; readln; end.
0 Comments:
Posting Komentar