Bab 4 Teknik Pemilihan Dalam Pemrograman

download Bab 4 Teknik Pemilihan Dalam Pemrograman

of 8

Transcript of Bab 4 Teknik Pemilihan Dalam Pemrograman

BAB IV PROSES PEMILIHAN DALAM PEMROGRAMANPertemuan Minggu IV Alokasi Waktu Standar Kompetensi Kompetensi Dasar Indikator : : : : : 4 Jam Pertemuan Mahasiswa dapat membuat program komputer sederhana dengan menggunakan bahasa C Memahami program komputer yang mengandung unsur Pemilihan Mahasiswa dapat memahami struktur pemrograman if, if else, nested if, swith case. Mahasiswa dapat membuat program dengan melibatkan struktur pemilihan

1.1. STRUKTUR IF - ELSEPenyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses. Penyeleksian kondisi dapat diibaratkan sebagai katup atau kran yang mengatur jalannya air. Bila katup terbuka maka air akan mengalir dan sebaliknya bila katup tertutup air tidak akan mengalir atau akan mengalir melalui tempat lain. Fungsi penyeleksian kondisi penting artinya dalam penyusunan bahasa C, terutama untuk program yang kompleks (Achmad Solichin) C menyediakan kata kunci if else untuk menyeleksi kondisi pernyataan, jika pernyataan tersebut bernilai benar atau sesuai dengan kondisi yang dinginkan maka pernyataan tersebut akan dijalankan. Sebaliknya jika penyataan yang di periksa tidak sesuai dengan kondisi maka pernyataan tersebut tidak dijalankan atau menjalankan penyataan yang lain.Hari ini Hujan?

Gambar 4.1Ya

Diagram Alir Struktur Pemilihan Suatu Kondisi

Tidak

Pernyataan 1

Pernyataan 2

1. Pernyataan 1 : Membawa Payung 2. Pernyataan 2 : Berangkat Sekolah Pada gambar di atas peryataan tersbut mengisyaratkan bahwa Jika hari ini Hujan maka, Saya akan membawa payung dan akan berangkat sekolah Jika hari ini tidak hujan maka saya berangkat sekolah. Pernyataan tersebut mengisyaratkan ada sebuah kondisi yang harus di periksa sebelum melakukan aktivitas selanjutnya. Contoh lain dalam kehidupan sehari-hari dimana kita diharuskan memeriksa suatu kondisi tertentu unutk membuat keputusan selanjutnya. 1. Jika Andi mendapatkan nilai >= 70 maka Andi Lulus 1

2. Jika Andi mendapatkan nilai < 70 maka Andi tidak lulus Pernyataan tersebut di atas jika diterjemahkan dalam algoritma pemrograman menjadiIf Nilai >= 70 --------- >(Ekspresi) Lulus ---------- >(Pernyataan 1) Else Tidak Lulus ---- >(Pernyataan 2)

Dalam hal ini ekspresi yang pertama yaitu Apakah Nilai yang di periksa >= 70, jika Nilai yang di periksa semisal 80 maka pernyataan tersebut benar adanya maka pernyataan LULUS akan dieksekusi. Jika nilai yang diperiksa semisal 65 maka pernyataan Tidak Lulus akan dieksekusi. Pada contoh diatas blok program dari if else hanya di isi oleh masing-masing satu peryataan. Berikut merupakan struktur if else dengan pernyataan yang lebih dari satuIf (Kondisi Pemilihan) --------- > (Ekspresi) { (Blok Pernyataan 1) } Else { (Blok Pernyataan 2) }

Berikut adalah contoh algortima dengan melibatkan lebih dari satu pernyataan untuk tiap bloknyaIf Nilai >= 85 --------- >(Ekspresi) { Lulus ------ > (Blok Pernyataan 1) Dengan predikat sangat memuaskan } Else { Tidak Lulus ------ > (Blok Pernyataan 2) Mengulang Semester Depan }

