Senin, 27 Desember 2010

Tugas Logika dan Algoritma

Tugas Teori
Logika dan Algoritma
Buatlah Susunan Algoritma dari soal dibawah ini:
1.      Tiga pasang suami istri akan menyeberang sungai dari desa A ke desa B. Terdapat sebuah perahu dengan batas muatan hanya 2 orang saja yang akan digunakan untuk menyeberang. Permasalahan pun terjadi ternyata para suami-suami memiliki sifat cemburu, sehingga tidak bisa meninggalkan istrinya dengan suami lain. Susunlah algoritma untuk menyeberangkan ketiga pasang suami istri dari desa A ke desa B tanpa ada satu orang pun suami yang cemburu.

2.      Algoritma untuk mengisi voucher telepon genggam (HP)
            1. Gesek bagian hitam pada voucher untuk mendapatkan kode voucher.
            2. Tekan *888*kodevoucher#yes/OK.
            3. Secara otomatis pulsa bertambah sesuai jumlah nominal yang tertera pada voucher.

3.      Algoritma untuk membuat sebuah pakaian jadi (baju atau celana) dari bahan mentah (kain) yang disediakan.
            1. Memilih bahan kain yang akan dijahit.
            2. Menyiapkan pola.
            3. Mengukur bahan kain.
            4. Mengguntung bahan kain sesuai ukuran.
            5. Menjahit bahan kain hingga menjadi kemeja.




Buatlah Algoritma kemudian terjemahkan dalam bahasa pemrograman pascal
4.      Menampilkan bilangan kelipatan 3 dari angka 1 s/d 20

     uses crt;
     var i : integer;
     begin
     clrscr;
     for i : = 1 to 20 do
          begin
          if i mod 3 = 0 then
          write(i:5);
          end;
          readln;
end.


5.      Menampilkan bilangan ganjil dari angka 1 s/d 100
            uses crt;
     var I: integer;
     begin
          clrscr;
          for I:= 1 to 100 do
              begin
              if I mod 2= 1 then
            write(I:5);
            end;
              Readln;
     end.

6.      Menampilkan bilangan genap dari angka 1 s/d 50
            uses crt;
     var I : integer;
     begin
       clrscr;
          for I:= 1 to 50 do
         begin
           if I mod 2= 0 then
            write(I:5);
         end;
            Readln;
           end.
7.      Menampilkan bilangan prima dari angka 1 s/d 2
            Bilangan prima adalah bilangan yang bisa dibagi dengan bilangan 1 dan bilangan itu sendiri.
            2 : 2 mod 1=0, 2 mod 2=0
            3 : 3 mod 1=0, 3 mod 2=0, 3 mod 3=0
            4 : 4 mod 1=0, 4 mod 2=0, 4 mod 3=1, 4 mod 4=0
                5 : 5 mod 1=0, 5 mod 2=1, 5 mod 3=2, 5 mod 4=1, 5 mod 5=0
            Uses crt;
     Var i, pembagi, jumlah0 : integer;
     Begin
     clrscr;
      for i:=2 to 20 do
       Begin
          jumlah0:=0;
          for pembagi :=1 to i do
              begin
              if i mod pembagi=0 then
              jumlah0:=jumlah0+1;
              end;
              if jumlah0=2 then
              write(i:5);
              end;
              readln;
     End.

8.      Menampilkan bilangan kelipatan 3 dan kelipatan 5 dari angka 1 s/d 30
uses crt;
var I,A,B: integer;
begin
     clrscr;
     A:= 3;
     B:= 5;
     for I:= 1 to 30 do
     begin
     write (A,B);
     A:= A+3;
     B:= B+5;
     end;
     Readln;
End.

