Pascal : Percabangan (Program Control Bagian 2)

Kamis, Mei 28, 2015 Unknown 0 Comments





Di postingan sebelumnya kita telah mempelajari struktur Decision Making menggunakan konsep if statement. Namun konsep tersebut tidak efektif untuk beberapa kasus. Terutama apabila kasus yang ingin dievaluasi banyak jumlahnya. Untungnya Pascal menyediakan konsep lain, yaitu menggunakan case-statement dan sejenisnya. Case Statement sangat mirip dengan If Statement, hanya saja dalam Case Statement kita dapat mengevaluasi single character.

4. Case Statement (General)


sumber : www.tutorialspoint.com
Case statement secara general dapat digambarkan seperti gambar di atas. Adapun L1, L2, ... Ln adalah nilai dari input yang dapat bertipe data integer, char, maupun boolean.
Syntaxnya secara general adalah :

case <expression> of
    L1 : code block1;
    L2 : code block2;
    Ln : code blockn;
end;

Perhatikan bahwa setiap kali kita menggunakan case-of statement maka harus diakhiri dengan 'end;'
expression yang dimaksud dalam syntax tersebut adalah sesuatu (biasanya variable) yang nilainya mungkin terdapat pada L1, L2, maupun Ln.

Contoh implementasi :

var
     bilangan : integer;
begin
     write('Masukkan bilangan kurang dari 1000 : ');
     readln(bilangan);
     case bilangan of
         1.. 9  : writeln('Satuan');
         10..99 : writeln('Puluhan');
         100..999 : writeln('Ratusan');
     end;
end.

Apabila program di atas dijalankan, dan kita input nilai bilangan = 10 maka keluaran program akan menjadi :

Masukkan bilangan kurang dari 1000 : 10
Puluhan

5. Case-Else Statement


sumber : www.tutorialspoint.com
Bagaimana jika nilai yang ada dalam expression sama sekali tidak ada yang cocok dengan beberapa kondisi yang telah kita siapkan pada L1, L2, ... Ln ? Kita membutuhkan 'else' apabila tidak ada satupun yang memenuhi kondisi tersebut, dan cukup ubah syntax menjadi :

case <expression> of
    L1 : code block1;
    L2 : code block2;
    Ln : code blockn;
else
    codeblockelse;
end;

contoh implementasinya :

var
     bilangan : integer;
begin
     write('Masukkan bilangan kurang dari 1000 : ');readln(bilangan);
     case bilangan of
         1.. 9  : writeln('Satuan');
         10..99 : writeln('Puluhan');
         100..999 : writeln('Ratusan');
     else
         writeln('Input Salah!');
     end;
end.

Bila kita coba input 1000, maka keluarannya akan menjadi sebagai berikut :

Masukkan bilangan kurang dari 1000 : 1000
Input Salah!

6. Nested Case Statements

Sama seperti Nested If statement yang telah dibahas di posting sebelumnya, konsep Nested Case berarti 'ada case di dalam case'. Untuk mempermudah konsep, saya akan langsung memberikan contohnya :

var
     bilangan : integer;
     a : integer;
begin
     write('Masukkan bilangan kurang dari 10 : ');readln(bilangan);
     a := bilangan mod 2;
     case bilangan of
         1.. 9  : begin
                          write('Satuan');
                          case a of
                             1 : write (' Sekaligus Ganjil');
                             0 : write (' Sekaligus Genap');
                          end;
                     end;
    else
         writeln('Input Salah!');
     end;
end.

Kita coba input 8, maka outputnya adalah

Masukkan bilangan kurang dari 10 : 8
Satuan Sekaligus Genap

Note : Perhatikan bahwa jika code block terdiri dari beberapa statement, maka harus dibungkus menggunakan begin-end

Kira-kira itu saja yang dapat saya bagikan mengenai percabangan dalam Topik Program Control kali ini. Berikutnya akan saya bahas mengenai Looping/Perulangan. Terimakasih!

0 komentar: