Pascal : Percabangan (Program Control Bagian 2)
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: