Pemilihan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT Hp: 0853 6581 8665 Email: abdill01@gmail.com Website: www.abdill01.wordpress.com
Tujuan Memahami proses pemilihan dalam runtunan algoritma pseudocode dan komputasi program C.
Analisis Kasus Sebuah masalah harus dianalisis untuk menentukan kasus-kasus yang mungkin terdapat di dalamnya. Pada setiap kasus terdapat aksi tertentu yang dilakukan. Adanya analisis kasus menimbulkan pemilihan instruksi di dalam algoritma tergantung pada kondisi yang dipenuhi.
Pemilihan Satu Kasus Konstruksi if-then digunakan untuk mengekspresikan pemilihan 1 kasus. if (kondisi) then aksi Pertama kondisi dievaluasi, jika benar maka aksi dieksekusi dan jika salah maka aksi tidak dieksekusi.
Pemilihan Dua Kasus Konstruksi if-then-else digunakan untuk mengekspresikan pemilihan 2 kasus. if (kondisi) then aksi1 else aksi2 Pertama kondisi dievaluasi, jika benar maka aksi1 dieksekusi dan jika salah maka aksi2 yang dieksekusi.
Contoh Program /* Program Genap_Ganjil */ #include <stdio.h> main() { int n; printf("Ketikkan sebuah bilangan: "); scanf("%d", &n); if (n%2 == 0) printf(“%d bilangan genap", n); else printf(“%d bilangan ganjil“, n); }
Pemilihan Banyak Kasus Konstruksi else-if digunakan untuk mengekspresikan pemilihan banyak kasus. if (kondisi1) aksi1 else if (kondisi2) aksi2 else aksi3 Kondisi dievaluasi berurutan, jika sebuah kondisi benar maka aksi berikutnya dieksekusi dan ini mengakhiri semua rantai.
Contoh Program /* Program Wujud_Air */ #include <stdio.h> main() { float T; printf(“Suhu air 0C: "); scanf("%f", &T); if (T <= 0) printf("Wujud air padat"); else if (T < 100) printf("Wujud air cair"); else printf("Wujud uap air"); }
Pemilihan Banyak Kondisi Konstruksi if di dalam if (nested if) digunakan untuk pemilihan dengan banyak kondisi untuk satu aksi. if (kondisi1) if (kondisi2) aksi1 else aksi2 aksi3 Jika kondisi1 benar dan kondisi2 benar, maka aksi1 dieksekusi. Jika kondisi1 benar dan kondisi2 salah, maka aksi2 dieksekusi. Jika kondisi1 salah, maka aksi3 dieksekusi.
Contoh Program #include <stdio.h> main() { int x; printf (“Ketikkan bilangan positif: "); scanf("%d", &x); if (x >= 0) if (x%2 == 0) printf(“%d bilangan genap", x); else printf(“%d bilangan ganjil“, x); printf(“salah, x bilangan negatif\n"); }
Struktur Case Struktur case adalah pemilihan jamak yang menguji apakah ekspresi sama dengan salah satu dari nilai: case(ekspresi){ nilai1: aksi1 nilai2: aksi2 . . . otherwise: aksix } Jika ada nilai yang sama dengan ekspresi case, maka aksi pada nilai tersebut dieksekusi dan ini mengakhiri semua rantai pengulangan.
Contoh Program /* Program Konversi_Angka_ke_Huruf */ #include <stdio.h> 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"); }
Tulislah algoritma dan program yang membaca nomor bulan dan tahun, untuk menentukan jumlah hari dalam satu bulan. PROGRAM JumlahHari {Menentukan jumlah hari dalam satu bulan} DEKLARASI nomor_bulan: integer tahun: integer jumlah hari: integer ALGORITMA: read(nomor_bulan,tahun) case nomor_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) then jumlah_hari 29 else jumlah_hari 28 write(jumlah_hari)
#include <stdio.h> 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 adalah %d“, jumlah_hari);