Program yang melibatkan suatu kondisi pemilihan juga dapat dibuat secara bertingkat, pemeriksaan kondisi bertingkat juga dapat dilakukan dengan melibatkan operator logika seperti operator AND (&&) dan operator OR ( | | ), sebagai contoh perhatikan pernyataan dibawah iniJika Mahasiwa mempunyai nilai lebih dari atau sama dengan 85 Maka Mahasiswa tersebut mendapat nilai A Jika Mahasiswa mempunyai nilai antara 70 sampai 85 Maka Mahasiswa tersebut mendapat nilai B Jika Mahasiswa mempunyai nilai antara 60 sampai 70 Maka Mahasiswa tersebut mendapat nilai C

Jika diperhatikan ada beberapa rentang nilai seperti 70 sampai 85, 60 sampai 70 yang harus di periksa untuk mendapatkan kesimpulan yang benar, berikut adalah algoritma untuk mengevaluasi pernyataan diatasif (nilai >= 85 ) { Nilai A } if else ( (nilai >= 70 ) && (nilai < 85) ) { Nilai B

2

} if else ( (nilai >= 60 ) && (nilai < 07) ) { Nilai C }

Contoh 4.1#include #include main() { int nilai; printf("Masukan Nilai Anda : "); scanf("%d",&nilai); if (nilai < 70) printf("Tidak Lulus"); else printf("Lulus"); getch(); }

Pada contoh 4.1 memperlihatkan suatu pemilihan kondisi sederhana, yaitu hanya tersedia dua pilihan Jika tidak ini maka itu. Program pada contoh 4.1 akan menguji angka yang dimasukan oleh pengguna, masukan tersebut ditampung di dalam variable nilai. Pada tahap selanjutnya program akan menguji variable nilai, jika nilai mempunyai harga dibawah 70 maka dilayar computer akan muncul pernyataan tidak lulus akan tetapi jika anda memasukan angka diatas 70 maka dilayar computer akan muncul pernyataan lulus. Contoh 4.2#include #include main() { int hari; printf("Masukan Angka Untuk Mewakili Hari : "); scanf("%d",&hari); if (hari==1) { printf("Senin"); } if (hari==2) { printf("Selasa"); } if (hari==3) { printf("Rabu");

3

} if (hari==4) { printf("Kamis"); } getch(); }

Pada contoh 4.2 program menyatakan struktur setiap if yang mempunyai blok program, setiap struktur if dipisahkan oleh pasangan tanda kurung kurawal. Program ini akan menyeleksi setiap angka yang pengguna masukan, ketika angka yang dimasukan sesuai dengan salah satu kondisi yang ada maka tulisan Senin, Selasa, dst akan ditampilkan pada layar computer.

1.2. STRUKTUR SWITCH - CASEBahasa C juga menyediakan keyword Switch Case untuk menyederhanakan pemrograman if else. Keyword ini menjadikan struktur pemrograman if else menjadi lebih mudah dalam melakukan pemilihan suatu kondisi. Berikut adalah bentuk umum dari sikntaks switch caseswitch (menu) { case 1: Anda Memilih menu Pertama Break case 2 : Anda Memilih menu kedua break case 3 : Anda Memilih menu ketiga break default : Pilihan Anda Salah }

Pada pemrograman diatas keyword Switch Case mempunyai struktur pemilihan yang berpedoman pada jumlah case yang menjadi pemilihan. Berikut adalah contoh penggunaan dari switch case untuk melakukan proses pemilihan Contoh 4.3#include #include main() { int menu; clrscr(); puts("Menu Menghitung Luas Bangun\n"); puts("1. Luas Bangun Persegi Panjang\n"); puts("2. Luas Bangun Lingkaran\n"); puts("3. Luas Bangun Segitiga\n"); puts("4. Keluar Program.....\n"); printf("Masukan Angka (1-3) untuk memilih menu : "); scanf("%d", &menu);

4

