pertemuan 6 penyeleksian (2)
DESCRIPTION
Pembahasan seleksiTRANSCRIPT
-
TEL 2112Dasar Komputer & Pemograman
PenyeleksianAbdillah, S.Si, MITEmail: [email protected]: http://abdill01.wordpress.com
-
TujuanMahasiswa mampu memecahkan masalah dalam sebuah algoritma pemecahan masalah menggunakan struktur penyeleksian.
-
Struktur Dasar AlgoritmaRuntunan (sequence)Sebuah runtunan terdiri atas satu atau lebih pernyataan yang dikerjakan secara berurutan.Penyeleksian (selection)Sebuah aksi dikerjakan jika kondisi tertentu terpenuhi.Pengulangan (repetition)Memungkinkan banyak aksi dikerjakan dengan satu instruksi.
-
RuntunanAlgoritma merupakan runtunan satu atau lebih instruksi yang berarti bahwa:1. Tiap instruksi dikerjakan satu per satu2. Tiap instruksi dikerjakan tepat satu kali3. Urutan instruksi yang dilaksanakan kompiler sama dengan urutan instruksi dalam algoritma4. Instruksi terakhir merupakan akhir algoritma
-
Penyeleksian & PengulanganSejauh ini kita bahas algoritma yang dikerjakan berurutan. Untuk program yang lebih rumit, proses pengerjaan program boleh tidak berurutan, seperti penyeleksian kondisi dan pengulangan.
-
Struktur PenyeleksianAda 2 macam struktur penyeleksian. Pemilihan konstruksi yang tepat bergantung pada jumlah kasus yang akan diseleksi.1. Pernyataan IF-THEN-ELSE2. Pernyataan CASEPenggunaan struktur IF-THEN-ELSE jika jumlah kasus tidak banyak. Untuk jumlah kasus yang banyak, konstruksi CASE dapat menyederhanakan penulisan.
-
Dua KasusNotasi algoritmik untuk analisis dengan dua kasus adalah dengan menggunakan konstruksi if-then dalam bentuk pernyataan:
if kondisi then pernyataan_1else pernyataan_2endif
-
Contoh Dua KasusPROGRAM Genap_Ganjil{ Mencetak pesan genap jika yang dibaca dari piranti masukan adalah bilangan genapilangan genap, dan mencetak ganjil jika genap }
DEKLARASIx : integer
ALGORITMA:read xif x mod 2 = 0 then { kasus 1 } write (genap)else { kasus 2 } write (ganjil)endif
-
Translasi ke Program C/* Program Genap_Ganjil */#include void main(){ int x; printf("Ketikkan sebuah bilangan: "); scanf("%d", &x); if (x % 2 == 0) printf("Bilangan genap"); else printf("Bilangan ganjil");}
-
Tiga KasusNotasi algoritmik untuk analisis dengan tiga kasus adalah:
if kondisi_1 then { kasus 1 } pernyataan_1else if kondisi _2 then { kasus 2 } pernyataan_2 else { kasus 3 } pernyataan_3 endifendif
-
Contoh Tiga KasusPROGRAM Wujud_Air{ Menentukan wujud air, tergantung temperatur air T }
DEKLARASIT : real
ALGORITMA:read (T)if T 0 then { Kasus 1 } write (padat)else if T < 100 then { Kasus 2 } write (cair) else {T 100, Kasus 3 } write (gas atau uap) endifendif
- Translasi ke Program C/* Program Wujud_Air */#include void main(){ int T; printf("Ketikkan suhu air: "); scanf("%d", &T); if (T
-
Struktur CASEKonstruksi CASE adalah sebagai berikut:
case ekspresi nilai_1 pernyataan_1 nilai_2 pernyataan_2 nilai_3 pernyataan_3 . . . nilai_n pernyataan_n otherwise pernyataan_xendcase
-
Contoh Struktur CASEPROGRAM Konversi_Angka_ke_Huruf{ Mencetak untuk huruf untuk angka 1 sampai 4 }
DEKLARASIangka : integer
ALGORITMA:read (angka)case angka 1 : write (satu) 2 : write (dua) 3 : write (tiga) 4 : write (empat) otherwise : write (angka yang dimasukkan salah)endcase
-
Translasi ke Program C/* Program Konversi_Angka_ke_Huruf */#include void main(){ int angka; printf("Ketikkan angka 1-4: "); scanf("%d", &angka); switch (angka) { case 1 : printf("satu \n"); break; case 2 : printf("dua \n"); break; case 3 : printf("tiga \n"); break; case 4 : printf("empat \n"); break; default : printf("angka yang dimasukkan salah \n"); }}
-
PROGRAM Jumlah_Hari{ Menentukan jumlah hari dalam satu bulan }
DEKLARASIno_bulan, tahun, jumlah_hari : integer
ALGORITMA:read (no_bulan, tahun)case no_bulan 1,3,5,7,8,10,12 : jumlah_hari 31 4,6,9,11 : jumlah_hari 30 2 : if ((tahun mod 4 = 0 and tahun mod 100 0) or (tahun mod 400 = 0)) thenjumlah_hari 29 else jumlah_hari 28endcasewrite (jumlah_hari)
-
/* Program Jumlah_Hari */#include void main(){ int no_bulan, tahun, jumlah_hari; printf("Ketikkan no bulan 1-12: "); scanf("%d,&no_bulan); printf("Ketikkan tahun: "); scanf("%d", &tahun); switch (no_bulan) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: jumlah_hari = 31; break; case 4: case 6: case 9: case 11: jumlah_hari = 30; break; case 2 : if((tahun%4 == 0 && tahun%100 == 0) || tahun%400 == 0) jumlah_hari = 29; else jumlah_hari = 28; } printf("Jumlah hari bulan %d tahun %d adalah %d", no_bulan, tahun, jumlah_hari);}
-
Daftar PustakaBrian W. Kernighan, Dennis M. Ritchie,The C Programming Language, Prentice Hall, 2011.Rinaldi Munir, Algoritma dan Pemrograman dalam bahasa C, Informatika, 2009.