9.      Masukan sebuah bilangan kemudian tentukan apakah bilangan yang diinput termasuk bilangan ganjil, bilangan genap. Gunakan metode pemilihan
Layout :
Masukan sebuah bilangan       :  3  à enter
BIlangan yang anda input adalah bilangan ganjil
         uses crt;
     var
     bilangan : integer;
      begin
         clrscr;
         write('Masukan sebuah bilangan=');Readln(bilangan);
         if (bilangan mod 2)= 0 then
         writeln('Bilangan yang Anda input adalah bilangan
genap')
         else
         writeln('Bilangan yang Anda input adalah bilangan ganjil');
         Readln;
      End.
10.  Masukan bilangan 1, setelah itu masukan bilangan 2, kemudian lakukan proses penjumlahan, perkalian, pengurangan, dan pembagian. Hasil dari ke empat operasi aritmatika tersebut ditampilkan
Layout :
Bilangan 1       : 6
Bilangan 2       : 3
Hasil Penjumlahan      : 9
Hasil Pengurangan      : 3
Hasil Perkalian            : 18
Hasil Pembagian         : 2
uses crt;
var  b1, b2: longint;
begin
    clrscr;
    write('Bilangan 1: '); read(b1);
    write('Bilangan 2: ');readln(b2);
    writeln(#10);
    writeln('Hasil penjumlahan= ', b1+b2);
    writeln('Hasil pengurangan= ', b1-b2);
    writeln('Hasil perkalian  = ', b1*b2);
    writeln('Hasil pembagian  = ', b1/b2 :0:0);
    readln;
end.


11.  Masukan nilai jari-jari sebuah lingkaran. Kemudian program akan menampilkan
7
hasil luas lingkaran.




Layout :
Jari-jari lingkaran         : 7
Luar Lingkaran adalah 154

uses crt;
var L,r: real;
begin
    clrscr;
    write('Jari-jari lingkaran= '); readln(r);
    L:= pi * sqr(r);
    writeln('Luas lingkaran   = ', L:0:0);
    readln
end.

12.  Buat algoritma dan program untuk menghitung luas yang diarsir pada gambar dibawah ini
3
4
5
4
4
10
 






uses crt;
var pL, lL, pT, lT, L_total, L_tengah: integer;
begin
    clrscr;
    pL:=18;  lL:=12;  pT:=10;  lT:=5;
    L_total:= pL*lL;
    L_tengah:= pL*lL;
    writeln('Luas total     = ', L_total);
    writeln('Luas tengah    = ', L_tengah);
    writeln('Luas yg diarsir= ', L_total-L_tengah);
    readln;
end.
13. 1) uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 4 do
    begin
        for j:= 1 to 4 do
        write(j:4); writeln(#10);
    end;
    readln;
end.


13.  Buat tampilan program dibawah ini dengan menggunakan metode perulangan:

1 2 3 4                         2 2 2                            3 2 1
1 2 3 4                         1 1 1                            3 2 1
1 2 3 4                         0 0 0                            3 2 1
1 2 3 4

            1                                  4 3 2 1                         1         
            1 2                               4 3 2                            3   5    
            1 2 3                            4 3                               7   9   11
            1 2 3 4                         4                                  13 15 17 19
           


1) uses crt;
   var i, j: byte;
          begin
          clrscr;
          for i:= 1 to 4 do
               begin
               for j:= 1 to 4 do
               write(j:4); writeln(#10);
               end;
          readln;
          end.


2) uses crt;
   var A, i, j: byte;
          begin
     clrscr;
     A:=2;
     for i:= 1 to 3 do
     begin
        for j:= 1 to 3 do
        write(A:4);
        A:=A-1; writeln(#10);
     end;
    readln
          end.

3) uses crt;
   var i, j: byte;
          begin
    clrscr;
    for i:= 1 to 3 do
    begin
        for j:= 3 downto 1 do
        write(j:4); writeln(#10);
    end;
    readln
        end.


4) uses crt;
var i, j: byte;
begin
    clrscr;
    for i:= 1 to 4 do
    begin
        for j:= 1 to i do
        write(j:4); writeln(#10);
    readln
end.


5) uses crt;
        var A, i, j: byte;
          begin
          clrscr;
          for i:= 4 downto 1 do
          begin
          A:=4;
          for j:=  1 to i do
          begin
            write(A:4);
            A:=A-1;
        end;
        writeln(#10);
    end;
    readln
          end.


6) uses crt;
        var A, i, j: byte;
          begin
     A:=1;
     for i:= 1 to 4 do
          begin
          for j:=1 to i do
               begin
               write(A:4);
               A:=A+2;
          end;
          writeln(#10);
          end;
          readln
          end.

14.  Buat urutan angka dari terkecil sampai terbesar dari 5 (lima) nilai yang dinput. Gunakan metode urutan, pemilihan dan perulangan.
Layout :
Angka 1          : 8
Angka 2          : 17
Angka 3          : 5
Angka 4          : 7
Angka 5          : 18

Hasil urutan sebagai berikut:
5          7          8          17        18

uses crt;
var x: array[1..5] of integer;
    n,min,temp,i,j: integer;
begin
  clrscr;
  writeln('Program pengurutan bilangan');
  writeln('____________________________');
  writeln;
  for n:=1 to 5 do
   begin
    write('Input bilangan ',n,': ');readln(x[n]);
   end;
   n:=5;
   for i:=1 to n-1 do
    begin
      min:=i;
      for j:=i+1 to n do
       begin
         if x[j] <= x[min] then
         min:=j;
       end;
         temp:=x[min];
         x[min]:=x[i];
         x[i]:=temp;
    end;
   writeln(#10);
   writeln('Hasil pengurutan adalah:');
   writeln;
   for n:=1 to 5 do
   write(x[n]:4);
   readln
end.  


15.  Buat program sederhana menggunakan metode pemilihan untuk menampilkan keterangan umur di mana:
Umur
Keterangan
0-5
Balita
6-13
Anak-Anak
14-25
Remaja
26-40
Dewasa
Ø  41
Orang Tua

Dengan memasukan nama, nim, program studi, tahun lahir. Maka akan ditampilkan umur dan keterangan umur
Layoutnya :
Nama                           : Patra Madjid
Nim                             : 21015225     
Program Studi             : Sistem Informasi
Tahun Lahir                 : 1987
Umur                           : 23
Keterangan                  : Remaja
uses crt;
var lahir, umur: integer;
    ket: string;
begin
    write('NIM          : ');readln;
    write('Nama         : ');readln;
    write('Program Studi: ');readln;
    write('Tahun Lahir  : ');readln(lahir);
    writeln(#10);
    umur:=2010-lahir;
      if umur<=5 then ket:='balita'
      else if umur<=13 then ket:='anak-anak'
      else if umur<=25 then ket:='remaja'
      else if umur<=40 then ket:='dewasa'
      else ket:='orang tua';
    writeln('Umur      : ', umur);
    writeln('Keterangan: ', ket);
    readln
end.