switch (menu) { case 1: printf("Program untuk break; case 2: printf("Program untuk break; case 3: printf("Program untuk break; case 4: printf("Keluar Program"); break; } getch(); }

menghitung luas Persegi Panjang"); menghitung luas Lingkaran"); menghitung luas Lingkaran");

Program yang melibatkan suatu kondisi pemilihan juga dapat dibuat secara bertingkat atau yang lebih dikenal dengan istilah if else bersarang (nested). Gambar dibwah ini menunjukan diagram alir proses pengeksekusian blok pernyataan yang menggunakan if else bersarang.if(i) { if(j) Pernyataan_1(); if(k) Pernyataan_2(); else Pernyataan_3(); /* Kondisi else yang berhubungan dengan if(k) */ } else Pernyataan_4(); /* associated with if(i) */

Pemilihan_1? Tidak Ya Pernyataan 1

Gambar 4.2 Diagram Alir Struktur Pemilihan Suatu Kondisi Bersarang

Ya Pemilihan_2? Tidak Pernyataan 4

Pernyataan 3

Pernyataan 2

Diagram Alir pemilihan kondisi bersarang tersebut menunjukan bahwa suatu kondisi mula-mula akan diperiksa pada pemilihan_1 jika bernilai benar maka pernyataan 1 akan dieksekusi, akan tetapi jika salah pernyataan 2 yang akan dieksekusi. Jika pemeriksaan pada kondisi pemilihan 1 bernilai benar maka kondisi tersebut juga akan diperiksa pada pemilihan 2, jika kondisi yang dipriksa bernilai benar maka

5

pernyataan 3 akan dieksekusi apabila kondisi yang diperiksa bernilai salah maka penrnyataan 4 yang akan dieksekusi. Contoh 4.4#include #include main() { int nilai=75; if (nilai>=80) { printf("Lulus\n"); if (nilai >=95) { printf("Anak Jenius"); } else { printf("Anak Pandai"); } } else { printf("Belum Lulus\n"); printf("Mengulang Tahun depan"); } getch(); }

PengayaanLatihan 4.1 #include #include main() { int mi, pasta, sikat, jml1, jml2, jml3, total; float bayar; puts("Harga Mi Instran Persatuan Rp. 800"); puts("Harga Pasta Gigi Persatuan Rp. 1000"); puts("Harga Sikat Gigi Persatuan Rp. 1500"); puts("Masukan jumlah yang barang yang ingin Anda beli"); puts("Bila tidak ingin membeli masukan angka nol (0)"); printf("Berapa jumlah Mi Instan Yang ingin Anda Beli : "); scanf("%d",&mi); printf("Berapa jumlah Pasta Gigi Yang ingin Anda Beli : "); scanf("%d",&pasta); printf("Berapa jumlah Sikat Gigi Yang ingin Anda Beli : "); scanf("%d",&sikat); jml1 = 800 * mi;

6

jml2 = 1000 * pasta; jml3 = 1500 * sikat; total = jml1 + jml2 + jml3; if (total > 10000) { bayar = 0.9 * total; printf("Total Bayar = %.0f",bayar); } if (mi > 5) { bayar = total - 800; printf("Total Bayar = %.0f",bayar); } if (total > 10000) && (mi > 5) { bayar = (0.9 * total) - 800; printf("Total Bayar = %.0f",bayar); } getch(); } Latihan 4.2 #include #include main() { int angka; printf("Masukan Sembarang Angka untuk di uji: "); scanf("%d",&angka); if(angka%2 == 0) { printf("\nBilangan Yang Anda Masukan Angka Genap"); if((angka/2)%2 == 0) { printf("\nHasil Bagi Dua dari bilangan tersebut juga Genap"); } else { printf("\nHasil Bagi Dua dari bilangan tersebut Angka Ganjil"); } } else { printf("Bilangan Yang Anda Masukan Angka Ganjil"); } getch(); } Latihan 4.3

7

#include #include int main(void) { char letter = 0; /* Stores a character */ printf("Enter an uppercase letter:"); /* Prompt for input */ scanf("%c", &letter); /* Read a character */ if(letter >= 'A') /* Is it A or greater? */ if(letter