P9 Seleksi & Perulangan
A. Sidiq Purnomo Program Studi Teknik Informatika Universitas Mercu Buana Yogyakarta SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Tujuan • Mahasiswa mampu mengetahui dan memahami : – Mengetahui dan memahami lebih lanjut Perulangan – Mengetahui dan memahami lebih lanjut seleksi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
2
Pembahasan • Perulangan • Perulangan dan Kondisi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
3
Lebih Lanjut Kondisi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
If Dengan Kondisi Berupa Suatu Variabel • Telah disebutkan sebelumnya bahwa suatu kondisi yang diseleksi dapat bernilai benar atau bernilai tidak benar (salah). • Nilai benar adalah nilai numerik satu dan nilai salah adalah nilai numerik nol.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
5
• Dengan demikian bentuk dari statemen if berikut ini : if(D==0) printf(“Nilai D adalah nol \n”); else printf(“Nilai D tidak sama dengan nol \n”)
• Dapat juga ditulis sebagai berikut : if(D) printf(“Nilai D tidak sama dengan nol\n”); else printf(“Nilai D adalah nol\n”); SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
6
• Statemen if(D) berarti adalah untuk menyeleksi apakah D bernilai benar atau dengan kata lain apakah D bernilai tidak sama dengan nol. – Jika nilai D adalah nol, hasil kondisi yang diseleksi adalah tidak benar, maka statemen setelah else
yang diproses. – Sebaliknya jika kondisi adlah bernilai benar (D tidak bernilai nol), statemen setelah if yang akan diproses. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
7
– Agar tidak membingungkan, bentuk dari statemen if dapat juga ditulis sebagai berikut ini (lebih jelas, tetapi kurang efektif). if(!D) printf(“Nilai D adalah nol\n”); else printf(“Nilai D tidak sama dengan nol\n”);
– statemen if(!D) berarti adalah jika D bernilai tidak benar atau D sama dengan nol (D==0) SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
8
Bentuk if Kondisi Jamak • Beberapa kondisi dapat diseleksi sekaligus dalam suatu statemen if dengan menggunakan operator logika (logical operator), yaitu operator && (AND),|| (OR) atau ! (NOT). • Contoh : – Misalnya nilai A=3, B=1, dan C=’Y’. penyeleksi kondisi jamak sebagai berikut ini akan
menghasilkan nilai nilai logika benar. if (A>5 || B && C==’Y’) printf(“Kondisi benar\n”); else printf(“Kondisi tidak benar\n”);
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
9
• Hasil dari penyeleksian kondisi ini dapat dievaluasi sebagai berikut ini. 1. Masing-masing kondisi yang berupa ungkapan hubungan diseleksi terlebih dahulu, karena operator hubungan mempunyai jenjang yang lebih tinggi dibandingkan dengan operator logika.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
10
2. Operator logika ‘&&’ mempunyai jenjang yang lebih tinggi dari operator logika ’||’, sehingga ungkapan logika (1 && 1) akan diseleksi terlebih dahulu dengan hasilnya adalah nilai logika 1 (benar).
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
11
3.Hasil akhir dari penyeleksian kondisi jamak ini adalah nilai logika 1 (benar) yang didapat dari hasil ungkapan logika (0 ||).
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
12
• Alternatif : – Kondisi dengan operator logika AND dapat diuraikan dalam bentuk if tersendiri yang diletakkan sebelum if semula. – Pada contoh sebelumnya, bentuk dari statemen if dapat dirubah dengan menggunakan bentu if bersarang sebagai berikut. if(C==’Y’) { if(A>5 || B) printf(“Kondisi benar\n”); else printf(“Kondisi tidak benar\n”); } SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
13
Penting : Selain jenjang dari operator logika menentukan hasil akhir dari penyeleksian kondisi jamak, kurung buka dan kurung tutup akan merubah urutan penyeleksian dengan hasil akhir yang dapat berbeda. Hasil dari penyeleksian kondisi ini : If(A>5 || B || C==’Y’ && A+B>20) Akan berbeda dengan hasil penyeleksi kondisi berikut : If((A>5 || B || C==’Y’) && A+B>20)
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
14
Lebih Lanjut Perulangan
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Statement For Tanpa Nilai Awal • Nilai awal dari pengontrol perulangan for tidak harus ada di dalam statemen for. • Tetapi dapat ditentukan sebelum perulangan for.
• Contoh :
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
16
• Keterangan : – Nilai awal dari variable S sebagai variable untuk mengontrol perulangan adalah 3 dan ditentukan sebelum perulangan for. – Dalam statement for awal ini tidak perlu ditulis kembali, tetapi tanda titik koma (;) harus tetap ditulis.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
17
Statement For Tanpa Peningkatan • Dalam statement for, ungkapan yang menunjukkan peningkatan nilai dari variable pengontrol perulangan for tidak harus ada di dalam statemen for. • Tetapi dapat dituliskan sebagai suatu statement yang nantinya akan diproses secara berulang-ulang.
• Contoh 1 :
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
18
• Contoh 2 :
• Keterangan : – Nilai Q++ tidak berdiri sendiri sebagai suatu statement, tetapi ada fungsi printf() untuk menampilkan hasilnya, – Nilai Q akan ditampilkan terlebih dahulu, baru kemudian akan ditambah nilainya dengan 1.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
19
• Contoh 3 :
• Keterangan : – Jika ditulis ++Q tidak sama dengan Q++. – Nilai Q akan ditambah dengan nilai 1 terlebih dahulu, kemudian baru akan ditampilkan hasilnya.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
20
Statement For Tanpa Nilai Awal dan Peningkatan • Nilai awal dan peningkatan yang digunakan sebagai variable pengontrol perulangan boleh tidak dituliskan dalam statement for.
• Contoh :
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
21
Statement For Tanpa Nilai Awal, Nilai Akhir dan Peningkatan • Statement for biasanya digunakan untuk membuat perulangan tanpa henti (infinite loop). • Perulangan tidak akan pernah berhenti karena kondisi yang digunakan untuk mengakhiri perulangan tidak ada di statement for.
• Contoh 1:
•
Keterangan : – Proses dalam program tersebut, tidak akan pernah berhenti.
Bagaimana menghentikannya ?
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
22
• Contoh 2 :
• Keterangan : – Program tersebut menggunakan statement for yang akan melakukan pemrosesan tanpa henti. – Tetapi kenapa output yang dihasilkan hanya sampai sekali saja ?
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
23
Variasi dalam perulangan • Berikut, akan diberikan beberapa contoh program yang menggunakan statement for yang sangat membingungkan jika dilihat sekilas. • Kondisi seperti ini banyak dijumpai dalam pemrograman C.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
24
•
Keterangan : – Program tersebut merupakan program yang merubah string (huruf kecil)
menjadi string (huruf kapital).
– Proses dari elemen string awal (Q=0) sampai pada elemen string terakhir (S[Q])
untuk masing-masing elemen yang ditunjukkan dengan peningkatan nilai (Q++).
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
25
Statement
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Statement Break • Statement break menyebabkan proses perulangan dihentikan. • Pernyataan break dapat digunakan untuk melanjutkan perulangan yang sedang dijalankan oleh statement for, while, atau do ... while loop.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
27
• Contoh :
• Keterangan : – Program tersebut menggunakan statement for yang akan melakukan pemrosesan tanpa henti. – Tetapi kenapa output yang dihasilkan hanya sampai sekali saja ?
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
28
Statement Continue • Statement continue menyebabkan proses perulangan kembali ke awal proses perulangan. • Pernyataan continue dapat digunakan untuk melanjutkan perulangan yang sedang dijalankan oleh statement for, while, atau do ... while loop.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
29
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
30
Statement goto • Statement goto dapat digunakan untuk melompat dari suatu proses ke proses lain yang menjadi tujuan dalam sebuah program. • Bentuk umum goto adalah sebagai berikut : goto label; • Contoh : goto stop; SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
31
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
32
Tugas • Dengan menggunakan statemen seleksi dan perulangan, dan statement continue, return dan break. • Buatlah algoritma (flowchart) dan program untuk menghitung : a.luas bangun persegi panjang b.luas bangun persegi
• Dengan ketentuan sebagai berikut : SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
33
1. Di awal eksekusi harus ada menu untuk memilih menghitung luas persegi atau persegi panjang. 2. Untuk luas persegi panjang, jika ukuran panjang & ukuran lebar nilainya min, maka eksekusi program akan kembali ke menu utama. Dan meninggalkan pesan : “Maaf tidak menerima nilai min” SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
34
3. Untuk luas persegi panjang, jika ukuran panjang < ukuran lebar, maka eksekusi program akan kembali ke menu utama. Dan meninggalkan pesan : 4. Jika telah selesai menghitung luas persegi/persegi panjang, maka eksekusi program akan kembali ke menu utama.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
35
5. Eksekusi program hanya akan berhenti jika, di tekan button tertentu pada keyboard misalnya 0. Dan meninggalkan pesan misalnya : “Selamat Tinggal Kawan ...!” “Jangan Lupa Belajar Mau Ujian !” “Good Luck ...! & C U Next Time !”
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
36
Ketentuan Tugas • Syarat Algortima dan Program : – Setiap output hasil eksekusi program harus mencantumkan NIM dan Nama.
• Pengumpulan : – Algoritma dan Source Code Tulis Tangan – Hasil Eksekusi Program di Print
• Batas akhir pengumpulan : – Kamis, 12 - 12 - 13 37