MINGGU III : KONTROL PROGRAM Pada pertemuan ini akan dijelaskan tentang bagaimana mengontrol aliran program. Pengontrolan aliran program dapat dilakukan dengan menggunakan percabangan dan perulangan. Selain percabangan dan perulangan, pada bagian ini juga akan diulas tentang array yang biasa digunakan dalam perulangan. Kompetensi Khusus Setelah mengikuti bagian ini diharapkan mahasiswa mampu membuat kontrol terhadap aliran program menggunakan percabangan dan perulangan. Materi Perkuliahan Kontrol terhadap program dilakukan melalui 2 hal yaitu percabangan dan perulangan. Maka topik pada bagian ini adalah seputar percabangan dan perulangan dalam C#. Namun sebelum kita membahas tentang kontrol program, terlebih dahulu akan dibahas tentang evaluasi kondisi. Evaluasi kondisi nantinya akan digunakan baik pada percabangan maupun pada perulangan. Evaluasi Kondisi Dalam kehidupan, proses pengambilan keputusan dilakukan dengan mempertimbangkan kondisi saat itu. Misalnya pernyataan berikut jika hari hujan, maka Ani tidak akan pergi ke kampus. Hari hujan merupakan kondisi yang menentukan pengambilan keputusan (pergi ke pasar atau tidak). Hal yang sama juga terjadi pada percabangan dan perulangan. Terjadinya percabangan atau perulangan, sangat tergantung pada kondisi yang tertentu. Statement yang digunakan untuk evaluasi kondisi biasanya menggunakan operator perbandingan seperti >, <, <=, >= dll. Hasil dari operator tersebut selalu bernilai TRUE atau FALSE. Statement-statement berikut adalah contoh statement yang digunakan untuk evaluasi kondisi ipk$<$2.0;$//evaluasi$d.o$mahasiswa$ ip$>$3.25;$//evaluasi$ip$untuk$menentukan$jatah$sks$ nilai$==$ A ;$ Seringkali statement yang digunakan untuk evaluasi kondisi lebih dari 1 statement. Pada kondisi ini bisa digunakan evaluasi bertingkat. Contohnya pada kasus mahasiswa DO. Mahasiswa dinyatakan DO jika Indeks Prestasi Kumulatifnya kecil dari 2.0 atau SKS yang telah diambilnya kurang dari 40 SKS. Jika pernyataan diatas dinyatakan dalam bentuk statement C# maka bentuknya evaluasi kondisinya adalah sebagai berikut. (ipk$<$2.0)$ $(sks$<40)$ 14
Dalam C# evaluasi kondisi selalu menghasilkan nilai boolean (TRUE atau FALSE). Hasil dari evaluasi kondisi inilah yang digunakan dalam percabangan dan perulangan untuk menentukan eksekusi percabangan atau perulangan tersebut. Percabangan Ada beberapa jenis percabangan yang dapat digunakan pada C#. Jenis percabangan tersebut adalah. 1. percabangan IF 2. Percabangan switch. Pada pembahasan berikut akan dibahas mengenai masing-masing jenis percabangan. Percabangan IF Percabangan IF pada merupakan percabangan yang paling dasar dalam C# (dan bahasa pemrograman lainnya). Percababgan IF memiliki beberapa jenis yaitu percabangan IF, percabangan IF ELSE dan percabangan IF ELSEIF ELSE. Berikut ini pembahasan masing-masing bentuk percabangan if. Percabangan if merupakan percabangan IF yang paling sederhana. Syntax dari percabangan if.. ini dapat dilihat pada gambar dibawah ini. If(booleanEkspression){$ Statement02;$ Statement03$ booleanekspression merupakan statement yang akan di evaluasi. Jika statement ini menghasilkan TRUE maka blok program yang ada dibawah if akan dieksekusi. Namun jika statement tersebut menghasilkan nilai FALSE. Maka blok program yang ada dibawahnya tidak akan dieksekusi, melainkan akan langsung mengeksekusi statement03 yang ada setelah blok percabangan tersebut. Sebuah blok kode merupakan statement-statement yang berada dalam tanda kurung kurawal. Statement-statement yang beradda dalam satu blok merupakan statement yang memiliki cakupan (scope) yang sama. Percabangan if..else memiliki sintaks yang mirip dengan percabangan if. Hanya saja pada percabangan if..else terdapat blok kode untuk else. Blok kode else ini hanya akan dieksekusi jika booelanekspression bernilai FALSE. Sintaks percabangan if else dapat dilihat pada gambar dibawah ini. If(booelanEkspression){$ 15
}else{$ Statement02;$ Statement03;$ Pada percabangan if..else ini, aliran program akan mengeksekusi salah satu blok kode dari percabangan. Jika booleanekspression bernilai TRUE maka blok statement01 yang akan dieksekusi namun jika booleanekpression bernilai FALSE, maka statement02 yang akan dijalankan. Kedua blok kode tersebut tidak akan pernah dijalankan secara berurutan atau tidak tidak dijalankan salah satunya. Percabangan if elseif else merupakan percabangan bertingkat. Pada percabangan jenis if..elseif..else ini terdapat lebih dari satu evaluasi kondisi. Sintaks percabangan ini adalah sebagai berikut. if(booleanexpression01){$ statement01;$ }elseif(booleanexpression02){$ Statement02;$ }elseif(booleanexpression03){$ Statement03;$ }else{$ Statement04;$ Pada percabangan ini evaluasi booleanekpression01 akan dievaluasi terlebih dahulu, Jika booleanexpression01 bernilai TRUE maka blok statement yang ada dibawahnya akan dieksekusi. Namun jika hasil evaluasi kondisi bernilai salah, akan dilanjutkan mengevaluasi booleanexpression02, begitu seterusnya. Pada percabangan jenis ini, evaluasi kondisi dilakukan mulai dari statement yang paling atas terus ke statement yang paling bawah sampai ditemukan hasil evaluasi kondisi yang bernilai TRUE. Jika hasil evaluasi kondisi tidak ada yang bernilai TRUE, maka blok else yang akan dieksekusi. Percabangan switch Bentuk percabangan yang berikutnya adalah percabangan switch. Percabangan ini merupakan penyederhanaan dari percabangan if elseif else. Perbedaannya disini adalah yang dievaluasi lebih spesifik pada nilai sebuah variabel. Sintaks dari percabangan ini adalah sebagai berikut. switch$(var02){$ case$0$:$$ statement01;$$ 16
break;$ case$1$:$ statement02;$ break;$ default:$ statement03;$ $ Var02 merupakan variable yang akan dievaluasi nilainya. Nilai dari variabel tersebut akan dicocokkan dengan nilai yang ada di depan keyword case. Jika ada yang cocok maka statement setelah case tersebut akan dieksekusi sampai ditemukan statement break atau sampai akhir blok switch. Jika tidak nilai variabel yang dievaluasi tidak ada yang cocok dengan nilai yang diberikan maka, akan dijalankan blok kode yang ada setelah default:. Perulangan Perulangan merupkan salah satu kontrol terhadap aliran eksekusi program. Ada 3 jenis perulangan yang dapat digunakan yaitu: 1. Perulangan While 2. Perulangan Do 3. Perulangan FOR Masing-masing perulangan pada dasarnya sama, yaitu mengeksekusi statement atau sekumpulan statement secara berulang-ulang tergantung kondisi hasil evaluasi. Namun masing-masing perulangan memiliki mekanisme perulangan yang berbeda-beda. Berikut ini akan dibahas mekanisme masing-masing jensi perulangan. Perulangan While Perulangan while memiliki sintaks yang mirip dengan percabangan IF, bahkan mekanisme eksekusinyapun mirip. Namun percabangan IF tidak digunakan untuk menjalankan kode program secara berulang-ulang. Berikut sintaks perulangan WHILE. $ While(booleanExpression01){$ $ Pada perulangan while booleanexpression01 akan dievaluasi terlebih dahulu. Hasil dari evaluasi tersebut akan menentukan eksekusi blok perulangan tersebut. Jika hasil evaluasi kondisi bernilai TRUE, maka blok perulangan akan dijalankan, dan dilanjutkan kembali dengan evaluasi kondisi. Jika hasil evaluasi kondisi berikutnya masih bernilai TRUE, maka 17
blok perulangan akan dijalankan kembali. Namun jika evaluasi kondisi bernilai FALSE maka blok perulangan tidak akan dijalankan dan perulangan selesai. Tahapan eksekusi perulangan while dapat dilihat pada tahapan berikut ini: 1. Evaluasi kondisi, jika bernilai TRUE lanjut ke step 2, jika FALSE ke step 4 2. Jalankan perulangan 3. Kembali ke step 1 4. Perulangan selesai. Catatan: Perulangan akan terus terjadi selama,hasil evaluasi kondisi bernilai TRUE. Oleh karena itu perlu diperhatikan mekanisme agar tidak terjadi infinite loop yaitu mekanisme untuk membuat hasil evaluasi kondisi bernilai FALSE. Perulangan Do Perulangan DO merupaka perulangan yang mirip dengan perulangan WHILE. Perbedaannya terletak pada urutan evaluasi kondisi. Para perulangan WHILE, evaluasi kondisi dilakukan pada awal perulangan, sedangkan pada perulangan DO, evaluasi kondisi dilakukan pada akhir perulangan. Mekanisme perulangan DO dapat dilihap ada tahapan berikut ini. 1. Jalankan blok perulangan 2. Evaluasi kondisi, jika TRUE kembali ke step 1, jika FALSE ke step 3 3. Perulangan selesai Pada mekanisme eksekusi perulangan diatas dapat dilihat bahwa evaluasi kondisi dijalankan setelah blok perulangan selesai dijalankan. Artinya pada perulangan do blok perulangan akan dijalankan terlebih dahulu tanpa mempertimbangkan hasil evaluasi kondisinya. Sintaks perulangan do dapat dilihat pada kode berikut ini Do{$ }while(booleanexpression01)$ $ Perulangan For Perulangan FOR merupakan perulangan yang lebih kompleks dibandingkan dengan perulangan DO atau perulangan WHILE. Hal ini dikarenakan pada perulangan FOR terdapat beberapa tambahan tahapan dalam eksekusi perulangan. Sebelum kita lihat mekanisme eksekusi perulangan for, berikut ini merupakan sintaks perulangan FOR For(initialisasi$;$booleanExpression;$update_control){$ 18
Statement02;$ Pada perulangan for, terdapat 3 statement yang menjadi bagian dari perulangan. Statement pada bagian inisialiasi merupakan statement yang akan dieksekusi sebelum perulangan dijalankan. Sedangkan statement booleanexpression merupakan statement yang akan menjadi evaluasi kondisinya. Jika statement ini bernilai TRUE maka blok perulangan akan dijalankan sedangkan jika bernilai FALSE maka blok tidak akan dijalankan (perulangan selesai). Bagian ketiga dalam perulangan FOR adalah bagian update control, statement ini dieksekusi setiap kali 1 iterasi perulangan dijalankan. Mekanisme eksekusi perulangan for dapat dilihat pada tahapan berikut ini 1. Jalankan statement inisialisasi 2. Evaluasi kondisi, jika TRUE ke step 3, jika FALSE ke step 6 3. Jalankan blok perulangan 4. Jalankan statement update control 5. Kembali ke step 2 6. Perulangan selesai Dapat dilihat dari mekanisme eksekusi perulangan FOR bahwa perulangan ini lebih kompleks dibandingkan dengan perulangan lainnya. Kontrol Perulangan Dari ketiga jenis perulangan yang telah dijelaskan sebelumnya, dapat disimpulman bahwa eksekusi perulangan sangat tergantung dari hasil evaluasi kondisi pada statement perulangan tersebut. Jika hasil evaluasi kondisi bernilai TRUE, maka perulangan dijalankan, namun jika hasil evaluasi kondisi bernilai FALSE, maka eksekusi perulangan selesai. Selain hasil dari evaluasi kondisi, kontrol perulangan dapat dilakukan dengan menggunakan dua buah statement berikut ini. 1. Statement continue 2. Statement break. Berikut penjelasan masing-masing statement. Statement continue. Statement continue akan menghentikan akan memulai iterasi yang baru. Statement-statement yang terletak setelah statement continue dalam perulangan tersebut tidak akan dieksekusi. Namun demikian, perulangan tetap dijalankan. Statement break. 19
Statement break akan menghentikan perulangan seluruhnya. Jika saat perulangan tersebut dijalankan, ditemukan statement break. Makan perulangan dianggap telah selesai. Eksekusi program akan dilanjutkan keluar dari blok perulangan. 20