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
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.
Top Related