Docstoc

modul 4 Repaired (DOC)

Document Sample
modul 4 Repaired (DOC) Powered By Docstoc
					                                                Modul
                                               Pemilihan

1. Pendahuluan
   Program yang hanya berisi runtunan biasanaya terdapat pada masalah sederhana. Seringkali suatu
   instruksi hanya bisa dikerjakan jikaia memenuhi suatu persyaratan tertentu. Oleh karena itu, komputer
   tidak lagi mengerjakan instruksi secara sekuensial seperti pada runtunan, tetapi berdasarkan syarat
   yang dipenuhi. Dalam modul ini akan dibahas mengenai struktur pemilihan (selection).

2. Tujuan Instruksional Umum
   Mahasiswa mengerti cara penggunaan statemen-statemen untuk penyeleksian kondisi

3. Tujuan Instruksional Khusus
       Mahasiswa dapat membuat contoh program sederhana dengan menggunakan statemen kondisi
          IF
       Mahasiswa dapat membuat contoh program sederhana dengan menggunakan statemen CASE.

4. Kegiatan Praktikum
   .4.1. Kegiatan Praktikum 1
       Uraian dan contoh
       4.1.1 Instruksi If/Then/Else
           Instrusksi If/Then/Else digunakan untuk memilih alternative apabila suatu syarat atau kondisi
       dipenuhi ( 1 kasus ), atau memilih satu alternatif dari dua kemungkinan berdasarkan apakah syarat
       terpenuhi atau tidak ( 2 kasus ).
       1. Satu kasus
           Notasi pascal untuk analisis dengan satu kasus adalah dengan menggunakan IF –THEN (jika-
           maka) dalam bentuk pernyataan :
               If kondisi then
                 Aksi

          Pernyataan di atas berarti bahwa aksi hanya dilaksanakan bila kondisi bernilai benar (true).
          Bila kondisi bernilai salah (false), tidak ada aksi apapun dikerjakan. Aksi yang dikerjakan bisa
          satu, dua, atau lebih. Bagan alir pada gambar 4.1 membantu memperlihatkan visualisasi
          pemilihan hanya dengan satu kasus.

                                                       salah
                                         kondisi
                                               benar
                                           aksi


                                          akhir


                     Gambar 4.1 Bagan alir yang mempeelihatkan pemilihan dengan satu kasus

          contoh program IF dengan satu kasus:
           PROGRAM IF_satu_kasus;
           USES WINCRT;
           Var Nilai:integer;
           begin
                    Write('Masukan nilai anda : '); readln(Nilai);
                    if (Nilai > 60) then
                         writeln('Selamat Anda Lulus!!');
            end.
2. Dua Kasus
    Konstruksi IF-THEN hanya menyediakan satu alternatif aksi jika suatu persyaratan (kondisi)
    dipenuhi. Kadang-kadang kita perlu memilih melakukan melakukan aksi alternatif jika suatu
    kondisi tidak memenuhi. Jadi, ada dua kasus, tetapi hanya salah satu dari keduanya yang harus
    dipilih satu untuk dikerjakan. Notasi Pascal untuk masalah dengan dua buah kasus adalah
    dengan menggunakan konstruksi IF-THEN-ELSE(jika-maka-kalau tidak) :
       If kondisi then
         Aksi1
      Else
        Aksi2

   Pernyataan di atas berarti bahwa aksi1, dikerjakan jika kondisi bernilai benar, sebaliknya jika
   kondisi bernilai salah, maka aksi2 yang akan dilaksanakan. Else menyatakan ingkaran
   (negation) dari kondisi. Bagan alir pada gambar 4.2 memperlihatkan visualisasi pemilihan
   dengan dua kasus.

                     benar                     salah
                                  kondisi


                    Aksi1                        Aksi2



                                    akhir


              Gambar 4.2 Bagan alir yang memperlihatkan pemilihan dengan dua kasus

   contoh program IF dengan dua kasus:
   PROGRAM IF_dua_kasus;
   USES WINCRT;
   Var Nilai:integer;
   begin
             Write('Masukan nilai anda : '); readln(Nilai);
             if (Nilai > 60) then
                  writeln('Selamat Anda Lulus!!')
             else
                  writeln('Maaf, anda belum berhasil');
             end.


3. Tiga Kasus atau lebih
    Bentuk ini merupakan bentuk pemilihan yang sedikit kompleks dibandingkan dua bentuk
    diatas. Pasalnya bentuk ini memiliki tiga buah (atau lebih) kasus sehingga akan terdapat
    statement if di dalam if lainnya, yang sering dikenal dengan sebutan if bersarang (nested - if).
    Masalah yang mempunyai tiga buah kasus atau lebih dapat dianalisis dengan konstruksi IF-
    THEN-ELSE bertingkat-tingkat. Bagan alir pada gambar 4.3 memperlihatkan visualisasi
    pemilihan dengan tiga kasus.
            benar                              salah
                             Kondisi1


             Aksi1                                             salah
                               benar
                                                Kondisi2


                                Aksi2                             Aksi3



                                                   akhir


                                                   akhir


          Gambar 4.2 Bagan alir yang mempeelihatkan pemilihan dengan dua kasus

