pertemuan 6 penyeleksian (2)

18
TEL 2112 Dasar Komputer & Pemograman Penyeleksian Abdillah, S.Si, MIT Email: [email protected] Website: http://abdill01.wordpress.com

Upload: heri

Post on 16-Sep-2015

221 views

Category:

Documents


0 download

DESCRIPTION

Pembahasan seleksi

TRANSCRIPT

  • 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.