Notasi Pascal untuk masalah dengan tiga buah kasus adalah :
If kondisi1 then
   Aksi1
Else
   If kondisi2 then
      Aksi2
  Else
      If kondisi3 then
        Aksi3



Notasi Pascal untuk masalah dengan empat buah kasus adalah :
If kondisi1 then
   Aksi1
Else
   If kondisi2 then
      Aksi2
  Else
      If kondisi3 then
        Aksi3
     Else
          If kondisi4 then
            Aksi4
       contoh program IF dengan tiga kasus:
       PROGRAM IF_tiga_kasus;
       USES WINCRT;
       Var Nilai:integer;
       begin
          Write('Masukan nilai anda : '); readln(Nilai);
          if (Nilai <= 50) then
             begin
                      writeln('Maaf, anda belum berhasil ');
                    end
          else
                     if (nilai<=70) then
                        begin
                         writeln('Nilai anda C');
                        end
              else
                 if (nilai<=85) then
                          begin
                         writeln('Nilai anda B');
                          end
                 else
                            writeln('Nilai anda A');
       end.


Latihan 1
    1. Buatlah program untuk membaca sebuah bilangan bulat, lalu mencetak pesan “genap” jika
        bilangan tersebut adalah genap. Bilangan genap adalah bilangan yang habis dibagi dengan 2
        (sisa pembagian = 0).jika tidak bernilai genap maka bilangan “ganjil”.

   2. Buatlah program untuk menentukan nilai sebuah bilangan, apakah bilangan tersebut bernilai
       positif, negatif atau bilangan nol.
       Syarat : jika bilangan > 0 maka “bilangan positif”,
                     bilangan < 0 maka “bilangan negatif”,
                     bilangan = 0 maka “bilangan nol”,
.4.2. Kegiatan Praktikum
    Uraian dan contoh
    4.1.1 Struktur CASE
           Untuk masalah dengan dua kasus atau lebih, konstruksi CASE dapat menyederhanakan
           penulisan IF-THEN-ELSE yang bertingkat-tingkat. Konstruksi CASE sebagai berikut:
             Case ekspresi of
                Nilai1 : aksi1 ;
                Nilai2 : aksi2 ;
                -
                -
               Nilain : aksin ;
                Else aksiX ;
             End;

         Ekspresi adalah sembarang ekspresi (aritmatika atau boolean) yang menghasilkan suatu
         nilai (konstanta). Konstruksi CASE memeriksa apakah nilai dari ekspresi tersebut sama
         dengan salah satu dari Nilai1, Nilai2,.., Nilain (catatan: semua nilai-nilai ini harus berbeda).
         Jika nilai ekspresi sama dengan Nilaik benar, maka aksik dilaksanakan. Aksi yang
         bersesuain dengan Nilaik dapat lebih dari satu, karena itu ia berupa runtunan. Jika tidak ada
         satu pun nilai ekspresi yang cocok, maka aksi setelah else dikerjakan. Else bersifat
         optional, artinya boleh ditulis atau tidak di dalam konstruksi CASE.

         Contoh 1 Statemen CASE :
           Program genapganjil;
           Uses wincrt;
           Var
              X : integer;
           Begin
           Write („masukkan bilangan= ‟); read(x);
           Case x mod 2 of
              0 : write („genap‟);
              1 : write („ganjil‟);
           End;
           End.

         Contoh 2:
         Program namabulan;
         Uses wincrt;
         Var
           Nomor_bulan:integer;
         begin
         write ('ketikkan nomor bulan (1-12) : ');readln(nomor_bulan);
         case nomor_bulan of
            1 : writeln ('januari');
            2 : writeln ('februari');
            3 : writeln ('maret');
            4 : writeln ('april');
            5 : writeln ('mei');
            6 : writeln ('juni');
            7 : writeln ('juli');
            8 : writeln ('agustus');
            9 : writeln ('september');
            10 : writeln ('oktober');
            11 : writeln ('november');
            12 : writeln ('desember')
            else writeln ('bukan bulan yang benar');
         End;
         End.
Latihan 1
1. Buatlah program untuk membuat pilihan menu, yaitu :
    Output :
    Menu restoran “junk food” :
    ===================
    1. Hamburger
    2. Hotdog
    3. Friedchicken
    Pilih pilihan anda :
    Ket :       jika memilih angka 1, maka 'Selamat Menikmati Hamburger'
                jika memilih angka 2, maka 'Selamat Menikmati Hotdog'
                jika memilih angka 3, maka 'Selamat Menikmati friedchicken'
                selain itu, „anda salah input, masukkan angka 1, 2, dan 3 !!‟

2. Buatlah program untuk pemilihan luas dan keliling pada persegi panjang!
   Output :
   Menu persegi panjang:
   1. Luas
   2. Keliling
   Masukkan pilihan anda :
   Ket : jika memilih angka 1, maka inputkan panjang dan lebar kemudian hitung luas
        jika memilih angka 2, maka inputkan panjang dan lebar kemudian hitung keliling
         selain itu, „coba cek kembali pilihan anda‟